diff options
author | Yuriy Kolerov <yuriy.kolerov@synopsys.com> | 2016-09-12 11:55:03 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2016-09-30 17:48:24 -0400 |
commit | bc0c7ece6191d89f435e4e4016f74167430c6c21 (patch) | |
tree | 344cc4644ef607e7bc31d5b503439d9f1d5d8d37 /arch/arc | |
parent | 99a2ca65d558ecdea4c184baad6730f2aec3aad0 (diff) |
ARCv2: intc: Use kflag if STATUS32.IE must be reset
In the end of "arc_init_IRQ" STATUS32.IE flag is going to be affected by
"flag" instruction but "flag" never touches IE flag on ARCv2. So "kflag"
instruction must be used instead of "flag".
Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
Cc: stable@vger.kernel.org #4.2+
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r-- | arch/arc/kernel/intc-arcv2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arc/kernel/intc-arcv2.c b/arch/arc/kernel/intc-arcv2.c index 6c24faf48b16..62b59409a5d9 100644 --- a/arch/arc/kernel/intc-arcv2.c +++ b/arch/arc/kernel/intc-arcv2.c | |||
@@ -74,7 +74,7 @@ void arc_init_IRQ(void) | |||
74 | tmp = read_aux_reg(0xa); | 74 | tmp = read_aux_reg(0xa); |
75 | tmp |= STATUS_AD_MASK | (irq_prio << 1); | 75 | tmp |= STATUS_AD_MASK | (irq_prio << 1); |
76 | tmp &= ~STATUS_IE_MASK; | 76 | tmp &= ~STATUS_IE_MASK; |
77 | asm volatile("flag %0 \n"::"r"(tmp)); | 77 | asm volatile("kflag %0 \n"::"r"(tmp)); |
78 | } | 78 | } |
79 | 79 | ||
80 | static void arcv2_irq_mask(struct irq_data *data) | 80 | static void arcv2_irq_mask(struct irq_data *data) |