lkml.org 
[lkml]   [2010]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] usb: gadget: #include device.h in gadget.h
Greg KH wrote:

>>>> gadget.h uses structures defined in device.h, it must include it. In
>>>> most cases, gadget.h is preceded by linux/platform_device.h, but if
>>>> you are grouping headers sanely, device.h may not be pulled in until
>>>> *after* gadget (e.g. mach/msm_device.h), thus gadget.h should not
>>>> rely on something else #including device.h

>> As well as a number of other headers.

Totally six, to be precise.

>> I have postaed a patch
>> addressing the missing #include's already.

> Yes I know,

That was mostly for Patrick.

> and my same statment stands.

:-/

>>>> include/linux/usb/gadget.h:488: error: field 'dev' has incomplete type
>>> Why not just provide an "empty" prototype for whatever is needed.

>> Empty prototype of what, 'struct device'? Have you looked at the code at all?

> Nope, I try not to :)

Right, that file has been "stained" by one #include already (which seems
to be useless though).

>> struct device dev;

> Ok, that wouldn't work.

Then let's just leave it as it is. :-)

>>> How about just fixing up the .c file that the problem happens in, to
>>> include device.h first? Is this an issue in the current tree somehow?

>> In my opinion, this is just insane approach.

> Sorry, but that seems to go against what the rest of the kernel is
> doing.

Thus far, I've seen headers satisfying their own dependencies, and people
accepting patches to add missing #include's to headers. This list was the
first place where I've learned that the problems should be addressed not where
they exist but left to be dealt with at every place where a defective header
is used (and the time wasted on that). I haven't heard any convincing
arguments for this cause so far...

> thanks,
> greg k-h

WBR, Sergei


\
 
 \ /
  Last update: 2010-07-08 19:51    [W:0.039 / U:0.404 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site