Loading arch/arm/kernel/entry-armv.S +35 −50 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,37 @@ 9997: 9997: .endm .endm .macro pabt_helper mov r0, r2 @ pass address of aborted instruction. #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif .endm .macro dabt_helper @ @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. r9 must be preserved. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif .endm #ifdef CONFIG_KPROBES #ifdef CONFIG_KPROBES .section .kprobes.text,"ax",%progbits .section .kprobes.text,"ax",%progbits #else #else Loading Loading @@ -159,22 +190,7 @@ __dabt_svc: tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT @ dabt_helper @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. r9 must be preserved. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif @ @ @ set desired IRQ state, then call main handler @ set desired IRQ state, then call main handler Loading Loading @@ -298,14 +314,7 @@ __pabt_svc: tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT mov r0, r2 @ pass address of aborted instruction. pabt_helper #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif debug_entry r1 debug_entry r1 msr cpsr_c, r9 @ Maybe enable interrupts msr cpsr_c, r9 @ Maybe enable interrupts mov r2, sp @ regs mov r2, sp @ regs Loading Loading @@ -401,23 +410,7 @@ ENDPROC(__pabt_svc) __dabt_usr: __dabt_usr: usr_entry usr_entry kuser_cmpxchg_check kuser_cmpxchg_check dabt_helper @ @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif @ @ @ IRQs on, then call the main handler @ IRQs on, then call the main handler Loading Loading @@ -682,15 +675,7 @@ ENDPROC(__und_usr_unknown) .align 5 .align 5 __pabt_usr: __pabt_usr: usr_entry usr_entry pabt_helper mov r0, r2 @ pass address of aborted instruction. #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif debug_entry r1 debug_entry r1 enable_irq @ Enable interrupts enable_irq @ Enable interrupts mov r2, sp @ regs mov r2, sp @ regs Loading Loading
arch/arm/kernel/entry-armv.S +35 −50 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,37 @@ 9997: 9997: .endm .endm .macro pabt_helper mov r0, r2 @ pass address of aborted instruction. #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif .endm .macro dabt_helper @ @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. r9 must be preserved. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif .endm #ifdef CONFIG_KPROBES #ifdef CONFIG_KPROBES .section .kprobes.text,"ax",%progbits .section .kprobes.text,"ax",%progbits #else #else Loading Loading @@ -159,22 +190,7 @@ __dabt_svc: tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT @ dabt_helper @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. r9 must be preserved. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif @ @ @ set desired IRQ state, then call main handler @ set desired IRQ state, then call main handler Loading Loading @@ -298,14 +314,7 @@ __pabt_svc: tst r3, #PSR_I_BIT tst r3, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT biceq r9, r9, #PSR_I_BIT mov r0, r2 @ pass address of aborted instruction. pabt_helper #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif debug_entry r1 debug_entry r1 msr cpsr_c, r9 @ Maybe enable interrupts msr cpsr_c, r9 @ Maybe enable interrupts mov r2, sp @ regs mov r2, sp @ regs Loading Loading @@ -401,23 +410,7 @@ ENDPROC(__pabt_svc) __dabt_usr: __dabt_usr: usr_entry usr_entry kuser_cmpxchg_check kuser_cmpxchg_check dabt_helper @ @ Call the processor-specific abort handler: @ @ r2 - aborted context pc @ r3 - aborted context cpsr @ @ The abort handler must return the aborted address in r0, and @ the fault status register in r1. @ #ifdef MULTI_DABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_DABT_FUNC] #else bl CPU_DABORT_HANDLER #endif @ @ @ IRQs on, then call the main handler @ IRQs on, then call the main handler Loading Loading @@ -682,15 +675,7 @@ ENDPROC(__und_usr_unknown) .align 5 .align 5 __pabt_usr: __pabt_usr: usr_entry usr_entry pabt_helper mov r0, r2 @ pass address of aborted instruction. #ifdef MULTI_PABORT ldr r4, .LCprocfns mov lr, pc ldr pc, [r4, #PROCESSOR_PABT_FUNC] #else bl CPU_PABORT_HANDLER #endif debug_entry r1 debug_entry r1 enable_irq @ Enable interrupts enable_irq @ Enable interrupts mov r2, sp @ regs mov r2, sp @ regs Loading