Re: [PATCH 3/7] drivers: usb: Include appropriate header file inhcd.h

From: josh
Date: Thu Dec 19 2013 - 11:37:31 EST


On Thu, Dec 19, 2013 at 10:45:42AM -0500, Alan Stern wrote:
> On Thu, 19 Dec 2013, Rashika Kheria wrote:
>
> > 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.

True. I personally prefer the policy of making all headers
self-contained, and then only including headers that define things used
in the source file. That has the advantage of not including any
unnecessary headers if the dependencies shrink, and not requiring
changes to multiple source files if the dependencies grow.

Any particular objection to making the headers self-contained?

- Josh Triplett
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/