linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/PULL 00/11] introduce export.h; reduce module.h usage
@ 2011-07-28  5:16 Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 01/11] module.h: split out the EXPORT_SYMBOL for faster compiles Paul Gortmaker
                   ` (14 more replies)
  0 siblings, 15 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

I don't think there really is any rocket science or contentious stuff here.
It is a sensible cleanup that adds organization and speeds up compiles.
The RFC I'm hoping for is more about how/when we want to get this in tree.

The problem:
------------
	 The module.h header file contains a path to nearly every other
header, and it itself is implicitly used everywhere.  Such that if you
touch module.h and rebuild, it takes the same time as a completely clean
build.  We are feeding massive amounts of needless stuff to cpp on every
kernel build.  The "implicitly everywhere" problem is caused by common
header files (device.h, sock.h, etc) directly including module.h.

The solution:
-------------
	This also comes in two parts.  We can drastically reduce the
users of module.h by introducing an export.h -- so that every file
who isn't a module, but needs EXPORT_SYMBOL/THIS_MODULE, can instead
just use this lightweight header which in turn doesn't include any
others.  The "implicitly everywhere" can be solved by removing
module.h from all possible <linux/somefile.h> and replacing it with
a simple reference for "struct module". 

Solving the implicitly everywhere problem reveals lots of files who
were unknowingly capitalizing on having module.h present for its
contents, and contents of the files it in turn included.

Shown here in this RFC are the just the include/* patches which form
these two solutions.  What is *not* shown is the boring 150 or so
patches, all of the one-line variety, which deal with the fact that
people were implicitly taking advantage of module.h (and all its children
includes).  These all fall into one of these five mundane categories.

 1) adding module.h to files that were modular but were simply not
    including module.h because of its implicit presence everywhere.

 2) adding export.h to non-modular files that were not including module.h
    but were trying to use EXPORT_SYMBOL/THIS_MODULE macros.

 3) replacing module.h with export.h in non-modular files that are only
    trying to use EXPORT_SYMBOL/THIS_MODULE macros.

 4) adding in various other headers, like <linux/stat.h> that were simply
    implicitly present via happenstance of the module.h's sub-includes.

 5) deleting the <linux/module.h> from files who were including it but
    not doing anything at all related to modules.

Note that #3 and #5 don't show up as warnings/errors, I had to actively
hunt out those optimizations manually.  In total, all the one line
"fallout" changes add to this cleanup to give it this footprint:

 1148 files changed, 1263 insertions(+), 428 deletions(-)

[If I knew it was going to be that involved, I'd probably would have
 never undertaken to start this in the 1st place...]

I've kept these changes all grouped into arch and subsystem categories
in case people want to see this go in chunks via maintainer trees (as it
is much easier to combine things than try to "un-combine" things.)

For all 160 commits, the branch "module.h-split", available here:

	git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git

has the complete content.  I've put the header changes after all the
patches from the top 5 categories, so that people bisecting non related
issues at a later date don't get hit with a commit zone with build failures.

The original idea for this cleanup came from Ingo[1], and in that same
thread, I'd posted[2] preliminary data on my work-in-progress.  Also in the
thread, Ingo had some positive feedback (many thanks!) and benchmark
numbers[3], indicating that we really probably want to to go with this.

Since that discussion, I've spawned out to cover allyesconfig builds in
powerpc, sparc, arm, mips, x86, x86-64 in order to hunt down and squash
build failures caused by people assuming module.h content is present.

I am sure that some of the less common arch (DEC Alpha, etc.) may still
have some of these assumptions lingering in their arch specific drivers,
but I don't see fixing these outliers as they arise as an issue.

Anyway, unless there is considerable objection to what is here, I'd like
to have Linus simply pull this directly.  That is what Ingo recommended,
and also my personal preference.  But I'm OK with feeding it in chunkwise
via individual maintainer trees if people want that instead.

Thanks,
Paul.

[1] https://lkml.org/lkml/2011/5/23/76
[2] https://lkml.org/lkml/2011/5/27/459
[3] https://lkml.org/lkml/2011/5/28/60


----

 *** Reminder ***
  Summary below excludes all the boring one line patches.  In the repo:

http://git.kernel.org/?p=linux/kernel/git/paulg/linux.git;a=shortlog;h=refs/heads/module.h-split

  they are after patch #1 and before the #2...#11 listed below.

Paul Gortmaker (11):
  module.h: split out the EXPORT_SYMBOL for faster compiles
  sysdev.h: dont include <linux/module.h> for no reason
  net: inet_timewait_sock doesnt need <linux/module.h>
  device_cgroup.h: delete needless include <linux/module.h>
  crypto.h: remove unused crypto_tfm_alg_modname() inline
  linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id
  pm_runtime.h: explicitly requires notifier.h
  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
  net: sch_generic remove redundant use of <linux/module.h>
  include: convert various register fcns to macros to avoid include chaining
  include: replace linux/module.h with "struct module" wherever possible

 include/drm/drmP.h               |    3 +-
 include/linux/bcma/bcma.h        |    7 +--
 include/linux/blkdev.h           |    2 +-
 include/linux/cpuidle.h          |    3 +-
 include/linux/crypto.h           |    6 ---
 include/linux/device.h           |   15 ++++--
 include/linux/device_cgroup.h    |    1 -
 include/linux/export.h           |   89 ++++++++++++++++++++++++++++++++++++++
 include/linux/firmware.h         |    2 +-
 include/linux/ftrace.h           |    2 +-
 include/linux/gameport.h         |   17 +++----
 include/linux/hid.h              |    9 ++--
 include/linux/i2c.h              |   10 ++--
 include/linux/ipmi.h             |    3 +-
 include/linux/ipmi_smi.h         |    1 -
 include/linux/mdio-bitbang.h     |    3 +-
 include/linux/module.h           |   68 +----------------------------
 include/linux/mtd/mtd.h          |    3 +-
 include/linux/pci_hotplug.h      |   10 +---
 include/linux/pm_runtime.h       |    1 +
 include/linux/serio.h            |   20 +++++----
 include/linux/ssb/ssb.h          |    7 +--
 include/linux/stop_machine.h     |    1 +
 include/linux/sunrpc/svc_xprt.h  |    3 +-
 include/linux/sysdev.h           |    1 -
 include/linux/textsearch.h       |    3 +-
 include/linux/uio_driver.h       |   12 +++---
 include/linux/usb.h              |    9 ++--
 include/linux/uwb.h              |    1 +
 include/linux/uwb/umc.h          |    7 +--
 include/linux/vlynq.h            |    3 +-
 include/media/saa7146.h          |    3 +-
 include/media/v4l2-int-device.h  |    3 +-
 include/net/inet_timewait_sock.h |    1 -
 include/net/lib80211.h           |    3 +-
 include/net/sch_generic.h        |    1 -
 include/net/sock.h               |    2 +-
 include/sound/core.h             |    2 +-
 include/trace/define_trace.h     |    2 +-
 include/trace/events/module.h    |    2 +-
 40 files changed, 184 insertions(+), 157 deletions(-)
 create mode 100644 include/linux/export.h

-- 
1.7.6


^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH 01/11] module.h: split out the EXPORT_SYMBOL for faster compiles
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 02/11] sysdev.h: dont include <linux/module.h> for no reason Paul Gortmaker
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

A lot of files pull in module.h when all they are really
looking for is the basic EXPORT_SYMBOL functionality. The
recent data from Ingo[1] shows that this is one of several
instances that has a significant impact on compile times,
and it should be targeted for factoring out (as done here).

Note that several commonly used header files in include/*
directly include <linux/module.h> themselves (some 34 of them!)
The most commonly used ones of these will have to be made
independent of module.h before the full benefit of this change
can be realized.

We also transition THIS_MODULE from module.h to export.h,
since there are lots of files with subsystem structs that
in turn will have a struct module *owner and only be doing:

	.owner = THIS_MODULE;

and absolutely nothing else modular. So, we also want to have
the THIS_MODULE definition present in the lightweight header.

[1] https://lkml.org/lkml/2011/5/23/76

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/linux/export.h |   89 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/module.h |   68 +------------------------------------
 2 files changed, 90 insertions(+), 67 deletions(-)
 create mode 100644 include/linux/export.h

diff --git a/include/linux/export.h b/include/linux/export.h
new file mode 100644
index 0000000..696c0f4
--- /dev/null
+++ b/include/linux/export.h
@@ -0,0 +1,89 @@
+#ifndef _LINUX_EXPORT_H
+#define _LINUX_EXPORT_H
+/*
+ * Export symbols from the kernel to modules.  Forked from module.h
+ * to reduce the amount of pointless cruft we feed to gcc when only
+ * exporting a simple symbol or two.
+ *
+ * If you feel the need to add #include <linux/foo.h> to this file
+ * then you are doing something wrong and should go away silently.
+ */
+
+/* Some toolchains use a `_' prefix for all user symbols. */
+#ifdef CONFIG_SYMBOL_PREFIX
+#define MODULE_SYMBOL_PREFIX CONFIG_SYMBOL_PREFIX
+#else
+#define MODULE_SYMBOL_PREFIX ""
+#endif
+
+struct kernel_symbol
+{
+	unsigned long value;
+	const char *name;
+};
+
+#ifdef MODULE
+extern struct module __this_module;
+#define THIS_MODULE (&__this_module)
+#else
+#define THIS_MODULE ((struct module *)0)
+#endif
+
+#ifdef CONFIG_MODULES
+
+#ifndef __GENKSYMS__
+#ifdef CONFIG_MODVERSIONS
+/* Mark the CRC weak since genksyms apparently decides not to
+ * generate a checksums for some symbols */
+#define __CRC_SYMBOL(sym, sec)					\
+	extern void *__crc_##sym __attribute__((weak));		\
+	static const unsigned long __kcrctab_##sym		\
+	__used							\
+	__attribute__((section("___kcrctab" sec "+" #sym), unused))	\
+	= (unsigned long) &__crc_##sym;
+#else
+#define __CRC_SYMBOL(sym, sec)
+#endif
+
+/* For every exported symbol, place a struct in the __ksymtab section */
+#define __EXPORT_SYMBOL(sym, sec)				\
+	extern typeof(sym) sym;					\
+	__CRC_SYMBOL(sym, sec)					\
+	static const char __kstrtab_##sym[]			\
+	__attribute__((section("__ksymtab_strings"), aligned(1))) \
+	= MODULE_SYMBOL_PREFIX #sym;				\
+	static const struct kernel_symbol __ksymtab_##sym	\
+	__used							\
+	__attribute__((section("___ksymtab" sec "+" #sym), unused))	\
+	= { (unsigned long)&sym, __kstrtab_##sym }
+
+#define EXPORT_SYMBOL(sym)					\
+	__EXPORT_SYMBOL(sym, "")
+
+#define EXPORT_SYMBOL_GPL(sym)					\
+	__EXPORT_SYMBOL(sym, "_gpl")
+
+#define EXPORT_SYMBOL_GPL_FUTURE(sym)				\
+	__EXPORT_SYMBOL(sym, "_gpl_future")
+
+#ifdef CONFIG_UNUSED_SYMBOLS
+#define EXPORT_UNUSED_SYMBOL(sym) __EXPORT_SYMBOL(sym, "_unused")
+#define EXPORT_UNUSED_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_unused_gpl")
+#else
+#define EXPORT_UNUSED_SYMBOL(sym)
+#define EXPORT_UNUSED_SYMBOL_GPL(sym)
+#endif
+
+#endif	/* __GENKSYMS__ */
+
+#else /* !CONFIG_MODULES... */
+
+#define EXPORT_SYMBOL(sym)
+#define EXPORT_SYMBOL_GPL(sym)
+#define EXPORT_SYMBOL_GPL_FUTURE(sym)
+#define EXPORT_UNUSED_SYMBOL(sym)
+#define EXPORT_UNUSED_SYMBOL_GPL(sym)
+
+#endif /* CONFIG_MODULES */
+
+#endif /* _LINUX_EXPORT_H */
diff --git a/include/linux/module.h b/include/linux/module.h
index 1c30087..bbd77fa 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -16,6 +16,7 @@
 #include <linux/kobject.h>
 #include <linux/moduleparam.h>
 #include <linux/tracepoint.h>
+#include <linux/export.h>
 
 #include <linux/percpu.h>
 #include <asm/module.h>
@@ -25,21 +26,8 @@
 /* Not Yet Implemented */
 #define MODULE_SUPPORTED_DEVICE(name)
 
-/* Some toolchains use a `_' prefix for all user symbols. */
-#ifdef CONFIG_SYMBOL_PREFIX
-#define MODULE_SYMBOL_PREFIX CONFIG_SYMBOL_PREFIX
-#else
-#define MODULE_SYMBOL_PREFIX ""
-#endif
-
 #define MODULE_NAME_LEN MAX_PARAM_PREFIX_LEN
 
-struct kernel_symbol
-{
-	unsigned long value;
-	const char *name;
-};
-
 struct modversion_info
 {
 	unsigned long crc;
@@ -98,11 +86,8 @@ void trim_init_extable(struct module *m);
 extern const struct gtype##_id __mod_##gtype##_table		\
   __attribute__ ((unused, alias(__stringify(name))))
 
-extern struct module __this_module;
-#define THIS_MODULE (&__this_module)
 #else  /* !MODULE */
 #define MODULE_GENERIC_TABLE(gtype,name)
-#define THIS_MODULE ((struct module *)0)
 #endif
 
 /* Generic info of form tag = "info" */
@@ -218,52 +203,6 @@ struct module_use {
 	struct module *source, *target;
 };
 
-#ifndef __GENKSYMS__
-#ifdef CONFIG_MODVERSIONS
-/* Mark the CRC weak since genksyms apparently decides not to
- * generate a checksums for some symbols */
-#define __CRC_SYMBOL(sym, sec)					\
-	extern void *__crc_##sym __attribute__((weak));		\
-	static const unsigned long __kcrctab_##sym		\
-	__used							\
-	__attribute__((section("___kcrctab" sec "+" #sym), unused))	\
-	= (unsigned long) &__crc_##sym;
-#else
-#define __CRC_SYMBOL(sym, sec)
-#endif
-
-/* For every exported symbol, place a struct in the __ksymtab section */
-#define __EXPORT_SYMBOL(sym, sec)				\
-	extern typeof(sym) sym;					\
-	__CRC_SYMBOL(sym, sec)					\
-	static const char __kstrtab_##sym[]			\
-	__attribute__((section("__ksymtab_strings"), aligned(1))) \
-	= MODULE_SYMBOL_PREFIX #sym;                    	\
-	static const struct kernel_symbol __ksymtab_##sym	\
-	__used							\
-	__attribute__((section("___ksymtab" sec "+" #sym), unused))	\
-	= { (unsigned long)&sym, __kstrtab_##sym }
-
-#define EXPORT_SYMBOL(sym)					\
-	__EXPORT_SYMBOL(sym, "")
-
-#define EXPORT_SYMBOL_GPL(sym)					\
-	__EXPORT_SYMBOL(sym, "_gpl")
-
-#define EXPORT_SYMBOL_GPL_FUTURE(sym)				\
-	__EXPORT_SYMBOL(sym, "_gpl_future")
-
-
-#ifdef CONFIG_UNUSED_SYMBOLS
-#define EXPORT_UNUSED_SYMBOL(sym) __EXPORT_SYMBOL(sym, "_unused")
-#define EXPORT_UNUSED_SYMBOL_GPL(sym) __EXPORT_SYMBOL(sym, "_unused_gpl")
-#else
-#define EXPORT_UNUSED_SYMBOL(sym)
-#define EXPORT_UNUSED_SYMBOL_GPL(sym)
-#endif
-
-#endif
-
 enum module_state
 {
 	MODULE_STATE_LIVE,
@@ -584,11 +523,6 @@ extern void module_update_tracepoints(void);
 extern int module_get_iter_tracepoints(struct tracepoint_iter *iter);
 
 #else /* !CONFIG_MODULES... */
-#define EXPORT_SYMBOL(sym)
-#define EXPORT_SYMBOL_GPL(sym)
-#define EXPORT_SYMBOL_GPL_FUTURE(sym)
-#define EXPORT_UNUSED_SYMBOL(sym)
-#define EXPORT_UNUSED_SYMBOL_GPL(sym)
 
 /* Given an address, look for it in the exception tables. */
 static inline const struct exception_table_entry *
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 02/11] sysdev.h: dont include <linux/module.h> for no reason
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 01/11] module.h: split out the EXPORT_SYMBOL for faster compiles Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 03/11] net: inet_timewait_sock doesnt need <linux/module.h> Paul Gortmaker
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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>
---
 include/linux/sysdev.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/linux/sysdev.h b/include/linux/sysdev.h
index d35e783..20f63d3 100644
--- a/include/linux/sysdev.h
+++ b/include/linux/sysdev.h
@@ -22,7 +22,6 @@
 #define _SYSDEV_H_
 
 #include <linux/kobject.h>
-#include <linux/module.h>
 #include <linux/pm.h>
 
 
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 03/11] net: inet_timewait_sock doesnt need <linux/module.h>
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 01/11] module.h: split out the EXPORT_SYMBOL for faster compiles Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 02/11] sysdev.h: dont include <linux/module.h> for no reason Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 04/11] device_cgroup.h: delete needless include <linux/module.h> Paul Gortmaker
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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>
---
 include/net/inet_timewait_sock.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index f1a7709..e3dfd97 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -18,7 +18,6 @@
 
 #include <linux/kmemcheck.h>
 #include <linux/list.h>
-#include <linux/module.h>
 #include <linux/timer.h>
 #include <linux/types.h>
 #include <linux/workqueue.h>
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 04/11] device_cgroup.h: delete needless include <linux/module.h>
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (2 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 03/11] net: inet_timewait_sock doesnt need <linux/module.h> Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 05/11] crypto.h: remove unused crypto_tfm_alg_modname() inline Paul Gortmaker
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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>
---
 include/linux/device_cgroup.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/linux/device_cgroup.h b/include/linux/device_cgroup.h
index 7aad1f4..8b64221 100644
--- a/include/linux/device_cgroup.h
+++ b/include/linux/device_cgroup.h
@@ -1,4 +1,3 @@
-#include <linux/module.h>
 #include <linux/fs.h>
 
 #ifdef CONFIG_CGROUP_DEVICE
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 05/11] crypto.h: remove unused crypto_tfm_alg_modname() inline
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (3 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 04/11] device_cgroup.h: delete needless include <linux/module.h> Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 06/11] linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id Paul Gortmaker
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

The <linux/crypto.h> (which is in turn in common headers
like tcp.h) wants to use module_name() in an inline fcn.
But having all of <linux/module.h> along for the ride is
overkill and slows down compiles by a measureable amount,
since it in turn includes lots of headers.

Since the inline is never used anywhere in the kernel[1],
we can just remove it, and then also remove the module.h
include as well.

In all the many crypto modules, there were some relying on
crypto.h including module.h -- for them we now explicitly
call out module.h for inclusion.

[1] git grep shows some staging drivers also define the same
static inline, but they also never ever use it.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/linux/crypto.h |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/include/linux/crypto.h b/include/linux/crypto.h
index e5e468e..1e51f9a 100644
--- a/include/linux/crypto.h
+++ b/include/linux/crypto.h
@@ -18,7 +18,6 @@
 #define _LINUX_CRYPTO_H
 
 #include <linux/atomic.h>
-#include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/slab.h>
@@ -505,11 +504,6 @@ static inline int crypto_tfm_alg_priority(struct crypto_tfm *tfm)
 	return tfm->__crt_alg->cra_priority;
 }
 
-static inline const char *crypto_tfm_alg_modname(struct crypto_tfm *tfm)
-{
-	return module_name(tfm->__crt_alg->cra_module);
-}
-
 static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
 {
 	return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 06/11] linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (4 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 05/11] crypto.h: remove unused crypto_tfm_alg_modname() inline Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 07/11] pm_runtime.h: explicitly requires notifier.h Paul Gortmaker
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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>
---
 include/linux/stop_machine.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
index 2d04ea9..c170edc 100644
--- a/include/linux/stop_machine.h
+++ b/include/linux/stop_machine.h
@@ -3,6 +3,7 @@
 
 #include <linux/cpu.h>
 #include <linux/cpumask.h>
+#include <linux/smp.h>
 #include <linux/list.h>
 #include <asm/system.h>
 
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 07/11] pm_runtime.h: explicitly requires notifier.h
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (5 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 06/11] linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 08/11] uwb.h: fix implicit use of asm/page.h for PAGE_SIZE Paul Gortmaker
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

This file was getting notifier.h via device.h --> module.h but
the module.h inclusion is going away, so add notifier.h directly.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/linux/pm_runtime.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
index daac05d..19d6a72 100644
--- a/include/linux/pm_runtime.h
+++ b/include/linux/pm_runtime.h
@@ -10,6 +10,7 @@
 #define _LINUX_PM_RUNTIME_H
 
 #include <linux/device.h>
+#include <linux/notifier.h>
 #include <linux/pm.h>
 
 #include <linux/jiffies.h>
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 08/11] uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (6 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 07/11] pm_runtime.h: explicitly requires notifier.h Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 09/11] net: sch_generic remove redundant use of <linux/module.h> Paul Gortmaker
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

Once we clean up the implicit presence of module.h (and all its
sub-includes), we'll see an implicit dependency on page.h for
the PAGE_SIZE define.  So fix it in advance.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/linux/uwb.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/uwb.h b/include/linux/uwb.h
index b0c564e..7dbbee9 100644
--- a/include/linux/uwb.h
+++ b/include/linux/uwb.h
@@ -33,6 +33,7 @@
 #include <linux/wait.h>
 #include <linux/workqueue.h>
 #include <linux/uwb/spec.h>
+#include <asm/page.h>
 
 struct uwb_dev;
 struct uwb_beca_e;
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 09/11] net: sch_generic remove redundant use of <linux/module.h>
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (7 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 08/11] uwb.h: fix implicit use of asm/page.h for PAGE_SIZE Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 10/11] include: convert various register fcns to macros to avoid include chaining Paul Gortmaker
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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>
---
 include/net/sch_generic.h |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 4fc88f3..7f7ebee 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -4,7 +4,6 @@
 #include <linux/netdevice.h>
 #include <linux/types.h>
 #include <linux/rcupdate.h>
