fix reading string module parameters in sysfs
PATCH 1/1 fix reading string module parameters in sysfs
Reading the contents of a module_param_string through sysfs currently oopses because the param_get_charp() function cannot operate on a kparam_string struct. This introduces the required param_get_string.
Signed-off-by Arnd Bergmann <[email protected]>
===== include/linux/moduleparam.h 1.8 vs edited =====
include/linux/moduleparam.h +2 -1
@@ -73,7 +73,7 @@#define module_param_string (name, string, len, perm) \ static struct kparam_string __param_string_##name \ = { len, string }; \ - module_param_call(name, param_set_copystring, param_get_charp, \ + module_param_call(name, param_set_copystring, param_get_string, \ &__param_string_##name, perm)/* Called on module insert or kernel boot */
@@ -140,6 +140,7 @@extern int param_array_get (char *buffer,struct kernel_param *kp);extern int param_set_copystring (const char *val,struct kernel_param *kp); +extern int param_get_string (char *buffer,struct kernel_param *kp); int param_array(const char *name, const char *val,
===== kernel/params.c 1.8 vs edited =====
kernel/params.c +7 -0
@@ -339,6 +339,12 @@return 0 ; } +int param_get_string (char *buffer,struct kernel_param *kp) +{ +struct kparam_string *kps = kp->arg; +return strlcpy (buffer, kps->string, kps->maxlen); +} +EXPORT_SYMBOL (param_set_short);EXPORT_SYMBOL (param_get_short);EXPORT_SYMBOL (param_set_ushort);
@@ -360,3 +366,4 @@EXPORT_SYMBOL (param_array_set);EXPORT_SYMBOL (param_array_get);EXPORT_SYMBOL (param_set_copystring); +EXPORT_SYMBOL (param_get_string);