PS3: Strange issue with kexec and FreeBSD loader
Phileas Fogg
phileas-fogg at mail.ru
Sat Feb 23 07:49:18 EST 2013
Benjamin Herrenschmidt wrote:
> On Thu, 2013-02-21 at 22:44 +0100, Phileas Fogg wrote:
>> Stripped OpenWRT image:
>> ------------------------
>>
>> c00000000001a474: 48 00 00 05 bl 0xc00000000001a478
>> c00000000001a478: 7c a8 02 a6 mflr r5
>> c00000000001a47c: 38 a5 00 1c addi r5,r5,28
>> c00000000001a480: 7c 21 0b 78 mr r1,r1
>> c00000000001a484: 80 85 00 00 lwz r4,0(r5)
>> c00000000001a488: 2c 04 00 00 cmpwi r4,0
>> c00000000001a48c: 40 82 00 62 bnea- 0x60
>> c00000000001a490: 4b ff ff f0 b 0xc00000000001a480
>> c00000000001a494: 00 00 00 00 .long 0x0
>> c00000000001a498: a0 6d 00 48 lhz r3,72(r13)
>> c00000000001a49c: 48 00 00 11 bl 0xc00000000001a4ac
>
>
> Smell like a bad stack pointer to me...
>
> One thing I noticed is that kexec doesn't seem to hard disable
> interrupts, which is ... fishy at best. It should do that
> before it switches stacks around. Dunno if that's the cause
> of the problem but it might be worth adding a hard_irq_disable()
> after all the local_irq_disable(), making sure we are hard
> disabled before going into asm.
>
> Cheers,
> Ben.
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
>
Hi,
i wanted to let you know that i tested your advice. And let me say, it's was a
damn good advice :) I can boot FreeBSD loader on Linux 3.8 now, no SHA256
checksum failures. And no panics with FreeBSD LiveCD anymore too.
I just inserted hard_irq_disable() after each local_irq_disable() in
arch/powerpc/kernel/machine_kexec_64.c
Thanks
regards
More information about the Linuxppc-dev
mailing list