2.6.18-rc4 arch/x86_64/kernel/stacktrace.c::get_stack_end() incorrectly
assumes that the irqstackptr is IRQSTACKSIZE aligned.
stack_end = (unsigned long)cpu_pda(cpu)->irqstackptr;
if (stack_end) {
stack_start = stack_end & ~(IRQSTACKSIZE-1);
irqstackptr is only guaranteed to be page aligned, not IRQSTACKSIZE
(4*PAGE_SIZE) aligned.
On Friday 25 August 2006 08:59, Keith Owens wrote:
> 2.6.18-rc4 arch/x86_64/kernel/stacktrace.c::get_stack_end() incorrectly
> assumes that the irqstackptr is IRQSTACKSIZE aligned.
>
> stack_end = (unsigned long)cpu_pda(cpu)->irqstackptr;
> if (stack_end) {
> stack_start = stack_end & ~(IRQSTACKSIZE-1);
>
> irqstackptr is only guaranteed to be page aligned, not IRQSTACKSIZE
> (4*PAGE_SIZE) aligned.
Thanks. I have already removed that code post 2.6.18 (the standard backtracer
now does both stacktrace and show_trace)
You think it is important enough for 2.6.18?
-Andi
Andi Kleen (on Fri, 25 Aug 2006 09:33:53 +0200) wrote:
>On Friday 25 August 2006 08:59, Keith Owens wrote:
>> 2.6.18-rc4 arch/x86_64/kernel/stacktrace.c::get_stack_end() incorrectly
>> assumes that the irqstackptr is IRQSTACKSIZE aligned.
>>
>> stack_end = (unsigned long)cpu_pda(cpu)->irqstackptr;
>> if (stack_end) {
>> stack_start = stack_end & ~(IRQSTACKSIZE-1);
>>
>> irqstackptr is only guaranteed to be page aligned, not IRQSTACKSIZE
>> (4*PAGE_SIZE) aligned.
>
>Thanks. I have already removed that code post 2.6.18 (the standard backtracer
>now does both stacktrace and show_trace)
>
>You think it is important enough for 2.6.18?
Depends if any x86_64 distributions are going to be based on 2.6.18. I
hear rumours, but no facts.