-#include <linux/module.h>
 #include <linux/pkt_sched.h>
 #include <linux/pkt_cls.h>
 #include <net/gen_stats.h>
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 10/11] include: convert various register fcns to macros to avoid include chaining
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (8 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 09/11] net: sch_generic remove redundant use of <linux/module.h> Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  5:16 ` [PATCH 11/11] include: replace linux/module.h with "struct module" wherever possible Paul Gortmaker
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

The original implementations reference THIS_MODULE in an inline.
We could include <linux/export.h>, but it is better to avoid chaining.

Fortunately someone else already thought of this, and made a similar
inline into a #define in <linux/device.h> for device_schedule_callback(),
[see commit 523ded71de0] so follow that precedent here.

Also bubble up any __must_check that were used on the prev. wrapper inline
functions up one to the real __register functions, to preserve any prev.
sanity checks that were used in those instances.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/linux/bcma/bcma.h   |    7 +++----
 include/linux/device.h      |   12 ++++++++----
 include/linux/gameport.h    |   17 ++++++++---------
 include/linux/hid.h         |    9 +++++----
 include/linux/i2c.h         |    7 +++----
 include/linux/pci_hotplug.h |   10 +++-------
 include/linux/serio.h       |   20 +++++++++++---------
 include/linux/ssb/ssb.h     |    7 +++----
 include/linux/uio_driver.h  |   10 +++++-----
 include/linux/usb.h         |    9 +++++----
 include/linux/uwb/umc.h     |    7 +++----
 11 files changed, 57 insertions(+), 58 deletions(-)

diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h
index 8c96654..1fb7166 100644
--- a/include/linux/bcma/bcma.h
+++ b/include/linux/bcma/bcma.h
@@ -165,10 +165,9 @@ struct bcma_driver {
 };
 extern
 int __bcma_driver_register(struct bcma_driver *drv, struct module *owner);
-static inline int bcma_driver_register(struct bcma_driver *drv)
-{
-	return __bcma_driver_register(drv, THIS_MODULE);
-}
+#define bcma_driver_register(drv) \
+	__bcma_driver_register(drv, THIS_MODULE)
+
 extern void bcma_driver_unregister(struct bcma_driver *drv);
 
 struct bcma_bus {
diff --git a/include/linux/device.h b/include/linux/device.h
index c20dfbf..2ee926c 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -710,10 +710,14 @@ extern int dev_set_drvdata(struct device *dev, void *data);
  */
 extern struct device *__root_device_register(const char *name,
 					     struct module *owner);
-static inline struct device *root_device_register(const char *name)
-{
-	return __root_device_register(name, THIS_MODULE);
-}
+
+/*
+ * This is a macro to avoid include problems with THIS_MODULE,
+ * just as per what is done for device_schedule_callback() above.
+ */
+#define root_device_register(name) \
+	__root_device_register(name, THIS_MODULE)
+
 extern void root_device_unregister(struct device *root);
 
 static inline void *dev_get_platdata(const struct device *dev)
diff --git a/include/linux/gameport.h b/include/linux/gameport.h
index b65a6f4..e74073e 100644
--- a/include/linux/gameport.h
+++ b/include/linux/gameport.h
@@ -71,10 +71,9 @@ void gameport_close(struct gameport *gameport);
 #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
 
 void __gameport_register_port(struct gameport *gameport, struct module *owner);
-static inline void gameport_register_port(struct gameport *gameport)
-{
-	__gameport_register_port(gameport, THIS_MODULE);
-}
+/* use a define to avoid include chaining to get THIS_MODULE */
+#define gameport_register_port(gameport) \
+	__gameport_register_port(gameport, THIS_MODULE)
 
 void gameport_unregister_port(struct gameport *gameport);
 
@@ -145,12 +144,12 @@ static inline void gameport_unpin_driver(struct gameport *gameport)
 	mutex_unlock(&gameport->drv_mutex);
 }
 
-int __gameport_register_driver(struct gameport_driver *drv,
+int __must_check __gameport_register_driver(struct gameport_driver *drv,
 				struct module *owner, const char *mod_name);
-static inline int __must_check gameport_register_driver(struct gameport_driver *drv)
-{
-	return __gameport_register_driver(drv, THIS_MODULE, KBUILD_MODNAME);
-}
+
+/* use a define to avoid include chaining to get THIS_MODULE & friends */
+#define gameport_register_driver(drv) \
+	__gameport_register_driver(drv, THIS_MODULE, KBUILD_MODNAME)
 
 void gameport_unregister_driver(struct gameport_driver *drv);
 
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 9cf8e7a..830632d 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -694,10 +694,11 @@ extern void hid_destroy_device(struct hid_device *);
 
 extern int __must_check __hid_register_driver(struct hid_driver *,
 		struct module *, const char *mod_name);
-static inline int __must_check hid_register_driver(struct hid_driver *driver)
-{
-	return __hid_register_driver(driver, THIS_MODULE, KBUILD_MODNAME);
-}
+
+/* use a define to avoid include chaining to get THIS_MODULE & friends */
+#define hid_register_driver(driver) \
+	__hid_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
+
 extern void hid_unregister_driver(struct hid_driver *);
 
 extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index a6c652e..ce472e3 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -434,10 +434,9 @@ extern int i2c_add_numbered_adapter(struct i2c_adapter *);
 extern int i2c_register_driver(struct module *, struct i2c_driver *);
 extern void i2c_del_driver(struct i2c_driver *);
 
-static inline int i2c_add_driver(struct i2c_driver *driver)
-{
-	return i2c_register_driver(THIS_MODULE, driver);
-}
+/* use a define to avoid include chaining to get THIS_MODULE */
+#define i2c_add_driver(driver) \
+	i2c_register_driver(THIS_MODULE, driver)
 
 extern struct i2c_client *i2c_use_client(struct i2c_client *client);
 extern void i2c_release_client(struct i2c_client *client);
diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
index 5d09cba..45fc162 100644
--- a/include/linux/pci_hotplug.h
+++ b/include/linux/pci_hotplug.h
@@ -132,13 +132,9 @@ extern int pci_hp_deregister(struct hotplug_slot *slot);
 extern int __must_check pci_hp_change_slot_info	(struct hotplug_slot *slot,
 						 struct hotplug_slot_info *info);
 
-static inline int pci_hp_register(struct hotplug_slot *slot,
-				  struct pci_bus *pbus,
-				  int devnr, const char *name)
-{
-	return __pci_hp_register(slot, pbus, devnr, name,
-				 THIS_MODULE, KBUILD_MODNAME);
-}
+/* use a define to avoid include chaining to get THIS_MODULE & friends */
+#define pci_hp_register(slot, pbus, devnr, name) \
+	__pci_hp_register(slot, pbus, devnr, name, THIS_MODULE, KBUILD_MODNAME)
 
 /* PCI Setting Record (Type 0) */
 struct hpp_type0 {
diff --git a/include/linux/serio.h b/include/linux/serio.h
index e26f478..c588f38 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -79,19 +79,21 @@ void serio_reconnect(struct serio *serio);
 irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
 
 void __serio_register_port(struct serio *serio, struct module *owner);
-static inline void serio_register_port(struct serio *serio)
-{
-	__serio_register_port(serio, THIS_MODULE);
-}
+
+/* use a define to avoid include chaining to get THIS_MODULE */
+#define serio_register_port(serio) \
+	__serio_register_port(serio, THIS_MODULE)
 
 void serio_unregister_port(struct serio *serio);
 void serio_unregister_child_port(struct serio *serio);
 
-int __serio_register_driver(struct serio_driver *drv, struct module *owner, const char *mod_name);
-static inline int __must_check serio_register_driver(struct serio_driver *drv)
-{
-	return __serio_register_driver(drv, THIS_MODULE, KBUILD_MODNAME);
-}
+int __must_check __serio_register_driver(struct serio_driver *drv,
+				struct module *owner, const char *mod_name);
+
+/* use a define to avoid include chaining to get THIS_MODULE & friends */
+#define serio_register_driver(drv) \
+	__serio_register_driver(drv, THIS_MODULE, KBUILD_MODNAME)
+
 void serio_unregister_driver(struct serio_driver *drv);
 
 static inline int serio_write(struct serio *serio, unsigned char data)
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 8623217..4c5d09a 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -231,10 +231,9 @@ struct ssb_driver {
 #define drv_to_ssb_drv(_drv) container_of(_drv, struct ssb_driver, drv)
 
 extern int __ssb_driver_register(struct ssb_driver *drv, struct module *owner);
-static inline int ssb_driver_register(struct ssb_driver *drv)
-{
-	return __ssb_driver_register(drv, THIS_MODULE);
-}
+#define ssb_driver_register(drv) \
+	__ssb_driver_register(drv, THIS_MODULE)
+
 extern void ssb_driver_unregister(struct ssb_driver *drv);
 
 
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 665517c..04cdc47 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -98,11 +98,11 @@ extern int __must_check
 	__uio_register_device(struct module *owner,
 			      struct device *parent,
 			      struct uio_info *info);
-static inline int __must_check
-	uio_register_device(struct device *parent, struct uio_info *info)
-{
-	return __uio_register_device(THIS_MODULE, parent, info);
-}
+
+/* use a define to avoid include chaining to get THIS_MODULE */
+#define uio_register_device(parent, info) \
+	__uio_register_device(THIS_MODULE, parent, info)
+
 extern void uio_unregister_device(struct uio_info *info);
 extern void uio_event_notify(struct uio_info *info);
 
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 73c7df4..c454f5a 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -928,10 +928,11 @@ struct usb_class_driver {
  */
 extern int usb_register_driver(struct usb_driver *, struct module *,
 			       const char *);
-static inline int usb_register(struct usb_driver *driver)
-{
-	return usb_register_driver(driver, THIS_MODULE, KBUILD_MODNAME);
-}
+
+/* use a define to avoid include chaining to get THIS_MODULE & friends */
+#define usb_register(driver) \
+	usb_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)
+
 extern void usb_deregister(struct usb_driver *);
 
 extern int usb_register_device_driver(struct usb_device_driver *,
diff --git a/include/linux/uwb/umc.h b/include/linux/uwb/umc.h
index 7b48420..891d1d5 100644
--- a/include/linux/uwb/umc.h
+++ b/include/linux/uwb/umc.h
@@ -111,10 +111,9 @@ int __must_check __umc_driver_register(struct umc_driver *umc_drv,
  * umc_driver_register - register a UMC capabiltity driver.
  * @umc_drv:  pointer to the driver.
  */
-static inline int __must_check umc_driver_register(struct umc_driver *umc_drv)
-{
-	return __umc_driver_register(umc_drv, THIS_MODULE, KBUILD_MODNAME);
-}
+#define umc_driver_register(umc_drv) \
+	__umc_driver_register(umc_drv, THIS_MODULE, KBUILD_MODNAME)
+
 void umc_driver_unregister(struct umc_driver *umc_drv);
 
 /*
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 11/11] include: replace linux/module.h with "struct module" wherever possible
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (9 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 10/11] include: convert various register fcns to macros to avoid include chaining Paul Gortmaker
@ 2011-07-28  5:16 ` Paul Gortmaker
  2011-07-28  7:15 ` [RFC/PULL 00/11] introduce export.h; reduce module.h usage Ingo Molnar
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28  5:16 UTC (permalink / raw)
  To: mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

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.

The worst culprit was probably device.h since it is used everywhere.
This file also had an implicit dependency/usage of mutex.h which was
masked by module.h, and is also fixed here at the same time.

There are over a dozen other headers that simply declare the
struct instead of pulling in the whole file, so follow their lead
and simply make it a few more.

Most of the implicit dependencies on module.h being present by
these headers pulling it in have been now weeded out, so we can
finally make this change with hopefully minimal breakage.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 include/drm/drmP.h              |    3 ++-
 include/linux/blkdev.h          |    2 +-
 include/linux/cpuidle.h         |    3 ++-
 include/linux/device.h          |    3 ++-
 include/linux/firmware.h        |    2 +-
 include/linux/ftrace.h          |    2 +-
 include/linux/i2c.h             |    3 ++-
 include/linux/ipmi.h            |    3 ++-
 include/linux/ipmi_smi.h        |    1 -
 include/linux/mdio-bitbang.h    |    3 ++-
 include/linux/mtd/mtd.h         |    3 ++-
 include/linux/sunrpc/svc_xprt.h |    3 ++-
 include/linux/textsearch.h      |    3 ++-
 include/linux/uio_driver.h      |    2 +-
 include/linux/vlynq.h           |    3 ++-
 include/media/saa7146.h         |    3 ++-
 include/media/v4l2-int-device.h |    3 ++-
 include/net/lib80211.h          |    3 ++-
 include/net/sock.h              |    2 +-
 include/sound/core.h            |    2 +-
 include/trace/define_trace.h    |    2 +-
 include/trace/events/module.h   |    2 +-
 22 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 9b7c2bb..7e447f8 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -42,7 +42,6 @@
  * can build the DRM (part of PI DRI). 4/21/2000 S + B */
 #include <asm/current.h>
 #endif				/* __alpha__ */
-#include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/miscdevice.h>
 #include <linux/fs.h>
@@ -80,6 +79,8 @@
 #define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
 #define __OS_HAS_MTRR (defined(CONFIG_MTRR))
 
+struct module;
+
 struct drm_file;
 struct drm_device;
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 0e67c45..0e484b9 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -14,7 +14,6 @@
 #include <linux/wait.h>
 #include <linux/mempool.h>
 #include <linux/bio.h>
-#include <linux/module.h>
 #include <linux/stringify.h>
 #include <linux/gfp.h>
 #include <linux/bsg.h>
@@ -22,6 +21,7 @@
 
 #include <asm/scatterlist.h>
 
+struct module;
 struct scsi_ioctl_command;
 
 struct request_queue;
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 36719ea..4263b02 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -13,7 +13,6 @@
 
 #include <linux/percpu.h>
 #include <linux/list.h>
-#include <linux/module.h>
 #include <linux/kobject.h>
 #include <linux/completion.h>
 
@@ -21,6 +20,8 @@
 #define CPUIDLE_NAME_LEN	16
 #define CPUIDLE_DESC_LEN	32
 
+struct module;
+
 struct cpuidle_device;
 
 
diff --git a/include/linux/device.h b/include/linux/device.h
index 2ee926c..00b3588 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -20,7 +20,7 @@
 #include <linux/lockdep.h>
 #include <linux/compiler.h>
 #include <linux/types.h>
-#include <linux/module.h>
+#include <linux/mutex.h>
 #include <linux/pm.h>
 #include <linux/atomic.h>
 #include <asm/device.h>
@@ -29,6 +29,7 @@ struct device;
 struct device_private;
 struct device_driver;
 struct driver_private;
+struct module;
 struct class;
 struct subsys_private;
 struct bus_type;
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index 21b3e75..1e7c011 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -1,7 +1,6 @@
 #ifndef _LINUX_FIRMWARE_H
 #define _LINUX_FIRMWARE_H
 
-#include <linux/module.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/gfp.h>
@@ -15,6 +14,7 @@ struct firmware {
 	struct page **pages;
 };
 
+struct module;
 struct device;
 
 struct builtin_fw {
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index f0c0e8a..26eafce 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -10,7 +10,6 @@
 #include <linux/kallsyms.h>
 #include <linux/linkage.h>
 #include <linux/bitops.h>
-#include <linux/module.h>
 #include <linux/ktime.h>
 #include <linux/sched.h>
 #include <linux/types.h>
@@ -19,6 +18,7 @@
 
 #include <asm/ftrace.h>
 
+struct module;
 struct ftrace_hash;
 
 #ifdef CONFIG_FUNCTION_TRACER
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index ce472e3..3fad485 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -28,7 +28,6 @@
 
 #include <linux/types.h>
 #ifdef __KERNEL__
-#include <linux/module.h>
 #include <linux/mod_devicetable.h>
 #include <linux/device.h>	/* for struct device */
 #include <linux/sched.h>	/* for completion */
@@ -48,6 +47,8 @@ struct i2c_driver;
 union i2c_smbus_data;
 struct i2c_board_info;
 
+struct module;
+
 #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
 /*
  * The master routines are the ones normally used to transmit data to devices
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h
index ca85cf8..bbd156b 100644
--- a/include/linux/ipmi.h
+++ b/include/linux/ipmi.h
@@ -220,10 +220,11 @@ struct kernel_ipmi_msg {
  * The in-kernel interface.
  */
 #include <linux/list.h>
-#include <linux/module.h>
 #include <linux/device.h>
 #include <linux/proc_fs.h>
 
+struct module;
+
 /* Opaque type for a IPMI message user.  One of these is needed to
    send and receive messages. */
 typedef struct ipmi_user *ipmi_user_t;
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h
index 204f9cd..3ef0d8b 100644
--- a/include/linux/ipmi_smi.h
+++ b/include/linux/ipmi_smi.h
@@ -36,7 +36,6 @@
 
 #include <linux/ipmi_msgdefs.h>
 #include <linux/proc_fs.h>
-#include <linux/module.h>
 #include <linux/device.h>
 #include <linux/platform_device.h>
 #include <linux/ipmi.h>
diff --git a/include/linux/mdio-bitbang.h b/include/linux/mdio-bitbang.h
index 8ea9a42..0fe00cd 100644
--- a/include/linux/mdio-bitbang.h
+++ b/include/linux/mdio-bitbang.h
@@ -2,7 +2,8 @@
 #define __LINUX_MDIO_BITBANG_H
 
 #include <linux/phy.h>
-#include <linux/module.h>
+
+struct module;
 
 struct mdiobb_ctrl;
 
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 2541fb8..af31170 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -21,7 +21,6 @@
 #define __MTD_MTD_H__
 
 #include <linux/types.h>
-#include <linux/module.h>
 #include <linux/uio.h>
 #include <linux/notifier.h>
 #include <linux/device.h>
@@ -41,6 +40,8 @@
 
 #define MTD_FAIL_ADDR_UNKNOWN -1LL
 
+struct module;
+
 /* If the erase fails, fail_addr might indicate exactly which block failed.  If
    fail_addr = MTD_FAIL_ADDR_UNKNOWN, the failure was not at the device level or was not
    specific to any particular block. */
diff --git a/include/linux/sunrpc/svc_xprt.h b/include/linux/sunrpc/svc_xprt.h
index 7ad9751..8620f79 100644
--- a/include/linux/sunrpc/svc_xprt.h
+++ b/include/linux/sunrpc/svc_xprt.h
@@ -8,7 +8,8 @@
 #define SUNRPC_SVC_XPRT_H
 
 #include <linux/sunrpc/svc.h>
-#include <linux/module.h>
+
+struct module;
 
 struct svc_xprt_ops {
 	struct svc_xprt	*(*xpo_create)(struct svc_serv *,
diff --git a/include/linux/textsearch.h b/include/linux/textsearch.h
index d9a85d6..cfaee86 100644
--- a/include/linux/textsearch.h
+++ b/include/linux/textsearch.h
@@ -4,10 +4,11 @@
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/kernel.h>
-#include <linux/module.h>
 #include <linux/err.h>
 #include <linux/slab.h>
 
+struct module;
+
 struct ts_config;
 
 #define TS_AUTOLOAD	1 /* Automatically load textsearch modules when needed */
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 04cdc47..e01c233 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -14,10 +14,10 @@
 #ifndef _UIO_DRIVER_H_
 #define _UIO_DRIVER_H_
 
-#include <linux/module.h>
 #include <linux/fs.h>
 #include <linux/interrupt.h>
 
+struct module;
 struct uio_map;
 
 /**
diff --git a/include/linux/vlynq.h b/include/linux/vlynq.h
index 8f6a958..017d4a5 100644
--- a/include/linux/vlynq.h
+++ b/include/linux/vlynq.h
@@ -20,9 +20,10 @@
 #define __VLYNQ_H__
 
 #include <linux/device.h>
-#include <linux/module.h>
 #include <linux/types.h>
 
+struct module;
+
 #define VLYNQ_NUM_IRQS 32
 
 struct vlynq_mapping {
diff --git a/include/media/saa7146.h b/include/media/saa7146.h
index 7982714..6e84cde 100644
--- a/include/media/saa7146.h
+++ b/include/media/saa7146.h
@@ -1,7 +1,6 @@
 #ifndef __SAA7146__
 #define __SAA7146__
 
-#include <linux/module.h>	/* for module-version */
 #include <linux/delay.h>	/* for delay-stuff */
 #include <linux/slab.h>		/* for kmalloc/kfree */
 #include <linux/pci.h>		/* for pci-config-stuff, vendor ids etc. */
@@ -47,6 +46,8 @@ extern unsigned int saa7146_debug;
 #define SAA7146_ISR_CLEAR(x,y) \
 	saa7146_write(x, ISR, (y));
 
+struct module;
+
 struct saa7146_dev;
 struct saa7146_extension;
 struct saa7146_vv;
diff --git a/include/media/v4l2-int-device.h b/include/media/v4l2-int-device.h
index fbf5855..e6aa231 100644
--- a/include/media/v4l2-int-device.h
+++ b/include/media/v4l2-int-device.h
@@ -25,7 +25,6 @@
 #ifndef V4L2_INT_DEVICE_H
 #define V4L2_INT_DEVICE_H
 
-#include <linux/module.h>
 #include <media/v4l2-common.h>
 
 #define V4L2NAMESIZE 32
@@ -41,6 +40,8 @@ enum v4l2_int_type {
 	v4l2_int_type_slave
 };
 
+struct module;
+
 struct v4l2_int_device;
 
 struct v4l2_int_master {
diff --git a/include/net/lib80211.h b/include/net/lib80211.h
index b95bbb0..4e57543 100644
--- a/include/net/lib80211.h
+++ b/include/net/lib80211.h
@@ -25,7 +25,6 @@
 
 #include <linux/types.h>
 #include <linux/list.h>
-#include <linux/module.h>
 #include <linux/atomic.h>
 #include <linux/if.h>
 #include <linux/skbuff.h>
@@ -42,6 +41,8 @@ enum {
 	IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 << 0),
 };
 
+struct module;
+
 struct lib80211_crypto_ops {
 	const char *name;
 	struct list_head list;
diff --git a/include/net/sock.h b/include/net/sock.h
index 8e4062f..4aa706c 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -46,7 +46,6 @@
 #include <linux/list_nulls.h>
 #include <linux/timer.h>
 #include <linux/cache.h>
-#include <linux/module.h>
 #include <linux/lockdep.h>
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>	/* struct sk_buff */
@@ -720,6 +719,7 @@ struct request_sock_ops;
 struct timewait_sock_ops;
 struct inet_hashinfo;
 struct raw_hashinfo;
+struct module;
 
 /* Networking protocol blocks we attach to sockets.
  * socket layer -> transport layer interface
diff --git a/include/sound/core.h b/include/sound/core.h
index 1fa2407..a91d78e 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -22,7 +22,6 @@
  *
  */
 
-#include <linux/module.h>
 #include <linux/sched.h>		/* wake_up() */
 #include <linux/mutex.h>		/* struct mutex */
 #include <linux/rwsem.h>		/* struct rw_semaphore */
@@ -43,6 +42,7 @@
 #ifdef CONFIG_PCI
 struct pci_dev;
 #endif
+struct module;
 
 /* device allocation stuff */
 
diff --git a/include/trace/define_trace.h b/include/trace/define_trace.h
index da39b22..4fd1de1 100644
--- a/include/trace/define_trace.h
+++ b/include/trace/define_trace.h
@@ -23,7 +23,7 @@
 #include <linux/stringify.h>
 /*
  * module.h includes tracepoints, and because ftrace.h
- * pulls in module.h:
+ * used to pull in module.h via this path:
  *  trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h ->
  *  linux/ftrace.h -> linux/module.h
  * we must include module.h here before we play with any of
diff --git a/include/trace/events/module.h b/include/trace/events/module.h
index 21a546d..1619327 100644
--- a/include/trace/events/module.h
+++ b/include/trace/events/module.h
@@ -1,6 +1,6 @@
 /*
  * Because linux/module.h has tracepoints in the header, and ftrace.h
- * eventually includes this file, define_trace.h includes linux/module.h
+ * used to include this file, define_trace.h includes linux/module.h
  * But we do not want the module.h to override the TRACE_SYSTEM macro
  * variable that define_trace.h is processing, so we only set it
  * when module events are being processed, which would happen when
-- 
1.7.6


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (10 preceding siblings ...)
  2011-07-28  5:16 ` [PATCH 11/11] include: replace linux/module.h with "struct module" wherever possible Paul Gortmaker
