]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: mv88e6xxx: fix lockup on warm boot
authorRussell King <rmk+kernel@armlinux.org.uk>
Fri, 28 Feb 2020 19:39:41 +0000 (19:39 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Mar 2020 06:17:40 +0000 (07:17 +0100)
commitf7332735d0064499a5c3eff0fb6b7b4f872ae39e
tree727aad906321449d51424ccc8b3b9cd1b08d2bc6
parent71e1c77a332973c70611dda8f82f599c87c7bb3d
net: dsa: mv88e6xxx: fix lockup on warm boot

[ Upstream commit 7756ff008400ca3c28898a7634f2227051e33beb ]

If the switch is not hardware reset on a warm boot, interrupts can be
left enabled, and possibly pending. This will cause us to enter an
infinite loop trying to service an interrupt we are unable to handle,
thereby preventing the kernel from booting.

Ensure that the global 2 interrupt sources are disabled before we claim
the parent interrupt.

Observed on the ZII development revision B and C platforms with
reworked serdes support, and using reboot -f to reboot the platform.

Fixes: e32db79381fb ("net: dsa: mv88e6xxx: Implement interrupt support.")
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/mv88e6xxx/global2.c