The implicit presence of module.h and all its sub-includes was
masking these implicit header usages:
include/linux/dmaengine.h:684: warning: 'struct page' declared inside parameter list
include/linux/dmaengine.h:684: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/dmaengine.h:687: warning: 'struct page' declared inside parameter list
include/linux/dmaengine.h:736:2: error: implicit declaration of function 'bitmap_zero'
With input from Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
By removing the implicit presence of module.h from this file, we
will see things like:
In file included from fs/dlm/user.c:9:
include/linux/miscdevice.h:50: error: field ‘list’ has incomplete type
include/linux/miscdevice.h:54: error: expected specifier-qualifier-list before ‘mode_t’
Call out lists.h and types.h for inclusion to fix each of the
above respectively.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This will show up on MIPS when we fix all the implicit header presences
that are because of module.h being everywhere.
In file included from kernel/trace/ftrace.c:16:
include/linux/stop_machine.h: In function 'stop_one_cpu':
include/linux/stop_machine.h:50: error: implicit declaration of function 'smp_processor_id'
include/linux/stop_machine.h: In function 'stop_cpus':
include/linux/stop_machine.h:80: error: implicit declaration of function 'raw_smp_processor_id'
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
It shows up as a build failure on MIPS, as it is used in
three of_property function stubs.
include/linux/of.h:275: error: 'ENOSYS' undeclared (first use in this function)
include/linux/of.h:282: error: 'ENOSYS' undeclared (first use in this function)
include/linux/of.h:295: error: 'ENOSYS' undeclared (first use in this function)
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
There is nothing modular in this file, and no reason to drag
in all the 357 headers that module.h brings with it, since
it just slows down compiles.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This file had an include of module.h which was probably added
in relation to this line:
#define ACPI_EXPORT_SYMBOL(symbol) EXPORT_SYMBOL(symbol);
However, we really expect symbol exporters to grab export.h
themselves, and since this is only a define, we can remove
the module.h include without aclinux.h itself causing any
compile issues.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This file has a define MODULE_ALIAS_MISCDEV which in turn will
use the MODULE_ALIAS define, but only if the former is explicitly
used by modular device driver code (and such code should be
already including module.h).
Delete the include, since module.h is such a giant thing that we
don't want it implicitly sneaking into compiles where it isn't
specifically required.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
There is nothing modular in this file, and no reason to drag
in all the extra headers that module.h brings with it, since
it just slows down compiles.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This file has modular references, but they are limited to
those which are covered by the simple "struct module;"
declaration used in dozens of other places. In fact that
declaration is already there (just outside of the context
of this commit) so simply remove the include line.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
There is nothing module specific in this header, and removing
it doesn't seem to uncover any implicit dependencies either.
Must be simply a vestige of an ancient legacy.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
The <linux/module.h> pretty much brings in the kitchen sink along
with it, so it should be avoided wherever reasonably possible in
terms of being included from other commonly used <linux/something.h>
files, as it results in a measureable increase on compile times.
There doesn't appear to be any module specifics in this file.
The obvious people who were relying on the presence of
the vast amount of stuff module.h sucked in have been fixed.
If other files are implicitly relying on it, then lets see who
they are and fix them too.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This file consists of nothing other than things like:
#ifdef CONFIG_FOO
#define ....
There is no reason for it to require module.h
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
There are no modular calls here, so just the minimal header for
the EXPORT_SYMBOL macro will suffice.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This is a module and so needs module.h so that it will still build
once the implicit presence of module.h is removed.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
These macros are no longer in module.h and module.h is no longer
present everywhere. Call out export.h for the users who are
making use of these macros.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
As we will get this after the module.h usage cleanup.
drivers/pcmcia/db1xxx_ss.c:577: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE'
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
These macros are no longer in module.h and module.h is no longer
present everywhere. Call out export.h for the real users who
are making use of these macros, or else we'll get things like:
CC drivers/uwb/umc-drv.o
drivers/uwb/umc-dev.c:42: warning: data definition has no type or storage class
drivers/uwb/umc-dev.c:42: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’
drivers/uwb/umc-dev.c:42: warning: parameter names (without types) in function declaration
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Lots of files were getting an implicit include of module.h
for years now. But that will be fixed shortly. So get the
real users to call out the include explicitly.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
The module.h (via device.h) was pulling handfuls of implicitly present
header files -- including basic stuff like stat.h. Fix up these stat.h
users in advance so they don't break on the cleanup.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
We are clipping down the presence of module.h, since it was
everywhere. If you really need it, you better call it out,
as per this changeset.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This was implicitly appearing by way of module.h -- but when
we fix that, we'll get this:
In file included from drivers/regulator/dummy.c:21:
include/linux/regulator/driver.h:197: error: field 'notifier' has incomplete type
make[3]: *** [drivers/regulator/dummy.o] Error 1
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Another group of drivers that are taking advantage of the implicit
presence of module.h -- and will break when we pull the carpet out
from under them during a cleanup. Fix 'em now.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
So that THIS_MODULE is still in scope once we clean up the presence
of module.h being everywhere.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Up to now, the module.h header was as hard to keep out as
sunlight. But we are cleaning that up. Fix the virtio users
who simply expect module.h to be there in every C file.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
We need this in advance of the module.h cleanup, or we'll
get compile errors like this:
CC drivers/lguest/lguest_device.o
drivers/lguest/lguest_device.c: In function ‘lguest_devices_init’:
drivers/lguest/lguest_device.c:490: error: ‘THIS_MODULE’ undeclared (first use in this function)
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This file has things like module_param_named() and MODULE_PARM_DESC()
so it needs the full module.h header present. Without it, you'll get:
CC arch/x86/kvm/../../../virt/kvm/iommu.o
virt/kvm/iommu.c:37: error: expected ‘)’ before ‘bool’
virt/kvm/iommu.c:39: error: expected ‘)’ before string constant
make[3]: *** [arch/x86/kvm/../../../virt/kvm/iommu.o] Error 1
make[2]: *** [arch/x86/kvm] Error 2
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This was coming in via an implicit module.h (and its sub-includes)
before, but we'll be cleaning that up shortly. Call out the stat.h
include requirement in advance.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Things like THIS_MODULE and EXPORT_SYMBOL were simply everywhere
because module.h was also everywhere. But we are fixing the latter.
So we need to call out the real users in advance.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Previously these drivers just got module.h implicitly, but we
are cleaning that up and it will be no longer. Call out the
real users of it.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
We are cleaning up the omnipresent module.h stuff, so people
who really use it need to call it out explicitly.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This 2nd batch of implicit module.h users only appeared when we
removed the unnecessary module.h from include/linux/miscdevice.h
[The 1st batch is already present in Greg's staging tree.]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
These files are using moduleparam infrastructure and were getting
that via the implicit module.h presence that we are phasing out.
So they'll need to include moduleparam.h explicitly in advance.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Lots of drivers have in the past expected the presence of basic things
like THIS_MODULE and EXPORT_SYMBOL. With the header cleanup, they wont
have these. Call out the include explicitly.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Or we will get things like this when we remove the implicit path:
drivers/ssb/embedded.c:32: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
drivers/ssb/driver_chipcommon.c:432: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
drivers/ssb/driver_chipcommon_pmu.c:607: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
drivers/ssb/pcihost_wrapper.c:120: error: ‘THIS_MODULE’ undeclared (first use in this function)
drivers/ssb/driver_pcicore.c:721: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’
drivers/ssb/driver_gige.c:249: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
The header cleanup means that module.h is no longer simply
everywhere. So real modules need to actively include it.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Once the implicit use of module.h is prevented, these files will
fail to find the stat.h header content.
Fix up the implicit usage expectations in advance of the cleanup.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
These two basic defines were everywhere, simply because module.h
was also everywhere. But we are cleaning up the latter. So make
the exporters actually call out their need for the include.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
We are cleaning up the implicit presence of module.h; these guys are
some of the people who just assume it will be there. Call it out
explitly for those that really need it.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
These macros are in <linux/export.h> and will no longer be
implicitly everywhere anymore. Fix it up in advance.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
With the pending module.h cleanup, these files will fail to compile,
unless they explicitly call out the include of this file.
[omap-usb-host addition courtesy of Anand Gadiyar <gadiyar@ti.com>]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Fix in advance, or we will get things like this:
drivers/bcma/core.c:20: warning: data definition has no type or storage class
drivers/bcma/core.c:20: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
drivers/bcma/core.c:20: warning: parameter names (without types) in function declaration
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This will ensure that it continues to build once we remove
the implicit module.h presence from everywhere later on.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
To fix what used to be the implicit presence of the macros
EXPORT_SYMBOL and THIS_MODULE, via module.h being everywhere.
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>