Name: Parameter Changes: Core Author: Rusty Russell Depends: Module/param.patch.gz D: This replaces all the occurrances of __setup and MODULE_PARM in the D: core files with the new PARAM calls. diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/devfs/base.c .9606-linux-2.5.36.updated/fs/devfs/base.c --- .9606-linux-2.5.36/fs/devfs/base.c 2002-09-01 12:23:04.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/devfs/base.c 2002-09-18 17:52:02.000000000 +1000 @@ -2247,7 +2247,7 @@ int devfs_only (void) * @str: The boot options after the "devfs=". */ -static int __init devfs_setup (char *str) +static int __init devfs_setup (char *str, struct kernel_param *kp) { static struct { @@ -2299,14 +2299,14 @@ static int __init devfs_setup (char *str break; } } - if (!found) return 0; /* No match */ - if (*str != ',') return 0; /* No more options */ + if (!found) return -EINVAL; /* No match */ + if (*str != ',') return -EINVAL; /* No more options */ ++str; } - return 1; + return 0; } /* End Function devfs_setup */ -__setup("devfs=", devfs_setup); +PARAM_CALL(devfs, devfs_setup, NULL); EXPORT_SYMBOL(devfs_put); EXPORT_SYMBOL(devfs_register); diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/ext3/super.c .9606-linux-2.5.36.updated/fs/ext3/super.c --- .9606-linux-2.5.36/fs/ext3/super.c 2002-09-18 16:04:39.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/ext3/super.c 2002-09-18 17:59:08.000000000 +1000 @@ -1620,7 +1620,7 @@ int ext3_force_commit(struct super_block */ static int do_sync_supers = 0; -MODULE_PARM(do_sync_supers, "i"); +PARAM(do_sync_supers, bool, 000); MODULE_PARM_DESC(do_sync_supers, "Write superblocks synchronously"); void ext3_write_super (struct super_block * sb) diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/jfs/super.c .9606-linux-2.5.36.updated/fs/jfs/super.c --- .9606-linux-2.5.36/fs/jfs/super.c 2002-09-18 16:04:02.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/jfs/super.c 2002-09-18 17:59:49.000000000 +1000 @@ -48,7 +48,7 @@ DECLARE_COMPLETION(jfsIOwait); #ifdef CONFIG_JFS_DEBUG int jfsloglevel = 1; -MODULE_PARM(jfsloglevel, "i"); +PARAM(jfsloglevel, int, 000); MODULE_PARM_DESC(jfsloglevel, "Specify JFS loglevel (0, 1 or 2)"); #endif diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/lockd/svc.c .9606-linux-2.5.36.updated/fs/lockd/svc.c --- .9606-linux-2.5.36/fs/lockd/svc.c 2002-09-18 16:04:02.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/lockd/svc.c 2002-09-18 17:52:02.000000000 +1000 @@ -34,6 +34,7 @@ #include #include #include +#include #define NLMDBG_FACILITY NLMDBG_SVC #define LOCKD_BUFSIZE (1024 + NLMSSVC_XDRSIZE) @@ -304,18 +305,17 @@ out: up(&nlmsvc_sema); } -#ifdef MODULE /* New module support in 2.1.18 */ MODULE_AUTHOR("Olaf Kirch "); MODULE_DESCRIPTION("NFS file locking service version " LOCKD_VERSION "."); MODULE_LICENSE("GPL"); -MODULE_PARM(nlm_grace_period, "10-240l"); -MODULE_PARM(nlm_timeout, "3-20l"); -MODULE_PARM(nlm_udpport, "0-65535l"); -MODULE_PARM(nlm_tcpport, "0-65535l"); - -int +PARAM(nlm_grace_period, long, S_IRUGO); +PARAM(nlm_timeout, long, S_IRUGO); +PARAM(nlm_udpport, long, S_IRUGO); +PARAM(nlm_tcpport, long, S_IRUGO); + +static int init_module(void) { /* Init the static variables */ @@ -325,31 +325,14 @@ init_module(void) return 0; } -void +static void cleanup_module(void) { /* FIXME: delete all NLM clients */ nlm_shutdown_hosts(); } -#else -/* not a module, so process bootargs - * lockd.udpport and lockd.tcpport - */ - -static int __init udpport_set(char *str) -{ - nlm_udpport = simple_strtoul(str, NULL, 0); - return 1; -} -static int __init tcpport_set(char *str) -{ - nlm_tcpport = simple_strtoul(str, NULL, 0); - return 1; -} -__setup("lockd.udpport=", udpport_set); -__setup("lockd.tcpport=", tcpport_set); - -#endif +module_init(init_module); +module_exit(cleanup_module); /* * Define NLM program and procedures diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/nfs/nfsroot.c .9606-linux-2.5.36.updated/fs/nfs/nfsroot.c --- .9606-linux-2.5.36/fs/nfs/nfsroot.c 2002-06-12 22:38:32.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/nfs/nfsroot.c 2002-09-18 17:52:02.000000000 +1000 @@ -334,7 +334,7 @@ int __init root_nfs_init(void) * Parse NFS server and directory information passed on the kernel * command line. */ -int __init nfs_root_setup(char *line) +int __init nfs_root_setup(char *line, struct kernel_param *kp) { ROOT_DEV = Root_NFS; if (line[0] == '/' || line[0] == ',' || (line[0] >= '0' && line[0] <= '9')) { @@ -347,10 +347,10 @@ int __init nfs_root_setup(char *line) sprintf(nfs_root_name, NFS_ROOT, line); } root_nfs_parse_addr(nfs_root_name); - return 1; + return 0; } -__setup("nfsroot=", nfs_root_setup); +PARAM_CALL(nfsroot, nfs_root_setup, NULL); /*************************************************************************** diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/fs/ntfs/super.c .9606-linux-2.5.36.updated/fs/ntfs/super.c --- .9606-linux-2.5.36/fs/ntfs/super.c 2002-08-11 15:31:41.000000000 +1000 +++ .9606-linux-2.5.36.updated/fs/ntfs/super.c 2002-09-18 17:58:32.000000000 +1000 @@ -1764,7 +1764,7 @@ MODULE_AUTHOR("Anton Altaparmakov #include -static int __init no_halt(char *s) +static int __init no_halt(char *s, struct kernel_param *kp) { boot_cpu_data.hlt_works_ok = 0; return 1; } -__setup("no-hlt", no_halt); - -static int __init mca_pentium(char *s) -{ - mca_pentium_flag = 1; - return 1; -} +PARAM_CALL(no_hlt, no_halt, NULL); -__setup("mca-pentium", mca_pentium); +PARAM(mca_pentium_flag, uint, S_IRUGO); -static int __init no_387(char *s) +static int __init no_387(char *s, struct kernel_param *kp) { boot_cpu_data.hard_math = 0; write_cr0(0xE | read_cr0()); - return 1; + return 0; } -__setup("no387", no_387); +PARAM_CALL(no387, no_387, NULL); static double __initdata x = 4195835.0; static double __initdata y = 3145727.0; diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/include/linux/i2c-proc.h .9606-linux-2.5.36.updated/include/linux/i2c-proc.h --- .9606-linux-2.5.36/include/linux/i2c-proc.h 2002-06-21 09:41:55.000000000 +1000 +++ .9606-linux-2.5.36.updated/include/linux/i2c-proc.h 2002-09-18 17:52:02.000000000 +1000 @@ -177,17 +177,11 @@ struct i2c_address_data { SENSORS_I2C_END, SENSORS_I2C_END, SENSORS_I2C_END, \ SENSORS_I2C_END, SENSORS_I2C_END, SENSORS_I2C_END} -/* This is ugly. We need to evaluate SENSORS_MAX_OPTS before it is - stringified */ -#define SENSORS_MODPARM_AUX1(x) "1-" #x "h" -#define SENSORS_MODPARM_AUX(x) SENSORS_MODPARM_AUX1(x) -#define SENSORS_MODPARM SENSORS_MODPARM_AUX(SENSORS_MAX_OPTS) - /* SENSORS_MODULE_PARM creates a module parameter, and puts it in the module header */ #define SENSORS_MODULE_PARM(var,desc) \ static unsigned short var[SENSORS_MAX_OPTS] = SENSORS_DEFAULTS; \ - MODULE_PARM(var,SENSORS_MODPARM); \ + PARAM_ARRAY(var, var, ushort, 1, SENSORS_MAX_OPTS, 000); \ MODULE_PARM_DESC(var,desc) /* SENSORS_MODULE_PARM creates a 'force_*' module parameter, and puts it in diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/include/linux/i2c.h .9606-linux-2.5.36.updated/include/linux/i2c.h --- .9606-linux-2.5.36/include/linux/i2c.h 2002-08-28 09:29:52.000000000 +1000 +++ .9606-linux-2.5.36.updated/include/linux/i2c.h 2002-09-18 17:52:02.000000000 +1000 @@ -555,18 +555,12 @@ union i2c_smbus_data { I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END, \ I2C_CLIENT_END, I2C_CLIENT_END, I2C_CLIENT_END} -/* This is ugly. We need to evaluate I2C_CLIENT_MAX_OPTS before it is - stringified */ -#define I2C_CLIENT_MODPARM_AUX1(x) "1-" #x "h" -#define I2C_CLIENT_MODPARM_AUX(x) I2C_CLIENT_MODPARM_AUX1(x) -#define I2C_CLIENT_MODPARM I2C_CLIENT_MODPARM_AUX(I2C_CLIENT_MAX_OPTS) - /* I2C_CLIENT_MODULE_PARM creates a module parameter, and puts it in the module header */ #define I2C_CLIENT_MODULE_PARM(var,desc) \ static unsigned short var[I2C_CLIENT_MAX_OPTS] = I2C_CLIENT_DEFAULTS; \ - MODULE_PARM(var,I2C_CLIENT_MODPARM); \ + PARAM_ARRAY(var, var, ushort, 1, I2C_CLIENT_MAX_OPTS, 000); \ MODULE_PARM_DESC(var,desc) /* This is the one you want to use in your own modules */ diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/init/do_mounts.c .9606-linux-2.5.36.updated/init/do_mounts.c --- .9606-linux-2.5.36/init/do_mounts.c 2002-09-18 17:51:27.000000000 +1000 +++ .9606-linux-2.5.36.updated/init/do_mounts.c 2002-09-18 18:10:06.000000000 +1000 @@ -40,13 +40,7 @@ extern asmlinkage long sys_ioctl(int fd, unsigned int real_root_dev; /* do_proc_dointvec cannot handle kdev_t */ static int __initdata mount_initrd = 1; -static int __init no_initrd(char *str) -{ - mount_initrd = 0; - return 1; -} - -__setup("noinitrd", no_initrd); +PARAM_NAMED(noinitrd, mount_initrd, invbool, 000); #else static int __initdata mount_initrd = 0; #endif @@ -61,12 +55,12 @@ dev_t ROOT_DEV; static int do_devfs = 0; -static int __init load_ramdisk(char *str) +static int __init load_ramdisk(char *str, struct kernel_param *kp) { rd_doload = simple_strtol(str,NULL,0) & 3; - return 1; + return 0; } -__setup("load_ramdisk=", load_ramdisk); +PARAM_CALL(load_ramdisk, load_ramdisk, NULL); static int __init readonly(char *str, struct kernel_param *kp) { @@ -388,21 +382,11 @@ static void __init change_floppy(char *f int __initdata rd_prompt = 1; /* 1 = prompt for RAM disk, 0 = don't prompt */ -static int __init prompt_ramdisk(char *str) -{ - rd_prompt = simple_strtol(str,NULL,0) & 1; - return 1; -} -__setup("prompt_ramdisk=", prompt_ramdisk); +PARAM_NAMED(prompt_ramdisk, rd_prompt, bool, 000); int __initdata rd_image_start; /* starting block # of image */ -static int __init ramdisk_start_setup(char *str) -{ - rd_image_start = simple_strtol(str,NULL,0); - return 1; -} -__setup("ramdisk_start=", ramdisk_start_setup); +PARAM_NAMED(ramdisk_start, rd_image_start, int, 000); static int __init crd_load(int in_fd, int out_fd); diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/kernel/panic.c .9606-linux-2.5.36.updated/kernel/panic.c --- .9606-linux-2.5.36/kernel/panic.c 2002-08-11 15:31:43.000000000 +1000 +++ .9606-linux-2.5.36.updated/kernel/panic.c 2002-09-18 17:52:02.000000000 +1000 @@ -23,14 +23,6 @@ int panic_timeout; struct notifier_block *panic_notifier_list; -static int __init panic_setup(char *str) -{ - panic_timeout = simple_strtoul(str, NULL, 0); - return 1; -} - -__setup("panic=", panic_setup); - /** * panic - halt the system * @fmt: The text string to print @@ -100,6 +92,8 @@ NORET_TYPE void panic(const char * fmt, } } +PARAM_NAMED(panic, panic_timeout, int, 000); + /** * print_tainted - return a string to represent the kernel taint state. * diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/kernel/printk.c .9606-linux-2.5.36.updated/kernel/printk.c --- .9606-linux-2.5.36/kernel/printk.c 2002-08-28 09:29:53.000000000 +1000 +++ .9606-linux-2.5.36.updated/kernel/printk.c 2002-09-18 17:52:02.000000000 +1000 @@ -97,9 +97,9 @@ static int preferred_console = -1; static int console_may_schedule; /* - * Setup a list of consoles. Called from init/main.c + * Setup a list of consoles. */ -static int __init console_setup(char *str) +static int __init console_setup(char *str, struct kernel_param *kp) { struct console_cmdline *c; char name[sizeof(c->name)]; @@ -137,19 +137,19 @@ static int __init console_setup(char *st if (strcmp(console_cmdline[i].name, name) == 0 && console_cmdline[i].index == idx) { preferred_console = i; - return 1; + return 0; } if (i == MAX_CMDLINECONSOLES) - return 1; + return 0; preferred_console = i; c = &console_cmdline[i]; memcpy(c->name, name, sizeof(c->name)); c->options = options; c->index = idx; - return 1; + return 0; } -__setup("console=", console_setup); +PARAM_CALL(console, console_setup, NULL); /* * Commands to do_syslog: diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/kernel/resource.c .9606-linux-2.5.36.updated/kernel/resource.c --- .9606-linux-2.5.36/kernel/resource.c 2002-08-11 15:31:43.000000000 +1000 +++ .9606-linux-2.5.36.updated/kernel/resource.c 2002-09-18 17:52:02.000000000 +1000 @@ -297,7 +297,7 @@ void __release_region(struct resource *p * Called from init/main.c to reserve IO ports. */ #define MAXRESERVE 4 -static int __init reserve_setup(char *str) +static int __init reserve_setup(char *str, struct kernel_param *kp) { static int reserved = 0; static struct resource reserve[MAXRESERVE]; @@ -321,7 +321,7 @@ static int __init reserve_setup(char *st reserved = x+1; } } - return 1; + return 0; } -__setup("reserve=", reserve_setup); +PARAM_CALL(reserve, reserve_setup, NULL); diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/kernel/suspend.c .9606-linux-2.5.36.updated/kernel/suspend.c --- .9606-linux-2.5.36/kernel/suspend.c 2002-09-18 16:04:06.000000000 +1000 +++ .9606-linux-2.5.36.updated/kernel/suspend.c 2002-09-18 18:11:07.000000000 +1000 @@ -1218,28 +1218,28 @@ read_failure: return; } -static int __init resume_setup(char *str) +static int __init resume_setup(char *str, struct kernel_param *kp) { if(resume_status) - return 1; + return 0; strncpy( resume_file, str, 255 ); resume_status = RESUME_SPECIFIED; - return 1; + return 0; } -static int __init software_noresume(char *str) +static int __init software_noresume(char *str, struct kernel_param *kp) { if(!resume_status) printk(KERN_WARNING "noresume option lacks a resume= option\n"); resume_status = NORESUME; - return 1; + return 0; } -__setup("noresume", software_noresume); -__setup("resume=", resume_setup); +PARAM_CALL(noresume, software_noresume, NULL); +PARAM_CALL(resume, resume_setup, NULL); EXPORT_SYMBOL(software_suspend); EXPORT_SYMBOL(software_suspend_enabled); diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/kernel/timer.c .9606-linux-2.5.36.updated/kernel/timer.c --- .9606-linux-2.5.36/kernel/timer.c 2002-09-18 16:04:06.000000000 +1000 +++ .9606-linux-2.5.36.updated/kernel/timer.c 2002-09-18 17:52:02.000000000 +1000 @@ -24,6 +24,7 @@ #include #include #include +#include #include @@ -80,6 +81,8 @@ unsigned int * prof_buffer; unsigned long prof_len; unsigned long prof_shift; +PARAM_NAMED(profile, prof_shift, ulong, 000); + /* * Event timer code */ diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .9606-linux-2.5.36/mm/page_alloc.c .9606-linux-2.5.36.updated/mm/page_alloc.c --- .9606-linux-2.5.36/mm/page_alloc.c 2002-09-18 16:04:41.000000000 +1000 +++ .9606-linux-2.5.36.updated/mm/page_alloc.c 2002-09-18 17:52:02.000000000 +1000 @@ -939,15 +939,4 @@ void __init free_area_init(unsigned long free_area_init_core(0, &contig_page_data, &mem_map, zones_size, 0, 0, 0); } -static int __init setup_mem_frac(char *str) -{ - int j = 0; - - while (get_option(&str, &zone_balance_ratio[j++]) == 2); - printk("setup_mem_frac: "); - for (j = 0; j < MAX_NR_ZONES; j++) printk("%d ", zone_balance_ratio[j]); - printk("\n"); - return 1; -} - -__setup("memfrac=", setup_mem_frac); +PARAM_ARRAY(memfrac, zone_balance_ratio, int, 1, MAX_NR_ZONES, S_IRUGO);