Include header file include/linux/usb.h in include/linux/usb/hcd.h
because structures usb_device, usb_host_config and usb_interface have
their definitions in include/linux/usb.h.
This eliminates the following warning in include/linux/usb/hcd.h:
include/linux/usb/hcd.h:311:44: warning: âstruct usb_deviceâ declared inside parameter list [enabled by default]
include/linux/usb/hcd.h:412:10: warning: âstruct usb_host_configâ declared inside parameter list [enabled by default]
include/linux/usb/hcd.h:614:9: warning: âstruct usb_interfaceâ declared inside parameter list [enabled by default]
Where does this problem show up?
Any file that include linux/usb/hcd.h should include linux/usb.h first.
IMO it would be better to fix the source files that don't do the
includes properly.
Of course, people have varying opinions on this issue. As far as I
know, there is no fixed policy in the kernel about nested includes.
Alan Stern