diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2013-09-26 13:22:40 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2013-09-27 16:09:43 -0400 |
commit | 3f725c5b924e14eb00c58892d21d92100121e5ce (patch) | |
tree | 6813269f85403d60b14d40406c3eeed1ac885c27 /arch/tile | |
parent | dd386e03d9753889dc3ea3eed91ad3729df08819 (diff) | |
download | lwn-3f725c5b924e14eb00c58892d21d92100121e5ce.tar.gz lwn-3f725c5b924e14eb00c58892d21d92100121e5ce.zip |
tile: ensure interrupts disabled for preempt_schedule_irq()
When coming from a page fault (for example), interrupts might
be enabled as we enter the code to return from interrupt.
Cc: stable@vger.kernel.org
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile')
-rw-r--r-- | arch/tile/kernel/intvec_32.S | 3 | ||||
-rw-r--r-- | arch/tile/kernel/intvec_64.S | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/tile/kernel/intvec_32.S b/arch/tile/kernel/intvec_32.S index 088d5c141e68..2cbe6d5dd6b0 100644 --- a/arch/tile/kernel/intvec_32.S +++ b/arch/tile/kernel/intvec_32.S @@ -815,6 +815,9 @@ STD_ENTRY(interrupt_return) } bzt r28, 1f bnz r29, 1f + /* Disable interrupts explicitly for preemption. */ + IRQ_DISABLE(r20,r21) + TRACE_IRQS_OFF jal preempt_schedule_irq FEEDBACK_REENTER(interrupt_return) 1: diff --git a/arch/tile/kernel/intvec_64.S b/arch/tile/kernel/intvec_64.S index ec755d3f3734..b8fc497f2437 100644 --- a/arch/tile/kernel/intvec_64.S +++ b/arch/tile/kernel/intvec_64.S @@ -841,6 +841,9 @@ STD_ENTRY(interrupt_return) } beqzt r28, 1f bnez r29, 1f + /* Disable interrupts explicitly for preemption. */ + IRQ_DISABLE(r20,r21) + TRACE_IRQS_OFF jal preempt_schedule_irq FEEDBACK_REENTER(interrupt_return) 1: |