module: Add flag to allow mod params to have no arguments
authorSteven Rostedt <rostedt@goodmis.org>
Tue, 20 Aug 2013 06:03:19 +0000 (15:33 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 20 Aug 2013 06:07:42 +0000 (15:37 +0930)
commitab013c5f60b7ead254863c75b9adc2a47992d01b
tree9631f1731699398802646d43b170c133c6988fbc
parent7cb14ba75d57910cc4b62115dd5db7bd83c93684
module: Add flag to allow mod params to have no arguments

Currently the params.c code allows only two "set" functions to have
no arguments. If a parameter does not have an argument, then it
looks at the set function and tests if it is either param_set_bool()
or param_set_bint(). If it is not one of these functions, then it
fails the loading of the module.

But there may be module parameters that have different set functions
and still allow no arguments. But unless each of these cases adds
their function to the if statement, it wont be allowed to have no
arguments. This method gets rather messing and does not scale.

Instead, introduce a flags field to the kernel_param_ops, where if
the flag KERNEL_PARAM_FL_NOARG is set, the parameter will not fail
if it does not contain an argument. It will be expected that the
corresponding set function can handle a NULL pointer as "val".

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/linux/moduleparam.h
kernel/params.c