(2013/08/05 15:31), Joe Perches wrote: > On Mon, 2013-08-05 at 15:22 +0900, Masami Hiramatsu wrote: >> (2013/07/31 18:03), Namhyung Kim wrote: >>> From: Namhyung Kim <[email protected]> >>> >>> The print format of s32 type was "ld" and it's casted to "long". So >>> it turned out to print 4294967295 for "-1" on 64-bit systems. Not >>> sure whether it worked well on 32-bit systems. > [] >>> diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c > [] >>> @@ -45,14 +45,19 @@ __kprobes int PRINT_TYPE_FUNC_NAME(type)(struct >>> trace_seq *s, \ > [] >>> +DEFINE_BASIC_PRINT_TYPE_FUNC(s8, "%d", signed char) > > If there's a need to identify signed char, why > not signed short, signed int and signd long too?
Actually, since the types smaller than int are automatically up-casted to (signed/unsigned) int, those do not require the cast. However, u64/s64 requires those cast, because there are two different definitions (see include/asm/int-l[l]64.h). BTW, I think we should have a common definition of the printk format for each integer types too. Thank you, -- Masami HIRAMATSU IT Management Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: [email protected] -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