@ 2011-07-28  7:15 ` Ingo Molnar
  2011-07-28 15:42   ` Paul Gortmaker
  2011-07-28  9:40 ` Anca Emanuel
                   ` (2 subsequent siblings)
  14 siblings, 1 reply; 31+ messages in thread
From: Ingo Molnar @ 2011-07-28  7:15 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: torvalds, linux-kernel, akpm, linux-arch


* Paul Gortmaker <paul.gortmaker@windriver.com> wrote:

> I don't think there really is any rocket science or contentious 
> stuff here. It is a sensible cleanup that adds organization and 
> speeds up compiles. The RFC I'm hoping for is more about how/when 
> we want to get this in tree.

I'd suggest to stick it into linux-next ASAP, leave there for a few 
days and after fixing any potential fallout send it Linuswards.

Acked-by: Ingo Molnar <mingo@elte.hu>

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (11 preceding siblings ...)
  2011-07-28  7:15 ` [RFC/PULL 00/11] introduce export.h; reduce module.h usage Ingo Molnar
@ 2011-07-28  9:40 ` Anca Emanuel
  2011-07-28 13:19 ` Linus Torvalds
  2011-10-13  2:07 ` Rusty Russell
  14 siblings, 0 replies; 31+ messages in thread
From: Anca Emanuel @ 2011-07-28  9:40 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: mingo, torvalds, linux-kernel, akpm, linux-arch

Excelent work. We really need this.

Thank you.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (12 preceding siblings ...)
  2011-07-28  9:40 ` Anca Emanuel
@ 2011-07-28 13:19 ` Linus Torvalds
  2011-07-28 15:27   ` Paul Gortmaker
  2011-08-02 18:30   ` Paul Gortmaker
  2011-10-13  2:07 ` Rusty Russell
  14 siblings, 2 replies; 31+ messages in thread
From: Linus Torvalds @ 2011-07-28 13:19 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: mingo, linux-kernel, akpm, linux-arch

On Wed, Jul 27, 2011 at 10:16 PM, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
>
> For all 160 commits, the branch "module.h-split", available here:
>
>        git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git
>
> has the complete content.  I've put the header changes after all the
> patches from the top 5 categories, so that people bisecting non related
> issues at a later date don't get hit with a commit zone with build failures.

Ok, sounds good. Two questions:

 - how much testing (randconfig? different architectures?) has this gotten?

 - how much does this actually improve compile times (for a "normal"
build or a "allmodconfig" one)?

It certainly sounds like the RightThing(tm) to do, but I'd like to
know that there is real actual improvements to build times and that
the pain won't be too bad...

             Linus

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28 13:19 ` Linus Torvalds
@ 2011-07-28 15:27   ` Paul Gortmaker
  2011-07-28 19:18     ` Ingo Molnar
  2011-08-02 18:30   ` Paul Gortmaker
  1 sibling, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28 15:27 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: mingo, linux-kernel, akpm, linux-arch

[Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 06:19) Linus Torvalds wrote:

> On Wed, Jul 27, 2011 at 10:16 PM, Paul Gortmaker
> <paul.gortmaker@windriver.com> wrote:
> >
> > For all 160 commits, the branch "module.h-split", available here:
> >
> >        git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git
> >
> > has the complete content.  I've put the header changes after all the
> > patches from the top 5 categories, so that people bisecting non related
> > issues at a later date don't get hit with a commit zone with build failures.
> 
> Ok, sounds good. Two questions:
> 
>  - how much testing (randconfig? different architectures?) has this gotten?

I built allyeconfigs for arm, mips, powerpc, sparc, x86, x86-64.
Originally I was working on a v3.0-rc7 baseline, but after looking
at the new implicit module.h usages added since then, it was apparent
that I should update the baseline.

So I've re-run the multi-arch allyesconfigs to catch those new ones,
but with fallout from completely non related stuff, the allyesconfigs
on the non x86 variants don't build as far on the new v3.0-5684-ge371d46
baseline as they did on the 3.0-rc7 (to be expected in a tree leading up
to an rc1 release).

> 
>  - how much does this actually improve compile times (for a "normal"
> build or a "allmodconfig" one)?

Let me run some "real world" use cases and get back to you in a couple
of hours with that.  But Ingo's testing on a much earlier snapshot was
showing roughly a couple percent.  ( https://lkml.org/lkml/2011/5/28/60 )

> It certainly sounds like the RightThing(tm) to do, but I'd like to
> know that there is real actual improvements to build times and that
> the pain won't be too bad...

Yes, I've spent a lot of time fixing as many implicit users (thousands)
to try and minimize the pain here.  But I'd be a fool to think I have
them all fixed in the less mainstream architectures (alpha, sh, etc.)

And I know mips and arm have quite a few files that are platform specific
in mach-* and plat-* and they might not all get coverage via allyesconfig.
That is one place where I can think of that I am going to expand even
more testing into today.  Adding it to linux-next can't hurt either.

Thanks,
Paul.

> 
>              Linus

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28  7:15 ` [RFC/PULL 00/11] introduce export.h; reduce module.h usage Ingo Molnar
@ 2011-07-28 15:42   ` Paul Gortmaker
  2011-07-29  1:20     ` Stephen Rothwell
  0 siblings, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-07-28 15:42 UTC (permalink / raw)
  To: Ingo Molnar, sfr; +Cc: torvalds, linux-kernel, akpm, linux-arch

[Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 09:15) Ingo Molnar wrote:

> 
> * Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> 
> > I don't think there really is any rocket science or contentious 
> > stuff here. It is a sensible cleanup that adds organization and 
> > speeds up compiles. The RFC I'm hoping for is more about how/when 
> > we want to get this in tree.
> 
> I'd suggest to stick it into linux-next ASAP, leave there for a few 
> days and after fixing any potential fallout send it Linuswards.

Hi Stephen,

Would you please add this to linux-next?

git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git#module.h-split

It won't need to be there forever, just long enough to shake loose
anyone who has implicitly been using module.h without asking for it.

Thanks,
Paul.

> 
> Acked-by: Ingo Molnar <mingo@elte.hu>
> 
> Thanks,
> 
> 	Ingo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28 15:27   ` Paul Gortmaker
@ 2011-07-28 19:18     ` Ingo Molnar
  0 siblings, 0 replies; 31+ messages in thread
From: Ingo Molnar @ 2011-07-28 19:18 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: Linus Torvalds, linux-kernel, akpm, linux-arch


* Paul Gortmaker <paul.gortmaker@windriver.com> wrote:

