]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
e1000: use disable_hardirq() for e1000_netpoll()
authorWANG Cong <xiyou.wangcong@gmail.com>
Sat, 10 Dec 2016 22:22:42 +0000 (14:22 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 22 Jun 2017 06:24:40 +0000 (23:24 -0700)
In commit 02cea3958664 ("genirq: Provide disable_hardirq()")
Peter introduced disable_hardirq() for netpoll, but it is forgotten
to use it for e1000.

This patch changes disable_irq() to disable_hardirq() for e1000.

Reported-by: Dave Jones <davej@codemonkey.org.uk>
Suggested-by: Sabrina Dubroca <sd@queasysnail.net>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Orabug: 26243014
(cherry picked from commit 311191297125156319be8f86d546ea1c569f7e95)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Ethan Zhao <ethan.zhao@oracle.com>
drivers/net/ethernet/intel/e1000/e1000_main.c
drivers/net/ethernet/intel/e1000e/netdev.c

index d300b449aae7c7f69926af071c6d2567b6782345..3edb8a29f2e304742505b4d0a20c7ca21f7f342d 100644 (file)
@@ -5262,8 +5262,8 @@ static void e1000_netpoll(struct net_device *netdev)
 {
        struct e1000_adapter *adapter = netdev_priv(netdev);
 
-       disable_irq(adapter->pdev->irq);
-       e1000_intr(adapter->pdev->irq, netdev);
+       if (disable_hardirq(adapter->pdev->irq))
+               e1000_intr(adapter->pdev->irq, netdev);
        enable_irq(adapter->pdev->irq);
 }
 #endif
index 54292af1f142f6c3d6f431ef87bbeca2518649dc..671933ad6c9ac2341e921d8affb41b0559e462e5 100644 (file)
@@ -6762,13 +6762,13 @@ static void e1000_netpoll(struct net_device *netdev)
                e1000_intr_msix(adapter->pdev->irq, netdev);
                break;
        case E1000E_INT_MODE_MSI:
-               disable_irq(adapter->pdev->irq);
-               e1000_intr_msi(adapter->pdev->irq, netdev);
+               if (disable_hardirq(adapter->pdev->irq))
+                       e1000_intr_msi(adapter->pdev->irq, netdev);
                enable_irq(adapter->pdev->irq);
                break;
        default:                /* E1000E_INT_MODE_LEGACY */
-               disable_irq(adapter->pdev->irq);
-               e1000_intr(adapter->pdev->irq, netdev);
+               if (disable_hardirq(adapter->pdev->irq))
+                       e1000_intr(adapter->pdev->irq, netdev);
                enable_irq(adapter->pdev->irq);
                break;
        }