do page fault in atomic bug on arm
Alex Shi
alex.shi at linaro.org
Sun Nov 26 07:23:42 PST 2017
Sorry, this patch should be passed off, since we got your new fixing
patches. I shouldn't mentioned here.
Regards
Alex
On 11/26/2017 10:58 PM, Alex Shi wrote:
>> Can you try the following patch to try and catch the problem earlier?
>> I haven't tested it myself, and adding code may move things around in
>> the kernel and make this bug disappear.
> Do we still need to try this patch? I saw you tried it and do further more.
>> diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
>> index d523cd8439a3..ff577177b286 100644
>> --- a/arch/arm/kernel/entry-header.S
>> +++ b/arch/arm/kernel/entry-header.S
>> @@ -299,6 +299,8 @@
>> @ ARM mode restore
>> mov r2, sp
>> ldr r1, [r2, #\offset + S_PSR] @ get calling cpsr
>> + tst r1, #0xcf
>> + bne oops
>> ldr lr, [r2, #\offset + S_PC]! @ get pc
>> msr spsr_cxsf, r1 @ save in spsr_svc
>> #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K)
>> @@ -314,6 +316,15 @@
>> @ after ldm {}^
>> add sp, sp, #\offset + PT_REGS_SIZE
>> movs pc, lr @ return & move spsr_svc into cpsr
>> +oops: .word 0xe7f001f2
> This oops cause allnoconfig with arm failed in build. but it's fine for
> a multi_v7_defconfig
> arch/arm/kernel/entry-common.S:106: Error: symbol `oops' is already defined
>
>> + .pushsection .rodata.str, "aMS", %progbits, 1
>> +2: .asciz "Returning to usermode but unexpected PSR bits set?"
>> + .popsection
>> + .pushsection __bug_table, "aw"
>> + .align 2
>> + .word oops, 2b
>> + .hword \@
>> + .popsection
>> #elif defined(CONFIG_CPU_V7M)
>> @ V7M restore.
>> @ Note that we don't need to do clrex here as clearing the local
More information about the linux-arm-kernel
mailing list