On Tue, 2013-08-06 at 23:12 +0200, Christoph Jaeger wrote: > In param_get_byte(), to which the macro STANDARD_PARAM_DEF(byte, ...) expands, > "%c" is used to print an unsigned char. So it gets printed as a character what > is not intended here. Use "%hhu" instead. > > Signed-off-by: Christoph Jaeger <christophjae...@linux.com> > --- > kernel/params.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/params.c b/kernel/params.c > index 440e65d..59f7ac7 100644 > --- a/kernel/params.c > +++ b/kernel/params.c > @@ -252,7 +252,7 @@ int parse_args(const char *doing, > EXPORT_SYMBOL(param_ops_##name) > > > -STANDARD_PARAM_DEF(byte, unsigned char, "%c", unsigned long, strict_strtoul); > +STANDARD_PARAM_DEF(byte, unsigned char, "%hhu", unsigned long, > strict_strtoul); > STANDARD_PARAM_DEF(short, short, "%hi", long, strict_strtol); > STANDARD_PARAM_DEF(ushort, unsigned short, "%hu", unsigned long, > strict_strtoul);
I don't see the point of using "%hh[ui]" and "%h[ui]". These are promoted to int/unsigned int for the sprintf anyway. I'd just use %d and %u instead. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/