aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2011-05-26 13:46:22 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2011-10-31 19:32:32 -0400
commitde47725421ad5627a5c905f4e40bb844ebc06d29 (patch)
treebc23b0405d4a79dcc866a8b2877f128ee0ea9ffc
parenteb5589a8f0dab7e29021344228856339e6a1249c (diff)
include: replace linux/module.h with "struct module" wherever possible
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>
-rw-r--r--include/drm/drmP.h3
-rw-r--r--include/linux/blkdev.h2
-rw-r--r--include/linux/cpuidle.h3
-rw-r--r--include/linux/device.h3
-rw-r--r--include/linux/firmware.h2
-rw-r--r--include/linux/ftrace.h2
-rw-r--r--include/linux/i2c.h3
-rw-r--r--include/linux/ipmi.h3
-rw-r--r--include/linux/ipmi_smi.h1
-rw-r--r--include/linux/mdio-bitbang.h3
-rw-r--r--include/linux/mtd/mtd.h3
-rw-r--r--include/linux/regmap.h2
-rw-r--r--include/linux/sunrpc/svc_xprt.h3
-rw-r--r--include/linux/textsearch.h3
-rw-r--r--include/linux/uio_driver.h2
-rw-r--r--include/linux/vlynq.h3
-rw-r--r--include/media/saa7146.h3
-rw-r--r--include/media/v4l2-int-device.h3
-rw-r--r--include/net/lib80211.h3
-rw-r--r--include/net/sock.h2
-rw-r--r--include/sound/core.h2
-rw-r--r--include/trace/events/module.h2
22 files changed, 34 insertions, 22 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 43538b643560..6bb4e629c09c 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -42,7 +42,6 @@
42 * can build the DRM (part of PI DRI). 4/21/2000 S + B */ 42 * can build the DRM (part of PI DRI). 4/21/2000 S + B */
43#include <asm/current.h> 43#include <asm/current.h>
44#endif /* __alpha__ */ 44#endif /* __alpha__ */
45#include <linux/module.h>
46#include <linux/kernel.h> 45#include <linux/kernel.h>
47#include <linux/miscdevice.h> 46#include <linux/miscdevice.h>
48#include <linux/fs.h> 47#include <linux/fs.h>
@@ -80,6 +79,8 @@
80#define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE))) 79#define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
81#define __OS_HAS_MTRR (defined(CONFIG_MTRR)) 80#define __OS_HAS_MTRR (defined(CONFIG_MTRR))
82 81
82struct module;
83
83struct drm_file; 84struct drm_file;
84struct drm_device; 85struct drm_device;
85 86
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 7fbaa9103344..d750a3a79299 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -14,7 +14,6 @@
14#include <linux/wait.h> 14#include <linux/wait.h>
15#include <linux/mempool.h> 15#include <linux/mempool.h>
16#include <linux/bio.h> 16#include <linux/bio.h>
17#include <linux/module.h>
18#include <linux/stringify.h> 17#include <linux/stringify.h>
19#include <linux/gfp.h> 18#include <linux/gfp.h>
20#include <linux/bsg.h> 19#include <linux/bsg.h>
@@ -22,6 +21,7 @@
22 21
23#include <asm/scatterlist.h> 22#include <asm/scatterlist.h>
24 23
24struct module;
25struct scsi_ioctl_command; 25struct scsi_ioctl_command;
26 26
27struct request_queue; 27struct request_queue;
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index b51629e15cfc..583baf22cad2 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -13,7 +13,6 @@
13 13
14#include <linux/percpu.h> 14#include <linux/percpu.h>
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/module.h>
17#include <linux/kobject.h> 16#include <linux/kobject.h>
18#include <linux/completion.h> 17#include <linux/completion.h>
19 18
@@ -21,6 +20,8 @@
21#define CPUIDLE_NAME_LEN 16 20#define CPUIDLE_NAME_LEN 16
22#define CPUIDLE_DESC_LEN 32 21#define CPUIDLE_DESC_LEN 32
23 22
23struct module;
24
24struct cpuidle_device; 25struct cpuidle_device;
25 26
26 27
diff --git a/include/linux/device.h b/include/linux/device.h
index 61f29f6a403d..8ff7dc801fd5 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -20,7 +20,7 @@
20#include <linux/lockdep.h> 20#include <linux/lockdep.h>
21#include <linux/compiler.h> 21#include <linux/compiler.h>
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/module.h> 23#include <linux/mutex.h>
24#include <linux/pm.h> 24#include <linux/pm.h>
25#include <linux/atomic.h> 25#include <linux/atomic.h>
26#include <asm/device.h> 26#include <asm/device.h>
@@ -29,6 +29,7 @@ struct device;
29struct device_private; 29struct device_private;
30struct device_driver; 30struct device_driver;
31struct driver_private; 31struct driver_private;
32struct module;
32struct class; 33struct class;
33struct subsys_private; 34struct subsys_private;
34struct bus_type; 35struct bus_type;
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index 21b3e7588abd..1e7c01189fa6 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -1,7 +1,6 @@
1#ifndef _LINUX_FIRMWARE_H 1#ifndef _LINUX_FIRMWARE_H
2#define _LINUX_FIRMWARE_H 2#define _LINUX_FIRMWARE_H
3 3
4#include <linux/module.h>
5#include <linux/types.h> 4#include <linux/types.h>
6#include <linux/compiler.h> 5#include <linux/compiler.h>
7#include <linux/gfp.h> 6#include <linux/gfp.h>
@@ -15,6 +14,7 @@ struct firmware {
15 struct page **pages; 14 struct page **pages;
16}; 15};
17 16
17struct module;
18struct device; 18struct device;
19 19
20struct builtin_fw { 20struct builtin_fw {
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index f0c0e8a47ae6..26eafcef75be 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -10,7 +10,6 @@
10#include <linux/kallsyms.h> 10#include <linux/kallsyms.h>
11#include <linux/linkage.h> 11#include <linux/linkage.h>
12#include <linux/bitops.h> 12#include <linux/bitops.h>
13#include <linux/module.h>
14#include <linux/ktime.h> 13#include <linux/ktime.h>
15#include <linux/sched.h> 14#include <linux/sched.h>
16#include <linux/types.h> 15#include <linux/types.h>
@@ -19,6 +18,7 @@
19 18
20#include <asm/ftrace.h> 19#include <asm/ftrace.h>
21 20
21struct module;
22struct ftrace_hash; 22struct ftrace_hash;
23 23
24#ifdef CONFIG_FUNCTION_TRACER 24#ifdef CONFIG_FUNCTION_TRACER
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 1be303bfc254..a81bf6d23b3e 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -28,7 +28,6 @@
28 28
29#include <linux/types.h> 29#include <linux/types.h>
30#ifdef __KERNEL__ 30#ifdef __KERNEL__
31#include <linux/module.h>
32#include <linux/mod_devicetable.h> 31#include <linux/mod_devicetable.h>
33#include <linux/device.h> /* for struct device */ 32#include <linux/device.h> /* for struct device */
34#include <linux/sched.h> /* for completion */ 33#include <linux/sched.h> /* for completion */
@@ -49,6 +48,8 @@ struct i2c_driver;
49union i2c_smbus_data; 48union i2c_smbus_data;
50struct i2c_board_info; 49struct i2c_board_info;
51 50
51struct module;
52
52#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) 53#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
53/* 54/*
54 * The master routines are the ones normally used to transmit data to devices 55 * 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 ca85cf894e33..bbd156bb953b 100644
--- a/include/linux/ipmi.h
+++ b/include/linux/ipmi.h
@@ -220,10 +220,11 @@ struct kernel_ipmi_msg {
220 * The in-kernel interface. 220 * The in-kernel interface.
221 */ 221 */
222#include <linux/list.h> 222#include <linux/list.h>
223#include <linux/module.h>
224#include <linux/device.h> 223#include <linux/device.h>
225#include <linux/proc_fs.h> 224#include <linux/proc_fs.h>
226 225
226struct module;
227
227/* Opaque type for a IPMI message user. One of these is needed to 228/* Opaque type for a IPMI message user. One of these is needed to
228 send and receive messages. */ 229 send and receive messages. */
229typedef struct ipmi_user *ipmi_user_t; 230typedef struct ipmi_user *ipmi_user_t;
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h
index 204f9cd26c16..3ef0d8b6aa6f 100644
--- a/include/linux/ipmi_smi.h
+++ b/include/linux/ipmi_smi.h
@@ -36,7 +36,6 @@
36 36
37#include <linux/ipmi_msgdefs.h> 37#include <linux/ipmi_msgdefs.h>
38#include <linux/proc_fs.h> 38#include <linux/proc_fs.h>
39#include <linux/module.h>
40#include <linux/device.h> 39#include <linux/device.h>
41#include <linux/platform_device.h> 40#include <linux/platform_device.h>
42#include <linux/ipmi.h> 41#include <linux/ipmi.h>
diff --git a/include/linux/mdio-bitbang.h b/include/linux/mdio-bitbang.h
index 8ea9a42a4c02..0fe00cd4c93c 100644
--- a/include/linux/mdio-bitbang.h
+++ b/include/linux/mdio-bitbang.h
@@ -2,7 +2,8 @@
2#define __LINUX_MDIO_BITBANG_H 2#define __LINUX_MDIO_BITBANG_H
3 3
4#include <linux/phy.h> 4#include <linux/phy.h>
5#include <linux/module.h> 5
6struct module;
6 7
7struct mdiobb_ctrl; 8struct mdiobb_ctrl;
8 9
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index 2541fb848daa..37be05bbfbc8 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -21,7 +21,6 @@
21#define __MTD_MTD_H__ 21#define __MTD_MTD_H__
22 22
23#include <linux/types.h> 23#include <linux/types.h>
24#include <linux/module.h>
25#include <linux/uio.h> 24#include <linux/uio.h>
26#include <linux/notifier.h> 25#include <linux/notifier.h>
27#include <linux/device.h> 26#include <linux/device.h>
@@ -125,6 +124,8 @@ struct nand_ecclayout {
125 struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE]; 124 struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE];
126}; 125};
127 126
127struct module; /* only needed for owner field in mtd_info */
128
128struct mtd_info { 129struct mtd_info {
129 u_char type; 130 u_char type;
130 uint32_t flags; 131 uint32_t flags;
diff --git a/include/linux/regmap.h b/include/linux/regmap.h
index 3daac2d8dc37..690276a642cf 100644
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -15,8 +15,8 @@
15 15
16#include <linux/device.h> 16#include <linux/device.h>
17#include <linux/list.h> 17#include <linux/list.h>
18#include <linux/module.h>
19 18
19struct module;
20struct i2c_client; 20struct i2c_client;
21struct spi_device; 21struct spi_device;
22 22
diff --git a/include/linux/sunrpc/svc_xprt.h b/include/linux/sunrpc/svc_xprt.h
index 7ad9751a0d87..8620f79658d4 100644
--- a/include/linux/sunrpc/svc_xprt.h
+++ b/include/linux/sunrpc/svc_xprt.h
@@ -8,7 +8,8 @@
8#define SUNRPC_SVC_XPRT_H 8#define SUNRPC_SVC_XPRT_H
9 9
10#include <linux/sunrpc/svc.h> 10#include <linux/sunrpc/svc.h>
11#include <linux/module.h> 11
12struct module;
12 13
13struct svc_xprt_ops { 14struct svc_xprt_ops {
14 struct svc_xprt *(*xpo_create)(struct svc_serv *, 15 struct svc_xprt *(*xpo_create)(struct svc_serv *,
diff --git a/include/linux/textsearch.h b/include/linux/textsearch.h
index d9a85d616385..cfaee869146f 100644
--- a/include/linux/textsearch.h
+++ b/include/linux/textsearch.h
@@ -4,10 +4,11 @@
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/list.h> 5#include <linux/list.h>
6#include <linux/kernel.h> 6#include <linux/kernel.h>
7#include <linux/module.h>
8#include <linux/err.h> 7#include <linux/err.h>
9#include <linux/slab.h> 8#include <linux/slab.h>
10 9
10struct module;
11
11struct ts_config; 12struct ts_config;
12 13
13#define TS_AUTOLOAD 1 /* Automatically load textsearch modules when needed */ 14#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 73898189a97c..1ad4724458de 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -14,10 +14,10 @@
14#ifndef _UIO_DRIVER_H_ 14#ifndef _UIO_DRIVER_H_
15#define _UIO_DRIVER_H_ 15#define _UIO_DRIVER_H_
16 16
17#include <linux/module.h>
18#include <linux/fs.h> 17#include <linux/fs.h>
19#include <linux/interrupt.h> 18#include <linux/interrupt.h>
20 19
20struct module;
21struct uio_map; 21struct uio_map;
22 22
23/** 23/**
diff --git a/include/linux/vlynq.h b/include/linux/vlynq.h
index 8f6a95882b09..017d4a53d55e 100644
--- a/include/linux/vlynq.h
+++ b/include/linux/vlynq.h
@@ -20,9 +20,10 @@
20#define __VLYNQ_H__ 20#define __VLYNQ_H__
21 21
22#include <linux/device.h> 22#include <linux/device.h>
23#include <linux/module.h>
24#include <linux/types.h> 23#include <linux/types.h>
25 24
25struct module;
26
26#define VLYNQ_NUM_IRQS 32 27#define VLYNQ_NUM_IRQS 32
27 28
28struct vlynq_mapping { 29struct vlynq_mapping {
diff --git a/include/media/saa7146.h b/include/media/saa7146.h
index 79827143d5ac..6e84cde44b82 100644
--- a/include/media/saa7146.h
+++ b/include/media/saa7146.h
@@ -1,7 +1,6 @@
1#ifndef __SAA7146__ 1#ifndef __SAA7146__
2#define __SAA7146__ 2#define __SAA7146__
3 3
4#include <linux/module.h> /* for module-version */
5#include <linux/delay.h> /* for delay-stuff */ 4#include <linux/delay.h> /* for delay-stuff */
6#include <linux/slab.h> /* for kmalloc/kfree */ 5#include <linux/slab.h> /* for kmalloc/kfree */
7#include <linux/pci.h> /* for pci-config-stuff, vendor ids etc. */ 6#include <linux/pci.h> /* for pci-config-stuff, vendor ids etc. */
@@ -47,6 +46,8 @@ extern unsigned int saa7146_debug;
47#define SAA7146_ISR_CLEAR(x,y) \ 46#define SAA7146_ISR_CLEAR(x,y) \
48 saa7146_write(x, ISR, (y)); 47 saa7146_write(x, ISR, (y));
49 48
49struct module;
50
50struct saa7146_dev; 51struct saa7146_dev;
51struct saa7146_extension; 52struct saa7146_extension;
52struct saa7146_vv; 53struct saa7146_vv;
diff --git a/include/media/v4l2-int-device.h b/include/media/v4l2-int-device.h
index fbf585561570..e6aa2318367b 100644
--- a/include/media/v4l2-int-device.h
+++ b/include/media/v4l2-int-device.h
@@ -25,7 +25,6 @@
25#ifndef V4L2_INT_DEVICE_H 25#ifndef V4L2_INT_DEVICE_H
26#define V4L2_INT_DEVICE_H 26#define V4L2_INT_DEVICE_H
27 27
28#include <linux/module.h>
29#include <media/v4l2-common.h> 28#include <media/v4l2-common.h>
30 29
31#define V4L2NAMESIZE 32 30#define V4L2NAMESIZE 32
@@ -41,6 +40,8 @@ enum v4l2_int_type {
41 v4l2_int_type_slave 40 v4l2_int_type_slave
42}; 41};
43 42
43struct module;
44
44struct v4l2_int_device; 45struct v4l2_int_device;
45 46
46struct v4l2_int_master { 47struct v4l2_int_master {
diff --git a/include/net/lib80211.h b/include/net/lib80211.h
index 2ec896bb72b2..d178c26a5558 100644
--- a/include/net/lib80211.h
+++ b/include/net/lib80211.h
@@ -25,7 +25,6 @@
25 25
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/module.h>
29#include <linux/atomic.h> 28#include <linux/atomic.h>
30#include <linux/if.h> 29#include <linux/if.h>
31#include <linux/skbuff.h> 30#include <linux/skbuff.h>
@@ -42,6 +41,8 @@ enum {
42 IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 << 0), 41 IEEE80211_CRYPTO_TKIP_COUNTERMEASURES = (1 << 0),
43}; 42};
44 43
44struct module;
45
45struct lib80211_crypto_ops { 46struct lib80211_crypto_ops {
46 const char *name; 47 const char *name;
47 struct list_head list; 48 struct list_head list;
diff --git a/include/net/sock.h b/include/net/sock.h
index 5ac682f73d63..beb1a911acbb 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -46,7 +46,6 @@
46#include <linux/list_nulls.h> 46#include <linux/list_nulls.h>
47#include <linux/timer.h> 47#include <linux/timer.h>
48#include <linux/cache.h> 48#include <linux/cache.h>
49#include <linux/module.h>
50#include <linux/lockdep.h> 49#include <linux/lockdep.h>
51#include <linux/netdevice.h> 50#include <linux/netdevice.h>
52#include <linux/skbuff.h> /* struct sk_buff */ 51#include <linux/skbuff.h> /* struct sk_buff */
@@ -729,6 +728,7 @@ struct request_sock_ops;
729struct timewait_sock_ops; 728struct timewait_sock_ops;
730struct inet_hashinfo; 729struct inet_hashinfo;
731struct raw_hashinfo; 730struct raw_hashinfo;
731struct module;
732 732
733/* Networking protocol blocks we attach to sockets. 733/* Networking protocol blocks we attach to sockets.
734 * socket layer -> transport layer interface 734 * socket layer -> transport layer interface
diff --git a/include/sound/core.h b/include/sound/core.h
index 1fa2407c966f..a91d78eb2f07 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -22,7 +22,6 @@
22 * 22 *
23 */ 23 */
24 24
25#include <linux/module.h>
26#include <linux/sched.h> /* wake_up() */ 25#include <linux/sched.h> /* wake_up() */
27#include <linux/mutex.h> /* struct mutex */ 26#include <linux/mutex.h> /* struct mutex */
28#include <linux/rwsem.h> /* struct rw_semaphore */ 27#include <linux/rwsem.h> /* struct rw_semaphore */
@@ -43,6 +42,7 @@
43#ifdef CONFIG_PCI 42#ifdef CONFIG_PCI
44struct pci_dev; 43struct pci_dev;
45#endif 44#endif
45struct module;
46 46
47/* device allocation stuff */ 47/* device allocation stuff */
48 48
diff --git a/include/trace/events/module.h b/include/trace/events/module.h
index 21a546d27c0c..161932737416 100644
--- a/include/trace/events/module.h
+++ b/include/trace/events/module.h
@@ -1,6 +1,6 @@
1/* 1/*
2 * Because linux/module.h has tracepoints in the header, and ftrace.h 2 * Because linux/module.h has tracepoints in the header, and ftrace.h
3 * eventually includes this file, define_trace.h includes linux/module.h 3 * used to include this file, define_trace.h includes linux/module.h
4 * But we do not want the module.h to override the TRACE_SYSTEM macro 4 * But we do not want the module.h to override the TRACE_SYSTEM macro
5 * variable that define_trace.h is processing, so we only set it 5 * variable that define_trace.h is processing, so we only set it
6 * when module events are being processed, which would happen when 6 * when module events are being processed, which would happen when