From: Dmitry Torokhov on 10 Aug 2010 15:00 Certain "parameters", such as acpica version and upcoming VMware Balloon version, are need to be purely read-only. They are exported as parameters so that they are visible in sysfs even in cases when the module is built directly into the kernel, but their values should be immutable. Specifying S_IRUGO takes care of sysfs interface, but it has no effect on kernel command line or modprobe configuration files and so these "parameters" attempt to omit set() method. Unfortunately kernel expects set() to be always present and crashes if it is not there, so let's add appropriate check. Signed-off-by: Dmitry Torokhov <dtor(a)vmware.com> --- kernel/params.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/params.c b/kernel/params.c index 0b30ecd..d0bb910 100644 --- a/kernel/params.c +++ b/kernel/params.c @@ -49,7 +49,7 @@ static inline int parameq(const char *input, const char *paramname) static int parse_one(char *param, char *val, - struct kernel_param *params, + struct kernel_param *params, unsigned num_params, int (*handle_unknown)(char *param, char *val)) { @@ -58,9 +58,9 @@ static int parse_one(char *param, /* Find parameter */ for (i = 0; i < num_params; i++) { if (parameq(param, params[i].name)) { - DEBUGP("They are equal! Calling %p\n", - params[i].set); - return params[i].set(val, ¶ms[i]); + DEBUGP("They are equal! set() is %p\n", params[i].set); + return params[i].set ? + params[i].set(val, ¶ms[i]) : -EPERM; } } -- 1.7.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: PATCH 3/6 - direct-io: do not merge logically non-contiguous requests Next: Linux 2.6.34.3 |