public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] param: allow omitting set() methods for truly read-only params
@ 2010-08-10 18:58 Dmitry Torokhov
  2010-08-10 18:58 ` [PATCH 2/2] VMware balloon: export module version as module parameter Dmitry Torokhov
  2010-08-11  1:39 ` [PATCH 1/2] param: allow omitting set() methods for truly read-only params Rusty Russell
  0 siblings, 2 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2010-08-10 18:58 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, Len Brown, Rusty Russell

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@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, &params[i]);
+			DEBUGP("They are equal! set() is %p\n", params[i].set);
+			return params[i].set ?
+				params[i].set(val, &params[i]) : -EPERM;
 		}
 	}
 
-- 
1.7.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-08-11 10:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-10 18:58 [PATCH 1/2] param: allow omitting set() methods for truly read-only params Dmitry Torokhov
2010-08-10 18:58 ` [PATCH 2/2] VMware balloon: export module version as module parameter Dmitry Torokhov
2010-08-11  1:39 ` [PATCH 1/2] param: allow omitting set() methods for truly read-only params Rusty Russell
2010-08-11  7:35   ` Dmitry Torokhov
2010-08-11 10:49     ` Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox