summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2014-06-25 13:27:37 (GMT)
committerMaciej Wereski <m.wereski@partner.samsung.com>2015-04-03 08:46:54 (GMT)
commit5761bd9dbd3edd6da4289359839e0ac2bf59eb96 (patch)
tree75b6707b339d2ca14720ef6b4069da4fbbeb4531
parent9be5b5c35323ffcb22871e19181a5126b3af65c1 (diff)
downloadlinux-3.10-5761bd9dbd3edd6da4289359839e0ac2bf59eb96.zip
linux-3.10-5761bd9dbd3edd6da4289359839e0ac2bf59eb96.tar.gz
linux-3.10-5761bd9dbd3edd6da4289359839e0ac2bf59eb96.tar.bz2
Add module param type 'ullong'
Some driver might want to pass in an 64-bit value, so introduce a module param type 'ullong'. Signed-off-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Christoph Hellwig <hch@infradead.org> Reviewed-by: Ewan Milne <emilne@redhat.com> Acked-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r--include/linux/moduleparam.h5
-rw-r--r--kernel/params.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
index 137b419..4ea8904 100644
--- a/include/linux/moduleparam.h
+++ b/include/linux/moduleparam.h
@@ -372,6 +372,11 @@ extern int param_set_ulong(const char *val, const struct kernel_param *kp);
extern int param_get_ulong(char *buffer, const struct kernel_param *kp);
#define param_check_ulong(name, p) __param_check(name, p, unsigned long)
+extern struct kernel_param_ops param_ops_ullong;
+extern int param_set_ullong(const char *val, const struct kernel_param *kp);
+extern int param_get_ullong(char *buffer, const struct kernel_param *kp);
+#define param_check_ullong(name, p) __param_check(name, p, unsigned long long)
+
extern struct kernel_param_ops param_ops_charp;
extern int param_set_charp(const char *val, const struct kernel_param *kp);
extern int param_get_charp(char *buffer, const struct kernel_param *kp);
diff --git a/kernel/params.c b/kernel/params.c
index d82957e..c1094cf 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -252,6 +252,7 @@ STANDARD_PARAM_DEF(int, int, "%i", kstrtoint);
STANDARD_PARAM_DEF(uint, unsigned int, "%u", kstrtouint);
STANDARD_PARAM_DEF(long, long, "%li", kstrtol);
STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", kstrtoul);
+STANDARD_PARAM_DEF(ullong, unsigned long long, "%llu", kstrtoull);
int param_set_charp(const char *val, const struct kernel_param *kp)
{