net: usb: lan78xx: Use generic_handle_irq_safe().
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 11 Feb 2022 18:14:59 +0000 (19:14 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 2 Mar 2022 21:28:50 +0000 (22:28 +0100)
Instead of manually disabling interrupts before invoking use
generic_handle_irq_safe() which can be invoked with enabled and disabled
interrupts.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Woojung Huh <woojung.huh@microchip.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: UNGLinuxDriver@microchip.com
Link: https://lore.kernel.org/r/20220211181500.1856198-7-bigeasy@linutronix.de
drivers/net/usb/lan78xx.c

index b8e20a3..415f166 100644 (file)
@@ -1537,11 +1537,8 @@ static void lan78xx_status(struct lan78xx_net *dev, struct urb *urb)
                netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata);
                lan78xx_defer_kevent(dev, EVENT_LINK_RESET);
 
-               if (dev->domain_data.phyirq > 0) {
-                       local_irq_disable();
-                       generic_handle_irq(dev->domain_data.phyirq);
-                       local_irq_enable();
-               }
+               if (dev->domain_data.phyirq > 0)
+                       generic_handle_irq_safe(dev->domain_data.phyirq);
        } else {
                netdev_warn(dev->net,
                            "unexpected interrupt: 0x%08x\n", intdata);