|
@@ -227,17 +227,10 @@ int parse_args(const char *doing,
|
|
|
}
|
|
|
|
|
|
/* Lazy bastard, eh? */
|
|
|
-#define STANDARD_PARAM_DEF(name, type, format, tmptype, strtolfn) \
|
|
|
+#define STANDARD_PARAM_DEF(name, type, format, strtolfn) \
|
|
|
int param_set_##name(const char *val, const struct kernel_param *kp) \
|
|
|
{ \
|
|
|
- tmptype l; \
|
|
|
- int ret; \
|
|
|
- \
|
|
|
- ret = strtolfn(val, 0, &l); \
|
|
|
- if (ret < 0 || ((type)l != l)) \
|
|
|
- return ret < 0 ? ret : -EINVAL; \
|
|
|
- *((type *)kp->arg) = l; \
|
|
|
- return 0; \
|
|
|
+ return strtolfn(val, 0, (type *)kp->arg); \
|
|
|
} \
|
|
|
int param_get_##name(char *buffer, const struct kernel_param *kp) \
|
|
|
{ \
|
|
@@ -253,13 +246,13 @@ int parse_args(const char *doing,
|
|
|
EXPORT_SYMBOL(param_ops_##name)
|
|
|
|
|
|
|
|
|
-STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", unsigned long, kstrtoul);
|
|
|
-STANDARD_PARAM_DEF(short, short, "%hi", long, kstrtol);
|
|
|
-STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", unsigned long, kstrtoul);
|
|
|
-STANDARD_PARAM_DEF(int, int, "%i", long, kstrtol);
|
|
|
-STANDARD_PARAM_DEF(uint, unsigned int, "%u", unsigned long, kstrtoul);
|
|
|
-STANDARD_PARAM_DEF(long, long, "%li", long, kstrtol);
|
|
|
-STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", unsigned long, kstrtoul);
|
|
|
+STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", kstrtou8);
|
|
|
+STANDARD_PARAM_DEF(short, short, "%hi", kstrtos16);
|
|
|
+STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", kstrtou16);
|
|
|
+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);
|
|
|
|
|
|
int param_set_charp(const char *val, const struct kernel_param *kp)
|
|
|
{
|