Re: ftrace does not work on cpus > 999.

From: Geert Uytterhoeven
Date: Sat Oct 16 2010 - 12:32:47 EST


On Sat, Oct 16, 2010 at 18:16, Ingo Molnar <mingo@xxxxxxx> wrote:
> * Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
>> On Sat, 2010-10-16 at 16:45 +0200, Frederic Weisbecker wrote:
>>
>> > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
>> > index 9ec59f5..3565f9e 100644
>> > --- a/kernel/trace/trace.c
>> > +++ b/kernel/trace/trace.c
>> > @@ -3999,7 +3999,7 @@ static void tracing_init_debugfs_percpu(long cpu)
>> > Â Â /* strlen(cpu) + MAX(log10(cpu)) + '\0' */
>> > Â Â char cpu_dir[7];
>> >
>> > - Â if (cpu > 999 || cpu < 0)
>> > + Â if (cpu < 0)
>> > Â Â Â Â Â Â return;
>> >
>> > Â Â sprintf(cpu_dir, "cpu%ld", cpu);
>>
>> You need to change the size of cpu_dir, otherwise this will overflow.
>
> If you change it to 30 that ought to be enough, as long as cpu_id's fit

Yep.

> into u64. (I think we wont overflow that in my lifetime.)

>> The other case is to dynamically allocate cpu_dir.
>
> Please tell me that is a joke ...

And if it isn't, use kasprintf() ;-)

Gr{oetje,eeting}s,

            Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
             Â Â -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/