diff mbox

Commit 34b9c07a3 (microblaze: Disable stack protection from bootloader) causing qemu crash

Message ID 20140208023131.GE24420@amz.ap-southeast-2.compute.internal
State New
Headers show

Commit Message

Edgar E. Iglesias Feb. 8, 2014, 2:31 a.m. UTC
On Fri, Feb 07, 2014 at 03:17:31PM -0800, Guenter Roeck wrote:
> Michal,
> 
> commit 34b9c07a3 (microblaze: Disable stack protection from bootloader) results
> in the following qemu crash in 3.14-rc1.
> 
> /opt/buildbot/bin/qemu-system-microblaze -M petalogix-s3adsp1800 -kernel arch/microblaze/boot/linux.bin -no-reboot -append "console=ttyUL0,115200 " -nographic
> qemu: fatal: fetching nop sequence
> 
> IN: PC=20
> rmsr=4300 resr=7 rear=c0389fe8 debug=0 imm=ffffffd0 iflags=0 fsr=0
> btaken=1 btarget=c03a9f24 mode=kernel(saved=kernel) eip=512 ie=0
> r00=00000000 r01=c0389fcc r02=c0386a52 r03=000000c0
> r04=00004100 r05=9052fab4 r06=00000000 r07=90530ab4
> r08=00000000 r09=00400000 r10=00400000 r11=c03a9f24
> r12=00621000 r13=40aef0c0 r14=00000000 r15=c0000294
> r16=00000000 r17=c03a9f28 r18=00000000 r19=00000000
> r20=00000000 r21=00000000 r22=00000000 r23=00000000
> r24=00000000 r25=00000000 r26=00000000 r27=00000000
> r28=00000000 r29=00400000 r30=00000300 r31=c03932d4
> 
> 
> Aborted (core dumped)
> 
> I have seen this with qemu 1.6.0 and 1.7.0.
> 
> Reverting the patch solves the problem.
> 
> Is this a qemu bug, a bug in the code, or a bug in my configuration ?
> Any idea what I can do about it ?

Hi Guenter,

Seems to be a typo in the kernel, the following should fix it.

Cheers,
Edgar

---8<---
From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
Date: Sat, 8 Feb 2014 10:59:59 +1000
Subject: [PATCH] microblaze: Fix a typo when disabling stack protection

Correct a typo causing the stack protector to be left enabled.
0xFFFFFFF -> 0xFFFFFFFF

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
---
 arch/microblaze/kernel/head.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Guenter Roeck Feb. 8, 2014, 3:43 a.m. UTC | #1
On 02/07/2014 06:31 PM, Edgar E. Iglesias wrote:
> On Fri, Feb 07, 2014 at 03:17:31PM -0800, Guenter Roeck wrote:
>> Michal,
>>
>> commit 34b9c07a3 (microblaze: Disable stack protection from bootloader) results
>> in the following qemu crash in 3.14-rc1.
>>
>> /opt/buildbot/bin/qemu-system-microblaze -M petalogix-s3adsp1800 -kernel arch/microblaze/boot/linux.bin -no-reboot -append "console=ttyUL0,115200 " -nographic
>> qemu: fatal: fetching nop sequence
>>
>> IN: PC=20
>> rmsr=4300 resr=7 rear=c0389fe8 debug=0 imm=ffffffd0 iflags=0 fsr=0
>> btaken=1 btarget=c03a9f24 mode=kernel(saved=kernel) eip=512 ie=0
>> r00=00000000 r01=c0389fcc r02=c0386a52 r03=000000c0
>> r04=00004100 r05=9052fab4 r06=00000000 r07=90530ab4
>> r08=00000000 r09=00400000 r10=00400000 r11=c03a9f24
>> r12=00621000 r13=40aef0c0 r14=00000000 r15=c0000294
>> r16=00000000 r17=c03a9f28 r18=00000000 r19=00000000
>> r20=00000000 r21=00000000 r22=00000000 r23=00000000
>> r24=00000000 r25=00000000 r26=00000000 r27=00000000
>> r28=00000000 r29=00400000 r30=00000300 r31=c03932d4
>>
>>
>> Aborted (core dumped)
>>
>> I have seen this with qemu 1.6.0 and 1.7.0.
>>
>> Reverting the patch solves the problem.
>>
>> Is this a qemu bug, a bug in the code, or a bug in my configuration ?
>> Any idea what I can do about it ?
>
> Hi Guenter,
>
> Seems to be a typo in the kernel, the following should fix it.
>
> Cheers,
> Edgar
>
> ---8<---
> From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> Date: Sat, 8 Feb 2014 10:59:59 +1000
> Subject: [PATCH] microblaze: Fix a typo when disabling stack protection
>
> Correct a typo causing the stack protector to be left enabled.
> 0xFFFFFFF -> 0xFFFFFFFF
>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>