> >  - how much does this actually improve compile times (for a 
> > "normal" build or a "allmodconfig" one)?
> 
> Let me run some "real world" use cases and get back to you in a 
> couple of hours with that.  But Ingo's testing on a much earlier 
> snapshot was showing roughly a couple percent.  ( 
> https://lkml.org/lkml/2011/5/28/60 )

I found that it's pretty hard to measure these things accurately and 
reliably, kernel build times are very noisy.

Note that you can use my numbers to estimate expected savings: just 
build before/after .i files in a common directory like kernel/*.c and 
measure their combined size. The size decrease of the preprocessor 
output scales almost linearly with runtime.

You could standardize on that kind of metric "these patches decrease 
preprocessor output by 0.5%" - those translate almost 1:1 into 
compile time speedups, and you don't really have to re-measure 
compile times every time you come up with such patches.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28 15:42   ` Paul Gortmaker
@ 2011-07-29  1:20     ` Stephen Rothwell
  2011-08-01 11:49       ` Geert Uytterhoeven
  0 siblings, 1 reply; 31+ messages in thread
From: Stephen Rothwell @ 2011-07-29  1:20 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: Ingo Molnar, torvalds, linux-kernel, akpm, linux-arch

[-- Attachment #1: Type: text/plain, Size: 2824 bytes --]

Hi Paul,

On Thu, 28 Jul 2011 11:42:29 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 09:15) Ingo Molnar wrote:
> 
> > * Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> > 
> > > I don't think there really is any rocket science or contentious 
> > > stuff here. It is a sensible cleanup that adds organization and 
> > > speeds up compiles. The RFC I'm hoping for is more about how/when 
> > > we want to get this in tree.
> > 
> > I'd suggest to stick it into linux-next ASAP, leave there for a few 
> > days and after fixing any potential fallout send it Linuswards.
> 
> Hi Stephen,
> 
> Would you please add this to linux-next?
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git#module.h-split

OK, I will add it today.

> It won't need to be there forever, just long enough to shake loose
> anyone who has implicitly been using module.h without asking for it.

Please remind me to remove it again after you are finished with it.
There is no real hurry about that as once Linus' merges it, it has very
little effect on my process (assuming that you get him to merge the
actual commits that are in my tree - hint, hint :-)).

Thanks for adding your subsystem tree as a participant of linux-next.  As
you may know, this is not a judgment of your code.  The purpose of
linux-next is for integration testing and to lower the impact of
conflicts between subsystems in the next merge window. 

You will need to ensure that the patches/commits in your tree/series have
been:
     * submitted under GPL v2 (or later) and include the Contributor's
	Signed-off-by,
     * posted to the relevant mailing list,
     * reviewed by you (or another maintainer of your subsystem tree),
     * successfully unit tested, and 
     * destined for the current or next Linux merge window.

Basically, this should be just what you would send to Linus (or ask him
to fetch).  It is allowed to be rebased if you deem it necessary.

-- 
Cheers,
Stephen Rothwell 
sfr@canb.auug.org.au

Legal Stuff:
By participating in linux-next, your subsystem tree contributions are
public and will be included in the linux-next trees.  You may be sent
e-mail messages indicating errors or other issues when the
patches/commits from your subsystem tree are merged and tested in
linux-next.  These messages may also be cross-posted to the linux-next
mailing list, the linux-kernel mailing list, etc.  The linux-next tree
project and IBM (my employer) make no warranties regarding the linux-next
project, the testing procedures, the results, the e-mails, etc.  If you
don't agree to these ground rules, let me know and I'll remove your tree
from participation in linux-next.

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-29  1:20     ` Stephen Rothwell
@ 2011-08-01 11:49       ` Geert Uytterhoeven
  2011-08-02  5:02         ` Paul Gortmaker
  0 siblings, 1 reply; 31+ messages in thread
From: Geert Uytterhoeven @ 2011-08-01 11:49 UTC (permalink / raw)
  To: Paul Gortmaker
  Cc: Stephen Rothwell, Ingo Molnar, torvalds, linux-kernel, akpm, linux-arch

Hi Paul,

On Fri, Jul 29, 2011 at 03:20, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> On Thu, 28 Jul 2011 11:42:29 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 09:15) Ingo Molnar wrote:
>>
>> > * Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>> >
>> > > I don't think there really is any rocket science or contentious
>> > > stuff here. It is a sensible cleanup that adds organization and
>> > > speeds up compiles. The RFC I'm hoping for is more about how/when
>> > > we want to get this in tree.
>> >
>> > I'd suggest to stick it into linux-next ASAP, leave there for a few
>> > days and after fixing any potential fallout send it Linuswards.
>>
>> Hi Stephen,
>>
>> Would you please add this to linux-next?
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git#module.h-split
>
> OK, I will add it today.

This causes several failures in m68k defconfig (and allmodconfig, FWIW):

http://kisskb.ellerman.id.au/kisskb/buildresult/4428037/
(http://kisskb.ellerman.id.au/kisskb/buildresult/4414683/)

Still recovering from holidays, so no patches attached.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-01 11:49       ` Geert Uytterhoeven
@ 2011-08-02  5:02         ` Paul Gortmaker
  2011-08-02  6:54           ` Geert Uytterhoeven
  0 siblings, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-08-02  5:02 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Stephen Rothwell, Ingo Molnar, torvalds, linux-kernel, akpm, linux-arch

[Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 01/08/2011 (Mon 13:49) Geert Uytterhoeven wrote:

> Hi Paul,
> 
> On Fri, Jul 29, 2011 at 03:20, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> > On Thu, 28 Jul 2011 11:42:29 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> >> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 09:15) Ingo Molnar wrote:
> >>
> >> > * Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> >> >
> >> > > I don't think there really is any rocket science or contentious
> >> > > stuff here. It is a sensible cleanup that adds organization and
> >> > > speeds up compiles. The RFC I'm hoping for is more about how/when
> >> > > we want to get this in tree.
> >> >
> >> > I'd suggest to stick it into linux-next ASAP, leave there for a few
> >> > days and after fixing any potential fallout send it Linuswards.
> >>
> >> Hi Stephen,
> >>
> >> Would you please add this to linux-next?
> >>
> >> git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git#module.h-split
> >
> > OK, I will add it today.
> 
> This causes several failures in m68k defconfig (and allmodconfig, FWIW):
> 
> http://kisskb.ellerman.id.au/kisskb/buildresult/4428037/
> (http://kisskb.ellerman.id.au/kisskb/buildresult/4414683/)
> 
> Still recovering from holidays, so no patches attached.

I grabbed a m68k toolchain (and several others I didn't have)
and expanded the arch support outside of the original testing
I did on x86/x86_64/mips/arm/powerpc/sparc to include m68k.

So your defconfig is restored green again, once it comes around in
the build (it appears down in the order) -- and for the modconfig,
it hasn't been building green for a while, but I still went over
the log looking for and fixing any module.h related fallout.

I've just double checked it again and attached a local defconfig build
log below.

Thanks,
Paul.

paul@yow-lpgnfs-02:~/git/module.h/linux-2.6.git$ make O=../m68k-def -j50 2>&1 |grep 'warning:\|error:'
<stdin>:1522:2: warning: #warning syscall recvmmsg not implemented
<stdin>:1554:2: warning: #warning syscall sendmmsg not implemented
/home/paul/git/module.h/linux-2.6.git/arch/m68k/mvme147/config.c:152:2: warning: #warning check me!
/home/paul/git/module.h/linux-2.6.git/arch/m68k/mvme16x/config.c:261:2: warning: #warning check me!
/home/paul/git/module.h/linux-2.6.git/security/keys/keyctl.c:1521:2: warning: #warning TIF_NOTIFY_RESUME not implemented
/home/paul/git/module.h/linux-2.6.git/kernel/async.c:272:10: warning: 'starttime.tv64' may be used uninitialized in this function
/home/paul/git/module.h/linux-2.6.git/kernel/async.c:123:10: warning: 'calltime.tv64' may be used uninitialized in this function
/home/paul/git/module.h/linux-2.6.git/drivers/md/dm.c:1052:3: warning: statement with no effect
/home/paul/git/module.h/linux-2.6.git/drivers/md/dm.c:1079:3: warning: statement with no effect
/home/paul/git/module.h/linux-2.6.git/drivers/md/dm-table.c:1193:2: warning: statement with no effect
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:280:12: warning: 'hp_sdc_rtc_set_rt' defined but not used
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:320:12: warning: 'hp_sdc_rtc_set_fhs' defined but not used
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:360:12: warning: 'hp_sdc_rtc_set_i8042timer' defined but not used
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:112:20: warning: ignoring return value of 'down_interruptible', declared with attribute warn_unused_result
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:179:20: warning: ignoring return value of 'down_interruptible', declared with attribute warn_unused_result
/home/paul/git/module.h/linux-2.6.git/drivers/input/misc/hp_sdc_rtc.c:183:20: warning: ignoring return value of 'down_interruptible', declared with attribute warn_unused_result
/home/paul/git/module.h/linux-2.6.git/include/net/netfilter/xt_log.h:50:3: warning: value computed is not used
/home/paul/git/module.h/linux-2.6.git/include/net/netfilter/xt_log.h:50:3: warning: value computed is not used
/home/paul/git/module.h/linux-2.6.git/drivers/scsi/libsas/sas_scsi_host.c:117:3: warning: case value '2' not in enumerated type 'enum exec_status'
paul@yow-lpgnfs-02:~/git/module.h/linux-2.6.git$ ls -l ../m68k-def/vmlinux
-rwxr-xr-x 1 paul paul 4951289 2011-08-02 00:59 ../m68k-def/vmlinux
paul@yow-lpgnfs-02:~/git/module.h/linux-2.6.git$ 


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-02  5:02         ` Paul Gortmaker
@ 2011-08-02  6:54           ` Geert Uytterhoeven
  0 siblings, 0 replies; 31+ messages in thread
From: Geert Uytterhoeven @ 2011-08-02  6:54 UTC (permalink / raw)
  To: Paul Gortmaker
  Cc: Stephen Rothwell, Ingo Molnar, torvalds, linux-kernel, akpm,
	linux-arch, scsi

On Tue, Aug 2, 2011 at 07:02, Paul Gortmaker
<paul.gortmaker@windriver.com> wrote:
> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 01/08/2011 (Mon 13:49) Geert Uytterhoeven wrote:
>> On Fri, Jul 29, 2011 at 03:20, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>> > On Thu, 28 Jul 2011 11:42:29 -0400 Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>> >> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 09:15) Ingo Molnar wrote:
>> >>
>> >> > * Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>> >> >
>> >> > > I don't think there really is any rocket science or contentious
>> >> > > stuff here. It is a sensible cleanup that adds organization and
>> >> > > speeds up compiles. The RFC I'm hoping for is more about how/when
>> >> > > we want to get this in tree.
>> >> >
>> >> > I'd suggest to stick it into linux-next ASAP, leave there for a few
>> >> > days and after fixing any potential fallout send it Linuswards.
>> >>
>> >> Hi Stephen,
>> >>
>> >> Would you please add this to linux-next?
>> >>
>> >> git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git#module.h-split
>> >
>> > OK, I will add it today.
>>
>> This causes several failures in m68k defconfig (and allmodconfig, FWIW):
>>
>> http://kisskb.ellerman.id.au/kisskb/buildresult/4428037/
>> (http://kisskb.ellerman.id.au/kisskb/buildresult/4414683/)
>>
>> Still recovering from holidays, so no patches attached.
>
> I grabbed a m68k toolchain (and several others I didn't have)
> and expanded the arch support outside of the original testing
> I did on x86/x86_64/mips/arm/powerpc/sparc to include m68k.
>
> So your defconfig is restored green again, once it comes around in
> the build (it appears down in the order) -- and for the modconfig,
> it hasn't been building green for a while, but I still went over
> the log looking for and fixing any module.h related fallout.

Thanks a lot!

> /home/paul/git/module.h/linux-2.6.git/drivers/scsi/libsas/sas_scsi_host.c:117:3: warning: case value '2' not in enumerated type 'enum exec_status'

That's a fishy one for the SCSI people...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28 13:19 ` Linus Torvalds
  2011-07-28 15:27   ` Paul Gortmaker
@ 2011-08-02 18:30   ` Paul Gortmaker
  2011-08-08  2:42     ` Mike Frysinger
  1 sibling, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-08-02 18:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: mingo, linux-kernel, akpm, linux-arch, sfr

[Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 06:19) Linus Torvalds wrote:

> On Wed, Jul 27, 2011 at 10:16 PM, Paul Gortmaker
> <paul.gortmaker@windriver.com> wrote:
> >
> > For all 160 commits, the branch "module.h-split", available here:
> >
> >        git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git
> >
> > has the complete content.  I've put the header changes after all the
> > patches from the top 5 categories, so that people bisecting non related
> > issues at a later date don't get hit with a commit zone with build failures.
> 
> Ok, sounds good. Two questions:
> 
>  - how much testing (randconfig? different architectures?) has this gotten?
> 
>  - how much does this actually improve compile times (for a "normal"
> build or a "allmodconfig" one)?
> 
> It certainly sounds like the RightThing(tm) to do, but I'd like to
> know that there is real actual improvements to build times and that
> the pain won't be too bad...

Now that it has done time in linux-next, let me address the testing
and (hopefully lack of) pain part.

-testing (locally and via next) expanded to less common arch, incl. sh,
 m68k, ia64, alpha, avr32, etc. Arch owners should have little to no work.

-built every in-tree arch/*/config/*_defconfig for arm, mips, powerpc, sh
 to get coverage on target specific files.  Re-ran this several times.

-build failures in linux-next are now *less* than before module.h tree was
 added (I ended up finding/fixing some things that weren't module fallout)

-randconfig coverage: over 2000 builds, searched all build logs looking
 for module related fallout. Arch coverage was as follows:

      build:  104     powerpc
      build:  130     mips
      build:  141     arm
      build: 1000     sparc  [typically builds fast w/ a randconfig]
      build:  171     x86_64
      build:  179     x86
      build:  157     sh
      build:  274     m68k

Given it is summmer, vacation, later in the merge window, I'd not blame
you if you decided you'd rather defer the pull to 3.2.  But if you don't,
thanks to Stephen's work, here is exatly what you can expect after pull.

Patches for things pending in next, but not yet in your tree:
   md: include export.h to use EXPORT_SYMBOL (new files in persistent-data)
   block: bsg-lib.c needs export.h (Jens may fix; block tree interaction)

Patches for files recently added to your tree but not in my baseline:
   power: max8998_charger.c needs module.h
   regulator: aat2870 needs module.h
   power_supply: max8997_charger.c need to include module.h

The latter group I could have fixed if I rebased to latest, but I didn't
want to invalidate my latest testing.  If you see commits with a recent
"applied" time, note that they are only the result of cosmetic header
updates, etc.  -- since I've consistently confirmed that:

    "git diff validated-tested-branch cosmetic-updated-branch"

comes up empty so that I know the testing value is 100% preserved.

If you don't want it now, it would be nice to get my one first inert
commit which creates export.h in the tree.  Then I could start feeding
some of the other bits through maintainer trees for 3.2.

Thanks,
Paul.

---

The following changes since commit 250f8e3db646028353a2a737ddb7a894c97a1098:

  Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial (2011-07-30 10:51:11 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git module.h-split

Heiko Carstens (1):
      s390: add missing module.h/export.h includes

Mark Brown (1):
      cpufreq: Fix build of s3c64xx cpufreq driver for header change

Paul Gortmaker (194):
      module.h: split out the EXPORT_SYMBOL into export.h
      range: fix bogus misuse of module.h to get printk()
      vermagic: delete senseless include of <linux/module.h>
      mm: delete various needless include <linux/module.h>
      mm: Add export.h for EXPORT_SYMBOL to active symbol exporters
      kernel: Map most files to use export.h instead of module.h
      kernel: Add <linux/module.h> to files using it implicitly
      kernel: fix implicit use of kmod.h in power/suspend.c
      kernel: fix two implicit header assumptions in irq_work.c
      kernel: sys.c implicitly relies on kmod.h for usermodehelper
      kernel: ksysfs.c is implicitly using stat.h
      kernel: params/rcutiny needs module.h not moduleparam.h
      kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure
      net: rfkill/input.c explicitly needs to include module.h
      net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules
      fs: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros
      fs: add module.h to files that were implicitly using it
      acpi: add module.h to files implicitly using/relying on it.
      acpi: revector aclinux.h from module.h to export.h
      acpi: sysfs.c needs module.h and not just moduleparam.h
      x86: fix implicit include of <linux/topology.h> in vsyscall_64
      x86: Fix files explicitly requiring export.h for EXPORT_SYMBOL/THIS_MODULE
      x86: fix up files really needing to include module.h
      x86: efi_32.c is implicitly getting asm/desc.h via module.h
      powerpc: io-workarounds.c was implicitly getting init_mm
      powerpc: add export.h to files making use of EXPORT_SYMBOL
      powerpc: Fix up modules that should be including module.h
      powerpc: Fix up implicit stat.h users
      powerpc: Fix up implicit sched.h users
      powerpc: cell/beat_wrapper.h is implicitly using memcpy functions
      powerpc: fix implicit notifier use in converting to export.h
      powerpc: fix implicit use of cache.h in kernel/firmware.c
      powerpc: fix implicit use of mutex.h by include/asm/spu.h
      powerpc: fix two implicit header uses in pseries/plpar_wrappers.h
      powerpc: convert hvconsole.c to export.h ; fix implicit use of errno.h
      powerpc: various straight conversions from module.h --> export.h
      powerpc: remove non-required uses of include <linux/module.h>
      arm: add elf.h to arch/arm/kernel/ptrace.c
      arm: fix implicit memset usage in mach-omap2 platform
      arm: fix implicit usage of string.h in kernel/leds.c
      arm: fix implicit use of asm/sizes.h in plat-s5p/plat-samsung
      arm: fix implicit use of page.h in mach-bcmring/mach-jornada
      arm: fix implicit use of PAGE_SHIFT in collie.c
      arm: fix implicit use of hardware.h in ehci-mxc.c
      arm: fix implicit use of moduleparam in mach-mx31*.c
      arm: fix implicit use of sched.h in bcmring/dma.c
      arm: add slab.h to plat-samsung files for GFP_KERNEL
      arm: add asm/vga.h to mach-footbridge/dc21285.c
      arm fix implicit asm/vga.h use in mach-orion5x/pci.c
      arm: remove several unnecessary module.h include instances
      arm: convert core files from module.h to export.h
      arm: Add export.h to ARM specific files as required.
      arm: fix implicit users by adding module.h to arch/arm as required.
      sparc: fix implicit use of spitfire.h in pcr.c and of_device_64.c
      sparc: add export.h to various arch/sparc/[kernel|mm] files
      sparc: move symbol exporters to use export.h not module.h
      sparc: remove several unnecessary module.h include instances
      sparc: Add module.h to files previously implicitly using it.
      mips: fix implicit use of asm/elf.h in kernel/cpu-probe.c
      mips: fix implicit smp.h usage in loongson/common/platform.c
      mips: vr41xx/ implicitly uses smp.h in giu.c and rtc.c
      mips: migrate core kernel file from module.h --> export.h
      mips: remove needless include of module.h from core kernel files.
      mips: add export.h to files using EXPORT_SYMBOL/THIS_MODULE
      ia64: Add export.h to arch/ia64 specific files as required
      m68k: Add export.h to the m68k specific files as required
      avr32: add export.h to arch/avr32 for EXPORT_SYMBOL/THIS_MODULE
      parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE
      alpha: fix implicit stat.h usage in pci-sysfs.c
      alpha: Add export.h for THIS_MODULE/EXPORT_SYMBOL
      sh: fix implicit use of stat.h in arch/sh specific files
      sh: Add module.h to arch/sh specific files as required.
      sh: Add export.h to arch/sh specific files as required.
      drivers/net: Add module.h to drivers who were implicitly using it
      drivers/net: Add export.h to mlx4 files using EXPORT_SYMBOL
      crypto: add module.h to those files that are explicitly using it
      mtd: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed
      mtd: Add module.h to drivers users that were implicitly using it.
      block: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros
      block: Fix files that are modules and hence need module.h
      of_platform.h: delete needless include <linux/module.h>
      of: of_pci.c needs export.h since it uses EXPORT_SYMBOLS
      drivers/base: transport_class explicitly requires EXPORT_SYMBOL
      drivers: power_supply_sysfs.c needs stat.h
      drivers/input: Add module.h to modular drivers implicitly using it
      hid: Add module.h to fix up implicit users of it
      hid: Fix up files needing export.h for EXPORT_SYMBOL
      md: Add module.h to all files using it implicitly
      md: Add in export.h for files using EXPORT_SYMBOL
      sound: fix drivers needing module.h not moduleparam.h
      sound: Add module.h to the previously silent sound users
      sound: Add export.h for THIS_MODULE/EXPORT_SYMBOL where needed
      pci: Fix files needing export.h since they use EXPORT_SYMBOL
      pci: add module.h to files implicitly relying on its presence.
      scsi: Fix files needing export.h since they use EXPORT_SYMBOL
      scsi: Fix up files implicitly depending on module.h inclusion
      usb: Add module.h to drivers/usb consumers who really use it.
      usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed
      usb: fix implicit usage of gfp.h in host/xhci-hub.c
      tty: Add module.h to drivers/tty users who just expect it there.
      tty: Add export.h for EXPORT_SYMBOL/THIS_MODULE to exporters
      rtc: Add module.h to implicit users in drivers/rtc
      i2c: add export.h to i2c-boardinfo.c for EXPORT_SYMBOL
      cpufreq: cpufreq_stats.c is a module, and should include module.h
      selinux: netlink.c uses THIS_MODULE; give it assoc. header
      video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video
      video: Add module.h to drivers/video files who really use it.
      infiniband: Fix up users implicitly relying on getting stat.h
      infiniband: Fix up module files that need to include module.h
      infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE
      ide/ata: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed
      ide/ata: Add module.h to the implicit modular users
      drivers/base: Fix various files needing export.h for EXPORT_SYMBOL
      drivers/base: dma-coherent.c is a module and needs module.h
      drivers/base: base.h implicitly depends on <linux/notifier.h>
      drivers/char: Add module.h to those who were using it implicitly
      drivers/char: Add export.h for THIS_MODULE to ttyprintk.c
      drivers/char: Fix implicit use of err.h in ramoops.c
      drivers/clocksource: Add module.h to those who were using it implicitly
      drivers/dca: Add module.h to dca-core.c
      drivers/dca: Add export.h for THIS_MODULE to dca-sysfs.c
      drivers/dma: Add module.h to ipu/ipu_idmac.c
      drivers/dma: Add export.h to ste_dma40.c
      drivers/edac: Add module.h to mce_amd_inj.c
      drivers/firewire: Add export.h for EXPORT_SYMBOL to core-iso.c
      drivers/firmware: Add module.h to google/gsmi.c
      drivers/firmware: Add export.h for EXPORT_SYMBOL to sigma.c
      drivers/gpio: Fix drivers who are implicit users of module.h
      drivers/hwmon: add module.h to ultra45_env.c
      drivers/isdn: Add export.h for THIS_MODULE to capi/kcapi_proc.c
      drivers/leds: Add module.h to files using it implicitly
      drivers/leds: Add export.h for THIS_MODULE to leds-cobalt-raq.c
      drivers/media: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required
      drivers/media: Add module.h to all files using it implicitly
      drivers/memstick: Add module.h to the prev. implicit modular users
      drivers/message: Add module.h to i2o/pci.c
      drivers/misc: Add module.h to files who are really modular.
      drivers/misc: Add export.h for EXPORT_SYMBOL to atmel_tclib.c
      drivers/power: Add module.h to the actual modules in drivers/power
      drivers/rapidio: Fix up it implicitly relying on getting stat.h
      drivers/sh: Add export.h for EXPORT_SYMBOL to intc/virq.c
      drivers/w1: Add export.h for EXPORT_SYMBOL to w1_family.c
      drivers/zorro: Add export.h to proc.c
      ssb: Add module.h to the real modules in drivers/ssb
      ssb: Add export.h to files using EXPORT_SYMBOL/THIS_MODULE
      uio: Add module.h to implicit drivers/uio users
      bcma: add module.h to the modular portions of this driver
      bcma: fix implicit use of export.h contents
      mfd: Add module.h to the implicit drivers/mfd users
      mfd: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required
      mmc: Add module.h to drivers/mmc users assuming implicit presence.
      mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required
      mmc: Fix implicit use of stat.h header in associated files
      staging: ft1000_proc needs asm/io.h for inw/outw on sparc
      staging: fix implicit use of slab.h in dt3155v4l/dt3155v4l.c
      staging: Add module.h to drivers/staging users
      staging: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/staging users.
      scsi: Add module.h to drivers/scsi users who really need it.
      scsi: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required
      xen: Add module.h to modular drivers/xen users.
      xen: Add export.h for THIS_MODULE/EXPORT_SYMBOL to various xen users.
      xen: fix implicit stat.h/module.h include usage in xen-selfballoon.c
      kvm: fix implicit use of stat.h header file
      kvm: iommu.c file requires the full module.h present.
      lguest: add export.h to lguest_device.c for THIS_MODULE
      virtio: Add module.h to drivers/virtio users.
      pci: Add module.h to hotplug/pciehp_acpi.c
      pci: pci-sysfs.c needs export.h for THIS_MODULE
      regulator: Add export.h for THIS_MODULE to dummy.c
      regulator: Add module.h to drivers/regulator users as required
      regulator: Fix implicit use of notifier.h by driver.h
      spi: Add module.h to implicit users in drivers/spi
      spi: spi-au1550.c was implicitly using module.h
      spi: Add export.h for THIS_MODULE/EXPORT_SYMBOL to spi.c
      drivers/of: Add module.h to of_spi.c
      drivers/uwb: fix implicit use of stat.h
      uwb: Add module.h to the real uwb modular users.
      uwb: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required
      drm: Add export.h for EXPORT_SYMBOL to ttm/ttm_tt.c
      pcmcia: add module.h to db1xxx_ss.c since it is modular.
      pcmcia: Add export.h to drivers/pcmcia as required.
      lib: dma-debug needs export.h for EXPORT_SYMBOL
      sysdev.h: dont include <linux/module.h> for no reason
      net: inet_timewait_sock doesnt need <linux/module.h>
      device_cgroup.h: delete needless include <linux/module.h>
      crypto.h: remove unused crypto_tfm_alg_modname() inline
      linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id
      pm_runtime.h: explicitly requires notifier.h
      uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
      net: sch_generic remove redundant use of <linux/module.h>
      include: convert various register fcns to macros to avoid include chaining
      include: replace linux/module.h with "struct module" wherever possible
      sh: Fix conflicting definitions of ptrace_triggered
      arm: fix compile failure in orion5x/dns323-setup.c

Randy Dunlap (2):
      i2c: Add module.h to modular files prev. implicitly getting it
      drivers/sfi: sfi_acpi.c needs sysfs.h

Stephen Rothwell (4):
      powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE
      drivers/media: ir-raw.c needs kmod.h for request_module
      drivers/of: include export.h for EXPORT_SYMBOL_GPL in of_pci_irq.c
      linux/dmaengine.h needs bitmap.h and asm/page.h

 arch/alpha/kernel/core_irongate.c                  |    1 +
 arch/alpha/kernel/pci-sysfs.c                      |    1 +
 arch/alpha/kernel/setup.c                          |    1 +
 arch/arm/common/it8152.c                           |    1 +
 arch/arm/common/scoop.c                            |    1 +
 arch/arm/kernel/armksyms.c                         |    2 +-
 arch/arm/kernel/bios32.c                           |    2 +-
 arch/arm/kernel/devtree.c                          |    2 +-
 arch/arm/kernel/elf.c                              |    2 +-
 arch/arm/kernel/io.c                               |    2 +-
 arch/arm/kernel/irq.c                              |    1 -
 arch/arm/kernel/leds.c                             |    3 +-
 arch/arm/kernel/perf_event.c                       |    2 +-
 arch/arm/kernel/pj4-cp0.c                          |    1 -
 arch/arm/kernel/process.c                          |    2 +-
 arch/arm/kernel/ptrace.c                           |    1 +
 arch/arm/kernel/return_address.c                   |    2 +-
 arch/arm/kernel/setup.c                            |    2 +-
 arch/arm/kernel/stacktrace.c                       |    2 +-
 arch/arm/kernel/sys_arm.c                          |    2 +-
 arch/arm/kernel/time.c                             |    2 +-
 arch/arm/kernel/unwind.c                           |    2 +-
 arch/arm/kernel/xscale-cp0.c                       |    1 -
 arch/arm/mach-at91/cpuidle.c                       |    1 +
 arch/arm/mach-bcmring/dma.c                        |    1 +
 arch/arm/mach-bcmring/mm.c                         |    1 +
 arch/arm/mach-davinci/board-dm644x-evm.c           |    1 +
 arch/arm/mach-davinci/board-dm646x-evm.c           |    1 +
 arch/arm/mach-davinci/cdce949.c                    |    1 +
 arch/arm/mach-davinci/cpufreq.c                    |    1 +
 arch/arm/mach-davinci/cpuidle.c                    |    1 +
 arch/arm/mach-ep93xx/core.c                        |    1 +
 arch/arm/mach-exynos4/dev-sysmmu.c                 |    1 +
 arch/arm/mach-footbridge/dc21285.c                 |    1 +
 arch/arm/mach-imx/mach-mx31lilly.c                 |    1 +
 arch/arm/mach-imx/mach-mx31lite.c                  |    1 +
 arch/arm/mach-imx/mach-mx31moboard.c               |    1 +
 arch/arm/mach-iop13xx/pci.c                        |    1 +
 arch/arm/mach-ixp2000/core.c                       |    1 +
 arch/arm/mach-ixp4xx/common-pci.c                  |    1 +
 arch/arm/mach-ixp4xx/common.c                      |    1 +
 arch/arm/mach-kirkwood/cpuidle.c                   |    1 +
 arch/arm/mach-msm/io.c                             |    1 +
 arch/arm/mach-netx/xc.c                            |    1 +
 arch/arm/mach-omap1/board-ams-delta.c              |    1 +
 arch/arm/mach-omap1/board-sx1.c                    |    1 +
 arch/arm/mach-omap1/board-voiceblue.c              |    1 +
 arch/arm/mach-omap1/mailbox.c                      |    1 +
 arch/arm/mach-omap2/board-omap3evm.c               |    1 +
 arch/arm/mach-omap2/clockdomain.c                  |    1 +
 arch/arm/mach-omap2/display.c                      |    1 +
 arch/arm/mach-omap2/gpmc-onenand.c                 |    1 +
 arch/arm/mach-omap2/pm.c                           |    1 +
 arch/arm/mach-omap2/prcm.c                         |    1 +
 arch/arm/mach-omap2/usb-tusb6010.c                 |    2 +
 arch/arm/mach-omap2/voltage.c                      |    1 +
 arch/arm/mach-orion5x/dns323-setup.c               |    2 +-
 arch/arm/mach-orion5x/pci.c                        |    1 +
 arch/arm/mach-pxa/corgi.c                          |    1 +
 arch/arm/mach-pxa/poodle.c                         |    1 +
 arch/arm/mach-pxa/spitz.c                          |    1 +
 arch/arm/mach-s3c2410/mach-h1940.c                 |    1 +
 arch/arm/mach-s3c64xx/dev-audio.c                  |    1 +
 arch/arm/mach-sa1100/collie.c                      |    1 +
 arch/arm/mach-sa1100/jornada720.c                  |    1 +
 arch/arm/mach-shmobile/clock.c                     |    1 +
 arch/arm/mach-tegra/pcie.c                         |    1 +
 arch/arm/mm/fault-armv.c                           |    1 -
 arch/arm/mm/init.c                                 |    1 +
 arch/arm/plat-iop/gpio.c                           |    1 +
 arch/arm/plat-iop/time.c                           |    1 +
 arch/arm/plat-omap/clock.c                         |    1 +
 arch/arm/plat-omap/mailbox.c                       |    1 +
 arch/arm/plat-s3c24xx/devs.c                       |    1 +
 arch/arm/plat-s5p/dev-ehci.c                       |    1 +
 arch/arm/plat-s5p/dev-onenand.c                    |    2 +
 arch/arm/plat-samsung/dev-adc.c                    |    2 +
 arch/arm/plat-samsung/dev-asocdma.c                |    1 +
 arch/arm/plat-samsung/dev-backlight.c              |    1 +
 arch/arm/plat-samsung/dev-ide.c                    |    2 +
 arch/arm/plat-samsung/dev-nand.c                   |    1 +
 arch/arm/plat-samsung/dev-pwm.c                    |    1 +
 arch/arm/plat-samsung/dev-rtc.c                    |    1 +
 arch/arm/plat-samsung/dev-ts.c                     |    2 +
 arch/arm/plat-samsung/dev-usb.c                    |    1 +
 arch/arm/plat-samsung/dev-wdt.c                    |    3 +
 arch/arm/plat-samsung/platformdata.c               |    1 +
 arch/arm/vfp/vfpmodule.c                           |    1 -
 arch/avr32/mach-at32ap/clock.c                     |    1 +
 arch/avr32/mach-at32ap/cpufreq.c                   |    1 +
 arch/avr32/mach-at32ap/intc.c                      |    1 +
 arch/avr32/mach-at32ap/pio.c                       |    1 +
 arch/avr32/mm/dma-coherent.c                       |    1 +
 arch/ia64/hp/common/hwsw_iommu.c                   |    1 +
 arch/ia64/kernel/dma-mapping.c                     |    1 +
 arch/ia64/kernel/topology.c                        |    1 +
 arch/ia64/sn/kernel/io_init.c                      |    1 +
 arch/ia64/sn/pci/pcibr/pcibr_dma.c                 |    1 +
 arch/ia64/sn/pci/pcibr/pcibr_provider.c            |    1 +
 arch/ia64/sn/pci/tioca_provider.c                  |    1 +
 arch/m68k/atari/time.c                             |    1 +
 arch/m68k/kernel/dma_mm.c                          |    1 +
 arch/m68k/kernel/dma_no.c                          |    1 +
 arch/mips/bcm47xx/gpio.c                           |    1 +
 arch/mips/bcm47xx/setup.c                          |    1 +
 arch/mips/cavium-octeon/csrc-octeon.c              |    1 +
 arch/mips/cavium-octeon/dma-octeon.c               |    1 +
 arch/mips/cavium-octeon/flash_setup.c              |    1 +
 arch/mips/kernel/8250-platform.c                   |    1 -
 arch/mips/kernel/cpu-probe.c                       |    3 +-
 arch/mips/kernel/i8253.c                           |    2 +-
 arch/mips/kernel/init_task.c                       |    2 +-
 arch/mips/kernel/irq-msc01.c                       |    1 -
 arch/mips/kernel/irq.c                             |    1 -
 arch/mips/kernel/mips-mt.c                         |    2 +-
 arch/mips/kernel/mips_ksyms.c                      |    2 +-
 arch/mips/kernel/module.c                          |    1 -
 arch/mips/kernel/process.c                         |    2 +-
 arch/mips/kernel/prom.c                            |    2 +-
 arch/mips/kernel/reset.c                           |    2 +-
 arch/mips/kernel/rtlx.c                            |    1 -
 arch/mips/kernel/setup.c                           |    2 +-
 arch/mips/kernel/spinlock_test.c                   |    2 +-
 arch/mips/kernel/stacktrace.c                      |    2 +-
 arch/mips/kernel/time.c                            |    2 +-
 arch/mips/kernel/traps.c                           |    1 -
 arch/mips/kernel/unaligned.c                       |    1 -
 arch/mips/kernel/vpe.c                             |    1 -
 arch/mips/loongson/common/platform.c               |    1 +
 arch/mips/pci/pci-ip27.c                           |    1 +
 arch/mips/pci/pci.c                                |    1 +
 arch/mips/powertv/pci/fixup-powertv.c              |    1 +
 arch/mips/powertv/powertv-usb.c                    |    1 +
 arch/mips/rb532/gpio.c                             |    1 +
 arch/mips/rb532/setup.c                            |    1 +
 arch/mips/txx9/generic/spi_eeprom.c                |    1 +
 arch/mips/txx9/rbtx4939/setup.c                    |    1 +
 arch/mips/vr41xx/common/giu.c                      |    1 +
 arch/mips/vr41xx/common/rtc.c                      |    1 +
 arch/parisc/kernel/drivers.c                       |    1 +
 arch/parisc/kernel/pci-dma.c                       |    1 +
 arch/parisc/kernel/setup.c                         |    1 +
 arch/parisc/lib/iomap.c                            |    1 +
 arch/powerpc/include/asm/lv1call.h                 |    1 +
 arch/powerpc/include/asm/machdep.h                 |    1 +
 arch/powerpc/include/asm/spu.h                     |    1 +
 arch/powerpc/kernel/btext.c                        |    2 +-
 arch/powerpc/kernel/clock.c                        |    2 +-
 arch/powerpc/kernel/cputable.c                     |    2 +-
 arch/powerpc/kernel/crash.c                        |    1 +
 arch/powerpc/kernel/dma-iommu.c                    |    1 +
 arch/powerpc/kernel/dma.c                          |    1 +
 arch/powerpc/kernel/firmware.c                     |    3 +-
 arch/powerpc/kernel/hw_breakpoint.c                |    1 -
 arch/powerpc/kernel/ibmebus.c                      |    2 +
 arch/powerpc/kernel/init_task.c                    |    2 +-
 arch/powerpc/kernel/io-workarounds.c               |    1 +
 arch/powerpc/kernel/io.c                           |    2 +-
 arch/powerpc/kernel/iomap.c                        |    1 +
 arch/powerpc/kernel/irq.c                          |    2 +-
 arch/powerpc/kernel/isa-bridge.c                   |    1 +
 arch/powerpc/kernel/kvm.c                          |    1 +
 arch/powerpc/kernel/module.c                       |    1 -
 arch/powerpc/kernel/of_platform.c                  |    2 +-
 arch/powerpc/kernel/paca.c                         |    2 +-
 arch/powerpc/kernel/pci-common.c                   |    1 +
 arch/powerpc/kernel/pci_32.c                       |    1 +
 arch/powerpc/kernel/pci_64.c                       |    1 +
 arch/powerpc/kernel/pci_dn.c                       |    1 +
 arch/powerpc/kernel/pci_of_scan.c                  |    1 +
 arch/powerpc/kernel/pmc.c                          |    2 +-
 arch/powerpc/kernel/ppc_ksyms.c                    |    2 +-
 arch/powerpc/kernel/process.c                      |    2 +-
 arch/powerpc/kernel/prom.c                         |    2 +-
 arch/powerpc/kernel/prom_parse.c                   |    1 -
 arch/powerpc/kernel/ptrace.c                       |    1 -
 arch/powerpc/kernel/rtas.c                         |    2 +-
 arch/powerpc/kernel/setup-common.c                 |    2 +-
 arch/powerpc/kernel/setup_64.c                     |    2 +-
 arch/powerpc/kernel/signal_64.c                    |    1 -
 arch/powerpc/kernel/smp.c                          |    2 +-
 arch/powerpc/kernel/stacktrace.c                   |    2 +-
 arch/powerpc/kernel/swsusp_64.c                    |    1 +
 arch/powerpc/kernel/sysfs.c                        |    2 +-
 arch/powerpc/kernel/time.c                         |    2 +-
 arch/powerpc/kernel/vdso.c                         |    1 -
 arch/powerpc/kernel/vio.c                          |    3 +-
 arch/powerpc/kvm/44x.c                             |    1 +
 arch/powerpc/kvm/book3s.c                          |    1 +
 arch/powerpc/kvm/book3s_exports.c                  |    2 +-
 arch/powerpc/kvm/book3s_hv.c                       |    1 +
 arch/powerpc/kvm/book3s_hv_builtin.c               |    1 +
 arch/powerpc/kvm/book3s_pr.c                       |    1 +
 arch/powerpc/kvm/powerpc.c                         |    1 -
 arch/powerpc/lib/checksum_wrappers_64.c            |    2 +-
 arch/powerpc/lib/devres.c                          |    2 +-
 arch/powerpc/lib/locks.c                           |    2 +-
 arch/powerpc/lib/rheap.c                           |    2 +-
 arch/powerpc/mm/dma-noncoherent.c                  |    1 +
 arch/powerpc/mm/hash_utils_64.c                    |    1 +
 arch/powerpc/mm/mem.c                              |    2 +-
 arch/powerpc/mm/mmu_context_hash32.c               |    1 +
 arch/powerpc/mm/mmu_context_hash64.c               |    2 +-
 arch/powerpc/mm/numa.c                             |    2 +-
 arch/powerpc/mm/pgtable_64.c                       |    1 +
 arch/powerpc/mm/slice.c                            |    2 +-
 arch/powerpc/mm/tlb_hash32.c                       |    1 +
 arch/powerpc/mm/tlb_nohash.c                       |    1 +
 arch/powerpc/platforms/44x/warp.c                  |    1 +
 arch/powerpc/platforms/512x/clock.c                |    1 +
 arch/powerpc/platforms/52xx/mpc52xx_common.c       |    1 +
 arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c      |    1 +
 arch/powerpc/platforms/83xx/suspend.c              |    1 +
 arch/powerpc/platforms/85xx/mpc85xx_cds.c          |    1 -
 arch/powerpc/platforms/85xx/mpc85xx_mds.c          |    1 -
 arch/powerpc/platforms/85xx/sbc8548.c              |    1 -
 arch/powerpc/platforms/86xx/gef_gpio.c             |    1 +
 arch/powerpc/platforms/8xx/tqm8xx_setup.c          |    1 -
 arch/powerpc/platforms/cell/axon_msi.c             |    1 +
 arch/powerpc/platforms/cell/beat.c                 |    2 +-
 arch/powerpc/platforms/cell/beat_spu_priv1.c       |    2 -
 arch/powerpc/platforms/cell/beat_wrapper.h         |    1 +
 arch/powerpc/platforms/cell/cbe_cpufreq.c          |    1 +
 arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c      |    1 +
 arch/powerpc/platforms/cell/cbe_powerbutton.c      |    1 +
 arch/powerpc/platforms/cell/cbe_regs.c             |    2 +-
 arch/powerpc/platforms/cell/celleb_setup.c         |    1 +
 arch/powerpc/platforms/cell/cpufreq_spudemand.c    |    1 +
 arch/powerpc/platforms/cell/interrupt.c            |    2 +-
 arch/powerpc/platforms/cell/pmu.c                  |    1 +
 arch/powerpc/platforms/cell/qpace_setup.c          |    1 +
 arch/powerpc/platforms/cell/setup.c                |    1 +
 arch/powerpc/platforms/cell/smp.c                  |    1 -
 arch/powerpc/platforms/cell/spu_callbacks.c        |    2 +-
 arch/powerpc/platforms/cell/spu_fault.c            |    2 +-
 arch/powerpc/platforms/cell/spu_manage.c           |    2 +-
 arch/powerpc/platforms/cell/spu_notify.c           |    3 +-
 arch/powerpc/platforms/cell/spu_priv1_mmio.c       |    1 -
 arch/powerpc/platforms/cell/spufs/backing_ops.c    |    1 -
 arch/powerpc/platforms/cell/spufs/context.c        |    2 +-
 arch/powerpc/platforms/cell/spufs/coredump.c       |    1 -
 arch/powerpc/platforms/cell/spufs/fault.c          |    1 -
 arch/powerpc/platforms/cell/spufs/file.c           |    2 +-
 arch/powerpc/platforms/cell/spufs/hw_ops.c         |    1 -
 arch/powerpc/platforms/cell/spufs/sched.c          |    1 -
 arch/powerpc/platforms/cell/spufs/switch.c         |    2 +-
 arch/powerpc/platforms/cell/spufs/syscalls.c       |    2 +-
 arch/powerpc/platforms/embedded6xx/holly.c         |    1 +
 arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c  |    1 +
 arch/powerpc/platforms/iseries/hvlpconfig.c        |    2 +-
 arch/powerpc/platforms/iseries/iommu.c             |    2 +-
 arch/powerpc/platforms/iseries/ksyms.c             |    2 +-
 arch/powerpc/platforms/iseries/lpardata.c          |    1 -
 arch/powerpc/platforms/iseries/lpevents.c          |    2 +-
 arch/powerpc/platforms/iseries/mf.c                |    1 +
 arch/powerpc/platforms/iseries/pci.c               |    1 -
 arch/powerpc/platforms/iseries/setup.c             |    1 +
 arch/powerpc/platforms/iseries/smp.c               |    1 -
 arch/powerpc/platforms/iseries/vio.c               |    2 +-
 arch/powerpc/platforms/iseries/viopath.c           |    2 +-
 arch/powerpc/platforms/maple/setup.c               |    1 +
 arch/powerpc/platforms/pasemi/cpufreq.c            |    1 +
 arch/powerpc/platforms/pasemi/dma_lib.c            |    3 +-
 arch/powerpc/platforms/pasemi/setup.c              |    1 +
 arch/powerpc/platforms/powermac/backlight.c        |    1 +
 arch/powerpc/platforms/powermac/feature.c          |    1 +
 arch/powerpc/platforms/powermac/low_i2c.c          |    2 +-
 arch/powerpc/platforms/powermac/nvram.c            |    2 +-
 arch/powerpc/platforms/powermac/pic.c              |    1 -
 arch/powerpc/platforms/powermac/setup.c            |    1 +
 arch/powerpc/platforms/ps3/exports.c               |    2 -
 arch/powerpc/platforms/ps3/interrupt.c             |    2 +-
 arch/powerpc/platforms/ps3/mm.c                    |    2 +-
 arch/powerpc/platforms/ps3/os-area.c               |    1 +
 arch/powerpc/platforms/ps3/setup.c                 |    1 +
 arch/powerpc/platforms/ps3/spu.c                   |    1 +
 arch/powerpc/platforms/ps3/system-bus.c            |    2 +-
 arch/powerpc/platforms/pseries/eeh.c               |    2 +
 arch/powerpc/platforms/pseries/eeh_event.c         |    1 +
 arch/powerpc/platforms/pseries/eeh_sysfs.c         |    1 +
 arch/powerpc/platforms/pseries/hotplug-cpu.c       |    1 +
 arch/powerpc/platforms/pseries/hvconsole.c         |    3 +-
 arch/powerpc/platforms/pseries/io_event_irq.c      |    2 +-
 arch/powerpc/platforms/pseries/iommu.c             |    1 +
 arch/powerpc/platforms/pseries/lpar.c              |    1 +
 arch/powerpc/platforms/pseries/mobility.c          |    1 +
 arch/powerpc/platforms/pseries/pci_dlpar.c         |    1 +
 arch/powerpc/platforms/pseries/plpar_wrappers.h    |    3 +
 arch/powerpc/platforms/pseries/setup.c             |    2 +-
 arch/powerpc/platforms/pseries/smp.c               |    1 -
 arch/powerpc/platforms/pseries/suspend.c           |    1 +
 arch/powerpc/sysdev/bestcomm/sram.c                |    2 +-
 arch/powerpc/sysdev/cpm_common.c                   |    1 +
 arch/powerpc/sysdev/dcr.c                          |    1 +
 arch/powerpc/sysdev/fsl_gtm.c                      |    1 +
 arch/powerpc/sysdev/fsl_lbc.c                      |    3 +-
 arch/powerpc/sysdev/fsl_pmc.c                      |    1 +
 arch/powerpc/sysdev/fsl_rio.c                      |    2 +-
 arch/powerpc/sysdev/fsl_soc.c                      |    2 +-
 arch/powerpc/sysdev/mpc5xxx_clocks.c               |    1 +
 arch/powerpc/sysdev/mpc8xx_pic.c                   |    1 -
 arch/powerpc/sysdev/mv64x60_pci.c                  |    1 +
 arch/powerpc/sysdev/pmi.c                          |    1 +
 arch/powerpc/sysdev/ppc4xx_msi.c                   |    1 +
 arch/powerpc/sysdev/qe_lib/gpio.c                  |    1 +
 arch/powerpc/sysdev/qe_lib/ucc.c                   |    2 +-
 arch/powerpc/sysdev/qe_lib/ucc_fast.c              |    2 +-
 arch/powerpc/sysdev/qe_lib/ucc_slow.c              |    2 +-
 arch/powerpc/sysdev/qe_lib/usb.c                   |    1 +
 arch/powerpc/sysdev/rtc_cmos_setup.c               |    1 +
 arch/powerpc/sysdev/scom.c                         |    1 +
 arch/powerpc/sysdev/simple_gpio.c                  |    1 -
 arch/powerpc/sysdev/tsi108_dev.c                   |    2 +-
 arch/powerpc/xmon/xmon.c                           |    2 +-
 arch/s390/crypto/sha_common.c                      |    1 +
 arch/s390/mm/init.c                                |    1 +
 arch/sh/drivers/dma/dma-sysfs.c                    |    1 +
 arch/sh/drivers/pci/pci.c                          |    1 +
 arch/sh/include/asm/ptrace.h                       |    2 +-
 arch/sh/kernel/cpu/shmobile/cpuidle.c              |    1 +
 arch/sh/kernel/perf_event.c                        |    1 +
 arch/sh/kernel/topology.c                          |    1 +
 arch/sh/mm/init.c                                  |    1 +
 arch/sparc/include/asm/termios.h                   |    1 -
 arch/sparc/kernel/auxio_32.c                       |    1 +
 arch/sparc/kernel/btext.c                          |    1 -
 arch/sparc/kernel/central.c                        |    1 +
 arch/sparc/kernel/cpu.c                            |    2 +-
 arch/sparc/kernel/cpumap.c                         |    2 +-
 arch/sparc/kernel/dma.c                            |    1 -
 arch/sparc/kernel/ebus.c                           |    2 +-
 arch/sparc/kernel/hvapi.c                          |    2 +-
 arch/sparc/kernel/idprom.c                         |    2 +-
 arch/sparc/kernel/iommu.c                          |    2 +-
 arch/sparc/kernel/irq_32.c                         |    1 +
 arch/sparc/kernel/irq_64.c                         |    1 -
 arch/sparc/kernel/ldc.c                            |    2 +-
 arch/sparc/kernel/leon_kernel.c                    |    1 -
 arch/sparc/kernel/leon_pci_grpci2.c                |    1 -
 arch/sparc/kernel/nmi.c                            |    2 +-
 arch/sparc/kernel/of_device_32.c                   |    1 -
 arch/sparc/kernel/of_device_64.c                   |    3 +-
 arch/sparc/kernel/of_device_common.c               |    2 +-
 arch/sparc/kernel/pci.c                            |    2 +-
 arch/sparc/kernel/pci_fire.c                       |    1 +
 arch/sparc/kernel/pci_psycho.c                     |    1 +
 arch/sparc/kernel/pci_sabre.c                      |    1 +
 arch/sparc/kernel/pci_schizo.c                     |    1 +
 arch/sparc/kernel/pci_sun4v.c                      |    1 +
 arch/sparc/kernel/pcic.c                           |    1 +
 arch/sparc/kernel/pcr.c                            |    3 +-
 arch/sparc/kernel/pmc.c                            |    1 +
 arch/sparc/kernel/power.c                          |    2 +-
 arch/sparc/kernel/process_64.c                     |    2 +-
 arch/sparc/kernel/prom_32.c                        |    1 -
 arch/sparc/kernel/prom_64.c                        |    1 -
 arch/sparc/kernel/prom_common.c                    |    2 +-
 arch/sparc/kernel/reboot.c                         |    2 +-
 arch/sparc/kernel/sbus.c                           |    1 +
 arch/sparc/kernel/setup_32.c                       |    1 +
 arch/sparc/kernel/setup_64.c                       |    1 +
 arch/sparc/kernel/smp_64.c                         |    2 +-
 arch/sparc/kernel/sparc_ksyms_64.c                 |    2 +-
 arch/sparc/kernel/stacktrace.c                     |    2 +-
 arch/sparc/kernel/sys_sparc32.c                    |    1 -
 arch/sparc/kernel/sys_sparc_64.c                   |    2 +-
 arch/sparc/kernel/time_64.c                        |    2 +-
 arch/sparc/kernel/traps_32.c                       |    1 +
 arch/sparc/kernel/unaligned_32.c                   |    1 -
 arch/sparc/kernel/vio.c                            |    1 +
 arch/sparc/kernel/viohs.c                          |    2 +-
 arch/sparc/mm/fault_32.c                           |    1 -
 arch/sparc/mm/generic_32.c                         |    1 +
 arch/sparc/mm/generic_64.c                         |    1 +
 arch/sparc/mm/highmem.c                            |    1 +
 arch/sparc/mm/hugetlbpage.c                        |    1 -
 arch/x86/crypto/aes_glue.c                         |    1 +
 arch/x86/crypto/aesni-intel_glue.c                 |    1 +
 arch/x86/kernel/cpu/amd.c                          |    1 +
 arch/x86/kernel/cpu/mcheck/therm_throt.c           |    1 +
 arch/x86/kernel/devicetree.c                       |    1 +
 arch/x86/kernel/e820.c                             |    1 +
 arch/x86/kernel/hpet.c                             |    1 +
 arch/x86/kernel/irq.c                              |    1 +
 arch/x86/kernel/pci-dma.c                          |    1 +
 arch/x86/kernel/probe_roms.c                       |    4 +-
 arch/x86/kernel/rtc.c                              |    1 +
 arch/x86/kernel/smp.c                              |    1 +
 arch/x86/kernel/time.c                             |    1 +
 arch/x86/kernel/topology.c                         |    1 +
 arch/x86/kernel/vsyscall_64.c                      |    1 +
 arch/x86/pci/i386.c                                |    1 +
 arch/x86/pci/legacy.c                              |    1 +
 arch/x86/platform/efi/efi.c                        |    1 +
 arch/x86/platform/efi/efi_32.c                     |    1 +
 arch/x86/platform/mrst/vrtc.c                      |    1 +
 arch/x86/platform/olpc/olpc-xo1-pm.c               |    1 +
 arch/x86/platform/uv/bios_uv.c                     |    1 +
 arch/x86/power/cpu.c                               |    1 +
 arch/x86/video/fbdev.c                             |    1 +
 block/blk-integrity.c                              |    1 +
 block/ioctl.c                                      |    1 +
 crypto/async_tx/async_memcpy.c                     |    1 +
 crypto/async_tx/async_pq.c                         |    1 +
 crypto/async_tx/async_raid6_recov.c                |    1 +
 crypto/async_tx/async_tx.c                         |    1 +
 crypto/async_tx/async_xor.c                        |    1 +
 crypto/async_tx/raid6test.c                        |    1 +
 crypto/crypto_wq.c                                 |    1 +
 crypto/md4.c                                       |    1 +
 crypto/proc.c                                      |    1 +
 crypto/vmac.c                                      |    1 +
 crypto/xcbc.c                                      |    1 +
 drivers/acpi/acpica/hwsleep.c                      |    1 +
 drivers/acpi/ec_sys.c                              |    1 +
 drivers/acpi/sbshc.c                               |    1 +
 drivers/acpi/sysfs.c                               |    2 +-
 drivers/ata/libata-eh.c                            |    1 +
 drivers/ata/libata-pmp.c                           |    1 +
 drivers/ata/libata-scsi.c                          |    1 +
 drivers/ata/libata-sff.c                           |    1 +
 drivers/base/base.h                                |    1 +
 drivers/base/dma-coherent.c                        |    1 +
 drivers/base/dma-mapping.c                         |    1 +
 drivers/base/hypervisor.c                          |    1 +
 drivers/base/power/generic_ops.c                   |    1 +
 drivers/base/power/main.c                          |    1 +
 drivers/base/power/runtime.c                       |    1 +
 drivers/base/power/sysfs.c                         |    1 +
 drivers/base/power/trace.c                         |    1 +
 drivers/base/power/wakeup.c                        |    1 +
 drivers/base/transport_class.c                     |    1 +
 drivers/bcma/core.c                                |    1 +
 drivers/bcma/driver_chipcommon.c                   |    1 +
 drivers/bcma/driver_pci.c                          |    1 +
 drivers/bcma/host_pci.c                            |    1 +
 drivers/bcma/main.c                                |    1 +
 drivers/block/aoe/aoechr.c                         |    1 +
 drivers/block/ps3disk.c                            |    1 +
 drivers/block/ps3vram.c                            |    1 +
 drivers/block/virtio_blk.c                         |    1 +
 drivers/char/hw_random/virtio-rng.c                |    1 +
 drivers/char/ramoops.c                             |    1 +
 drivers/char/ttyprintk.c                           |    1 +
 drivers/char/virtio_console.c                      |    1 +
 drivers/clocksource/sh_cmt.c                       |    1 +
 drivers/clocksource/sh_mtu2.c                      |    1 +
 drivers/clocksource/sh_tmu.c                       |    1 +
 drivers/cpufreq/cpufreq_stats.c                    |    1 +
 drivers/cpufreq/s3c64xx-cpufreq.c                  |    1 +
 drivers/crypto/mv_cesa.c                           |    1 +
 drivers/dca/dca-core.c                             |    1 +
 drivers/dca/dca-sysfs.c                            |    1 +
 drivers/dma/intel_mid_dma.c                        |    1 +
 drivers/dma/ipu/ipu_idmac.c                        |    1 +
 drivers/dma/ste_dma40.c                            |    1 +
 drivers/edac/mce_amd_inj.c                         |    1 +
 drivers/firewire/core-iso.c                        |    1 +
 drivers/firmware/google/gsmi.c                     |    1 +
 drivers/firmware/sigma.c                           |    1 +
 drivers/gpio/gpio-74x164.c                         |    1 +
 drivers/gpio/gpio-ep93xx.c                         |    1 +
 drivers/gpio/gpio-mc33880.c                        |    1 +
 drivers/gpio/gpio-mcp23s08.c                       |    1 +
 drivers/gpio/gpio-ml-ioh.c                         |    1 +
 drivers/gpio/gpio-mpc5200.c                        |    1 +
 drivers/gpio/gpio-mxc.c                            |    1 +
 drivers/gpio/gpio-mxs.c                            |    1 +
 drivers/gpio/gpio-pcf857x.c                        |    1 +
 drivers/gpio/gpio-pch.c                            |    1 +
 drivers/gpio/gpio-xilinx.c                         |    1 +
 drivers/gpu/drm/ttm/ttm_tt.c                       |    1 +
 drivers/hid/hid-axff.c                             |    1 +
 drivers/hid/hid-debug.c                            |    1 +
 drivers/hid/hid-dr.c                               |    1 +
 drivers/hid/hid-emsff.c                            |    1 +
 drivers/hid/hid-gaff.c                             |    1 +
 drivers/hid/hid-holtekff.c                         |    1 +
 drivers/hid/hid-picolcd.c                          |    1 +
 drivers/hid/hid-pl.c                               |    1 +
 drivers/hid/hid-roccat-common.c                    |    1 +
 drivers/hid/hid-roccat.c                           |    1 +
 drivers/hid/hid-sjoy.c                             |    1 +
 drivers/hid/hid-tmff.c                             |    1 +
 drivers/hid/hid-zpff.c                             |    1 +
 drivers/hid/usbhid/hid-quirks.c                    |    1 +
 drivers/hwmon/ultra45_env.c                        |    1 +
 drivers/i2c/busses/i2c-pxa-pci.c                   |    1 +
 drivers/i2c/busses/i2c-sh7760.c                    |    1 +
 drivers/i2c/busses/i2c-tegra.c                     |    1 +
 drivers/i2c/i2c-boardinfo.c                        |    1 +
 drivers/ide/buddha.c                               |    1 +
 drivers/ide/cmd640.c                               |    1 +
 drivers/ide/ide-acpi.c                             |    1 +
 drivers/ide/ide-atapi.c                            |    1 +
 drivers/ide/ide-disk_proc.c                        |    1 +
 drivers/ide/ide-dma-sff.c                          |    1 +
 drivers/ide/ide-dma.c                              |    1 +
 drivers/ide/ide-eh.c                               |    1 +
 drivers/ide/ide-floppy_proc.c                      |    1 +
 drivers/ide/ide-io-std.c                           |    1 +
 drivers/ide/ide-ioctls.c                           |    1 +
 drivers/ide/ide-legacy.c                           |    1 +
 drivers/ide/ide-lib.c                              |    1 +
 drivers/ide/ide-pnp.c                              |    1 +
 drivers/ide/ide-taskfile.c                         |    1 +
 drivers/ide/ide-xfer-mode.c                        |    1 +
 drivers/ide/macide.c                               |    1 +
 drivers/ide/pmac.c                                 |    1 +
 drivers/ide/q40ide.c                               |    1 +
 drivers/ide/setup-pci.c                            |    1 +
 drivers/ide/tc86c001.c                             |    1 +
 drivers/idle/intel_idle.c                          |    1 +
 drivers/infiniband/core/cm.c                       |    1 +
 drivers/infiniband/core/fmr_pool.c                 |    1 +
 drivers/infiniband/core/mad.c                      |    1 +
 drivers/infiniband/core/multicast.c                |    1 +
 drivers/infiniband/core/packer.c                   |    1 +
 drivers/infiniband/core/sysfs.c                    |    1 +
 drivers/infiniband/core/ud_header.c                |    1 +
 drivers/infiniband/core/umem.c                     |    1 +
 drivers/infiniband/core/uverbs_marshall.c          |    1 +
 drivers/infiniband/core/verbs.c                    |    1 +
 drivers/infiniband/hw/ipath/ipath_diag.c           |    1 +
 drivers/infiniband/hw/ipath/ipath_file_ops.c       |    1 +
 drivers/infiniband/hw/ipath/ipath_sysfs.c          |    1 +
 drivers/infiniband/hw/ipath/ipath_verbs.c          |    1 +
 drivers/infiniband/hw/mthca/mthca_catas.c          |    1 +
 drivers/infiniband/hw/mthca/mthca_cmd.c            |    1 +
 drivers/infiniband/hw/mthca/mthca_provider.c       |    2 +
 drivers/infiniband/hw/qib/qib_diag.c               |    1 +
 drivers/infiniband/hw/qib/qib_file_ops.c           |    1 +
 drivers/infiniband/hw/qib/qib_iba7220.c            |    1 +
 drivers/infiniband/hw/qib/qib_iba7322.c            |    1 +
 drivers/infiniband/hw/qib/qib_pcie.c               |    1 +
 drivers/infiniband/hw/qib/qib_sd7220.c             |    1 +
 drivers/infiniband/hw/qib/qib_verbs.c              |    1 +
 drivers/input/input-compat.c                       |    1 +
 drivers/input/input-mt.c                           |    1 +
 drivers/input/input-polldev.c                      |    1 +
 drivers/input/joystick/as5011.c                    |    1 +
 drivers/input/keyboard/nomadik-ske-keypad.c        |    1 +
 drivers/input/keyboard/tnetv107x-keypad.c          |    1 +
 drivers/input/misc/ad714x.c                        |    1 +
 drivers/input/misc/adxl34x.c                       |    1 +
 drivers/input/misc/ati_remote2.c                   |    1 +
 drivers/input/misc/cma3000_d0x.c                   |    1 +
 drivers/input/misc/dm355evm_keys.c                 |    1 +
 drivers/input/misc/kxtj9.c                         |    1 +
 drivers/input/mouse/hgpk.c                         |    1 +
 drivers/input/sparse-keymap.c                      |    1 +
 drivers/input/touchscreen/ad7877.c                 |    1 +
 drivers/input/touchscreen/ad7879-spi.c             |    1 +
 drivers/input/touchscreen/ad7879.c                 |    1 +
 drivers/input/touchscreen/ads7846.c                |    1 +
 drivers/input/touchscreen/bu21013_ts.c             |    1 +
 drivers/isdn/capi/kcapi_proc.c                     |    1 +
 drivers/leds/dell-led.c                            |    1 +
 drivers/leds/leds-88pm860x.c                       |    1 +
 drivers/leds/leds-asic3.c                          |    1 +
 drivers/leds/leds-atmel-pwm.c                      |    1 +
 drivers/leds/leds-cobalt-raq.c                     |    1 +
 drivers/leds/leds-fsg.c                            |    1 +
 drivers/leds/leds-gpio.c                           |    1 +
 drivers/leds/leds-lm3530.c                         |    1 +
 drivers/leds/leds-locomo.c                         |    1 +
 drivers/leds/leds-lt3593.c                         |    1 +
 drivers/leds/leds-net48xx.c                        |    1 +
 drivers/leds/leds-net5501.c                        |    1 +
 drivers/leds/leds-ns2.c                            |    1 +
 drivers/leds/leds-s3c24xx.c                        |    1 +
 drivers/leds/leds-wm831x-status.c                  |    1 +
 drivers/leds/leds-wm8350.c                         |    1 +
 drivers/leds/leds-wrap.c                           |    1 +
 drivers/lguest/lguest_device.c                     |    1 +
 drivers/md/dm-exception-store.c                    |    1 +
 drivers/md/dm-log-userspace-base.c                 |    1 +
 drivers/md/dm-path-selector.c                      |    1 +
 drivers/md/dm-raid.c                               |    1 +
 drivers/md/dm-round-robin.c                        |    1 +
 drivers/md/dm-service-time.c                       |    1 +
 drivers/md/dm-snap-persistent.c                    |    1 +
 drivers/md/dm-snap-transient.c                     |    1 +
 drivers/md/dm-uevent.c                             |    1 +
 drivers/md/faulty.c                                |    1 +
 drivers/md/linear.c                                |    1 +
 drivers/md/md.c                                    |    1 +
 drivers/md/multipath.c                             |    1 +
 drivers/md/raid0.c                                 |    1 +
 drivers/md/raid1.c                                 |    1 +
 drivers/md/raid10.c                                |    1 +
 drivers/md/raid5.c                                 |    1 +
 drivers/media/common/saa7146_core.c                |    1 +
 drivers/media/common/saa7146_fops.c                |    1 +
 drivers/media/common/saa7146_hlp.c                 |    1 +
 drivers/media/common/saa7146_video.c               |    1 +
 drivers/media/common/tuners/tuner-types.c          |    1 +
 drivers/media/dvb/frontends/dibx000_common.c       |    1 +
 drivers/media/dvb/siano/sms-cards.c                |    1 +
 drivers/media/dvb/siano/smsendian.c                |    1 +
 drivers/media/dvb/siano/smssdio.c                  |    1 +
 drivers/media/dvb/siano/smsusb.c                   |    1 +
 drivers/media/media-device.c                       |    1 +
 drivers/media/radio/radio-timb.c                   |    1 +
 drivers/media/radio/radio-wl1273.c                 |    1 +
 drivers/media/radio/si4713-i2c.c                   |    1 +
 drivers/media/radio/wl128x/fmdrv_v4l2.c            |    2 +
 drivers/media/rc/ir-jvc-decoder.c                  |    1 +
 drivers/media/rc/ir-lirc-codec.c                   |    1 +
 drivers/media/rc/ir-nec-decoder.c                  |    1 +
 drivers/media/rc/ir-raw.c                          |    2 +
 drivers/media/rc/ir-rc5-decoder.c                  |    1 +
 drivers/media/rc/ir-rc5-sz-decoder.c               |    1 +
 drivers/media/rc/ir-rc6-decoder.c                  |    1 +
 drivers/media/rc/ir-sony-decoder.c                 |    1 +
 drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.c    |    1 +
 drivers/media/rc/keymaps/rc-alink-dtu-m.c          |    1 +
 drivers/media/rc/keymaps/rc-anysee.c               |    1 +
 drivers/media/rc/keymaps/rc-apac-viewcomp.c        |    1 +
 drivers/media/rc/keymaps/rc-asus-pc39.c            |    1 +
 drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.c |    1 +
 drivers/media/rc/keymaps/rc-avermedia-a16d.c       |    1 +
 drivers/media/rc/keymaps/rc-avermedia-cardbus.c    |    1 +
 drivers/media/rc/keymaps/rc-avermedia-dvbt.c       |    1 +
 drivers/media/rc/keymaps/rc-avermedia-m135a.c      |    1 +
 .../media/rc/keymaps/rc-avermedia-m733a-rm-k6.c    |    1 +
 drivers/media/rc/keymaps/rc-avermedia-rm-ks.c      |    1 +
 drivers/media/rc/keymaps/rc-avermedia.c            |    1 +
 drivers/media/rc/keymaps/rc-avertv-303.c           |    1 +
 drivers/media/rc/keymaps/rc-azurewave-ad-tu700.c   |    1 +
 drivers/media/rc/keymaps/rc-behold-columbus.c      |    1 +
 drivers/media/rc/keymaps/rc-behold.c               |    1 +
 drivers/media/rc/keymaps/rc-budget-ci-old.c        |    1 +
 drivers/media/rc/keymaps/rc-cinergy-1400.c         |    1 +
 drivers/media/rc/keymaps/rc-cinergy.c              |    1 +
 drivers/media/rc/keymaps/rc-dib0700-nec.c          |    1 +
 drivers/media/rc/keymaps/rc-dib0700-rc5.c          |    1 +
 drivers/media/rc/keymaps/rc-digitalnow-tinytwin.c  |    1 +
 drivers/media/rc/keymaps/rc-digittrade.c           |    1 +
 drivers/media/rc/keymaps/rc-dm1105-nec.c           |    1 +
 drivers/media/rc/keymaps/rc-dntv-live-dvb-t.c      |    1 +
 drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.c   |    1 +
 drivers/media/rc/keymaps/rc-em-terratec.c          |    1 +
 drivers/media/rc/keymaps/rc-encore-enltv-fm53.c    |    1 +
 drivers/media/rc/keymaps/rc-encore-enltv.c         |    1 +
 drivers/media/rc/keymaps/rc-encore-enltv2.c        |    1 +
 drivers/media/rc/keymaps/rc-evga-indtube.c         |    1 +
 drivers/media/rc/keymaps/rc-eztv.c                 |    1 +
 drivers/media/rc/keymaps/rc-flydvb.c               |    1 +
 drivers/media/rc/keymaps/rc-flyvideo.c             |    1 +
 drivers/media/rc/keymaps/rc-fusionhdtv-mce.c       |    1 +
 drivers/media/rc/keymaps/rc-gadmei-rm008z.c        |    1 +
 drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.c   |    1 +
 drivers/media/rc/keymaps/rc-gotview7135.c          |    1 +
 drivers/media/rc/keymaps/rc-hauppauge.c            |    1 +
 drivers/media/rc/keymaps/rc-imon-mce.c             |    1 +
 drivers/media/rc/keymaps/rc-imon-pad.c             |    1 +
 drivers/media/rc/keymaps/rc-iodata-bctv7e.c        |    1 +
 drivers/media/rc/keymaps/rc-kaiomy.c               |    1 +
 drivers/media/rc/keymaps/rc-kworld-315u.c          |    1 +
 .../media/rc/keymaps/rc-kworld-plus-tv-analog.c    |    1 +
 drivers/media/rc/keymaps/rc-leadtek-y04g0051.c     |    1 +
 drivers/media/rc/keymaps/rc-lirc.c                 |    1 +
 drivers/media/rc/keymaps/rc-lme2510.c              |    1 +
 drivers/media/rc/keymaps/rc-manli.c                |    1 +
 drivers/media/rc/keymaps/rc-msi-digivox-ii.c       |    1 +
 drivers/media/rc/keymaps/rc-msi-digivox-iii.c      |    1 +
 drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.c  |    1 +
 drivers/media/rc/keymaps/rc-msi-tvanywhere.c       |    1 +
 drivers/media/rc/keymaps/rc-nebula.c               |    1 +
 .../media/rc/keymaps/rc-nec-terratec-cinergy-xs.c  |    1 +
 drivers/media/rc/keymaps/rc-norwood.c              |    1 +
 drivers/media/rc/keymaps/rc-npgtech.c              |    1 +
 drivers/media/rc/keymaps/rc-pctv-sedna.c           |    1 +
 drivers/media/rc/keymaps/rc-pinnacle-color.c       |    1 +
 drivers/media/rc/keymaps/rc-pinnacle-grey.c        |    1 +
 drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.c     |    1 +
 drivers/media/rc/keymaps/rc-pixelview-002t.c       |    1 +
 drivers/media/rc/keymaps/rc-pixelview-mk12.c       |    1 +
 drivers/media/rc/keymaps/rc-pixelview-new.c        |    1 +
 drivers/media/rc/keymaps/rc-pixelview.c            |    1 +
 .../media/rc/keymaps/rc-powercolor-real-angel.c    |    1 +
 drivers/media/rc/keymaps/rc-proteus-2309.c         |    1 +
 drivers/media/rc/keymaps/rc-purpletv.c             |    1 +
 drivers/media/rc/keymaps/rc-pv951.c                |    1 +
 drivers/media/rc/keymaps/rc-rc6-mce.c              |    1 +
 .../media/rc/keymaps/rc-real-audio-220-32-keys.c   |    1 +
 drivers/media/rc/keymaps/rc-streamzap.c            |    1 +
 drivers/media/rc/keymaps/rc-tbs-nec.c              |    1 +
 drivers/media/rc/keymaps/rc-technisat-usb2.c       |    1 +
 drivers/media/rc/keymaps/rc-terratec-cinergy-xs.c  |    1 +
 drivers/media/rc/keymaps/rc-terratec-slim-2.c      |    1 +
 drivers/media/rc/keymaps/rc-terratec-slim.c        |    1 +
 drivers/media/rc/keymaps/rc-tevii-nec.c            |    1 +
 drivers/media/rc/keymaps/rc-tivo.c                 |    1 +
 drivers/media/rc/keymaps/rc-total-media-in-hand.c  |    1 +
 drivers/media/rc/keymaps/rc-trekstor.c             |    1 +
 drivers/media/rc/keymaps/rc-tt-1500.c              |    1 +
 drivers/media/rc/keymaps/rc-twinhan1027.c          |    1 +
 drivers/media/rc/keymaps/rc-videomate-m1f.c        |    1 +
 drivers/media/rc/keymaps/rc-videomate-s350.c       |    1 +
 drivers/media/rc/keymaps/rc-videomate-tv-pvr.c     |    1 +
 drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.c |    1 +
 drivers/media/rc/keymaps/rc-winfast.c              |    1 +
 drivers/media/rc/rc-main.c                         |    1 +
 drivers/media/video/adp1653.c                      |    1 +
 drivers/media/video/ak881x.c                       |    1 +
 drivers/media/video/cpia2/cpia2_usb.c              |    1 +
 drivers/media/video/cx25840/cx25840-ir.c           |    1 +
 drivers/media/video/davinci/dm355_ccdc.c           |    1 +
 drivers/media/video/davinci/dm644x_ccdc.c          |    1 +
 drivers/media/video/hdpvr/hdpvr-i2c.c              |    1 +
 drivers/media/video/hexium_gemini.c                |    1 +
 drivers/media/video/hexium_orion.c                 |    1 +
 drivers/media/video/imx074.c                       |    1 +
 drivers/media/video/m5mols/m5mols_core.c           |    1 +
 drivers/media/video/mt9m001.c                      |    1 +
 drivers/media/video/mt9m111.c                      |    1 +
 drivers/media/video/mt9t031.c                      |    1 +
 drivers/media/video/mt9v011.c                      |    1 +
 drivers/media/video/mt9v022.c                      |    1 +
 drivers/media/video/mt9v032.c                      |    1 +
 drivers/media/video/mxb.c                          |    1 +
 drivers/media/video/noon010pc30.c                  |    1 +
 drivers/media/video/omap24xxcam.c                  |    1 +
 drivers/media/video/ov6650.c                       |    1 +
 drivers/media/video/pvrusb2/pvrusb2-devattr.c      |    1 +
 drivers/media/video/pvrusb2/pvrusb2-hdw.c          |    1 +
 drivers/media/video/pvrusb2/pvrusb2-i2c-core.c     |    1 +
 drivers/media/video/pvrusb2/pvrusb2-v4l2.c         |    1 +
 drivers/media/video/rj54n1cb0c.c                   |    1 +
 drivers/media/video/sh_mobile_csi2.c               |    1 +
 drivers/media/video/sh_vou.c                       |    1 +
 drivers/media/video/sr030pc30.c                    |    1 +
 drivers/media/video/tcm825x.c                      |    1 +
 drivers/media/video/timblogiw.c                    |    1 +
 drivers/media/video/tvp514x.c                      |    1 +
 drivers/media/video/tvp5150.c                      |    1 +
 drivers/media/video/tvp7002.c                      |    1 +
 drivers/media/video/usbvision/usbvision-cards.c    |    1 +
 drivers/media/video/v4l2-ctrls.c                   |    1 +
 drivers/media/video/v4l2-device.c                  |    1 +
 drivers/media/video/v4l2-event.c                   |    1 +
 drivers/media/video/v4l2-fh.c                      |    1 +
 drivers/media/video/v4l2-int-device.c              |    1 +
 drivers/media/video/v4l2-subdev.c                  |    1 +
 drivers/memstick/core/memstick.c                   |    1 +
 drivers/memstick/core/mspro_block.c                |    1 +
 drivers/memstick/host/jmb38x_ms.c                  |    1 +
 drivers/memstick/host/tifm_ms.c                    |    1 +
 drivers/message/i2o/pci.c                          |    1 +
 drivers/mfd/ab3100-core.c                          |    1 +
 drivers/mfd/ab3550-core.c                          |    1 +
 drivers/mfd/ab8500-debugfs.c                       |    1 +
 drivers/mfd/ab8500-sysctrl.c                       |    1 +
 drivers/mfd/abx500-core.c                          |    1 +
 drivers/mfd/asic3.c                                |    1 +
 drivers/mfd/dm355evm_msp.c                         |    1 +
 drivers/mfd/max8997.c                              |    1 +
 drivers/mfd/mfd-core.c                             |    1 +
 drivers/mfd/pcf50633-irq.c                         |    1 +
 drivers/mfd/tmio_core.c                            |    1 +
 drivers/mfd/twl-core.c                             |    1 +
 drivers/mfd/twl6030-irq.c                          |    1 +
 drivers/mfd/wl1273-core.c                          |    1 +
 drivers/mfd/wm8400-core.c                          |    1 +
 drivers/misc/ab8500-pwm.c                          |    1 +
 drivers/misc/atmel-ssc.c                           |    1 +
 drivers/misc/atmel_tclib.c                         |    1 +
 drivers/misc/bh1780gli.c                           |    1 +
 drivers/misc/kgdbts.c                              |    1 +
 drivers/misc/ti-st/st_kim.c                        |    1 +
 drivers/misc/tifm_7xx1.c                           |    1 +
 drivers/misc/tifm_core.c                           |    1 +
 drivers/mmc/card/mmc_test.c                        |    1 +
 drivers/mmc/core/bus.c                             |    2 +
 drivers/mmc/core/debugfs.c                         |    1 +
 drivers/mmc/core/host.c                            |    1 +
 drivers/mmc/core/mmc.c                             |    1 +
 drivers/mmc/core/mmc_ops.c                         |    1 +
 drivers/mmc/core/quirks.c                          |    1 +
 drivers/mmc/core/sd.c                              |    1 +
 drivers/mmc/core/sd_ops.c                          |    1 +
 drivers/mmc/core/sdio_bus.c                        |    1 +
 drivers/mmc/core/sdio_io.c                         |    1 +
 drivers/mmc/core/sdio_irq.c                        |    1 +
 drivers/mmc/host/mmc_spi.c                         |    1 +
 drivers/mmc/host/mxs-mmc.c                         |    1 +
 drivers/mmc/host/sdhci-of-esdhc.c                  |    1 +
 drivers/mmc/host/sdhci-of-hlwd.c                   |    1 +
 drivers/mmc/host/sdhci-pci.c                       |    1 +
 drivers/mmc/host/sdhci-pltfm.c                     |    1 +
 drivers/mmc/host/sdhci-pxav2.c                     |    1 +
 drivers/mmc/host/sdhci-pxav3.c                     |    1 +
 drivers/mmc/host/sdhci-s3c.c                       |    1 +
 drivers/mmc/host/sdhci-spear.c                     |    1 +
 drivers/mmc/host/sdhci-tegra.c                     |    1 +
 drivers/mmc/host/sdhci.c                           |    1 +
 drivers/mmc/host/sdricoh_cs.c                      |    1 +
 drivers/mmc/host/sh_mmcif.c                        |    1 +
 drivers/mmc/host/sh_mobile_sdhi.c                  |    1 +
 drivers/mmc/host/tifm_sd.c                         |    1 +
 drivers/mmc/host/via-sdmmc.c                       |    1 +
 drivers/mtd/ar7part.c                              |    1 +
 drivers/mtd/cmdlinepart.c                          |    1 +
 drivers/mtd/lpddr/lpddr_cmds.c                     |    1 +
 drivers/mtd/mtdblock_ro.c                          |    1 +
 drivers/mtd/mtdsuper.c                             |    1 +
 drivers/mtd/nand/cafe_nand.c                       |    1 +
 drivers/mtd/nand/cmx270_nand.c                     |    1 +
 drivers/mtd/nand/diskonchip.c                      |    1 +
 drivers/mtd/nand/nand_bbt.c                        |    1 +
 drivers/mtd/nand/omap2.c                           |    1 +
 drivers/mtd/nand/sm_common.c                       |    1 +
 drivers/mtd/onenand/onenand_bbt.c                  |    1 +
 drivers/mtd/redboot.c                              |    1 +
 drivers/mtd/rfd_ftl.c                              |    1 +
 drivers/mtd/ubi/vmt.c                              |    1 +
 drivers/net/mlx4/alloc.c                           |    1 +
 drivers/net/mlx4/catas.c                           |    1 +
 drivers/net/mlx4/cmd.c                             |    1 +
 drivers/net/mlx4/cq.c                              |    1 +
 drivers/net/mlx4/eq.c                              |    1 +
 drivers/net/mlx4/fw.c                              |    1 +
 drivers/net/mlx4/intf.c                            |    1 +
 drivers/net/mlx4/mr.c                              |    1 +
 drivers/net/mlx4/pd.c                              |    1 +
 drivers/net/mlx4/port.c                            |    1 +
 drivers/net/mlx4/qp.c                              |    1 +
 drivers/net/mlx4/srq.c                             |    1 +
 drivers/net/phy/realtek.c                          |    1 +
 drivers/net/wireless/b43/pcmcia.c                  |    1 +
 drivers/of/of_pci.c                                |    1 +
 drivers/of/of_pci_irq.c                            |    1 +
 drivers/of/of_spi.c                                |    1 +
 drivers/parisc/ccio-dma.c                          |    1 +
 drivers/parisc/sba_iommu.c                         |    1 +
 drivers/pci/hotplug-pci.c                          |    1 +
 drivers/pci/hotplug/pciehp_acpi.c                  |    1 +
 drivers/pci/hotplug/pcihp_slot.c                   |    1 +
 drivers/pci/hotplug/rpadlpar_core.c                |    1 +
 drivers/pci/htirq.c                                |    1 +
 drivers/pci/iov.c                                  |    1 +
 drivers/pci/irq.c                                  |    1 +
 drivers/pci/msi.c                                  |    1 +
 drivers/pci/pci-sysfs.c                            |    1 +
 drivers/pci/quirks.c                               |    1 +
 drivers/pci/rom.c                                  |    1 +
 drivers/pci/setup-res.c                            |    1 +
 drivers/pci/slot.c                                 |    1 +
 drivers/pci/vpd.c                                  |    1 +
 drivers/pcmcia/db1xxx_ss.c                         |    1 +
 drivers/pcmcia/pxa2xx_cm_x255.c                    |    1 +
 drivers/pcmcia/pxa2xx_cm_x270.c                    |    1 +
 drivers/platform/x86/intel_scu_ipc.c               |    1 +
 drivers/platform/x86/msi-wmi.c                     |    1 +
 drivers/platform/x86/wmi.c                         |    1 +
 drivers/power/max17042_battery.c                   |    1 +
 drivers/power/max8903_charger.c                    |    1 +
 drivers/power/power_supply_sysfs.c                 |    1 +
 drivers/ps3/ps3stor_lib.c                          |    1 +
 drivers/ps3/sys-manager-core.c                     |    1 +
 drivers/rapidio/switches/idt_gen2.c                |    1 +
 drivers/regulator/88pm8607.c                       |    1 +
 drivers/regulator/ab8500.c                         |    1 +
 drivers/regulator/bq24022.c                        |    1 +
 drivers/regulator/da903x.c                         |    1 +
 drivers/regulator/db8500-prcmu.c                   |    1 +
 drivers/regulator/dummy.c                          |    1 +
 drivers/regulator/fixed.c                          |    1 +
 drivers/regulator/lp3971.c                         |    1 +
 drivers/regulator/lp3972.c                         |    1 +
 drivers/regulator/max8925-regulator.c              |    1 +
 drivers/regulator/max8997.c                        |    1 +
 drivers/regulator/mc13783-regulator.c              |    1 +
 drivers/regulator/mc13892-regulator.c              |    1 +
 drivers/regulator/mc13xxx-regulator-core.c         |    1 +
 drivers/regulator/tps6586x-regulator.c             |    1 +
 drivers/regulator/userspace-consumer.c             |    1 +
 drivers/regulator/virtual.c                        |    1 +
 drivers/regulator/wm8400-regulator.c               |    1 +
 drivers/rtc/interface.c                            |    1 +
 drivers/rtc/rtc-dm355evm.c                         |    1 +
 drivers/rtc/rtc-ds1305.c                           |    1 +
 drivers/rtc/rtc-ds1511.c                           |    1 +
 drivers/rtc/rtc-ds1553.c                           |    1 +
 drivers/rtc/rtc-ds1672.c                           |    1 +
 drivers/rtc/rtc-ds1742.c                           |    1 +
 drivers/rtc/rtc-em3027.c                           |    1 +
 drivers/rtc/rtc-isl12022.c                         |    1 +
 drivers/rtc/rtc-mv.c                               |    1 +
 drivers/rtc/rtc-pcf2123.c                          |    1 +
 drivers/rtc/rtc-pcf8563.c                          |    1 +
 drivers/rtc/rtc-rs5c348.c                          |    1 +
 drivers/rtc/rtc-rs5c372.c                          |    1 +
 drivers/rtc/rtc-stk17ta8.c                         |    1 +
 drivers/rtc/rtc-tx4939.c                           |    1 +
 drivers/rtc/rtc-x1205.c                            |    1 +
 drivers/s390/char/fs3270.c                         |    1 +
 drivers/s390/char/sclp_cpi_sys.c                   |    1 +
 drivers/s390/char/vmur.c                           |    1 +
 drivers/s390/cio/chp.c                             |    2 +
 drivers/s390/cio/qdio_debug.c                      |    2 +
 drivers/s390/kvm/kvm_virtio.c                      |    1 +
 drivers/s390/scsi/zfcp_ccw.c                       |    1 +
 drivers/s390/scsi/zfcp_dbf.c                       |    1 +
 drivers/s390/scsi/zfcp_scsi.c                      |    1 +
 drivers/scsi/a2091.c                               |    1 +
 drivers/scsi/a3000.c                               |    1 +
 drivers/scsi/aacraid/aachba.c                      |    1 +
 drivers/scsi/bfa/bfad_debugfs.c                    |    1 +
 drivers/scsi/bfa/bfad_im.c                         |    2 +
 drivers/scsi/device_handler/scsi_dh.c              |    1 +
 drivers/scsi/device_handler/scsi_dh_alua.c         |    1 +
 drivers/scsi/device_handler/scsi_dh_emc.c          |    1 +
 drivers/scsi/device_handler/scsi_dh_hp_sw.c        |    1 +
 drivers/scsi/device_handler/scsi_dh_rdac.c         |    1 +
 drivers/scsi/gvp11.c                               |    1 +
 drivers/scsi/libfc/fc_disc.c                       |    1 +
 drivers/scsi/libfc/fc_elsct.c                      |    1 +
 drivers/scsi/libfc/fc_exch.c                       |    1 +
 drivers/scsi/libfc/fc_libfc.c                      |    1 +
 drivers/scsi/libfc/fc_lport.c                      |    1 +
 drivers/scsi/libfc/fc_npiv.c                       |    1 +
 drivers/scsi/libfc/fc_rport.c                      |    1 +
 drivers/scsi/libsas/sas_scsi_host.c                |    1 +
 drivers/scsi/libsas/sas_task.c                     |    1 +
 drivers/scsi/libsrp.c                              |    1 +
 drivers/scsi/lpfc/lpfc_attr.c                      |    1 +
 drivers/scsi/lpfc/lpfc_debugfs.c                   |    1 +
 drivers/scsi/lpfc/lpfc_init.c                      |    1 +
 drivers/scsi/lpfc/lpfc_scsi.c                      |    1 +
 drivers/scsi/mac53c94.c                            |    1 +
 drivers/scsi/megaraid/megaraid_mbox.c              |    1 +
 drivers/scsi/osd/osd_initiator.c                   |    1 +
 drivers/scsi/ps3rom.c                              |    1 +
 drivers/scsi/scsi_lib.c                            |    1 +
 drivers/scsi/scsi_lib_dma.c                        |    1 +
 drivers/scsi/scsi_pm.c                             |    1 +
 drivers/scsi/sr_ioctl.c                            |    1 +
 drivers/sfi/sfi_core.h                             |    3 +
 drivers/sh/intc/core.c                             |    1 +
 drivers/sh/intc/virq.c                             |    1 +
 drivers/sh/maple/maple.c                           |    1 +
 drivers/spi/spi-altera.c                           |    1 +
 drivers/spi/spi-au1550.c                           |    1 +
 drivers/spi/spi-bitbang.c                          |    1 +
 drivers/spi/spi-butterfly.c                        |    1 +
 drivers/spi/spi-dw-mmio.c                          |    1 +
 drivers/spi/spi-dw-pci.c                           |    1 +
 drivers/spi/spi-dw.c                               |    1 +
 drivers/spi/spi-gpio.c                             |    1 +
 drivers/spi/spi-oc-tiny.c                          |    1 +
 drivers/spi/spi-omap-uwire.c                       |    1 +
 drivers/spi/spi-orion.c                            |    1 +
 drivers/spi/spi-pxa2xx-pci.c                       |    1 +
 drivers/spi/spi-s3c24xx.c                          |    1 +
 drivers/spi/spi-sh-msiof.c                         |    1 +
 drivers/spi/spi-sh-sci.c                           |    1 +
 drivers/spi/spi-ti-ssp.c                           |    1 +
 drivers/spi/spi-tle62x0.c                          |    1 +
 drivers/spi/spi-txx9.c                             |    1 +
 drivers/spi/spi.c                                  |    1 +
 drivers/ssb/b43_pci_bridge.c                       |    1 +
 drivers/ssb/driver_chipcommon.c                    |    1 +
 drivers/ssb/driver_chipcommon_pmu.c                |    1 +
 drivers/ssb/driver_gige.c                          |    1 +
 drivers/ssb/driver_pcicore.c                       |    1 +
 drivers/ssb/embedded.c                             |    1 +
 drivers/ssb/main.c                                 |    1 +
 drivers/ssb/pcihost_wrapper.c                      |    1 +
 drivers/staging/altera-stapl/altera.c              |    1 +
 drivers/staging/brcm80211/brcmutil/wifi.c          |    1 +
 drivers/staging/dt3155v4l/dt3155v4l.c              |    2 +
 drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c |    1 +
 drivers/staging/iio/accel/adis16201_core.c         |    1 +
 drivers/staging/iio/accel/adis16203_core.c         |    1 +
 drivers/staging/iio/accel/adis16204_core.c         |    1 +
 drivers/staging/iio/accel/adis16209_core.c         |    1 +
 drivers/staging/iio/accel/adis16220_core.c         |    1 +
 drivers/staging/iio/accel/adis16240_core.c         |    1 +
 drivers/staging/iio/accel/kxsd9.c                  |    1 +
 drivers/staging/iio/accel/lis3l02dq_core.c         |    1 +
 drivers/staging/iio/accel/sca3000_core.c           |    1 +
 drivers/staging/iio/adc/ad7150.c                   |    1 +
 drivers/staging/iio/adc/ad7152.c                   |    1 +
 drivers/staging/iio/adc/ad7291.c                   |    1 +
 drivers/staging/iio/adc/ad7298_core.c              |    1 +
 drivers/staging/iio/adc/ad7314.c                   |    1 +
 drivers/staging/iio/adc/ad7476_core.c              |    1 +
 drivers/staging/iio/adc/ad7606_core.c              |    1 +
 drivers/staging/iio/adc/ad7745.c                   |    1 +
 drivers/staging/iio/adc/ad7780.c                   |    1 +
 drivers/staging/iio/adc/ad7816.c                   |    1 +
 drivers/staging/iio/adc/ad7887_core.c              |    1 +
 drivers/staging/iio/adc/ad799x_core.c              |    1 +
 drivers/staging/iio/adc/adt7310.c                  |    1 +
 drivers/staging/iio/adc/adt7410.c                  |    1 +
 drivers/staging/iio/adc/adt75.c                    |    1 +
 drivers/staging/iio/adc/max1363_core.c             |    1 +
 drivers/staging/iio/addac/adt7316-i2c.c            |    1 +
 drivers/staging/iio/addac/adt7316.c                |    1 +
 drivers/staging/iio/dac/ad5446.c                   |    1 +
 drivers/staging/iio/dac/ad5504.c                   |    1 +
 drivers/staging/iio/dac/ad5624r_spi.c              |    1 +
 drivers/staging/iio/dac/ad5686.c                   |    1 +
 drivers/staging/iio/dac/ad5791.c                   |    1 +
 drivers/staging/iio/dds/ad5930.c                   |    1 +
 drivers/staging/iio/dds/ad9832.c                   |    1 +
 drivers/staging/iio/dds/ad9834.c                   |    1 +
 drivers/staging/iio/dds/ad9850.c                   |    1 +
 drivers/staging/iio/dds/ad9852.c                   |    1 +
 drivers/staging/iio/dds/ad9910.c                   |    1 +
 drivers/staging/iio/dds/ad9951.c                   |    1 +
 drivers/staging/iio/gyro/adis16060_core.c          |    1 +
 drivers/staging/iio/gyro/adis16080_core.c          |    1 +
 drivers/staging/iio/gyro/adis16130_core.c          |    1 +
 drivers/staging/iio/gyro/adis16260_core.c          |    1 +
 drivers/staging/iio/gyro/adxrs450_core.c           |    1 +
 drivers/staging/iio/imu/adis16400_core.c           |    1 +
 drivers/staging/iio/industrialio-ring.c            |    1 +
 drivers/staging/iio/light/tsl2583.c                |    1 +
 drivers/staging/iio/meter/ade7753.c                |    1 +
 drivers/staging/iio/meter/ade7754.c                |    1 +
 drivers/staging/iio/meter/ade7758_core.c           |    1 +
 drivers/staging/iio/meter/ade7759.c                |    1 +
 drivers/staging/iio/meter/ade7854-i2c.c            |    1 +
 drivers/staging/iio/meter/ade7854-spi.c            |    1 +
 drivers/staging/iio/meter/ade7854.c                |    1 +
 drivers/staging/iio/resolver/ad2s120x.c            |    1 +
 drivers/staging/iio/resolver/ad2s1210.c            |    1 +
 drivers/staging/iio/resolver/ad2s90.c              |    1 +
 drivers/staging/iio/trigger.h                      |    1 +
 .../staging/intel_sst/intel_sst_drv_interface.c    |    1 +
 drivers/staging/line6/audio.c                      |    1 +
 drivers/staging/olpc_dcon/olpc_dcon.c              |    1 +
 drivers/staging/sm7xx/smtcfb.c                     |    2 +
 drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c      |    1 +
 drivers/staging/usbip/stub_dev.c                   |    1 +
 drivers/staging/usbip/stub_main.c                  |    1 +
 drivers/staging/usbip/usbip_event.c                |    1 +
 drivers/tty/hvc/hvc_iseries.c                      |    1 +
 drivers/tty/hvc/hvc_vio.c                          |    1 +
 drivers/tty/serial/jsm/jsm_driver.c                |    2 +-
 drivers/tty/serial/kgdboc.c                        |    1 +
 drivers/tty/serial/max3100.c                       |    1 +
 drivers/tty/serial/max3107-aava.c                  |    1 +
 drivers/tty/serial/max3107.c                       |    1 +
 drivers/tty/serial/nwpserial.c                     |    1 +
 drivers/tty/serial/timbuart.c                      |    1 +
 drivers/tty/serial/xilinx_uartps.c                 |    1 +
 drivers/tty/vt/vc_screen.c                         |    1 +
 drivers/uio/uio_pdrv.c                             |    1 +
 drivers/uio/uio_pdrv_genirq.c                      |    1 +
 drivers/usb/c67x00/c67x00-drv.c                    |    1 +
 drivers/usb/core/driver.c                          |    1 +
 drivers/usb/core/notify.c                          |    1 +
 drivers/usb/gadget/cdc2.c                          |    1 +
 drivers/usb/gadget/composite.c                     |    1 +
 drivers/usb/gadget/dbgp.c                          |    1 +
 drivers/usb/gadget/f_fs.c                          |    1 +
 drivers/usb/gadget/f_obex.c                        |    1 +
 drivers/usb/gadget/f_sourcesink.c                  |    1 +
 drivers/usb/gadget/file_storage.c                  |    1 +
 drivers/usb/gadget/fusb300_udc.c                   |    1 +
 drivers/usb/gadget/gmidi.c                         |    1 +
 drivers/usb/gadget/u_serial.c                      |    1 +
 drivers/usb/host/ehci-mxc.c                        |    1 +
 drivers/usb/host/fsl-mph-dr-of.c                   |    1 +
 drivers/usb/host/isp1760-if.c                      |    1 +
 drivers/usb/host/pci-quirks.c                      |    1 +
 drivers/usb/host/whci/debug.c                      |    1 +
 drivers/usb/host/whci/hcd.c                        |    1 +
 drivers/usb/host/xhci-hub.c                        |    1 +
 drivers/usb/host/xhci-pci.c                        |    1 +
 drivers/usb/mon/mon_bin.c                          |    1 +
 drivers/usb/mon/mon_stat.c                         |    1 +
 drivers/usb/mon/mon_text.c                         |    1 +
 drivers/usb/otg/gpio_vbus.c                        |    1 +
 drivers/usb/otg/otg.c                              |    1 +
 drivers/usb/otg/ulpi.c                             |    1 +
 drivers/usb/serial/aircable.c                      |    1 +
 drivers/usb/serial/qcserial.c                      |    1 +
 drivers/usb/storage/option_ms.c                    |    1 +
 drivers/usb/storage/protocol.c                     |    1 +
 drivers/usb/storage/sierra_ms.c                    |    1 +
 drivers/usb/storage/transport.c                    |    1 +
 drivers/usb/storage/uas.c                          |    1 +
 drivers/usb/wusbcore/devconnect.c                  |    1 +
 drivers/usb/wusbcore/mmc.c                         |    1 +
 drivers/usb/wusbcore/rh.c                          |    1 +
 drivers/usb/wusbcore/security.c                    |    1 +
 drivers/usb/wusbcore/wa-hc.c                       |    1 +
 drivers/usb/wusbcore/wa-rpipe.c                    |    1 +
 drivers/usb/wusbcore/wa-xfer.c                     |    1 +
 drivers/uwb/est.c                                  |    1 +
 drivers/uwb/i1480/dfu/dfu.c                        |    1 +
 drivers/uwb/ie.c                                   |    1 +
 drivers/uwb/lc-dev.c                               |    2 +
 drivers/uwb/neh.c                                  |    1 +
 drivers/uwb/pal.c                                  |    1 +
 drivers/uwb/radio.c                                |    1 +
 drivers/uwb/reset.c                                |    1 +
 drivers/uwb/rsv.c                                  |    1 +
 drivers/uwb/scan.c                                 |    1 +
 drivers/uwb/umc-bus.c                              |    1 +
 drivers/uwb/umc-dev.c                              |    1 +
 drivers/uwb/umc-drv.c                              |    1 +
 drivers/uwb/whci.c                                 |    1 +
 drivers/video/atmel_lcdfb.c                        |    1 +
 drivers/video/backlight/88pm860x_bl.c              |    1 +
 drivers/video/backlight/adp5520_bl.c               |    1 +
 drivers/video/backlight/ams369fg06.c               |    1 +
 drivers/video/backlight/da903x_bl.c                |    1 +
 drivers/video/backlight/l4f00242t03.c              |    1 +
 drivers/video/backlight/ld9040.c                   |    1 +
 drivers/video/backlight/lms283gf05.c               |    1 +
 drivers/video/backlight/max8925_bl.c               |    1 +
 drivers/video/backlight/s6e63m0.c                  |    1 +
 drivers/video/backlight/wm831x_bl.c                |    1 +
 drivers/video/carminefb.c                          |    1 +
 drivers/video/cobalt_lcdfb.c                       |    1 +
 drivers/video/fb_ddc.c                             |    3 +-
 drivers/video/fb_notify.c                          |    1 +
 drivers/video/mb862xx/mb862xx-i2c.c                |    1 +
 drivers/video/mb862xx/mb862xxfbdrv.c               |    1 +
 drivers/video/msm/mdp.c                            |    1 +
 drivers/video/omap/lcd_mipid.c                     |    1 +
 drivers/video/omap/omapfb_main.c                   |    1 +
 drivers/video/omap2/dss/dispc.c                    |    1 +
 drivers/video/omap2/dss/dpi.c                      |    1 +
 drivers/video/omap2/dss/dsi.c                      |    1 +
 drivers/video/omap2/dss/dss.c                      |    1 +
 drivers/video/omap2/dss/rfbi.c                     |    1 +
 drivers/video/omap2/dss/sdi.c                      |    1 +
 drivers/video/omap2/omapfb/omapfb-ioctl.c          |    1 +
 drivers/video/savage/savagefb_accel.c              |    1 +
 drivers/video/sh_mipi_dsi.c                        |    1 +
 drivers/video/sh_mobile_lcdcfb.c                   |    1 +
 drivers/video/via/via-gpio.c                       |    1 +
 drivers/video/w100fb.c                             |    1 +
 drivers/virtio/virtio.c                            |    1 +
 drivers/virtio/virtio_balloon.c                    |    1 +
 drivers/virtio/virtio_ring.c                       |    1 +
 drivers/w1/w1_family.c                             |    1 +
 drivers/xen/balloon.c                              |    1 +
 drivers/xen/manage.c                               |    1 +
 drivers/xen/swiotlb-xen.c                          |    1 +
 drivers/xen/xen-pciback/conf_space.c               |    1 +
 drivers/xen/xen-selfballoon.c                      |    2 +
 drivers/xen/xenbus/xenbus_client.c                 |    1 +
 drivers/xen/xenbus/xenbus_probe.c                  |    1 +
 drivers/xen/xenbus/xenbus_probe_backend.c          |    1 +
 drivers/xen/xenbus/xenbus_probe_frontend.c         |    1 +
 drivers/zorro/proc.c                               |    1 +
 fs/bio-integrity.c                                 |    1 +
 fs/exofs/super.c                                   |    1 +
 fs/gfs2/ops_fstype.c                               |    1 +
 fs/ioprio.c                                        |    1 +
 fs/jfs/jfs_logmgr.c                                |    1 +
 fs/logfs/super.c                                   |    1 +
 fs/nfsd/nfssvc.c                                   |    1 +
 fs/proc/vmcore.c                                   |    1 +
 include/acpi/platform/aclinux.h                    |    2 +-
 include/drm/drmP.h                                 |    3 +-
 include/linux/bcma/bcma.h                          |    7 +-
 include/linux/blkdev.h                             |    2 +-
 include/linux/cpuidle.h                            |    3 +-
 include/linux/crypto.h                             |    6 --
 include/linux/device.h                             |   15 ++-
 include/linux/device_cgroup.h                      |    1 -
 include/linux/dmaengine.h                          |    2 +
 include/linux/export.h                             |   89 ++++++++++++++++++++
 include/linux/firmware.h                           |    2 +-
 include/linux/ftrace.h                             |    2 +-
 include/linux/gameport.h                           |   17 ++--
 include/linux/hid.h                                |    9 +-
 include/linux/i2c.h                                |   10 +-
 include/linux/ipmi.h                               |    3 +-
 include/linux/ipmi_smi.h                           |    1 -
 include/linux/mdio-bitbang.h                       |    3 +-
 include/linux/module.h                             |   68 +---------------
 include/linux/mtd/mtd.h                            |    3 +-
 include/linux/of_platform.h                        |    1 -
 include/linux/pci_hotplug.h                        |   10 +--
 include/linux/pm_runtime.h                         |    1 +
 include/linux/regulator/driver.h                   |    1 +
 include/linux/serio.h                              |   20 +++--
 include/linux/ssb/ssb.h                            |    7 +-
 include/linux/stop_machine.h                       |    1 +
 include/linux/sunrpc/svc_xprt.h                    |    3 +-
 include/linux/sysdev.h                             |    1 -
 include/linux/textsearch.h                         |    3 +-
 include/linux/uio_driver.h                         |   12 ++--
 include/linux/usb.h                                |    9 +-
 include/linux/uwb.h                                |    1 +
 include/linux/uwb/umc.h                            |    7 +-
 include/linux/vermagic.h                           |    1 -
 include/linux/vlynq.h                              |    3 +-
 include/media/saa7146.h                            |    3 +-
 include/media/v4l2-int-device.h                    |    3 +-
 include/net/inet_timewait_sock.h                   |    1 -
 include/net/lib80211.h                             |    3 +-
 include/net/sch_generic.h                          |    1 -
 include/net/sock.h                                 |    2 +-
 include/sound/core.h                               |    2 +-
 include/trace/define_trace.h                       |    2 +-
 include/trace/events/module.h                      |    2 +-
 include/xen/xenbus.h                               |    1 +
 kernel/async.c                                     |    2 +-
 kernel/audit.c                                     |    2 +-
 kernel/auditsc.c                                   |    2 +-
 kernel/capability.c                                |    2 +-
 kernel/cgroup_freezer.c                            |    2 +-
 kernel/compat.c                                    |    1 +
 kernel/cpu.c                                       |    2 +-
 kernel/cpuset.c                                    |    2 +-
 kernel/crash_dump.c                                |    2 +-
 kernel/cred.c                                      |    2 +-
 kernel/debug/kdb/kdb_debugger.c                    |    1 +
 kernel/dma.c                                       |    2 +-
 kernel/events/core.c                               |    1 +
 kernel/exit.c                                      |    3 +-
 kernel/fork.c                                      |    3 +-
 kernel/freezer.c                                   |    2 +-
 kernel/futex.c                                     |    2 +-
 kernel/groups.c                                    |    2 +-
 kernel/hrtimer.c                                   |    2 +-
 kernel/hung_task.c                                 |    2 +-
 kernel/irq_work.c                                  |    4 +-
 kernel/kfifo.c                                     |    2 +-
 kernel/kprobes.c                                   |    2 +-
 kernel/ksysfs.c                                    |    3 +-
 kernel/kthread.c                                   |    2 +-
 kernel/latencytop.c                                |    2 +-
 kernel/lockdep.c                                   |    2 +-
 kernel/lockdep_proc.c                              |    2 +-
 kernel/module.c                                    |    2 +-
 kernel/mutex-debug.c                               |    2 +-
 kernel/mutex.c                                     |    2 +-
 kernel/notifier.c                                  |    2 +-
 kernel/nsproxy.c                                   |    2 +-
 kernel/padata.c                                    |    2 +-
 kernel/params.c                                    |    4 +-
 kernel/pid.c                                       |    2 +-
 kernel/posix-timers.c                              |    2 +-
 kernel/power/hibernate.c                           |    1 +
 kernel/power/main.c                                |    1 +
 kernel/power/suspend.c                             |    2 +
 kernel/printk.c                                    |    2 +-
 kernel/profile.c                                   |    2 +-
 kernel/ptrace.c                                    |    2 +-
 kernel/range.c                                     |    2 +-
 kernel/rcupdate.c                                  |    2 +-
 kernel/rcutiny.c                                   |    4 +-
 kernel/rcutorture.c                                |    3 +-
 kernel/rcutree.c                                   |    2 +-
 kernel/rcutree_trace.c                             |    3 +-
 kernel/relay.c                                     |    2 +-
 kernel/resource.c                                  |    2 +-
 kernel/rtmutex-debug.c                             |    2 +-
 kernel/rtmutex-tester.c                            |    2 +-
 kernel/rtmutex.c                                   |    2 +-
 kernel/rwsem.c                                     |    2 +-
 kernel/sched.c                                     |    2 +-
 kernel/sched_clock.c                               |    2 +-
 kernel/semaphore.c                                 |    2 +-
 kernel/signal.c                                    |    2 +-
 kernel/smp.c                                       |    2 +-
 kernel/softirq.c                                   |    2 +-
 kernel/spinlock.c                                  |    2 +-
 kernel/srcu.c                                      |    2 +-
 kernel/stacktrace.c                                |    2 +-
 kernel/stop_machine.c                              |    2 +-
 kernel/sys.c                                       |    3 +-
 kernel/sysctl.c                                    |    2 +-
 kernel/time.c                                      |    2 +-
 kernel/time/posix-clock.c                          |    1 +
 kernel/timer.c                                     |    2 +-
 kernel/trace/blktrace.c                            |    1 +
 kernel/trace/ftrace.c                              |    1 +
 kernel/trace/trace_syscalls.c                      |    1 +
 kernel/up.c                                        |    2 +-
 kernel/user-return-notifier.c                      |    2 +-
 kernel/user.c                                      |    2 +-
 kernel/user_namespace.c                            |    2 +-
 kernel/utsname.c                                   |    2 +-
 kernel/utsname_sysctl.c                            |    2 +-
 kernel/wait.c                                      |    2 +-
 kernel/watchdog.c                                  |    3 +-
 kernel/workqueue.c                                 |    2 +-
 lib/dma-debug.c                                    |    1 +
 lib/raid6/algos.c                                  |    1 +
 lib/raid6/mktables.c                               |    1 +
 lib/raid6/recov.c                                  |    1 +
 mm/fremap.c                                        |    1 -
 mm/memcontrol.c                                    |    1 +
 mm/memory-failure.c                                |    1 +
 mm/mmzone.c                                        |    1 -
 mm/quicklist.c                                     |    1 -
 mm/sparse-vmemmap.c                                |    1 -
 mm/swap_state.c                                    |    1 -
 mm/swapfile.c                                      |    1 -
 net/caif/cfpkt_skbuff.c                            |    1 +
 net/netfilter/ipset/pfxlen.c                       |    1 +
 net/rfkill/input.c                                 |    1 +
 security/selinux/netlink.c                         |    1 +
 sound/core/control.c                               |    1 +
 sound/core/device.c                                |    1 +
 sound/core/hwdep.c                                 |    1 +
 sound/core/info.c                                  |    1 +
 sound/core/info_oss.c                              |    1 +
 sound/core/init.c                                  |    1 +
 sound/core/isadma.c                                |    1 +
 sound/core/jack.c                                  |    1 +
 sound/core/memory.c                                |    1 +
 sound/core/misc.c                                  |    1 +
 sound/core/oss/mixer_oss.c                         |    1 +
 sound/core/rawmidi.c                               |    1 +
 sound/core/rtctimer.c                              |    2 +-
 sound/core/seq/oss/seq_oss.c                       |    2 +-
 sound/core/seq/oss/seq_oss_init.c                  |    2 +-
 sound/core/seq/oss/seq_oss_synth.c                 |    1 +
 sound/core/seq/seq.c                               |    2 +-
 sound/core/seq/seq_clientmgr.c                     |    1 +
 sound/core/seq/seq_device.c                        |    1 +
 sound/core/seq/seq_dummy.c                         |    2 +-
 sound/core/seq/seq_info.c                          |    1 +
 sound/core/seq/seq_lock.c                          |    1 +
 sound/core/seq/seq_memory.c                        |    1 +
 sound/core/seq/seq_midi.c                          |    2 +-
 sound/core/seq/seq_midi_emul.c                     |    1 +
 sound/core/seq/seq_midi_event.c                    |    1 +
 sound/core/seq/seq_ports.c                         |    1 +
 sound/core/seq/seq_system.c                        |    1 +
 sound/core/seq/seq_virmidi.c                       |    1 +
 sound/core/sound.c                                 |    2 +-
 sound/core/sound_oss.c                             |    1 +
 sound/core/timer.c                                 |    2 +-
 sound/core/vmaster.c                               |    1 +
 sound/drivers/mpu401/mpu401.c                      |    2 +-
 sound/drivers/mpu401/mpu401_uart.c                 |    1 +
 sound/drivers/mtpav.c                              |    1 +
 sound/drivers/mts64.c                              |    1 +
 sound/drivers/opl3/opl3_lib.c                      |    1 +
 sound/drivers/opl3/opl3_oss.c                      |    1 +
 sound/drivers/opl3/opl3_seq.c                      |    1 +
 sound/drivers/opl3/opl3_synth.c                    |    1 +
 sound/drivers/opl4/opl4_lib.c                      |    1 +
 sound/drivers/opl4/opl4_proc.c                     |    1 +
 sound/drivers/opl4/opl4_seq.c                      |    1 +
 sound/drivers/portman2x4.c                         |    1 +
 sound/drivers/serial-u16550.c                      |    2 +-
 sound/drivers/virmidi.c                            |    2 +-
 sound/firewire/iso-resources.c                     |    1 +
 sound/firewire/packets-buffer.c                    |    1 +
 sound/i2c/i2c.c                                    |    1 +
 sound/i2c/other/ak4xxx-adda.c                      |    1 +
 sound/i2c/other/pt2258.c                           |    1 +
 sound/i2c/other/tea575x-tuner.c                    |    1 +
 sound/i2c/tea6330t.c                               |    1 +
 sound/isa/sb/emu8000.c                             |    1 +
 sound/isa/sb/emu8000_callback.c                    |    1 +
 sound/isa/sb/emu8000_patch.c                       |    1 +
 sound/isa/sb/emu8000_synth.c                       |    1 +
 sound/isa/wavefront/wavefront_fx.c                 |    1 +
 sound/isa/wavefront/wavefront_synth.c              |    1 +
 sound/pci/als4000.c                                |    2 +-
 sound/pci/asihpi/hpioctl.c                         |    1 +
 sound/pci/ctxfi/xfi.c                              |    1 +
 sound/pci/oxygen/oxygen_io.c                       |    1 +
 sound/soc/tegra/tegra_asoc_utils.c                 |    1 +
 sound/synth/emux/emux.c                            |    1 +
 sound/synth/emux/emux_oss.c                        |    1 +
 sound/synth/emux/emux_seq.c                        |    2 +-
 sound/synth/emux/emux_synth.c                      |    1 +
 sound/synth/emux/soundfont.c                       |    1 +
 sound/synth/util_mem.c                             |    1 +
 sound/usb/6fire/firmware.c                         |    1 +
 sound/usb/midi.c                                   |    1 +
 virt/kvm/iommu.c                                   |    2 +
 1381 files changed, 1514 insertions(+), 428 deletions(-)
 create mode 100644 include/linux/export.h

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-02 18:30   ` Paul Gortmaker
@ 2011-08-08  2:42     ` Mike Frysinger
  2011-08-10 19:09       ` Paul Gortmaker
  0 siblings, 1 reply; 31+ messages in thread
From: Mike Frysinger @ 2011-08-08  2:42 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On Tue, Aug 2, 2011 at 14:30, Paul Gortmaker wrote:
> [Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 28/07/2011 (Thu 06:19) Linus Torvalds wrote:
>> On Wed, Jul 27, 2011 at 10:16 PM, Paul Gortmaker wrote:
>> > For all 160 commits, the branch "module.h-split", available here:
>> >
>> >        git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux.git
>> >
>> > has the complete content.  I've put the header changes after all the
>> > patches from the top 5 categories, so that people bisecting non related
>> > issues at a later date don't get hit with a commit zone with build failures.
>>
>> Ok, sounds good. Two questions:
>>
>>  - how much testing (randconfig? different architectures?) has this gotten?
>>
>>  - how much does this actually improve compile times (for a "normal"
>> build or a "allmodconfig" one)?
>>
>> It certainly sounds like the RightThing(tm) to do, but I'd like to
>> know that there is real actual improvements to build times and that
>> the pain won't be too bad...
>
> Now that it has done time in linux-next, let me address the testing
> and (hopefully lack of) pain part.

Blackfin is broken because of this.  a simple grep of the tree
probably could pick this up.  maybe something like:
grep EXPORT_SYMBOL * -rIl | xargs grep -L linux/export.h

from my logs, i see at least:
arch/blackfin/kernel/dma-mapping.c:103: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/kernel/dma-mapping.c:111: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/kernel/dma-mapping.c:121: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/kernel/dma-mapping.c:136: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/kernel/dma-mapping.c:148: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/kernel/sys_bfin.c:50: warning: type defaults to 'int' in
declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf518/boards/ezbrd.c:825: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf527/boards/ad7160eval.c:852: warning: type
defaults to 'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf527/boards/ezbrd.c:876: warning: type defaults to
'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf527/boards/ezkit.c:1317: warning: type defaults
to 'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf527/boards/tll6527m.c:938: warning: type defaults
to 'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mach-bf537/boards/dnp5370.c:396: warning: type defaults
to 'int' in declaration of 'EXPORT_SYMBOL'
arch/blackfin/mm/init.c:22: warning: type defaults to 'int' in
declaration of 'EXPORT_SYMBOL'
arch/blackfin/mm/init.c:32: warning: type defaults to 'int' in
declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:1002: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:107: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:1089: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:124: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:271: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:293: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:353: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:373: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:451: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:515: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:591: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:599: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:610: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:621: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:775: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:786: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:797: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:90: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
sound/soc/blackfin/bf5xx-sport.c:968: warning: type defaults to 'int'
in declaration of 'EXPORT_SYMBOL'
-mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-08  2:42     ` Mike Frysinger
@ 2011-08-10 19:09       ` Paul Gortmaker
  2011-08-11  4:34         ` Mike Frysinger
  0 siblings, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-08-10 19:09 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On 11-08-07 10:42 PM, Mike Frysinger wrote:

[...]

> 
> Blackfin is broken because of this.  a simple grep of the tree

I've run all the in-tree blackfin configs, so it is all good.

Have you thought about getting at least one blackfin defconfig in
the linux-next build coverage?  Gives you a better chance of
having people see when they've broken it.

Thanks,
Paul.

> probably could pick this up.  maybe something like:
> grep EXPORT_SYMBOL * -rIl | xargs grep -L linux/export.h
> 
> from my logs, i see at least:
> arch/blackfin/kernel/dma-mapping.c:103: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/kernel/dma-mapping.c:111: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/kernel/dma-mapping.c:121: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/kernel/dma-mapping.c:136: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/kernel/dma-mapping.c:148: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/kernel/sys_bfin.c:50: warning: type defaults to 'int' in
> declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf518/boards/ezbrd.c:825: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf527/boards/ad7160eval.c:852: warning: type
> defaults to 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf527/boards/ezbrd.c:876: warning: type defaults to
> 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf527/boards/ezkit.c:1317: warning: type defaults
> to 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf527/boards/tll6527m.c:938: warning: type defaults
> to 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mach-bf537/boards/dnp5370.c:396: warning: type defaults
> to 'int' in declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mm/init.c:22: warning: type defaults to 'int' in
> declaration of 'EXPORT_SYMBOL'
> arch/blackfin/mm/init.c:32: warning: type defaults to 'int' in
> declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:1002: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:107: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:1089: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:124: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:271: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:293: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:353: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:373: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:451: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:515: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:591: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:599: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:610: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:621: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:775: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:786: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:797: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:90: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> sound/soc/blackfin/bf5xx-sport.c:968: warning: type defaults to 'int'
> in declaration of 'EXPORT_SYMBOL'
> -mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-10 19:09       ` Paul Gortmaker
@ 2011-08-11  4:34         ` Mike Frysinger
  2011-08-11 13:10           ` Paul Gortmaker
  0 siblings, 1 reply; 31+ messages in thread
From: Mike Frysinger @ 2011-08-11  4:34 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On Wed, Aug 10, 2011 at 15:09, Paul Gortmaker wrote:
> On 11-08-07 10:42 PM, Mike Frysinger wrote:
>
> [...]
>
>> Blackfin is broken because of this.  a simple grep of the tree
>
> I've run all the in-tree blackfin configs, so it is all good.

so you made a change and it's all good <now> ?

> Have you thought about getting at least one blackfin defconfig in
> the linux-next build coverage?  Gives you a better chance of
> having people see when they've broken it.

all of the blackfin defconfigs get tested nightly in linux-next by an
ADI build machine.  i just didnt have a chance to review the logs as i
was traveling.
-mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-11  4:34         ` Mike Frysinger
@ 2011-08-11 13:10           ` Paul Gortmaker
  2011-08-11 17:15             ` Mike Frysinger
  0 siblings, 1 reply; 31+ messages in thread
From: Paul Gortmaker @ 2011-08-11 13:10 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On 11-08-11 12:34 AM, Mike Frysinger wrote:
> On Wed, Aug 10, 2011 at 15:09, Paul Gortmaker wrote:
>> On 11-08-07 10:42 PM, Mike Frysinger wrote:
>>
>> [...]
>>
>>> Blackfin is broken because of this.  a simple grep of the tree
>>
>> I've run all the in-tree blackfin configs, so it is all good.
> 
> so you made a change and it's all good <now> ?

Correct.

> 
>> Have you thought about getting at least one blackfin defconfig in
>> the linux-next build coverage?  Gives you a better chance of
>> having people see when they've broken it.
> 
> all of the blackfin defconfigs get tested nightly in linux-next by an
> ADI build machine.  i just didnt have a chance to review the logs as i
> was traveling.

That is good, but as you've noted, it isn't something that anyone
else can see when they are combing the normal linux-next build
results below looking to see if they broke anything.

http://kisskb.ellerman.id.au/kisskb/branch/9/

Thanks,
Paul.

> -mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-11 13:10           ` Paul Gortmaker
@ 2011-08-11 17:15             ` Mike Frysinger
  2011-08-11 17:20               ` Paul Gortmaker
  0 siblings, 1 reply; 31+ messages in thread
From: Mike Frysinger @ 2011-08-11 17:15 UTC (permalink / raw)
  To: Paul Gortmaker; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On Thu, Aug 11, 2011 at 09:10, Paul Gortmaker wrote:
> On 11-08-11 12:34 AM, Mike Frysinger wrote:
>> On Wed, Aug 10, 2011 at 15:09, Paul Gortmaker wrote:
>>> Have you thought about getting at least one blackfin defconfig in
>>> the linux-next build coverage?  Gives you a better chance of
>>> having people see when they've broken it.
>>
>> all of the blackfin defconfigs get tested nightly in linux-next by an
>> ADI build machine.  i just didnt have a chance to review the logs as i
>> was traveling.
>
> That is good, but as you've noted, it isn't something that anyone
> else can see when they are combing the normal linux-next build
> results below looking to see if they broke anything.
>
> http://kisskb.ellerman.id.au/kisskb/branch/9/

ive never heard of this site before, and there doesnt appear to be any
documentation on that site about it
-mike

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-08-11 17:15             ` Mike Frysinger
@ 2011-08-11 17:20               ` Paul Gortmaker
  0 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-08-11 17:20 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: Linus Torvalds, mingo, linux-kernel, akpm, linux-arch, sfr

On 11-08-11 01:15 PM, Mike Frysinger wrote:
> On Thu, Aug 11, 2011 at 09:10, Paul Gortmaker wrote:
>> On 11-08-11 12:34 AM, Mike Frysinger wrote:
>>> On Wed, Aug 10, 2011 at 15:09, Paul Gortmaker wrote:
>>>> Have you thought about getting at least one blackfin defconfig in
>>>> the linux-next build coverage?  Gives you a better chance of
>>>> having people see when they've broken it.
>>>
>>> all of the blackfin defconfigs get tested nightly in linux-next by an
>>> ADI build machine.  i just didnt have a chance to review the logs as i
>>> was traveling.
>>
>> That is good, but as you've noted, it isn't something that anyone
>> else can see when they are combing the normal linux-next build
>> results below looking to see if they broke anything.
>>
>> http://kisskb.ellerman.id.au/kisskb/branch/9/
> 
> ive never heard of this site before, and there doesnt appear to be any
> documentation on that site about it
> -mike

It is mentioned in the boilerplate text that Stephen puts in his
daily linux-next emails (copied below).  Note the text about
"always open to add more builds" -- that is what I had in mind
when suggesting you get blackfin added to -next coverage builds.

P.

--------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/v2.6/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" as mentioned in the FAQ on the wiki
(see below).

You can see which trees have been included by looking in the Next/Trees
file in the source.  There are also quilt-import.log and merge.log files
in the Next directory.  Between each merge, the tree was built with
a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the
final fixups (if any), it is also built with powerpc allnoconfig (32 and
64 bit), ppc44x_defconfig and allyesconfig (minus
CONFIG_PROFILE_ALL_BRANCHES - this fails its final link) and i386, sparc
and sparc64 defconfig. These builds also have
CONFIG_ENABLE_WARN_DEPRECATED, CONFIG_ENABLE_MUST_CHECK and
CONFIG_DEBUG_INFO disabled when necessary.

Below is a summary of the state of the merge.

We are up to 199 trees (counting Linus' and 28 trees of patches pending
for Linus' tree), more are welcome (even if they are currently empty).
Thanks to those who have contributed, and to those who haven't, please do.

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.

There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ .  Thanks to Frank Seidel.

--
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
                   ` (13 preceding siblings ...)
  2011-07-28 13:19 ` Linus Torvalds
@ 2011-10-13  2:07 ` Rusty Russell
  2011-10-13 21:51   ` Paul Gortmaker
  14 siblings, 1 reply; 31+ messages in thread
From: Rusty Russell @ 2011-10-13  2:07 UTC (permalink / raw)
  To: Paul Gortmaker, mingo, torvalds; +Cc: linux-kernel, akpm, linux-arch

On Thu, 28 Jul 2011 01:16:07 -0400, Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> I don't think there really is any rocket science or contentious stuff here.
> It is a sensible cleanup that adds organization and speeds up compiles.
> The RFC I'm hoping for is more about how/when we want to get this in tree.

In future, when you're ripping into module.h, please CC the module
maintainer.  It's not just a courtesy, it helps everyone avoid redundant
work.

You may insert your own sarcastic comment about "rocket science" here.

As to the patch: it's marginal improvement, but it's neater and I'm
happy you're doing it.

Thanks,
Rusty.

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage
  2011-10-13  2:07 ` Rusty Russell
@ 2011-10-13 21:51   ` Paul Gortmaker
  0 siblings, 0 replies; 31+ messages in thread
From: Paul Gortmaker @ 2011-10-13 21:51 UTC (permalink / raw)
  To: Rusty Russell; +Cc: mingo, torvalds, linux-kernel, akpm, linux-arch

[Re: [RFC/PULL 00/11] introduce export.h; reduce module.h usage] On 13/10/2011 (Thu 12:37) Rusty Russell wrote:

> On Thu, 28 Jul 2011 01:16:07 -0400, Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
> > I don't think there really is any rocket science or contentious stuff here.
> > It is a sensible cleanup that adds organization and speeds up compiles.
> > The RFC I'm hoping for is more about how/when we want to get this in tree.
> 
> In future, when you're ripping into module.h, please CC the module
> maintainer.  It's not just a courtesy, it helps everyone avoid redundant
> work.

Sorry about that.  I think I'd created the original module.h patch in
the context of the thread that Ingo started, and it never crossed my
mind at the time to run get_maintainer.pl on module.h itself.  And
that patch hasn't changed since.  An oversight on my part.  :(

> 
> You may insert your own sarcastic comment about "rocket science" here.

Yeah, fair enough -- remembering to CC maintainers isn't rocket science.
I hope you'll accept that it was an honest oversight caused by
circumstance and that it wasn't an intentional exclusion.

> 
> As to the patch: it's marginal improvement, but it's neater and I'm
> happy you're doing it.

Thanks -- I'm glad at least the end result is OK with you.

Paul.

> 
> Thanks,
> Rusty.

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2011-10-13 21:52 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-28  5:16 [RFC/PULL 00/11] introduce export.h; reduce module.h usage Paul Gortmaker
2011-07-28  5:16 ` [PATCH 01/11] module.h: split out the EXPORT_SYMBOL for faster compiles Paul Gortmaker
2011-07-28  5:16 ` [PATCH 02/11] sysdev.h: dont include <linux/module.h> for no reason Paul Gortmaker
2011-07-28  5:16 ` [PATCH 03/11] net: inet_timewait_sock doesnt need <linux/module.h> Paul Gortmaker
2011-07-28  5:16 ` [PATCH 04/11] device_cgroup.h: delete needless include <linux/module.h> Paul Gortmaker
2011-07-28  5:16 ` [PATCH 05/11] crypto.h: remove unused crypto_tfm_alg_modname() inline Paul Gortmaker
2011-07-28  5:16 ` [PATCH 06/11] linux/stop_machine.h: fix implicit use of smp.h for smp_processor_id Paul Gortmaker
2011-07-28  5:16 ` [PATCH 07/11] pm_runtime.h: explicitly requires notifier.h Paul Gortmaker
2011-07-28  5:16 ` [PATCH 08/11] uwb.h: fix implicit use of asm/page.h for PAGE_SIZE Paul Gortmaker
2011-07-28  5:16 ` [PATCH 09/11] net: sch_generic remove redundant use of <linux/module.h> Paul Gortmaker
2011-07-28  5:16 ` [PATCH 10/11] include: convert various register fcns to macros to avoid include chaining Paul Gortmaker
2011-07-28  5:16 ` [PATCH 11/11] include: replace linux/module.h with "struct module" wherever possible Paul Gortmaker
2011-07-28  7:15 ` [RFC/PULL 00/11] introduce export.h; reduce module.h usage Ingo Molnar
2011-07-28 15:42   ` Paul Gortmaker
2011-07-29  1:20     ` Stephen Rothwell
2011-08-01 11:49       ` Geert Uytterhoeven
2011-08-02  5:02         ` Paul Gortmaker
2011-08-02  6:54           ` Geert Uytterhoeven
2011-07-28  9:40 ` Anca Emanuel
2011-07-28 13:19 ` Linus Torvalds
2011-07-28 15:27   ` Paul Gortmaker
2011-07-28 19:18     ` Ingo Molnar
2011-08-02 18:30   ` Paul Gortmaker
2011-08-08  2:42     ` Mike Frysinger
2011-08-10 19:09       ` Paul Gortmaker
2011-08-11  4:34         ` Mike Frysinger
2011-08-11 13:10           ` Paul Gortmaker
2011-08-11 17:15             ` Mike Frysinger
2011-08-11 17:20               ` Paul Gortmaker
2011-10-13  2:07 ` Rusty Russell
2011-10-13 21:51   ` Paul Gortmaker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).