aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2006-03-25 06:07:05 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 11:22:52 -0500
commit8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98 (patch)
tree7fc48e7544ea6a6c6a7cc7685612a38f5edc25ae
parentc721bccece2b3abca4f7b0b95108e68b78445cec (diff)
[PATCH] Remove MODULE_PARM
MODULE_PARM was actually breaking: recent gcc version optimize them out as unused. It's time to replace the last users, which are generally in the most unloved drivers anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--Documentation/networking/ray_cs.txt2
-rw-r--r--Documentation/sound/oss/Introduction2
-rw-r--r--Documentation/sound/oss/cs46xx16
-rw-r--r--arch/ppc/8xx_io/cs4218_tdm.c10
-rw-r--r--drivers/block/ataflop.c4
-rw-r--r--drivers/cdrom/cm206.c8
-rw-r--r--drivers/cdrom/sbpcd.c10
-rw-r--r--drivers/char/istallion.c8
-rw-r--r--drivers/char/mxser.c8
-rw-r--r--drivers/char/riscom8.c8
-rw-r--r--drivers/isdn/hardware/avm/b1dma.c2
-rw-r--r--drivers/isdn/hardware/avm/b1isa.c4
-rw-r--r--drivers/isdn/hardware/avm/c4.c2
-rw-r--r--drivers/isdn/hardware/avm/t1isa.c6
-rw-r--r--drivers/isdn/hysdn/hycapi.c2
-rw-r--r--drivers/isdn/hysdn/hysdn_net.c2
-rw-r--r--drivers/isdn/isdnloop/isdnloop.c2
-rw-r--r--drivers/media/video/zr36120.c8
-rw-r--r--drivers/mmc/au1xmmc.c2
-rw-r--r--drivers/mtd/maps/pcmciamtd.c14
-rw-r--r--drivers/net/atari_bionet.c2
-rw-r--r--drivers/net/atari_pamsnet.c2
-rw-r--r--drivers/net/atarilance.c2
-rw-r--r--drivers/net/cassini.c11
-rw-r--r--drivers/net/chelsio/cxgb2.c2
-rw-r--r--drivers/net/fec_8xx/fec_main.c4
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c4
-rw-r--r--drivers/net/gt96100eth.c4
-rw-r--r--drivers/net/hamradio/dmascc.c2
-rw-r--r--drivers/net/hamradio/mkiss.c2
-rw-r--r--drivers/net/irda/irport.c4
-rw-r--r--drivers/net/lasi_82596.c6
-rw-r--r--drivers/net/mac89x0.c2
-rw-r--r--drivers/net/mace.c2
-rw-r--r--drivers/net/meth.c2
-rw-r--r--drivers/net/ne-h8300.c6
-rw-r--r--drivers/net/ni5010.c4
-rw-r--r--drivers/net/sun3lance.c2
-rw-r--r--drivers/s390/block/dasd.c1
-rw-r--r--drivers/s390/block/dasd_devmap.c3
-rw-r--r--drivers/scsi/arm/cumana_2.c2
-rw-r--r--drivers/scsi/arm/eesox.c2
-rw-r--r--drivers/scsi/arm/powertec.c2
-rw-r--r--drivers/scsi/atari_scsi.c10
-rw-r--r--drivers/video/pm3fb.c18
-rw-r--r--include/linux/module.h19
-rw-r--r--include/video/pm3fb.h3
-rw-r--r--init/Kconfig9
-rw-r--r--kernel/module.c183
-rw-r--r--kernel/rcutorture.c10
-rw-r--r--sound/oss/au1000.c2
-rw-r--r--sound/oss/au1550_ac97.c2
-rw-r--r--sound/oss/dmasound/dmasound_core.c10
-rw-r--r--sound/oss/ite8172.c4
-rw-r--r--sound/oss/swarm_cs4297a.c4
-rw-r--r--sound/oss/waveartist.c8
56 files changed, 146 insertions, 329 deletions
diff --git a/Documentation/networking/ray_cs.txt b/Documentation/networking/ray_cs.txt
index 5427f8c7df95..145d27a52395 100644
--- a/Documentation/networking/ray_cs.txt
+++ b/Documentation/networking/ray_cs.txt
@@ -25,7 +25,7 @@ the essid= string parameter is available via the kernel command line.
25This will change after the method of sorting out parameters for all 25This will change after the method of sorting out parameters for all
26the PCMCIA drivers is agreed upon. If you must have a built in driver 26the PCMCIA drivers is agreed upon. If you must have a built in driver
27with nondefault parameters, they can be edited in 27with nondefault parameters, they can be edited in
28/usr/src/linux/drivers/net/pcmcia/ray_cs.c. Searching for MODULE_PARM 28/usr/src/linux/drivers/net/pcmcia/ray_cs.c. Searching for module_param
29will find them all. 29will find them all.
30 30
31Information on card services is available at: 31Information on card services is available at:
diff --git a/Documentation/sound/oss/Introduction b/Documentation/sound/oss/Introduction
index 15d4fb975ac0..f04ba6bb7395 100644
--- a/Documentation/sound/oss/Introduction
+++ b/Documentation/sound/oss/Introduction
@@ -69,7 +69,7 @@ are available, for example IRQ, address, DMA.
69 69
70Warning, the options for different cards sometime use different names 70Warning, the options for different cards sometime use different names
71for the same or a similar feature (dma1= versus dma16=). As a last 71for the same or a similar feature (dma1= versus dma16=). As a last
72resort, inspect the code (search for MODULE_PARM). 72resort, inspect the code (search for module_param).
73 73
74Notes: 74Notes:
75 75
diff --git a/Documentation/sound/oss/cs46xx b/Documentation/sound/oss/cs46xx
index 88d6cf8b39f3..b54432709863 100644
--- a/Documentation/sound/oss/cs46xx
+++ b/Documentation/sound/oss/cs46xx
@@ -88,7 +88,7 @@ parameters. for a copy email: twoller@crystal.cirrus.com
88 88
89MODULE_PARMS definitions 89MODULE_PARMS definitions
90------------------------ 90------------------------
91MODULE_PARM(defaultorder, "i"); 91module_param(defaultorder, ulong, 0);
92defaultorder=N 92defaultorder=N
93where N is a value from 1 to 12 93where N is a value from 1 to 12
94The buffer order determines the size of the dma buffer for the driver. 94The buffer order determines the size of the dma buffer for the driver.
@@ -98,18 +98,18 @@ to not underrun the dma buffer as easily. As default, use 32k (order=3)
98rather than 64k as some of the games work more responsively. 98rather than 64k as some of the games work more responsively.
99(2^N) * PAGE_SIZE = allocated buffer size 99(2^N) * PAGE_SIZE = allocated buffer size
100 100
101MODULE_PARM(cs_debuglevel, "i"); 101module_param(cs_debuglevel, ulong, 0644);
102MODULE_PARM(cs_debugmask, "i"); 102module_param(cs_debugmask, ulong, 0644);
103cs_debuglevel=N 103cs_debuglevel=N
104cs_debugmask=0xMMMMMMMM 104cs_debugmask=0xMMMMMMMM
105where N is a value from 0 (no debug printfs), to 9 (maximum) 105where N is a value from 0 (no debug printfs), to 9 (maximum)
1060xMMMMMMMM is a debug mask corresponding to the CS_xxx bits (see driver source). 1060xMMMMMMMM is a debug mask corresponding to the CS_xxx bits (see driver source).
107 107
108MODULE_PARM(hercules_egpio_disable, "i"); 108module_param(hercules_egpio_disable, ulong, 0);
109hercules_egpio_disable=N 109hercules_egpio_disable=N
110where N is a 0 (enable egpio), or a 1 (disable egpio support) 110where N is a 0 (enable egpio), or a 1 (disable egpio support)
111 111
112MODULE_PARM(initdelay, "i"); 112module_param(initdelay, ulong, 0);
113initdelay=N 113initdelay=N
114This value is used to determine the millescond delay during the initialization 114This value is used to determine the millescond delay during the initialization
115code prior to powering up the PLL. On laptops this value can be used to 115code prior to powering up the PLL. On laptops this value can be used to
@@ -118,19 +118,19 @@ system is booted under battery power then the mdelay()/udelay() functions fail t
118properly delay the required time. Also, if the system is booted under AC power 118properly delay the required time. Also, if the system is booted under AC power
119and then the power removed, the mdelay()/udelay() functions will not delay properly. 119and then the power removed, the mdelay()/udelay() functions will not delay properly.
120 120
121MODULE_PARM(powerdown, "i"); 121module_param(powerdown, ulong, 0);
122powerdown=N 122powerdown=N
123where N is 0 (disable any powerdown of the internal blocks) or 1 (enable powerdown) 123where N is 0 (disable any powerdown of the internal blocks) or 1 (enable powerdown)
124 124
125 125
126MODULE_PARM(external_amp, "i"); 126module_param(external_amp, bool, 0);
127external_amp=1 127external_amp=1
128if N is set to 1, then force enabling the EAPD support in the primary AC97 codec. 128if N is set to 1, then force enabling the EAPD support in the primary AC97 codec.
129override the detection logic and force the external amp bit in the AC97 0x26 register 129override the detection logic and force the external amp bit in the AC97 0x26 register
130to be reset (0). EAPD should be 0 for powerup, and 1 for powerdown. The VTB Santa Cruz 130to be reset (0). EAPD should be 0 for powerup, and 1 for powerdown. The VTB Santa Cruz
131card has inverted logic, so there is a special function for these cards. 131card has inverted logic, so there is a special function for these cards.
132 132
133MODULE_PARM(thinkpad, "i"); 133module_param(thinkpad, bool, 0);
134thinkpad=1 134thinkpad=1
135if N is set to 1, then force enabling the clkrun functionality. 135if N is set to 1, then force enabling the clkrun functionality.
136Currently, when the part is being used, then clkrun is disabled for the entire system, 136Currently, when the part is being used, then clkrun is disabled for the entire system,
diff --git a/arch/ppc/8xx_io/cs4218_tdm.c b/arch/ppc/8xx_io/cs4218_tdm.c
index 49eb2a7e65c0..a892356d5c3b 100644
--- a/arch/ppc/8xx_io/cs4218_tdm.c
+++ b/arch/ppc/8xx_io/cs4218_tdm.c
@@ -126,11 +126,11 @@ static int numReadBufs = 4, readbufSize = 32;
126*/ 126*/
127static volatile cbd_t *rx_base, *rx_cur, *tx_base, *tx_cur; 127static volatile cbd_t *rx_base, *rx_cur, *tx_base, *tx_cur;
128 128
129MODULE_PARM(catchRadius, "i"); 129module_param(catchRadius, int, 0);
130MODULE_PARM(numBufs, "i"); 130module_param(numBufs, int, 0);
131MODULE_PARM(bufSize, "i"); 131module_param(bufSize, int, 0);
132MODULE_PARM(numreadBufs, "i"); 132module_param(numreadBufs, int, 0);
133MODULE_PARM(readbufSize, "i"); 133module_param(readbufSize, int, 0);
134 134
135#define arraysize(x) (sizeof(x)/sizeof(*(x))) 135#define arraysize(x) (sizeof(x)/sizeof(*(x)))
136#define le2be16(x) (((x)<<8 & 0xff00) | ((x)>>8 & 0x00ff)) 136#define le2be16(x) (((x)<<8 & 0xff00) | ((x)>>8 & 0x00ff))
diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c
index f8ce235ccfc3..c39650920bdf 100644
--- a/drivers/block/ataflop.c
+++ b/drivers/block/ataflop.c
@@ -271,7 +271,7 @@ unsigned char *DMABuffer; /* buffer for writes */
271static unsigned long PhysDMABuffer; /* physical address */ 271static unsigned long PhysDMABuffer; /* physical address */
272 272
273static int UseTrackbuffer = -1; /* Do track buffering? */ 273static int UseTrackbuffer = -1; /* Do track buffering? */
274MODULE_PARM(UseTrackbuffer, "i"); 274module_param(UseTrackbuffer, int, 0);
275 275
276unsigned char *TrackBuffer; /* buffer for reads */ 276unsigned char *TrackBuffer; /* buffer for reads */
277static unsigned long PhysTrackBuffer; /* physical address */ 277static unsigned long PhysTrackBuffer; /* physical address */
@@ -296,7 +296,7 @@ static int MotorOn = 0, MotorOffTrys;
296static int IsFormatting = 0, FormatError; 296static int IsFormatting = 0, FormatError;
297 297
298static int UserSteprate[FD_MAX_UNITS] = { -1, -1 }; 298static int UserSteprate[FD_MAX_UNITS] = { -1, -1 };
299MODULE_PARM(UserSteprate, "1-" __MODULE_STRING(FD_MAX_UNITS) "i"); 299module_param_array(UserSteprate, int, NULL, 0);
300 300
301/* Synchronization of FDC access. */ 301/* Synchronization of FDC access. */
302static volatile int fdc_busy = 0; 302static volatile int fdc_busy = 0;
diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c
index fad27a87ce35..f43a988dd413 100644
--- a/drivers/cdrom/cm206.c
+++ b/drivers/cdrom/cm206.c
@@ -218,12 +218,12 @@ static int cm206_base = CM206_BASE;
218static int cm206_irq = CM206_IRQ; 218static int cm206_irq = CM206_IRQ;
219#ifdef MODULE 219#ifdef MODULE
220static int cm206[2] = { 0, 0 }; /* for compatible `insmod' parameter passing */ 220static int cm206[2] = { 0, 0 }; /* for compatible `insmod' parameter passing */
221module_param_array(cm206, int, NULL, 0); /* base,irq or irq,base */
221#endif 222#endif
222 223
223MODULE_PARM(cm206_base, "i"); /* base */ 224module_param(cm206_base, int, 0); /* base */
224MODULE_PARM(cm206_irq, "i"); /* irq */ 225module_param(cm206_irq, int, 0); /* irq */
225MODULE_PARM(cm206, "1-2i"); /* base,irq or irq,base */ 226module_param(auto_probe, bool, 0); /* auto probe base and irq */
226MODULE_PARM(auto_probe, "i"); /* auto probe base and irq */
227MODULE_LICENSE("GPL"); 227MODULE_LICENSE("GPL");
228 228
229#define POLLOOP 100 /* milliseconds */ 229#define POLLOOP 100 /* milliseconds */
diff --git a/drivers/cdrom/sbpcd.c b/drivers/cdrom/sbpcd.c
index 4760f515f591..05c9e865ecaf 100644
--- a/drivers/cdrom/sbpcd.c
+++ b/drivers/cdrom/sbpcd.c
@@ -464,8 +464,13 @@ static int sbpcd[] =
464static __cacheline_aligned DEFINE_SPINLOCK(sbpcd_lock); 464static __cacheline_aligned DEFINE_SPINLOCK(sbpcd_lock);
465static struct request_queue *sbpcd_queue; 465static struct request_queue *sbpcd_queue;
466 466
467MODULE_PARM(sbpcd, "2i"); 467/* You can only set the first pair, from old MODULE_PARM code. */
468MODULE_PARM(max_drives, "i"); 468static int sbpcd_set(const char *val, struct kernel_param *kp)
469{
470 get_options((char *)val, 2, (int *)sbpcd);
471 return 0;
472}
473module_param_call(sbpcd, sbpcd_set, NULL, NULL, 0);
469 474
470#define NUM_PROBE (sizeof(sbpcd) / sizeof(int)) 475#define NUM_PROBE (sizeof(sbpcd) / sizeof(int))
471 476
@@ -553,6 +558,7 @@ static unsigned char msgnum;
553static char msgbuf[80]; 558static char msgbuf[80];
554 559
555static int max_drives = MAX_DRIVES; 560static int max_drives = MAX_DRIVES;
561module_param(max_drives, int, 0);
556#ifndef MODULE 562#ifndef MODULE
557static unsigned char setup_done; 563static unsigned char setup_done;
558static const char *str_sb_l = "soundblaster"; 564static const char *str_sb_l = "soundblaster";
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c
index ede128356af2..e5247f85a446 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -378,13 +378,13 @@ MODULE_DESCRIPTION("Stallion Intelligent Multiport Serial Driver");
378MODULE_LICENSE("GPL"); 378MODULE_LICENSE("GPL");
379 379
380 380
381MODULE_PARM(board0, "1-3s"); 381module_param_array(board0, charp, NULL, 0);
382MODULE_PARM_DESC(board0, "Board 0 config -> name[,ioaddr[,memaddr]"); 382MODULE_PARM_DESC(board0, "Board 0 config -> name[,ioaddr[,memaddr]");
383MODULE_PARM(board1, "1-3s"); 383module_param_array(board1, charp, NULL, 0);
384MODULE_PARM_DESC(board1, "Board 1 config -> name[,ioaddr[,memaddr]"); 384MODULE_PARM_DESC(board1, "Board 1 config -> name[,ioaddr[,memaddr]");
385MODULE_PARM(board2, "1-3s"); 385module_param_array(board2, charp, NULL, 0);
386MODULE_PARM_DESC(board2, "Board 2 config -> name[,ioaddr[,memaddr]"); 386MODULE_PARM_DESC(board2, "Board 2 config -> name[,ioaddr[,memaddr]");
387MODULE_PARM(board3, "1-3s"); 387module_param_array(board3, charp, NULL, 0);
388MODULE_PARM_DESC(board3, "Board 3 config -> name[,ioaddr[,memaddr]"); 388MODULE_PARM_DESC(board3, "Board 3 config -> name[,ioaddr[,memaddr]");
389 389
390#endif 390#endif
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index ea725a9964e2..0fb2fb9fb024 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -243,10 +243,10 @@ static int verbose = 0;
243 243
244MODULE_AUTHOR("Casper Yang"); 244MODULE_AUTHOR("Casper Yang");
245MODULE_DESCRIPTION("MOXA Smartio/Industio Family Multiport Board Device Driver"); 245MODULE_DESCRIPTION("MOXA Smartio/Industio Family Multiport Board Device Driver");
246MODULE_PARM(ioaddr, "1-4i"); 246module_param_array(ioaddr, int, NULL, 0);
247MODULE_PARM(ttymajor, "i"); 247module_param(ttymajor, int, 0);
248MODULE_PARM(calloutmajor, "i"); 248module_param(calloutmajor, int, 0);
249MODULE_PARM(verbose, "i"); 249module_param(verbose, bool, 0);
250MODULE_LICENSE("GPL"); 250MODULE_LICENSE("GPL");
251 251
252struct mxser_log { 252struct mxser_log {
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index 119e629656b7..657c0d88f48c 100644
--- a/drivers/char/riscom8.c
+++ b/drivers/char/riscom8.c
@@ -1743,10 +1743,10 @@ static int iobase;
1743static int iobase1; 1743static int iobase1;
1744static int iobase2; 1744static int iobase2;
1745static int iobase3; 1745static int iobase3;
1746MODULE_PARM(iobase, "i"); 1746module_param(iobase, int, 0);
1747MODULE_PARM(iobase1, "i"); 1747module_param(iobase1, int, 0);
1748MODULE_PARM(iobase2, "i"); 1748module_param(iobase2, int, 0);
1749MODULE_PARM(iobase3, "i"); 1749module_param(iobase3, int, 0);
1750 1750
1751MODULE_LICENSE("GPL"); 1751MODULE_LICENSE("GPL");
1752#endif /* MODULE */ 1752#endif /* MODULE */
diff --git a/drivers/isdn/hardware/avm/b1dma.c b/drivers/isdn/hardware/avm/b1dma.c
index 91dd0551fc7c..4d64e5cbcdbf 100644
--- a/drivers/isdn/hardware/avm/b1dma.c
+++ b/drivers/isdn/hardware/avm/b1dma.c
@@ -39,7 +39,7 @@ MODULE_AUTHOR("Carsten Paeth");
39MODULE_LICENSE("GPL"); 39MODULE_LICENSE("GPL");
40 40
41static int suppress_pollack = 0; 41static int suppress_pollack = 0;
42MODULE_PARM(suppress_pollack, "0-1i"); 42module_param(suppress_pollack, bool, 0);
43 43
44/* ------------------------------------------------------------- */ 44/* ------------------------------------------------------------- */
45 45
diff --git a/drivers/isdn/hardware/avm/b1isa.c b/drivers/isdn/hardware/avm/b1isa.c
index 38bd4dfecbd1..80fb488848b8 100644
--- a/drivers/isdn/hardware/avm/b1isa.c
+++ b/drivers/isdn/hardware/avm/b1isa.c
@@ -169,8 +169,8 @@ static struct pci_dev isa_dev[MAX_CARDS];
169static int io[MAX_CARDS]; 169static int io[MAX_CARDS];
170static int irq[MAX_CARDS]; 170static int irq[MAX_CARDS];
171 171
172MODULE_PARM(io, "1-" __MODULE_STRING(MAX_CARDS) "i"); 172module_param_array(io, int, NULL, 0);
173MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_CARDS) "i"); 173module_param_array(irq, int, NULL, 0);
174MODULE_PARM_DESC(io, "I/O base address(es)"); 174MODULE_PARM_DESC(io, "I/O base address(es)");
175MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)"); 175MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)");
176 176
diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c
index 724aac2c1cca..f7253b2136ea 100644
--- a/drivers/isdn/hardware/avm/c4.c
+++ b/drivers/isdn/hardware/avm/c4.c
@@ -50,7 +50,7 @@ MODULE_DEVICE_TABLE(pci, c4_pci_tbl);
50MODULE_DESCRIPTION("CAPI4Linux: Driver for AVM C2/C4 cards"); 50MODULE_DESCRIPTION("CAPI4Linux: Driver for AVM C2/C4 cards");
51MODULE_AUTHOR("Carsten Paeth"); 51MODULE_AUTHOR("Carsten Paeth");
52MODULE_LICENSE("GPL"); 52MODULE_LICENSE("GPL");
53MODULE_PARM(suppress_pollack, "0-1i"); 53module_param(suppress_pollack, bool, 0);
54 54
55/* ------------------------------------------------------------- */ 55/* ------------------------------------------------------------- */
56 56
diff --git a/drivers/isdn/hardware/avm/t1isa.c b/drivers/isdn/hardware/avm/t1isa.c
index 3b701d97bdf1..5a2f854d55b5 100644
--- a/drivers/isdn/hardware/avm/t1isa.c
+++ b/drivers/isdn/hardware/avm/t1isa.c
@@ -519,9 +519,9 @@ static int io[MAX_CARDS];
519static int irq[MAX_CARDS]; 519static int irq[MAX_CARDS];
520static int cardnr[MAX_CARDS]; 520static int cardnr[MAX_CARDS];
521 521
522MODULE_PARM(io, "1-" __MODULE_STRING(MAX_CARDS) "i"); 522module_param_array(io, int, NULL, 0);
523MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_CARDS) "i"); 523module_param_array(irq, int, NULL, 0);
524MODULE_PARM(cardnr, "1-" __MODULE_STRING(MAX_CARDS) "i"); 524module_param_array(cardnr, int, NULL, 0);
525MODULE_PARM_DESC(io, "I/O base address(es)"); 525MODULE_PARM_DESC(io, "I/O base address(es)");
526MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)"); 526MODULE_PARM_DESC(irq, "IRQ number(s) (assigned)");
527MODULE_PARM_DESC(cardnr, "Card number(s) (as jumpered)"); 527MODULE_PARM_DESC(cardnr, "Card number(s) (as jumpered)");
diff --git a/drivers/isdn/hysdn/hycapi.c b/drivers/isdn/hysdn/hycapi.c
index 55fbea0b6ac8..6bac43cc91bd 100644
--- a/drivers/isdn/hysdn/hycapi.c
+++ b/drivers/isdn/hysdn/hycapi.c
@@ -31,7 +31,7 @@
31static char hycapi_revision[]="$Revision: 1.8.6.4 $"; 31static char hycapi_revision[]="$Revision: 1.8.6.4 $";
32 32
33unsigned int hycapi_enable = 0xffffffff; 33unsigned int hycapi_enable = 0xffffffff;
34MODULE_PARM(hycapi_enable, "i"); 34module_param(hycapi_enable, uint, 0);
35 35
36typedef struct _hycapi_appl { 36typedef struct _hycapi_appl {
37 unsigned int ctrl_mask; 37 unsigned int ctrl_mask;
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c
index 683647b1f2bc..d205249a1242 100644
--- a/drivers/isdn/hysdn/hysdn_net.c
+++ b/drivers/isdn/hysdn/hysdn_net.c
@@ -24,7 +24,7 @@
24#include "hysdn_defs.h" 24#include "hysdn_defs.h"
25 25
26unsigned int hynet_enable = 0xffffffff; 26unsigned int hynet_enable = 0xffffffff;
27MODULE_PARM(hynet_enable, "i"); 27module_param(hynet_enable, uint, 0);
28 28
29/* store the actual version for log reporting */ 29/* store the actual version for log reporting */
30char *hysdn_net_revision = "$Revision: 1.8.6.4 $"; 30char *hysdn_net_revision = "$Revision: 1.8.6.4 $";
diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c
index 33d339700411..a67d31af797a 100644
--- a/drivers/isdn/isdnloop/isdnloop.c
+++ b/drivers/isdn/isdnloop/isdnloop.c
@@ -22,7 +22,7 @@ static char *isdnloop_id = "loop0";
22MODULE_DESCRIPTION("ISDN4Linux: Pseudo Driver that simulates an ISDN card"); 22MODULE_DESCRIPTION("ISDN4Linux: Pseudo Driver that simulates an ISDN card");
23MODULE_AUTHOR("Fritz Elfert"); 23MODULE_AUTHOR("Fritz Elfert");
24MODULE_LICENSE("GPL"); 24MODULE_LICENSE("GPL");
25MODULE_PARM(isdnloop_id, "s"); 25module_param(isdnloop_id, charp, 0);
26MODULE_PARM_DESC(isdnloop_id, "ID-String of first card"); 26MODULE_PARM_DESC(isdnloop_id, "ID-String of first card");
27 27
28static int isdnloop_addcard(char *); 28static int isdnloop_addcard(char *);
diff --git a/drivers/media/video/zr36120.c b/drivers/media/video/zr36120.c
index d4c633b8a7f5..417a999afee3 100644
--- a/drivers/media/video/zr36120.c
+++ b/drivers/media/video/zr36120.c
@@ -70,10 +70,10 @@ MODULE_AUTHOR("Pauline Middelink <middelin@polyware.nl>");
70MODULE_DESCRIPTION("Zoran ZR36120 based framegrabber"); 70MODULE_DESCRIPTION("Zoran ZR36120 based framegrabber");
71MODULE_LICENSE("GPL"); 71MODULE_LICENSE("GPL");
72 72
73MODULE_PARM(triton1,"i"); 73module_param(triton1, uint, 0);
74MODULE_PARM(cardtype,"1-" __MODULE_STRING(ZORAN_MAX) "i"); 74module_param_array(cardtype, uint, NULL, 0);
75MODULE_PARM(video_nr,"i"); 75module_param(video_nr, int, 0);
76MODULE_PARM(vbi_nr,"i"); 76module_param(vbi_nr, int, 0);
77 77
78static int zoran_cards; 78static int zoran_cards;
79static struct zoran zorans[ZORAN_MAX]; 79static struct zoran zorans[ZORAN_MAX];
diff --git a/drivers/mmc/au1xmmc.c b/drivers/mmc/au1xmmc.c
index 8d84b045bc83..85e89c77bdea 100644
--- a/drivers/mmc/au1xmmc.c
+++ b/drivers/mmc/au1xmmc.c
@@ -87,7 +87,7 @@ struct au1xmmc_host *au1xmmc_hosts[AU1XMMC_CONTROLLER_COUNT];
87static int dma = 1; 87static int dma = 1;
88 88
89#ifdef MODULE 89#ifdef MODULE
90MODULE_PARM(dma, "i"); 90module_param(dma, bool, 0);
91MODULE_PARM_DESC(dma, "Use DMA engine for data transfers (0 = disabled)"); 91MODULE_PARM_DESC(dma, "Use DMA engine for data transfers (0 = disabled)");
92#endif 92#endif
93 93
diff --git a/drivers/mtd/maps/pcmciamtd.c b/drivers/mtd/maps/pcmciamtd.c
index f0f8916da7ad..f988c817e196 100644
--- a/drivers/mtd/maps/pcmciamtd.c
+++ b/drivers/mtd/maps/pcmciamtd.c
@@ -28,7 +28,7 @@
28 28
29#ifdef CONFIG_MTD_DEBUG 29#ifdef CONFIG_MTD_DEBUG
30static int debug = CONFIG_MTD_DEBUG_VERBOSE; 30static int debug = CONFIG_MTD_DEBUG_VERBOSE;
31MODULE_PARM(debug, "i"); 31module_param(debug, int, 0);
32MODULE_PARM_DESC(debug, "Set Debug Level 0=quiet, 5=noisy"); 32MODULE_PARM_DESC(debug, "Set Debug Level 0=quiet, 5=noisy");
33#undef DEBUG 33#undef DEBUG
34#define DEBUG(n, format, arg...) \ 34#define DEBUG(n, format, arg...) \
@@ -89,17 +89,17 @@ static int mem_type;
89MODULE_LICENSE("GPL"); 89MODULE_LICENSE("GPL");
90MODULE_AUTHOR("Simon Evans <spse@secret.org.uk>"); 90MODULE_AUTHOR("Simon Evans <spse@secret.org.uk>");
91MODULE_DESCRIPTION(DRIVER_DESC); 91MODULE_DESCRIPTION(DRIVER_DESC);
92MODULE_PARM(bankwidth, "i"); 92module_param(bankwidth, int, 0);
93MODULE_PARM_DESC(bankwidth, "Set bankwidth (1=8 bit, 2=16 bit, default=2)"); 93MODULE_PARM_DESC(bankwidth, "Set bankwidth (1=8 bit, 2=16 bit, default=2)");
94MODULE_PARM(mem_speed, "i"); 94module_param(mem_speed, int, 0);
95MODULE_PARM_DESC(mem_speed, "Set memory access speed in ns"); 95MODULE_PARM_DESC(mem_speed, "Set memory access speed in ns");
96MODULE_PARM(force_size, "i"); 96module_param(force_size, int, 0);
97MODULE_PARM_DESC(force_size, "Force size of card in MiB (1-64)"); 97MODULE_PARM_DESC(force_size, "Force size of card in MiB (1-64)");
98MODULE_PARM(setvpp, "i"); 98module_param(setvpp, int, 0);
99MODULE_PARM_DESC(setvpp, "Set Vpp (0=Never, 1=On writes, 2=Always on, default=0)"); 99MODULE_PARM_DESC(setvpp, "Set Vpp (0=Never, 1=On writes, 2=Always on, default=0)");
100MODULE_PARM(vpp, "i"); 100module_param(vpp, int, 0);
101MODULE_PARM_DESC(vpp, "Vpp value in 1/10ths eg 33=3.3V 120=12V (Dangerous)"); 101MODULE_PARM_DESC(vpp, "Vpp value in 1/10ths eg 33=3.3V 120=12V (Dangerous)");
102MODULE_PARM(mem_type, "i"); 102module_param(mem_type, int, 0);
103MODULE_PARM_DESC(mem_type, "Set Memory type (0=Flash, 1=RAM, 2=ROM, default=0)"); 103MODULE_PARM_DESC(mem_type, "Set Memory type (0=Flash, 1=RAM, 2=ROM, default=0)");
104 104
105 105
diff --git a/drivers/net/atari_bionet.c b/drivers/net/atari_bionet.c
index 0095384ff454..5e5f80b99b9e 100644
--- a/drivers/net/atari_bionet.c
+++ b/drivers/net/atari_bionet.c
@@ -123,7 +123,7 @@ static char version[] =
123 * Global variable 'bionet_debug'. Can be set at load time by 'insmod' 123 * Global variable 'bionet_debug'. Can be set at load time by 'insmod'
124 */ 124 */
125unsigned int bionet_debug = NET_DEBUG; 125unsigned int bionet_debug = NET_DEBUG;
126MODULE_PARM(bionet_debug, "i"); 126module_param(bionet_debug, int, 0);
127MODULE_PARM_DESC(bionet_debug, "bionet debug level (0-2)"); 127MODULE_PARM_DESC(bionet_debug, "bionet debug level (0-2)");
128MODULE_LICENSE("GPL"); 128MODULE_LICENSE("GPL");
129 129
diff --git a/drivers/net/atari_pamsnet.c b/drivers/net/atari_pamsnet.c
index 8b997809f9de..d6039e62d832 100644
--- a/drivers/net/atari_pamsnet.c
+++ b/drivers/net/atari_pamsnet.c
@@ -119,7 +119,7 @@ static char *version =
119 * Global variable 'pamsnet_debug'. Can be set at load time by 'insmod' 119 * Global variable 'pamsnet_debug'. Can be set at load time by 'insmod'
120 */ 120 */
121unsigned int pamsnet_debug = NET_DEBUG; 121unsigned int pamsnet_debug = NET_DEBUG;
122MODULE_PARM(pamsnet_debug, "i"); 122module_param(pamsnet_debug, int, 0);
123MODULE_PARM_DESC(pamsnet_debug, "pamsnet debug enable (0-1)"); 123MODULE_PARM_DESC(pamsnet_debug, "pamsnet debug enable (0-1)");
124MODULE_LICENSE("GPL"); 124MODULE_LICENSE("GPL");
125 125
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index e01b6a78ec63..442b2cbeb58a 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -78,7 +78,7 @@ static int lance_debug = LANCE_DEBUG;
78#else 78#else
79static int lance_debug = 1; 79static int lance_debug = 1;
80#endif 80#endif
81MODULE_PARM(lance_debug, "i"); 81module_param(lance_debug, int, 0);
82MODULE_PARM_DESC(lance_debug, "atarilance debug level (0-3)"); 82MODULE_PARM_DESC(lance_debug, "atarilance debug level (0-3)");
83MODULE_LICENSE("GPL"); 83MODULE_LICENSE("GPL");
84 84
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 8f1573e658a5..ac48f7543500 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -192,12 +192,15 @@
192static char version[] __devinitdata = 192static char version[] __devinitdata =
193 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; 193 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
194 194
195static int cassini_debug = -1; /* -1 == use CAS_DEF_MSG_ENABLE as value */
196static int link_mode;
197
195MODULE_AUTHOR("Adrian Sun (asun@darksunrising.com)"); 198MODULE_AUTHOR("Adrian Sun (asun@darksunrising.com)");
196MODULE_DESCRIPTION("Sun Cassini(+) ethernet driver"); 199MODULE_DESCRIPTION("Sun Cassini(+) ethernet driver");
197MODULE_LICENSE("GPL"); 200MODULE_LICENSE("GPL");
198MODULE_PARM(cassini_debug, "i"); 201module_param(cassini_debug, int, 0);
199MODULE_PARM_DESC(cassini_debug, "Cassini bitmapped debugging message enable value"); 202MODULE_PARM_DESC(cassini_debug, "Cassini bitmapped debugging message enable value");
200MODULE_PARM(link_mode, "i"); 203module_param(link_mode, int, 0);
201MODULE_PARM_DESC(link_mode, "default link mode"); 204MODULE_PARM_DESC(link_mode, "default link mode");
202 205
203/* 206/*
@@ -209,7 +212,7 @@ MODULE_PARM_DESC(link_mode, "default link mode");
209 * Value in seconds, for user input. 212 * Value in seconds, for user input.
210 */ 213 */
211static int linkdown_timeout = DEFAULT_LINKDOWN_TIMEOUT; 214static int linkdown_timeout = DEFAULT_LINKDOWN_TIMEOUT;
212MODULE_PARM(linkdown_timeout, "i"); 215module_param(linkdown_timeout, int, 0);
213MODULE_PARM_DESC(linkdown_timeout, 216MODULE_PARM_DESC(linkdown_timeout,
214"min reset interval in sec. for PCS linkdown issue; disabled if not positive"); 217"min reset interval in sec. for PCS linkdown issue; disabled if not positive");
215 218
@@ -221,8 +224,6 @@ MODULE_PARM_DESC(linkdown_timeout,
221static int link_transition_timeout; 224static int link_transition_timeout;
222 225
223 226
224static int cassini_debug = -1; /* -1 == use CAS_DEF_MSG_ENABLE as value */
225static int link_mode;
226 227
227static u16 link_modes[] __devinitdata = { 228static u16 link_modes[] __devinitdata = {
228 BMCR_ANENABLE, /* 0 : autoneg */ 229 BMCR_ANENABLE, /* 0 : autoneg */
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 349ebe783ed6..7fe2638ae06d 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -124,7 +124,7 @@ MODULE_LICENSE("GPL");
124 124
125static int dflt_msg_enable = DFLT_MSG_ENABLE; 125static int dflt_msg_enable = DFLT_MSG_ENABLE;
126 126
127MODULE_PARM(dflt_msg_enable, "i"); 127module_param(dflt_msg_enable, int, 0);
128MODULE_PARM_DESC(dflt_msg_enable, "Chelsio T1 message enable bitmap"); 128MODULE_PARM_DESC(dflt_msg_enable, "Chelsio T1 message enable bitmap");
129 129
130 130
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index b4f3a9f8a535..7e4338097139 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -55,11 +55,11 @@ MODULE_AUTHOR("Pantelis Antoniou <panto@intracom.gr>");
55MODULE_DESCRIPTION("Motorola 8xx FEC ethernet driver"); 55MODULE_DESCRIPTION("Motorola 8xx FEC ethernet driver");
56MODULE_LICENSE("GPL"); 56MODULE_LICENSE("GPL");
57 57
58MODULE_PARM(fec_8xx_debug, "i"); 58int fec_8xx_debug = -1; /* -1 == use FEC_8XX_DEF_MSG_ENABLE as value */
59module_param(fec_8xx_debug, int, 0);
59MODULE_PARM_DESC(fec_8xx_debug, 60MODULE_PARM_DESC(fec_8xx_debug,
60 "FEC 8xx bitmapped debugging message enable value"); 61 "FEC 8xx bitmapped debugging message enable value");
61 62
62int fec_8xx_debug = -1; /* -1 == use FEC_8XX_DEF_MSG_ENABLE as value */
63 63
64/*************************************************/ 64/*************************************************/
65 65
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index f5d49a110654..196298f33db8 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -58,11 +58,11 @@ MODULE_DESCRIPTION("Freescale Ethernet Driver");
58MODULE_LICENSE("GPL"); 58MODULE_LICENSE("GPL");
59MODULE_VERSION(DRV_MODULE_VERSION); 59MODULE_VERSION(DRV_MODULE_VERSION);
60 60
61MODULE_PARM(fs_enet_debug, "i"); 61int fs_enet_debug = -1; /* -1 == use FS_ENET_DEF_MSG_ENABLE as value */
62module_param(fs_enet_debug, int, 0);
62MODULE_PARM_DESC(fs_enet_debug, 63MODULE_PARM_DESC(fs_enet_debug,
63 "Freescale bitmapped debugging message enable value"); 64 "Freescale bitmapped debugging message enable value");
64 65
65int fs_enet_debug = -1; /* -1 == use FS_ENET_DEF_MSG_ENABLE as value */
66 66
67static void fs_set_multicast_list(struct net_device *dev) 67static void fs_set_multicast_list(struct net_device *dev)
68{ 68{
diff --git a/drivers/net/gt96100eth.c b/drivers/net/gt96100eth.c
index 5958a6314723..2d2435404614 100644
--- a/drivers/net/gt96100eth.c
+++ b/drivers/net/gt96100eth.c
@@ -114,8 +114,8 @@ static int max_interrupt_work = 32;
114 114
115static char mac0[18] = "00.02.03.04.05.06"; 115static char mac0[18] = "00.02.03.04.05.06";
116static char mac1[18] = "00.01.02.03.04.05"; 116static char mac1[18] = "00.01.02.03.04.05";
117MODULE_PARM(mac0, "c18"); 117module_param_string(mac0, mac0, 18, 0);
118MODULE_PARM(mac1, "c18"); 118module_param_string(mac1, mac0, 18, 0);
119MODULE_PARM_DESC(mac0, "MAC address for GT96100 ethernet port 0"); 119MODULE_PARM_DESC(mac0, "MAC address for GT96100 ethernet port 0");
120MODULE_PARM_DESC(mac1, "MAC address for GT96100 ethernet port 1"); 120MODULE_PARM_DESC(mac1, "MAC address for GT96100 ethernet port 1");
121 121
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c
index c8dc40214a08..79a8fbcf5f93 100644
--- a/drivers/net/hamradio/dmascc.c
+++ b/drivers/net/hamradio/dmascc.c
@@ -280,7 +280,7 @@ static unsigned long rand;
280 280
281MODULE_AUTHOR("Klaus Kudielka"); 281MODULE_AUTHOR("Klaus Kudielka");
282MODULE_DESCRIPTION("Driver for high-speed SCC boards"); 282MODULE_DESCRIPTION("Driver for high-speed SCC boards");
283MODULE_PARM(io, "1-" __MODULE_STRING(MAX_NUM_DEVS) "i"); 283module_param_array(io, int, NULL, 0);
284MODULE_LICENSE("GPL"); 284MODULE_LICENSE("GPL");
285 285
286static void __exit dmascc_exit(void) 286static void __exit dmascc_exit(void)
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c
index dc5e9d59deed..d81a8e1eeb8d 100644
--- a/drivers/net/hamradio/mkiss.c
+++ b/drivers/net/hamradio/mkiss.c
@@ -1012,7 +1012,7 @@ static void __exit mkiss_exit_driver(void)
1012 1012
1013MODULE_AUTHOR("Ralf Baechle DL5RB <ralf@linux-mips.org>"); 1013MODULE_AUTHOR("Ralf Baechle DL5RB <ralf@linux-mips.org>");
1014MODULE_DESCRIPTION("KISS driver for AX.25 over TTYs"); 1014MODULE_DESCRIPTION("KISS driver for AX.25 over TTYs");
1015MODULE_PARM(crc_force, "i"); 1015module_param(crc_force, int, 0);
1016MODULE_PARM_DESC(crc_force, "crc [0 = auto | 1 = none | 2 = flexnet | 3 = smack]"); 1016MODULE_PARM_DESC(crc_force, "crc [0 = auto | 1 = none | 2 = flexnet | 3 = smack]");
1017MODULE_LICENSE("GPL"); 1017MODULE_LICENSE("GPL");
1018MODULE_ALIAS_LDISC(N_AX25); 1018MODULE_ALIAS_LDISC(N_AX25);
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
index 6070195b87bd..98fa5319e5cc 100644
--- a/drivers/net/irda/irport.c
+++ b/drivers/net/irda/irport.c
@@ -1118,9 +1118,9 @@ static void __exit irport_cleanup(void)
1118 } 1118 }
1119} 1119}
1120 1120
1121MODULE_PARM(io, "1-4i"); 1121module_param_array(io, int, NULL, 0);
1122MODULE_PARM_DESC(io, "Base I/O addresses"); 1122MODULE_PARM_DESC(io, "Base I/O addresses");
1123MODULE_PARM(irq, "1-4i"); 1123module_param_array(irq, int, NULL, 0);
1124MODULE_PARM_DESC(irq, "IRQ lines"); 1124MODULE_PARM_DESC(irq, "IRQ lines");
1125 1125
1126MODULE_AUTHOR("Dag Brattli <dagb@cs.uit.no>"); 1126MODULE_AUTHOR("Dag Brattli <dagb@cs.uit.no>");
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
index f7b7238d8352..957888de3d7e 100644
--- a/drivers/net/lasi_82596.c
+++ b/drivers/net/lasi_82596.c
@@ -177,7 +177,7 @@ static int i596_debug = (DEB_SERIOUS|DEB_PROBE);
177MODULE_AUTHOR("Richard Hirst"); 177MODULE_AUTHOR("Richard Hirst");
178MODULE_DESCRIPTION("i82596 driver"); 178MODULE_DESCRIPTION("i82596 driver");
179MODULE_LICENSE("GPL"); 179MODULE_LICENSE("GPL");
180MODULE_PARM(i596_debug, "i"); 180module_param(i596_debug, int, 0);
181MODULE_PARM_DESC(i596_debug, "lasi_82596 debug mask"); 181MODULE_PARM_DESC(i596_debug, "lasi_82596 debug mask");
182 182
183/* Copy frames shorter than rx_copybreak, otherwise pass on up in 183/* Copy frames shorter than rx_copybreak, otherwise pass on up in
@@ -1520,9 +1520,9 @@ static void set_multicast_list(struct net_device *dev)
1520 } 1520 }
1521} 1521}
1522 1522
1523MODULE_PARM(debug, "i");
1524MODULE_PARM_DESC(debug, "lasi_82596 debug mask");
1525static int debug = -1; 1523static int debug = -1;
1524module_param(debug, int, 0);
1525MODULE_PARM_DESC(debug, "lasi_82596 debug mask");
1526 1526
1527static int num_drivers; 1527static int num_drivers;
1528static struct net_device *netdevs[MAX_DRIVERS]; 1528static struct net_device *netdevs[MAX_DRIVERS];
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index f65b0db111b8..cd3c9a5a98b2 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -629,7 +629,7 @@ static int set_mac_address(struct net_device *dev, void *addr)
629static struct net_device *dev_cs89x0; 629static struct net_device *dev_cs89x0;
630static int debug; 630static int debug;
631 631
632MODULE_PARM(debug, "i"); 632module_param(debug, int, 0);
633MODULE_PARM_DESC(debug, "CS89[02]0 debug level (0-5)"); 633MODULE_PARM_DESC(debug, "CS89[02]0 debug level (0-5)");
634MODULE_LICENSE("GPL"); 634MODULE_LICENSE("GPL");
635 635
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index 2a5add257b8f..77792b286027 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -1042,7 +1042,7 @@ static void __exit mace_cleanup(void)
1042 1042
1043MODULE_AUTHOR("Paul Mackerras"); 1043MODULE_AUTHOR("Paul Mackerras");
1044MODULE_DESCRIPTION("PowerMac MACE driver."); 1044MODULE_DESCRIPTION("PowerMac MACE driver.");
1045MODULE_PARM(port_aaui, "i"); 1045module_param(port_aaui, int, 0);
1046MODULE_PARM_DESC(port_aaui, "MACE uses AAUI port (0-1)"); 1046MODULE_PARM_DESC(port_aaui, "MACE uses AAUI port (0-1)");
1047MODULE_LICENSE("GPL"); 1047MODULE_LICENSE("GPL");
1048 1048
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index e23655f5049f..d644bf3a933c 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -62,7 +62,7 @@ MODULE_DESCRIPTION("SGI O2 Builtin Fast Ethernet driver");
62 62
63#ifdef HAVE_TX_TIMEOUT 63#ifdef HAVE_TX_TIMEOUT
64static int timeout = TX_TIMEOUT; 64static int timeout = TX_TIMEOUT;
65MODULE_PARM(timeout, "i"); 65module_param(timeout, int, 0);
66#endif 66#endif
67 67
68/* 68/*
diff --git a/drivers/net/ne-h8300.c b/drivers/net/ne-h8300.c
index aaebd28a1920..7ea3d596ac3b 100644
--- a/drivers/net/ne-h8300.c
+++ b/drivers/net/ne-h8300.c
@@ -601,9 +601,9 @@ static int io[MAX_NE_CARDS];
601static int irq[MAX_NE_CARDS]; 601static int irq[MAX_NE_CARDS];
602static int bad[MAX_NE_CARDS]; /* 0xbad = bad sig or no reset ack */ 602static int bad[MAX_NE_CARDS]; /* 0xbad = bad sig or no reset ack */
603 603
604MODULE_PARM(io, "1-" __MODULE_STRING(MAX_NE_CARDS) "i"); 604module_param_array(io, int, NULL, 0);
605MODULE_PARM(irq, "1-" __MODULE_STRING(MAX_NE_CARDS) "i"); 605module_param_array(irq, int, NULL, 0);
606MODULE_PARM(bad, "1-" __MODULE_STRING(MAX_NE_CARDS) "i"); 606module_param_array(bad, int, NULL, 0);
607MODULE_PARM_DESC(io, "I/O base address(es)"); 607MODULE_PARM_DESC(io, "I/O base address(es)");
608MODULE_PARM_DESC(irq, "IRQ number(s)"); 608MODULE_PARM_DESC(irq, "IRQ number(s)");
609MODULE_DESCRIPTION("H8/300 NE2000 Ethernet driver"); 609MODULE_DESCRIPTION("H8/300 NE2000 Ethernet driver");
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 2ab01a5d1d22..a68bf474f6ed 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -766,8 +766,8 @@ static void ni5010_show_registers(struct net_device *dev)
766#ifdef MODULE 766#ifdef MODULE
767static struct net_device *dev_ni5010; 767static struct net_device *dev_ni5010;
768 768
769MODULE_PARM(io, "i"); 769module_param(io, int, 0);
770MODULE_PARM(irq, "i"); 770module_param(irq, int, 0);
771MODULE_PARM_DESC(io, "ni5010 I/O base address"); 771MODULE_PARM_DESC(io, "ni5010 I/O base address");
772MODULE_PARM_DESC(irq, "ni5010 IRQ number"); 772MODULE_PARM_DESC(irq, "ni5010 IRQ number");
773 773
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index 01bdb2334058..d4c0002b43db 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -71,7 +71,7 @@ static int lance_debug = LANCE_DEBUG;
71#else 71#else
72static int lance_debug = 1; 72static int lance_debug = 1;
73#endif 73#endif
74MODULE_PARM(lance_debug, "i"); 74module_param(lance_debug, int, 0);
75MODULE_PARM_DESC(lance_debug, "SUN3 Lance debug level (0-3)"); 75MODULE_PARM_DESC(lance_debug, "SUN3 Lance debug level (0-3)");
76MODULE_LICENSE("GPL"); 76MODULE_LICENSE("GPL");
77 77
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index dfe542b206cc..7967916bda18 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -43,7 +43,6 @@ MODULE_AUTHOR("Holger Smolinski <Holger.Smolinski@de.ibm.com>");
43MODULE_DESCRIPTION("Linux on S/390 DASD device driver," 43MODULE_DESCRIPTION("Linux on S/390 DASD device driver,"
44 " Copyright 2000 IBM Corporation"); 44 " Copyright 2000 IBM Corporation");
45MODULE_SUPPORTED_DEVICE("dasd"); 45MODULE_SUPPORTED_DEVICE("dasd");
46MODULE_PARM(dasd, "1-" __MODULE_STRING(256) "s");
47MODULE_LICENSE("GPL"); 46MODULE_LICENSE("GPL");
48 47
49/* 48/*
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c
index f576f243cd93..2f720108a7e0 100644
--- a/drivers/s390/block/dasd_devmap.c
+++ b/drivers/s390/block/dasd_devmap.c
@@ -16,6 +16,7 @@
16#include <linux/config.h> 16#include <linux/config.h>
17#include <linux/ctype.h> 17#include <linux/ctype.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/module.h>
19 20
20#include <asm/debug.h> 21#include <asm/debug.h>
21#include <asm/uaccess.h> 22#include <asm/uaccess.h>
@@ -69,6 +70,8 @@ int dasd_autodetect = 0; /* is true, when autodetection is active */
69 * strings when running as a module. 70 * strings when running as a module.
70 */ 71 */
71static char *dasd[256]; 72static char *dasd[256];
73module_param_array(dasd, charp, NULL, 0);
74
72/* 75/*
73 * Single spinlock to protect devmap structures and lists. 76 * Single spinlock to protect devmap structures and lists.
74 */ 77 */
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index 583d2d8c8335..fad2109268bb 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -550,6 +550,6 @@ module_exit(cumanascsi2_exit);
550 550
551MODULE_AUTHOR("Russell King"); 551MODULE_AUTHOR("Russell King");
552MODULE_DESCRIPTION("Cumana SCSI-2 driver for Acorn machines"); 552MODULE_DESCRIPTION("Cumana SCSI-2 driver for Acorn machines");
553MODULE_PARM(term, "1-8i"); 553module_param_array(term, int, NULL, 0);
554MODULE_PARM_DESC(term, "SCSI bus termination"); 554MODULE_PARM_DESC(term, "SCSI bus termination");
555MODULE_LICENSE("GPL"); 555MODULE_LICENSE("GPL");
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c
index 3ffec7efc9d5..dcbb4b2b3fe0 100644
--- a/drivers/scsi/arm/eesox.c
+++ b/drivers/scsi/arm/eesox.c
@@ -674,6 +674,6 @@ module_exit(eesox_exit);
674 674
675MODULE_AUTHOR("Russell King"); 675MODULE_AUTHOR("Russell King");
676MODULE_DESCRIPTION("EESOX 'Fast' SCSI driver for Acorn machines"); 676MODULE_DESCRIPTION("EESOX 'Fast' SCSI driver for Acorn machines");
677MODULE_PARM(term, "1-8i"); 677module_param_array(term, int, NULL, 0);
678MODULE_PARM_DESC(term, "SCSI bus termination"); 678MODULE_PARM_DESC(term, "SCSI bus termination");
679MODULE_LICENSE("GPL"); 679MODULE_LICENSE("GPL");
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index 3113bdcedb13..3d69f6c45a6b 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -466,6 +466,6 @@ module_exit(powertecscsi_exit);
466 466
467MODULE_AUTHOR("Russell King"); 467MODULE_AUTHOR("Russell King");
468MODULE_DESCRIPTION("Powertec SCSI driver"); 468MODULE_DESCRIPTION("Powertec SCSI driver");
469MODULE_PARM(term, "1-8i"); 469module_param_array(term, int, NULL, 0);
470MODULE_PARM_DESC(term, "SCSI bus termination"); 470MODULE_PARM_DESC(term, "SCSI bus termination");
471MODULE_LICENSE("GPL"); 471MODULE_LICENSE("GPL");
diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c
index f4c1ca7c1572..f677c5a32a68 100644
--- a/drivers/scsi/atari_scsi.c
+++ b/drivers/scsi/atari_scsi.c
@@ -239,17 +239,17 @@ static int atari_read_overruns = 0;
239#endif 239#endif
240 240
241static int setup_can_queue = -1; 241static int setup_can_queue = -1;
242MODULE_PARM(setup_can_queue, "i"); 242module_param(setup_can_queue, int, 0);
243static int setup_cmd_per_lun = -1; 243static int setup_cmd_per_lun = -1;
244MODULE_PARM(setup_cmd_per_lun, "i"); 244module_param(setup_cmd_per_lun, int, 0);
245static int setup_sg_tablesize = -1; 245static int setup_sg_tablesize = -1;
246MODULE_PARM(setup_sg_tablesize, "i"); 246module_param(setup_sg_tablesize, int, 0);
247#ifdef SUPPORT_TAGS 247#ifdef SUPPORT_TAGS
248static int setup_use_tagged_queuing = -1; 248static int setup_use_tagged_queuing = -1;
249MODULE_PARM(setup_use_tagged_queuing, "i"); 249module_param(setup_use_tagged_queuing, int, 0);
250#endif 250#endif
251static int setup_hostid = -1; 251static int setup_hostid = -1;
252MODULE_PARM(setup_hostid, "i"); 252module_param(setup_hostid, int, 0);
253 253
254 254
255#if defined(CONFIG_TT_DMA_EMUL) 255#if defined(CONFIG_TT_DMA_EMUL)
diff --git a/drivers/video/pm3fb.c b/drivers/video/pm3fb.c
index 0e78ddc81583..52c18a35fb41 100644
--- a/drivers/video/pm3fb.c
+++ b/drivers/video/pm3fb.c
@@ -3532,26 +3532,26 @@ int __init pm3fb_init(void)
3532MODULE_AUTHOR("Romain Dolbeau"); 3532MODULE_AUTHOR("Romain Dolbeau");
3533MODULE_DESCRIPTION("Permedia3 framebuffer device driver"); 3533MODULE_DESCRIPTION("Permedia3 framebuffer device driver");
3534static char *mode[PM3_MAX_BOARD]; 3534static char *mode[PM3_MAX_BOARD];
3535MODULE_PARM(mode,PM3_MAX_BOARD_MODULE_ARRAY_STRING); 3535module_param_array(mode, charp, NULL, 0);
3536MODULE_PARM_DESC(mode,"video mode"); 3536MODULE_PARM_DESC(mode,"video mode");
3537MODULE_PARM(disable,PM3_MAX_BOARD_MODULE_ARRAY_SHORT); 3537module_param_array(disable, short, NULL, 0);
3538MODULE_PARM_DESC(disable,"disable board"); 3538MODULE_PARM_DESC(disable,"disable board");
3539static short off[PM3_MAX_BOARD]; 3539static short off[PM3_MAX_BOARD];
3540MODULE_PARM(off,PM3_MAX_BOARD_MODULE_ARRAY_SHORT); 3540module_param_array(off, short, NULL, 0);
3541MODULE_PARM_DESC(off,"disable board"); 3541MODULE_PARM_DESC(off,"disable board");
3542static char *pciid[PM3_MAX_BOARD]; 3542static char *pciid[PM3_MAX_BOARD];
3543MODULE_PARM(pciid,PM3_MAX_BOARD_MODULE_ARRAY_STRING); 3543module_param_array(pciid, charp, NULL, 0);
3544MODULE_PARM_DESC(pciid,"board PCI Id"); 3544MODULE_PARM_DESC(pciid,"board PCI Id");
3545MODULE_PARM(noaccel,PM3_MAX_BOARD_MODULE_ARRAY_SHORT); 3545module_param_array(noaccel, short, NULL, 0);
3546MODULE_PARM_DESC(noaccel,"disable accel"); 3546MODULE_PARM_DESC(noaccel,"disable accel");
3547static char *font[PM3_MAX_BOARD]; 3547static char *font[PM3_MAX_BOARD];
3548MODULE_PARM(font,PM3_MAX_BOARD_MODULE_ARRAY_STRING); 3548module_param_array(font, charp, NULL, 0);
3549MODULE_PARM_DESC(font,"choose font"); 3549MODULE_PARM_DESC(font,"choose font");
3550MODULE_PARM(depth,PM3_MAX_BOARD_MODULE_ARRAY_SHORT); 3550module_param(depth, short, NULL, 0);
3551MODULE_PARM_DESC(depth,"boot-time depth"); 3551MODULE_PARM_DESC(depth,"boot-time depth");
3552MODULE_PARM(printtimings, "h"); 3552module_param(printtimings, short, NULL, 0);
3553MODULE_PARM_DESC(printtimings, "print the memory timings of the card(s)"); 3553MODULE_PARM_DESC(printtimings, "print the memory timings of the card(s)");
3554MODULE_PARM(forcesize, PM3_MAX_BOARD_MODULE_ARRAY_SHORT); 3554module_param(forcesize, short, NULL, 0);
3555MODULE_PARM_DESC(forcesize, "force specified memory size"); 3555MODULE_PARM_DESC(forcesize, "force specified memory size");
3556/* 3556/*
3557MODULE_SUPPORTED_DEVICE("Permedia3 PCI boards") 3557MODULE_SUPPORTED_DEVICE("Permedia3 PCI boards")
diff --git a/include/linux/module.h b/include/linux/module.h
index 70bd843c71cb..e144309836af 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -554,25 +554,6 @@ static inline void module_remove_driver(struct device_driver *driver)
554 554
555/* BELOW HERE ALL THESE ARE OBSOLETE AND WILL VANISH */ 555/* BELOW HERE ALL THESE ARE OBSOLETE AND WILL VANISH */
556 556
557struct obsolete_modparm {
558 char name[64];
559 char type[64-sizeof(void *)];
560 void *addr;
561};
562
563static inline void MODULE_PARM_(void) { }
564#ifdef MODULE
565/* DEPRECATED: Do not use. */
566#define MODULE_PARM(var,type) \
567extern struct obsolete_modparm __parm_##var \
568__attribute__((section("__obsparm"))); \
569struct obsolete_modparm __parm_##var = \
570{ __stringify(var), type, &MODULE_PARM_ }; \
571__MODULE_PARM_TYPE(var, type);
572#else
573#define MODULE_PARM(var,type) static void __attribute__((__unused__)) *__parm_##var = &MODULE_PARM_;
574#endif
575
576#define __MODULE_STRING(x) __stringify(x) 557#define __MODULE_STRING(x) __stringify(x)
577 558
578/* Use symbol_get and symbol_put instead. You'll thank me. */ 559/* Use symbol_get and symbol_put instead. You'll thank me. */
diff --git a/include/video/pm3fb.h b/include/video/pm3fb.h
index 6f4ea808cf74..ac021379ac40 100644
--- a/include/video/pm3fb.h
+++ b/include/video/pm3fb.h
@@ -1128,10 +1128,7 @@
1128#endif 1128#endif
1129 1129
1130/* max number of simultaneous board */ 1130/* max number of simultaneous board */
1131/* warning : make sure module array def's are coherent with PM3_MAX_BOARD */
1132#define PM3_MAX_BOARD 4 1131#define PM3_MAX_BOARD 4
1133#define PM3_MAX_BOARD_MODULE_ARRAY_SHORT "1-4h"
1134#define PM3_MAX_BOARD_MODULE_ARRAY_STRING "1-4s"
1135 1132
1136/* max size of options */ 1133/* max size of options */
1137#define PM3_OPTIONS_SIZE 256 1134#define PM3_OPTIONS_SIZE 256
diff --git a/init/Kconfig b/init/Kconfig
index 1d19fd25204b..05951c1d654e 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -470,15 +470,6 @@ config MODULE_FORCE_UNLOAD
470 rmmod). This is mainly for kernel developers and desperate users. 470 rmmod). This is mainly for kernel developers and desperate users.
471 If unsure, say N. 471 If unsure, say N.
472 472
473config OBSOLETE_MODPARM
474 bool
475 default y
476 depends on MODULES
477 help
478 You need this option to use module parameters on modules which
479 have not been converted to the new module parameter system yet.
480 If unsure, say Y.
481
482config MODVERSIONS 473config MODVERSIONS
483 bool "Module versioning support" 474 bool "Module versioning support"
484 depends on MODULES 475 depends on MODULES
diff --git a/kernel/module.c b/kernel/module.c
index 54623c714bba..ddfe45ac2fd1 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -233,24 +233,6 @@ static unsigned long __find_symbol(const char *name,
233 return 0; 233 return 0;
234} 234}
235 235
236/* Find a symbol in this elf symbol table */
237static unsigned long find_local_symbol(Elf_Shdr *sechdrs,
238 unsigned int symindex,
239 const char *strtab,
240 const char *name)
241{
242 unsigned int i;
243 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr;
244
245 /* Search (defined) internal symbols first. */
246 for (i = 1; i < sechdrs[symindex].sh_size/sizeof(*sym); i++) {
247 if (sym[i].st_shndx != SHN_UNDEF
248 && strcmp(name, strtab + sym[i].st_name) == 0)
249 return sym[i].st_value;
250 }
251 return 0;
252}
253
254/* Search for module by name: must hold module_mutex. */ 236/* Search for module by name: must hold module_mutex. */
255static struct module *find_module(const char *name) 237static struct module *find_module(const char *name)
256{ 238{
@@ -785,139 +767,6 @@ static struct module_attribute *modinfo_attrs[] = {
785 NULL, 767 NULL,
786}; 768};
787 769
788#ifdef CONFIG_OBSOLETE_MODPARM
789/* Bounds checking done below */
790static int obsparm_copy_string(const char *val, struct kernel_param *kp)
791{
792 strcpy(kp->arg, val);
793 return 0;
794}
795
796static int set_obsolete(const char *val, struct kernel_param *kp)
797{
798 unsigned int min, max;
799 unsigned int size, maxsize;
800 int dummy;
801 char *endp;
802 const char *p;
803 struct obsolete_modparm *obsparm = kp->arg;
804
805 if (!val) {
806 printk(KERN_ERR "Parameter %s needs an argument\n", kp->name);
807 return -EINVAL;
808 }
809
810 /* type is: [min[-max]]{b,h,i,l,s} */
811 p = obsparm->type;
812 min = simple_strtol(p, &endp, 10);
813 if (endp == obsparm->type)
814 min = max = 1;
815 else if (*endp == '-') {
816 p = endp+1;
817 max = simple_strtol(p, &endp, 10);
818 } else
819 max = min;
820 switch (*endp) {
821 case 'b':
822 return param_array(kp->name, val, min, max, obsparm->addr,
823 1, param_set_byte, &dummy);
824 case 'h':
825 return param_array(kp->name, val, min, max, obsparm->addr,
826 sizeof(short), param_set_short, &dummy);
827 case 'i':
828 return param_array(kp->name, val, min, max, obsparm->addr,
829 sizeof(int), param_set_int, &dummy);
830 case 'l':
831 return param_array(kp->name, val, min, max, obsparm->addr,
832 sizeof(long), param_set_long, &dummy);
833 case 's':
834 return param_array(kp->name, val, min, max, obsparm->addr,
835 sizeof(char *), param_set_charp, &dummy);
836
837 case 'c':
838 /* Undocumented: 1-5c50 means 1-5 strings of up to 49 chars,
839 and the decl is "char xxx[5][50];" */
840 p = endp+1;
841 maxsize = simple_strtol(p, &endp, 10);
842 /* We check lengths here (yes, this is a hack). */
843 p = val;
844 while (p[size = strcspn(p, ",")]) {
845 if (size >= maxsize)
846 goto oversize;
847 p += size+1;
848 }
849 if (size >= maxsize)
850 goto oversize;
851 return param_array(kp->name, val, min, max, obsparm->addr,
852 maxsize, obsparm_copy_string, &dummy);
853 }
854 printk(KERN_ERR "Unknown obsolete parameter type %s\n", obsparm->type);
855 return -EINVAL;
856 oversize:
857 printk(KERN_ERR
858 "Parameter %s doesn't fit in %u chars.\n", kp->name, maxsize);
859 return -EINVAL;
860}
861
862static int obsolete_params(const char *name,
863 char *args,
864 struct obsolete_modparm obsparm[],
865 unsigned int num,
866 Elf_Shdr *sechdrs,
867 unsigned int symindex,
868 const char *strtab)
869{
870 struct kernel_param *kp;
871 unsigned int i;
872 int ret;
873
874 kp = kmalloc(sizeof(kp[0]) * num, GFP_KERNEL);
875 if (!kp)
876 return -ENOMEM;
877
878 for (i = 0; i < num; i++) {
879 char sym_name[128 + sizeof(MODULE_SYMBOL_PREFIX)];
880
881 snprintf(sym_name, sizeof(sym_name), "%s%s",
882 MODULE_SYMBOL_PREFIX, obsparm[i].name);
883
884 kp[i].name = obsparm[i].name;
885 kp[i].perm = 000;
886 kp[i].set = set_obsolete;
887 kp[i].get = NULL;
888 obsparm[i].addr
889 = (void *)find_local_symbol(sechdrs, symindex, strtab,
890 sym_name);
891 if (!obsparm[i].addr) {
892 printk("%s: falsely claims to have parameter %s\n",
893 name, obsparm[i].name);
894 ret = -EINVAL;
895 goto out;
896 }
897 kp[i].arg = &obsparm[i];
898 }
899
900 ret = parse_args(name, args, kp, num, NULL);
901 out:
902 kfree(kp);
903 return ret;
904}
905#else
906static int obsolete_params(const char *name,
907 char *args,
908 struct obsolete_modparm obsparm[],
909 unsigned int num,
910 Elf_Shdr *sechdrs,
911 unsigned int symindex,
912 const char *strtab)
913{
914 if (num != 0)
915 printk(KERN_WARNING "%s: Ignoring obsolete parameters\n",
916 name);
917 return 0;
918}
919#endif /* CONFIG_OBSOLETE_MODPARM */
920
921static const char vermagic[] = VERMAGIC_STRING; 770static const char vermagic[] = VERMAGIC_STRING;
922 771
923#ifdef CONFIG_MODVERSIONS 772#ifdef CONFIG_MODVERSIONS
@@ -1874,27 +1723,17 @@ static struct module *load_module(void __user *umod,
1874 set_fs(old_fs); 1723 set_fs(old_fs);
1875 1724
1876 mod->args = args; 1725 mod->args = args;
1877 if (obsparmindex) { 1726 if (obsparmindex)
1878 err = obsolete_params(mod->name, mod->args, 1727 printk(KERN_WARNING "%s: Ignoring obsolete parameters\n",
1879 (struct obsolete_modparm *) 1728 mod->name);
1880 sechdrs[obsparmindex].sh_addr, 1729
1881 sechdrs[obsparmindex].sh_size 1730 /* Size of section 0 is 0, so this works well if no params */
1882 / sizeof(struct obsolete_modparm), 1731 err = parse_args(mod->name, mod->args,
1883 sechdrs, symindex, 1732 (struct kernel_param *)
1884 (char *)sechdrs[strindex].sh_addr); 1733 sechdrs[setupindex].sh_addr,
1885 if (setupindex) 1734 sechdrs[setupindex].sh_size
1886 printk(KERN_WARNING "%s: Ignoring new-style " 1735 / sizeof(struct kernel_param),
1887 "parameters in presence of obsolete ones\n", 1736 NULL);
1888 mod->name);
1889 } else {
1890 /* Size of section 0 is 0, so this works well if no params */
1891 err = parse_args(mod->name, mod->args,
1892 (struct kernel_param *)
1893 sechdrs[setupindex].sh_addr,
1894 sechdrs[setupindex].sh_size
1895 / sizeof(struct kernel_param),
1896 NULL);
1897 }
1898 if (err < 0) 1737 if (err < 0)
1899 goto arch_cleanup; 1738 goto arch_cleanup;
1900 1739
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index 9a1fa8894b95..b4b362b5baf5 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -54,15 +54,15 @@ static int verbose; /* Print more debug info. */
54static int test_no_idle_hz; /* Test RCU's support for tickless idle CPUs. */ 54static int test_no_idle_hz; /* Test RCU's support for tickless idle CPUs. */
55static int shuffle_interval = 5; /* Interval between shuffles (in sec)*/ 55static int shuffle_interval = 5; /* Interval between shuffles (in sec)*/
56 56
57MODULE_PARM(nreaders, "i"); 57module_param(nreaders, int, 0);
58MODULE_PARM_DESC(nreaders, "Number of RCU reader threads"); 58MODULE_PARM_DESC(nreaders, "Number of RCU reader threads");
59MODULE_PARM(stat_interval, "i"); 59module_param(stat_interval, int, 0);
60MODULE_PARM_DESC(stat_interval, "Number of seconds between stats printk()s"); 60MODULE_PARM_DESC(stat_interval, "Number of seconds between stats printk()s");
61MODULE_PARM(verbose, "i"); 61module_param(verbose, bool, 0);
62MODULE_PARM_DESC(verbose, "Enable verbose debugging printk()s"); 62MODULE_PARM_DESC(verbose, "Enable verbose debugging printk()s");
63MODULE_PARM(test_no_idle_hz, "i"); 63module_param(test_no_idle_hz, bool, 0);
64MODULE_PARM_DESC(test_no_idle_hz, "Test support for tickless idle CPUs"); 64MODULE_PARM_DESC(test_no_idle_hz, "Test support for tickless idle CPUs");
65MODULE_PARM(shuffle_interval, "i"); 65module_param(shuffle_interval, int, 0);
66MODULE_PARM_DESC(shuffle_interval, "Number of seconds between shuffles"); 66MODULE_PARM_DESC(shuffle_interval, "Number of seconds between shuffles");
67#define TORTURE_FLAG "rcutorture: " 67#define TORTURE_FLAG "rcutorture: "
68#define PRINTK_STRING(s) \ 68#define PRINTK_STRING(s) \
diff --git a/sound/oss/au1000.c b/sound/oss/au1000.c
index fe54de25aafc..eacb0aef21e1 100644
--- a/sound/oss/au1000.c
+++ b/sound/oss/au1000.c
@@ -100,7 +100,7 @@
100 100
101/* Boot options */ 101/* Boot options */
102static int vra = 0; // 0 = no VRA, 1 = use VRA if codec supports it 102static int vra = 0; // 0 = no VRA, 1 = use VRA if codec supports it
103MODULE_PARM(vra, "i"); 103module_param(vra, bool, 0);
104MODULE_PARM_DESC(vra, "if 1 use VRA if codec supports it"); 104MODULE_PARM_DESC(vra, "if 1 use VRA if codec supports it");
105 105
106 106
diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c
index 6a4956b8025d..c1168fae6be6 100644
--- a/sound/oss/au1550_ac97.c
+++ b/sound/oss/au1550_ac97.c
@@ -79,7 +79,7 @@
79 * 0 = no VRA, 1 = use VRA if codec supports it 79 * 0 = no VRA, 1 = use VRA if codec supports it
80 */ 80 */
81static int vra = 1; 81static int vra = 1;
82MODULE_PARM(vra, "i"); 82module_param(vra, bool, 0);
83MODULE_PARM_DESC(vra, "if 1 use VRA if codec supports it"); 83MODULE_PARM_DESC(vra, "if 1 use VRA if codec supports it");
84 84
85static struct au1550_state { 85static struct au1550_state {
diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index c9302a1e515b..87bd3100aef3 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -195,18 +195,18 @@
195 */ 195 */
196 196
197int dmasound_catchRadius = 0; 197int dmasound_catchRadius = 0;
198MODULE_PARM(dmasound_catchRadius, "i"); 198module_param(dmasound_catchRadius, int, 0);
199 199
200static unsigned int numWriteBufs = DEFAULT_N_BUFFERS; 200static unsigned int numWriteBufs = DEFAULT_N_BUFFERS;
201MODULE_PARM(numWriteBufs, "i"); 201module_param(numWriteBufs, int, 0);
202static unsigned int writeBufSize = DEFAULT_BUFF_SIZE ; /* in bytes */ 202static unsigned int writeBufSize = DEFAULT_BUFF_SIZE ; /* in bytes */
203MODULE_PARM(writeBufSize, "i"); 203module_param(writeBufSize, int, 0);
204 204
205#ifdef HAS_RECORD 205#ifdef HAS_RECORD
206static unsigned int numReadBufs = DEFAULT_N_BUFFERS; 206static unsigned int numReadBufs = DEFAULT_N_BUFFERS;
207MODULE_PARM(numReadBufs, "i"); 207module_param(numReadBufs, int, 0);
208static unsigned int readBufSize = DEFAULT_BUFF_SIZE; /* in bytes */ 208static unsigned int readBufSize = DEFAULT_BUFF_SIZE; /* in bytes */
209MODULE_PARM(readBufSize, "i"); 209module_param(readBufSize, int, 0);
210#endif 210#endif
211 211
212MODULE_LICENSE("GPL"); 212MODULE_LICENSE("GPL");
diff --git a/sound/oss/ite8172.c b/sound/oss/ite8172.c
index ffcb910f5c3e..00ac1c95a429 100644
--- a/sound/oss/ite8172.c
+++ b/sound/oss/ite8172.c
@@ -1968,9 +1968,9 @@ static int i2s_fmt[NR_DEVICE];
1968 1968
1969static unsigned int devindex; 1969static unsigned int devindex;
1970 1970
1971MODULE_PARM(spdif, "1-" __MODULE_STRING(NR_DEVICE) "i"); 1971module_param_array(spdif, int, NULL, 0);
1972MODULE_PARM_DESC(spdif, "if 1 the S/PDIF digital output is enabled"); 1972MODULE_PARM_DESC(spdif, "if 1 the S/PDIF digital output is enabled");
1973MODULE_PARM(i2s_fmt, "1-" __MODULE_STRING(NR_DEVICE) "i"); 1973module_param_array(i2s_fmt, int, NULL, 0);
1974MODULE_PARM_DESC(i2s_fmt, "the format of I2S"); 1974MODULE_PARM_DESC(i2s_fmt, "the format of I2S");
1975 1975
1976MODULE_AUTHOR("Monta Vista Software, stevel@mvista.com"); 1976MODULE_AUTHOR("Monta Vista Software, stevel@mvista.com");
diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
index dce9016cbcfd..eb5ea32fd1b0 100644
--- a/sound/oss/swarm_cs4297a.c
+++ b/sound/oss/swarm_cs4297a.c
@@ -154,8 +154,8 @@ static void start_adc(struct cs4297a_state *s);
154#if CSDEBUG 154#if CSDEBUG
155static unsigned long cs_debuglevel = 4; // levels range from 1-9 155static unsigned long cs_debuglevel = 4; // levels range from 1-9
156static unsigned long cs_debugmask = CS_INIT /*| CS_IOCTL*/; 156static unsigned long cs_debugmask = CS_INIT /*| CS_IOCTL*/;
157MODULE_PARM(cs_debuglevel, "i"); 157module_param(cs_debuglevel, int, 0);
158MODULE_PARM(cs_debugmask, "i"); 158module_param(cs_debugmask, int, 0);
159#endif 159#endif
160#define CS_TRUE 1 160#define CS_TRUE 1
161#define CS_FALSE 0 161#define CS_FALSE 0
diff --git a/sound/oss/waveartist.c b/sound/oss/waveartist.c
index 99d04ad3ca13..afcb524a40eb 100644
--- a/sound/oss/waveartist.c
+++ b/sound/oss/waveartist.c
@@ -2028,8 +2028,8 @@ __setup("waveartist=", setup_waveartist);
2028#endif 2028#endif
2029 2029
2030MODULE_DESCRIPTION("Rockwell WaveArtist RWA-010 sound driver"); 2030MODULE_DESCRIPTION("Rockwell WaveArtist RWA-010 sound driver");
2031MODULE_PARM(io, "i"); /* IO base */ 2031module_param(io, int, 0); /* IO base */
2032MODULE_PARM(irq, "i"); /* IRQ */ 2032module_param(irq, int, 0); /* IRQ */
2033MODULE_PARM(dma, "i"); /* DMA */ 2033module_param(dma, int, 0); /* DMA */
2034MODULE_PARM(dma2, "i"); /* DMA2 */ 2034module_param(dma2, int, 0); /* DMA2 */
2035MODULE_LICENSE("GPL"); 2035MODULE_LICENSE("GPL");