diff options
-rw-r--r-- | drivers/hwmon/emc2103.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/ehca/ehca_main.c | 2 | ||||
-rw-r--r-- | drivers/s390/cio/cmf.c | 2 | ||||
-rw-r--r-- | fs/ntfs/super.c | 2 | ||||
-rw-r--r-- | include/linux/moduleparam.h | 6 | ||||
-rw-r--r-- | kernel/params.c | 24 | ||||
-rw-r--r-- | sound/pci/intel8x0.c | 4 |
7 files changed, 36 insertions, 6 deletions
diff --git a/drivers/hwmon/emc2103.c b/drivers/hwmon/emc2103.c index 848a2b0bc83..865063914d7 100644 --- a/drivers/hwmon/emc2103.c +++ b/drivers/hwmon/emc2103.c | |||
@@ -55,7 +55,7 @@ static const u8 REG_TEMP_MAX[4] = { 0x34, 0x30, 0x31, 0x32 }; | |||
55 | * it. Default is to leave the device in the state it's already in (-1). | 55 | * it. Default is to leave the device in the state it's already in (-1). |
56 | * This parameter allows APD mode to be optionally forced on or off */ | 56 | * This parameter allows APD mode to be optionally forced on or off */ |
57 | static int apd = -1; | 57 | static int apd = -1; |
58 | module_param(apd, bool, 0); | 58 | module_param(apd, bint, 0); |
59 | MODULE_PARM_DESC(init, "Set to zero to disable anti-parallel diode mode"); | 59 | MODULE_PARM_DESC(init, "Set to zero to disable anti-parallel diode mode"); |
60 | 60 | ||
61 | struct temperature { | 61 | struct temperature { |
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c index c240e9972cb..8af8d4f7bdb 100644 --- a/drivers/infiniband/hw/ehca/ehca_main.c +++ b/drivers/infiniband/hw/ehca/ehca_main.c | |||
@@ -82,7 +82,7 @@ module_param_named(port_act_time, ehca_port_act_time, int, S_IRUGO); | |||
82 | module_param_named(poll_all_eqs, ehca_poll_all_eqs, bool, S_IRUGO); | 82 | module_param_named(poll_all_eqs, ehca_poll_all_eqs, bool, S_IRUGO); |
83 | module_param_named(static_rate, ehca_static_rate, int, S_IRUGO); | 83 | module_param_named(static_rate, ehca_static_rate, int, S_IRUGO); |
84 | module_param_named(scaling_code, ehca_scaling_code, bool, S_IRUGO); | 84 | module_param_named(scaling_code, ehca_scaling_code, bool, S_IRUGO); |
85 | module_param_named(lock_hcalls, ehca_lock_hcalls, bool, S_IRUGO); | 85 | module_param_named(lock_hcalls, ehca_lock_hcalls, bint, S_IRUGO); |
86 | module_param_named(number_of_cqs, ehca_max_cq, int, S_IRUGO); | 86 | module_param_named(number_of_cqs, ehca_max_cq, int, S_IRUGO); |
87 | module_param_named(number_of_qps, ehca_max_qp, int, S_IRUGO); | 87 | module_param_named(number_of_qps, ehca_max_qp, int, S_IRUGO); |
88 | 88 | ||
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index 2985eb43948..204ca728e7f 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c | |||
@@ -98,7 +98,7 @@ enum cmb_format { | |||
98 | * enum cmb_format. | 98 | * enum cmb_format. |
99 | */ | 99 | */ |
100 | static int format = CMF_AUTODETECT; | 100 | static int format = CMF_AUTODETECT; |
101 | module_param(format, bool, 0444); | 101 | module_param(format, bint, 0444); |
102 | 102 | ||
103 | /** | 103 | /** |
104 | * struct cmb_operations - functions to use depending on cmb_format | 104 | * struct cmb_operations - functions to use depending on cmb_format |
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c index 608be451609..5a4a8af5c40 100644 --- a/fs/ntfs/super.c +++ b/fs/ntfs/super.c | |||
@@ -3198,7 +3198,7 @@ MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2011 Anton Altaparm | |||
3198 | MODULE_VERSION(NTFS_VERSION); | 3198 | MODULE_VERSION(NTFS_VERSION); |
3199 | MODULE_LICENSE("GPL"); | 3199 | MODULE_LICENSE("GPL"); |
3200 | #ifdef DEBUG | 3200 | #ifdef DEBUG |
3201 | module_param(debug_msgs, bool, 0); | 3201 | module_param(debug_msgs, bint, 0); |
3202 | MODULE_PARM_DESC(debug_msgs, "Enable debug messages."); | 3202 | MODULE_PARM_DESC(debug_msgs, "Enable debug messages."); |
3203 | #endif | 3203 | #endif |
3204 | 3204 | ||
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 794d4b0f121..6bdde0c3bcc 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h | |||
@@ -367,6 +367,12 @@ extern int param_set_invbool(const char *val, const struct kernel_param *kp); | |||
367 | extern int param_get_invbool(char *buffer, const struct kernel_param *kp); | 367 | extern int param_get_invbool(char *buffer, const struct kernel_param *kp); |
368 | #define param_check_invbool(name, p) __param_check(name, p, bool) | 368 | #define param_check_invbool(name, p) __param_check(name, p, bool) |
369 | 369 | ||
370 | /* An int, which can only be set like a bool (though it shows as an int). */ | ||
371 | extern struct kernel_param_ops param_ops_bint; | ||
372 | extern int param_set_bint(const char *val, const struct kernel_param *kp); | ||
373 | #define param_get_bint param_get_int | ||
374 | #define param_check_bint param_check_int | ||
375 | |||
370 | /** | 376 | /** |
371 | * module_param_array - a parameter which is an array of some type | 377 | * module_param_array - a parameter which is an array of some type |
372 | * @name: the name of the array variable | 378 | * @name: the name of the array variable |
diff --git a/kernel/params.c b/kernel/params.c index 9240664af11..32ee0430828 100644 --- a/kernel/params.c +++ b/kernel/params.c | |||
@@ -363,6 +363,30 @@ struct kernel_param_ops param_ops_invbool = { | |||
363 | }; | 363 | }; |
364 | EXPORT_SYMBOL(param_ops_invbool); | 364 | EXPORT_SYMBOL(param_ops_invbool); |
365 | 365 | ||
366 | int param_set_bint(const char *val, const struct kernel_param *kp) | ||
367 | { | ||
368 | struct kernel_param boolkp; | ||
369 | bool v; | ||
370 | int ret; | ||
371 | |||
372 | /* Match bool exactly, by re-using it. */ | ||
373 | boolkp = *kp; | ||
374 | boolkp.arg = &v; | ||
375 | boolkp.flags |= KPARAM_ISBOOL; | ||
376 | |||
377 | ret = param_set_bool(val, &boolkp); | ||
378 | if (ret == 0) | ||
379 | *(int *)kp->arg = v; | ||
380 | return ret; | ||
381 | } | ||
382 | EXPORT_SYMBOL(param_set_bint); | ||
383 | |||
384 | struct kernel_param_ops param_ops_bint = { | ||
385 | .set = param_set_bint, | ||
386 | .get = param_get_int, | ||
387 | }; | ||
388 | EXPORT_SYMBOL(param_ops_bint); | ||
389 | |||
366 | /* We break the rule and mangle the string. */ | 390 | /* We break the rule and mangle the string. */ |
367 | static int param_array(const char *name, | 391 | static int param_array(const char *name, |
368 | const char *val, | 392 | const char *val, |
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index 40b181bab93..9f3b01bb72c 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c | |||
@@ -95,13 +95,13 @@ module_param(ac97_quirk, charp, 0444); | |||
95 | MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware."); | 95 | MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware."); |
96 | module_param(buggy_semaphore, bool, 0444); | 96 | module_param(buggy_semaphore, bool, 0444); |
97 | MODULE_PARM_DESC(buggy_semaphore, "Enable workaround for hardwares with problematic codec semaphores."); | 97 | MODULE_PARM_DESC(buggy_semaphore, "Enable workaround for hardwares with problematic codec semaphores."); |
98 | module_param(buggy_irq, bool, 0444); | 98 | module_param(buggy_irq, bint, 0444); |
99 | MODULE_PARM_DESC(buggy_irq, "Enable workaround for buggy interrupts on some motherboards."); | 99 | MODULE_PARM_DESC(buggy_irq, "Enable workaround for buggy interrupts on some motherboards."); |
100 | module_param(xbox, bool, 0444); | 100 | module_param(xbox, bool, 0444); |
101 | MODULE_PARM_DESC(xbox, "Set to 1 for Xbox, if you have problems with the AC'97 codec detection."); | 101 | MODULE_PARM_DESC(xbox, "Set to 1 for Xbox, if you have problems with the AC'97 codec detection."); |
102 | module_param(spdif_aclink, int, 0444); | 102 | module_param(spdif_aclink, int, 0444); |
103 | MODULE_PARM_DESC(spdif_aclink, "S/PDIF over AC-link."); | 103 | MODULE_PARM_DESC(spdif_aclink, "S/PDIF over AC-link."); |
104 | module_param(inside_vm, bool, 0444); | 104 | module_param(inside_vm, bint, 0444); |
105 | MODULE_PARM_DESC(inside_vm, "KVM/Parallels optimization."); | 105 | MODULE_PARM_DESC(inside_vm, "KVM/Parallels optimization."); |
106 | 106 | ||
107 | /* just for backward compatibility */ | 107 | /* just for backward compatibility */ |