linux/arch/arc
Vineet Gupta 4de0e52867 ARCv2: STAR 9000814690: Really Re-enable interrupts to avoid deadlocks
The issue was, on HS when interrupt is taken, IRQ_ACT is set and that is
NOT cleared unless we do RTIE (or manually clear it). Linux interrupt
handling has top and bottom halves. Latter lead to softirqs (which can
reschedule) AND expect interrupts to be REALLY re-enabled which was NOT
happening for us since we only SETI, dont clear IRQ_ACT

So we can have a state when both cores have taken interrupt (IRQ_ACT set),
get rescheduled, both send IPI and wait in CSD lock which will never be
cleared as cores can't take the pending IPI IRQ due to existing IRQ_ACT
set.

So local_irq_enable() now drops the IRQ_ACT.act bit to re-enable IRQs.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2015-06-22 14:06:55 +05:30
..
boot ARC: [axs101] STAR 9000799830: Fix SD cards support 2015-06-19 18:09:31 +05:30
configs ARC: [axs101] Add support for AXS101 SDP (software development platform) 2015-06-19 18:09:30 +05:30
include ARCv2: STAR 9000814690: Really Re-enable interrupts to avoid deadlocks 2015-06-22 14:06:55 +05:30
kernel ARCv2: STAR 9000808988: signals involving Delay Slot 2015-06-22 14:06:55 +05:30
lib ARC: switch to generic ENTRY/END assembler annotations 2014-03-26 14:31:28 +05:30
mm ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
oprofile ARC: OProfile support 2013-02-15 23:16:00 +05:30
plat-axs10x ARC: [axs101] Add missing __init annotations 2015-06-19 18:09:32 +05:30
plat-sim ARC: [plat_arcfpga]->[plat_sim] 2015-06-19 18:09:26 +05:30
plat-tb10x ARC: [plat*] move code out of .init_machine into common 2014-10-13 14:46:13 +05:30
Kbuild ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
Kconfig ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30
Kconfig.debug ARC: With earlycon in use, retire EARLY_PRINTK 2015-05-11 11:20:21 +05:30
Makefile ARCv2: Support for ARCv2 ISA and HS38x cores 2015-06-22 14:06:55 +05:30