linux-stable/drivers/net/dsa/mv88e6xxx
Andrew Lunn 0ef99ba038 net: dsa: mv88e6xxx: Fix interrupt masking on removal
[ Upstream commit 3d5fdba184 ]

When removing the interrupt handling code, we should mask the
generation of interrupts. The code however unmasked all
interrupts. This can then cause a new interrupt. We then get into a
deadlock where the interrupt thread is waiting to run, and the code
continues, trying to remove the interrupt handler, which means waiting
for the thread to complete. On a UP machine this deadlocks.

Fix so we really mask interrupts in the hardware. The same error is
made in the error path when install the interrupt handling code.

Fixes: 3460a5770c ("net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-02-25 11:08:00 +01:00
..
chip.c net: dsa: mv88e6xxx: Fix interrupt masking on removal 2018-02-25 11:08:00 +01:00
chip.h net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
global1.c net: dsa: mv88e6xxx: prefix Global Stats macros 2017-06-15 14:07:50 -04:00
global1.h net: dsa: mv88e6xxx: prefix Global Prio and Tag macros 2017-06-15 14:07:50 -04:00
global1_atu.c net: dsa: mv88e6xxx: prefix Global ATU macros 2017-06-15 14:07:48 -04:00
global1_vtu.c net: dsa: mv88e6xxx: prefix Global VTU macros 2017-06-15 14:07:49 -04:00
global2.c net: dsa: mv88e6xxx: make irq_chip const 2017-08-20 20:02:29 -07:00
global2.h net: dsa: mv88e6xxx: add a global2_addr info flag 2017-07-18 11:10:58 -07:00
Kconfig net: dsa: mv88e6xxx: Select IRQ_DOMAIN 2016-11-18 13:54:22 -05:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
phy.c net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
phy.h net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
port.c net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
port.h net: dsa: mv88e6xxx: remove EEE support 2017-08-01 20:09:10 -07:00
serdes.c net: dsa: mv88e6xxx: fix error code in mv88e6390_serdes_power() 2017-06-25 11:42:33 -04:00
serdes.h net: dsa: mv88e6xxx: rename chip header 2017-06-04 20:07:40 -04:00