#include <linux/miscdevice.h>
#include <linux/init.h>
#include <linux/completion.h>
+#include <linux/kdebug.h>
#include <linux/rwsem.h>
#include <linux/errno.h>
#include <asm/uaccess.h>
#include <linux/string.h>
#include <linux/ctype.h>
#include <asm/atomic.h>
+
#ifdef CONFIG_X86_LOCAL_APIC
#include <asm/apic.h>
#endif
{
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;
}