[i2c] [PATCH 1/4] drivers/i2c: Drop redundant includes of moduleparam.h
khali at linux-fr.org
Thu Nov 15 13:19:15 CET 2007
On Wed, 14 Nov 2007 04:21:51 -0500 (EST), Robert P. J. Day wrote:
> On Wed, 14 Nov 2007, Julia Lawall wrote:
> > > > From: Julia Lawall <julia at diku.dk>
> > > >
> > > > Drop #include <linux/moduleparam.h> in files that also include #include
> > > > <linux/module.h>. module.h includes moduleparam.h already.
> > >
> > > i'm not convinced that's a good idea. while module.h does
> > > currently (and unfortunately) include moduleparam.h, there may
> > > come a day when those header files are refactored to actually make
> > > sense, at which point all those missing moduleparam.h inclusions
> > > will cause all sorts of bad things to happen.
I share Robert's point of view here. Relying on header files including
each other is usually not a good idea, as build then breaks when the
headers are cleaned up or reorganized.
> > They were removed from the drivers/media files in August:
> > 9c12224a607a4b22ab86784e3394b52810b9507c
> > Perhaps they should be put back there then?
> i went down this road before a few months back, checking on how many
> source files were unnecessarily including moduleparam.h, and the
> result was literally *hundreds*. i took a shot at cleaning that up,
> and even factoring the non-parameter-related content out of that file,
> but the change would have been hugely disruptive.
> as it is now, since module.h includes moduleparam.h, there is (as you
> can see) no reason whatever for *anyone* to include moduleparam.h.
> at least right now.
> but if anyone ever aspires to tidy up this chaos, then all you'd end
> up doing is putting all those includes back in. so unless there's a
> long-term goal here, it would seem safest to just leave things the way
> they are. but that's someone else's decision, not mine. i'm just
> reporting on how quickly things got unpleasant when *i* tried to do
> something with this once upon a time.
If there's a fundamental reason why module.h has to include
moduleparam.h, then both headers should be merged in a single file. If
not, then both header files should be clearly split and drivers should
include each of them as needed. Either way, header files must be fixed
first, and drivers adjusted in consequence. So, I'm not taking this
More information about the i2c