Hi Edgar,

you are right, that fixes the problem.

Tested-by: Guenter Roeck <linux@roeck-us.net>

Thanks!
Guenter

> ---
>   arch/microblaze/kernel/head.S | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
> index b7fb043..17645b2 100644
> --- a/arch/microblaze/kernel/head.S
> +++ b/arch/microblaze/kernel/head.S
> @@ -66,7 +66,7 @@ real_start:
>   	mts	rmsr, r0
>   /* Disable stack protection from bootloader */
>   	mts	rslr, r0
> -	addi	r8, r0, 0xFFFFFFF
> +	addi	r8, r0, 0xFFFFFFFF
>   	mts	rshr, r8
>   /*
>    * According to Xilinx, msrclr instruction behaves like 'mfs rX,rpc'
>
Michal Simek Feb. 10, 2014, 6:45 a.m. UTC | #2
2014-02-08 Guenter Roeck <linux@roeck-us.net>:

> On 02/07/2014 06:31 PM, Edgar E. Iglesias wrote:
>
>> On Fri, Feb 07, 2014 at 03:17:31PM -0800, Guenter Roeck wrote:
>>
>>> Michal,
>>>
>>> commit 34b9c07a3 (microblaze: Disable stack protection from bootloader)
>>> results
>>> in the following qemu crash in 3.14-rc1.
>>>
>>> /opt/buildbot/bin/qemu-system-microblaze -M petalogix-s3adsp1800
>>> -kernel arch/microblaze/boot/linux.bin -no-reboot -append
>>> "console=ttyUL0,115200 " -nographic
>>> qemu: fatal: fetching nop sequence
>>>
>>> IN: PC=20
>>> rmsr=4300 resr=7 rear=c0389fe8 debug=0 imm=ffffffd0 iflags=0 fsr=0
>>> btaken=1 btarget=c03a9f24 mode=kernel(saved=kernel) eip=512 ie=0
>>> r00=00000000 r01=c0389fcc r02=c0386a52 r03=000000c0
>>> r04=00004100 r05=9052fab4 r06=00000000 r07=90530ab4
>>> r08=00000000 r09=00400000 r10=00400000 r11=c03a9f24
>>> r12=00621000 r13=40aef0c0 r14=00000000 r15=c0000294
>>> r16=00000000 r17=c03a9f28 r18=00000000 r19=00000000
>>> r20=00000000 r21=00000000 r22=00000000 r23=00000000
>>> r24=00000000 r25=00000000 r26=00000000 r27=00000000
>>> r28=00000000 r29=00400000 r30=00000300 r31=c03932d4
>>>
>>>
>>> Aborted (core dumped)
>>>
>>> I have seen this with qemu 1.6.0 and 1.7.0.
>>>
>>> Reverting the patch solves the problem.
>>>
>>> Is this a qemu bug, a bug in the code, or a bug in my configuration ?
>>> Any idea what I can do about it ?
>>>
>>
>> Hi Guenter,
>>
>> Seems to be a typo in the kernel, the following should fix it.
>>
>> Cheers,
>> Edgar
>>
>> ---8<---
>> From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
>> Date: Sat, 8 Feb 2014 10:59:59 +1000
>> Subject: [PATCH] microblaze: Fix a typo when disabling stack protection
>>
>> Correct a typo causing the stack protector to be left enabled.
>> 0xFFFFFFF -> 0xFFFFFFFF
>>
>> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
>>
>
> Hi Edgar,
>
> you are right, that fixes the problem.
>
> Tested-by: Guenter Roeck <linux@roeck-us.net>


Applied.

Thanks,
Michal
Michal Simek Feb. 10, 2014, 9:05 a.m. UTC | #3
Hi Edgar and Guenter,


2014-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>:

> On Fri, Feb 07, 2014 at 03:17:31PM -0800, Guenter Roeck wrote:
> > Michal,
> >
> > commit 34b9c07a3 (microblaze: Disable stack protection from bootloader)
> results
> > in the following qemu crash in 3.14-rc1.
> >
> > /opt/buildbot/bin/qemu-system-microblaze -M petalogix-s3adsp1800 -kernel
> arch/microblaze/boot/linux.bin -no-reboot -append "console=ttyUL0,115200 "
> -nographic
> > qemu: fatal: fetching nop sequence
> >
> > IN: PC=20
> > rmsr=4300 resr=7 rear=c0389fe8 debug=0 imm=ffffffd0 iflags=0 fsr=0
> > btaken=1 btarget=c03a9f24 mode=kernel(saved=kernel) eip=512 ie=0
> > r00=00000000 r01=c0389fcc r02=c0386a52 r03=000000c0
> > r04=00004100 r05=9052fab4 r06=00000000 r07=90530ab4
> > r08=00000000 r09=00400000 r10=00400000 r11=c03a9f24
> > r12=00621000 r13=40aef0c0 r14=00000000 r15=c0000294
> > r16=00000000 r17=c03a9f28 r18=00000000 r19=00000000
> > r20=00000000 r21=00000000 r22=00000000 r23=00000000
> > r24=00000000 r25=00000000 r26=00000000 r27=00000000
> > r28=00000000 r29=00400000 r30=00000300 r31=c03932d4
> >
>

Can you please check that these 2 registers are not available when
microblaze is configured with full MMU?
Because I expect that you are testing MMU kernel but these two writes
should be just nops.

Thanks,
Michal
Guenter Roeck Feb. 10, 2014, 4:31 p.m. UTC | #4
Quoting Michal Simek <monstr@monstr.eu>:

> Hi Edgar and Guenter,
>
>
> 2014-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>:
>
>> On Fri, Feb 07, 2014 at 03:17:31PM -0800, Guenter Roeck wrote:
>> > Michal,
>> >
>> > commit 34b9c07a3 (microblaze: Disable stack protection from bootloader)
>> results
>> > in the following qemu crash in 3.14-rc1.
>> >
>> > /opt/buildbot/bin/qemu-system-microblaze -M petalogix-s3adsp1800 -kernel
>> arch/microblaze/boot/linux.bin -no-reboot -append "console=ttyUL0,115200 "
>> -nographic
>> > qemu: fatal: fetching nop sequence
>> >
>> > IN: PC=20
>> > rmsr=4300 resr=7 rear=c0389fe8 debug=0 imm=ffffffd0 iflags=0 fsr=0
>> > btaken=1 btarget=c03a9f24 mode=kernel(saved=kernel) eip=512 ie=0
>> > r00=00000000 r01=c0389fcc r02=c0386a52 r03=000000c0
>> > r04=00004100 r05=9052fab4 r06=00000000 r07=90530ab4
>> > r08=00000000 r09=00400000 r10=00400000 r11=c03a9f24
>> > r12=00621000 r13=40aef0c0 r14=00000000 r15=c0000294
>> > r16=00000000 r17=c03a9f28 r18=00000000 r19=00000000
>> > r20=00000000 r21=00000000 r22=00000000 r23=00000000
>> > r24=00000000 r25=00000000 r26=00000000 r27=00000000
>> > r28=00000000 r29=00400000 r30=00000300 r31=c03932d4
>> >
>>
>
> Can you please check that these 2 registers are not available when
> microblaze is configured with full MMU?
> Because I expect that you are testing MMU kernel but these two writes
> should be just nops.
>

Hi Michal,

I can send you my configuration if that is what you are
looking for. Other than that, I am pretty clueless when
it comes to Microblaze details - all I do is to build
an image and check if it boots with qemu. This is part of
my sanity tests of upcoming -stable kernel versions.

It will have to wait until tonight, though - my home internet
connection is down and I can not connect to the system right
now.

Guenter
diff mbox

Patch

diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index b7fb043..17645b2 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -66,7 +66,7 @@  real_start:
 	mts	rmsr, r0
 /* Disable stack protection from bootloader */
 	mts	rslr, r0
-	addi	r8, r0, 0xFFFFFFF
+	addi	r8, r0, 0xFFFFFFFF
 	mts	rshr, r8
 /*
  * According to Xilinx, msrclr instruction behaves like 'mfs rX,rpc'