On 2023/12/15 20:40, Greg KH wrote:
On Fri, Dec 15, 2023 at 02:31:01PM +0800, Yajun Deng wrote:
There is usbdrv_wrap in struct usb_driver and usb_device_driver,
it contains device_driver and for_devices. for_devices is used to
distinguish between device drivers and interface drivers.
Yes.
We can compare that if 'drv->probe' is equal to usb_probe_device instead
of using for_devices in is_usb_device_driver().
Why?
For remove struct usbdrv_wrap. As we can see, other structs use
device_driver directly.
struct sdio_driver {
... ...
struct device_driver drv;
};
struct pcie_port_service_driver {
... ...
struct device_driver driver;
};
and so on ...
So there is no need a wrapper for device_driver if we can implement
is_usb_device_driver().
Remove struct usbdrv_wrap, use device_driver directly in struct usb_driver
and usb_device_driver. This makes the code more concise.
Really? What does this help out with? Are there future changes that
require this?
No, just for cleanups and consistency with other structs.
I'm all for cleanups, but I don't see what this helps with.
Also, you have a coding style issue in this patch, which means I
couldn't take it anyway:
+extern int usb_probe_device(struct device *dev);
We don't do that in .c files :(
It's in drivers/usb/core/usb.h, not in .c files.
thanks,
greg k-h