m32r: Exit ei_handler directly for no IRQ case or IPI operations
If no IRQ request is found in the IRQ check of ei_handler, we can exit directly by jumping "restore_all", instead of via "ret_from_intr". This modification is also likely effective for IPI operations, because scheduler call never happen at the exit of IPIs. Signed-off-by: Hitoshi Yamamoto <hitoshiy@linux-m32r.org> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
This commit is contained in:
@@ -333,7 +333,7 @@ ENTRY(ei_handler)
|
|||||||
.fillinsn
|
.fillinsn
|
||||||
1:
|
1:
|
||||||
addi sp, #4
|
addi sp, #4
|
||||||
bra ret_to_intr
|
bra restore_all
|
||||||
.fillinsn
|
.fillinsn
|
||||||
2:
|
2:
|
||||||
srli r0, #2
|
srli r0, #2
|
||||||
@@ -382,7 +382,6 @@ check_end:
|
|||||||
pop r14
|
pop r14
|
||||||
seth r0, #shigh(M32R_ICU_IMASK_ADDR)
|
seth r0, #shigh(M32R_ICU_IMASK_ADDR)
|
||||||
st r14, @(low(M32R_ICU_IMASK_ADDR),r0)
|
st r14, @(low(M32R_ICU_IMASK_ADDR),r0)
|
||||||
ret_to_intr:
|
|
||||||
bra ret_from_intr
|
bra ret_from_intr
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user