diff options
author | Hirokazu Takata <takata@linux-m32r.org> | 2007-08-17 10:40:37 -0400 |
---|---|---|
committer | Hirokazu Takata <takata@linux-m32r.org> | 2007-09-02 22:30:18 -0400 |
commit | abd0a782359717ded8f663bc5b8e5e9e3cc4f5e7 (patch) | |
tree | c0bec75a53238f4f1b70753b343623722afd53ef /arch/m32r/kernel | |
parent | 5171b100511513bc52875055f7d900fc3f7c922b (diff) |
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>
Diffstat (limited to 'arch/m32r/kernel')
-rw-r--r-- | arch/m32r/kernel/entry.S | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index 07d95a4f51a2..4b3a7742fe47 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
@@ -333,7 +333,7 @@ ENTRY(ei_handler) | |||
333 | .fillinsn | 333 | .fillinsn |
334 | 1: | 334 | 1: |
335 | addi sp, #4 | 335 | addi sp, #4 |
336 | bra ret_to_intr | 336 | bra restore_all |
337 | .fillinsn | 337 | .fillinsn |
338 | 2: | 338 | 2: |
339 | srli r0, #2 | 339 | srli r0, #2 |
@@ -382,7 +382,6 @@ check_end: | |||
382 | pop r14 | 382 | pop r14 |
383 | seth r0, #shigh(M32R_ICU_IMASK_ADDR) | 383 | seth r0, #shigh(M32R_ICU_IMASK_ADDR) |
384 | st r14, @(low(M32R_ICU_IMASK_ADDR),r0) | 384 | st r14, @(low(M32R_ICU_IMASK_ADDR),r0) |
385 | ret_to_intr: | ||
386 | bra ret_from_intr | 385 | bra ret_from_intr |
387 | 386 | ||
388 | /* | 387 | /* |