04/07/2018 09:16, Guo, Jia: > > On 7/4/2018 6:21 AM, Thomas Monjalon wrote: > > 29/06/2018 12:30, Jeff Guo: > >> /** > >> + * Implementation a specific hot plug handler, which is responsible > >> + * for handle the failure when hot remove the device, guaranty the system > >> + * would not crash in the case. > >> + * @param dev > >> + * Pointer of the device structure. > >> + * > >> + * @return > >> + * 0 on success. > >> + * !0 on error. > >> + */ > >> +typedef int (*rte_bus_hotplug_handler_t)(struct rte_device *dev); > > [...] > >> @@ -211,6 +224,8 @@ struct rte_bus { > >> rte_bus_parse_t parse; /**< Parse a device name */ > >> struct rte_bus_conf conf; /**< Bus configuration */ > >> rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */ > >> + rte_bus_hotplug_handler_t hotplug_handler; > >> + /**< handle hot plug on bus */ > > The name is misleading. > > It is to handle unplugging but is called "hotplug". > > ok, so i prefer hotplug_failure_handler than hot_unplug_handler, since > it is more explicit for failure handle, and more clearly. > > > In order to demonstrate how the handler is used, you should > > introduce the code using this handler in the same patch. > > > > sorry, i check the history of rte_bus.h, and the way is introduce ops at > first, second implement in specific bus, then come across the usage. > I think that way clear and make sense. what do you think? > Anyway, i will check the commit log if is there any misleading.
I think it is better to call ops when they are introduced, and implement the ops in second step.