On Tue, Apr 21, 2020 at 01:02:27AM -0700, Jeff Kirsher wrote: > +struct virtbus_driver { > + int (*probe)(struct virtbus_device *); > + int (*remove)(struct virtbus_device *); > + void (*shutdown)(struct virtbus_device *); > + int (*suspend)(struct virtbus_device *, pm_message_t); > + int (*resume)(struct virtbus_device *); > + struct device_driver driver; > + const struct virtbus_dev_id *id_table; > +}; You create this type of driver, but then never use it in your implementations that happen to create virtbus devices. So does that imply that you do not need virbus_drivers at all? Why add all of this code that never gets used? Or perhaps you should be creating a virbus driver? I can't tell, but as it is, this series is not ready to be merged. greg k-h