set_param_str() cannot use kstrdup() to duplicate the parameter.  That's
fine when the driver is compiled as a module but it sure is not when built
into the kernel as the kernel parameters are parsed before the kmalloc
slabs are setup.
Signed-off-by: Sebastien Dugué <sebastien.dugue@bull.net>
Acked-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
 {
        action_fn  fn = (action_fn) kp->arg;
        int        rv = 0;
-       char       *dup, *s;
+       char       valcp[16];
+       char       *s;
 
-       dup = kstrdup(val, GFP_KERNEL);
-       if (!dup)
-               return -ENOMEM;
+       strncpy(valcp, val, 16);
+       valcp[15] = '\0';
 
-       s = strstrip(dup);
+       s = strstrip(valcp);
 
        down_read(®ister_sem);
        rv = fn(s, NULL);
 
  out_unlock:
        up_read(®ister_sem);
-       kfree(dup);
        return rv;
 }