Revision 3d5fdba1842bdd2eef29364c660558cb4cbb3fe0 authored by Andrew Lunn on 07 December 2017, 00:05:56 UTC, committed by David S. Miller on 07 December 2017, 18:53:05 UTC
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: 3460a5770ce9 ("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>
1 parent e46772a
History
File Mode Size
Makefile -rw-r--r-- 361 bytes
compat.c -rw-r--r-- 2.2 KB
ipc_sysctl.c -rw-r--r-- 5.4 KB
mq_sysctl.c -rw-r--r-- 2.9 KB
mqueue.c -rw-r--r-- 40.1 KB
msg.c -rw-r--r-- 27.4 KB
msgutil.c -rw-r--r-- 3.6 KB
namespace.c -rw-r--r-- 4.8 KB
sem.c -rw-r--r-- 58.1 KB
shm.c -rw-r--r-- 38.6 KB
syscall.c -rw-r--r-- 4.3 KB
util.c -rw-r--r-- 22.2 KB
util.h -rw-r--r-- 7.2 KB

back to top