diff mbox

e1000e: use disable_hardirq() also for MSIX vectors in e1000_netpoll()

Message ID 149517832870.37403.16008624383220981105.stgit@buzz
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

Konstantin Khlebnikov May 19, 2017, 7:18 a.m. UTC
Replace disable_irq() which waits for threaded irq handlers with
disable_hardirq() which waits only for hardirq part.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Fixes: 311191297125 ("e1000: use disable_hardirq() for e1000_netpoll()")
---
 drivers/net/ethernet/intel/e1000e/netdev.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Cong Wang May 19, 2017, 6:34 p.m. UTC | #1
On Fri, May 19, 2017 at 12:18 AM, Konstantin Khlebnikov
<khlebnikov@yandex-team.ru> wrote:
> Replace disable_irq() which waits for threaded irq handlers with
> disable_hardirq() which waits only for hardirq part.
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
> Fixes: 311191297125 ("e1000: use disable_hardirq() for e1000_netpoll()")

Thomas had a similar patch, I don't know why he never sends it
out formally. Anyway,

Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Sasha Neftin May 23, 2017, 3:43 p.m. UTC | #2
On 5/19/2017 21:34, Cong Wang wrote:
> On Fri, May 19, 2017 at 12:18 AM, Konstantin Khlebnikov
> <khlebnikov@yandex-team.ru> wrote:
>> Replace disable_irq() which waits for threaded irq handlers with
>> disable_hardirq() which waits only for hardirq part.
>>
>> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
>> Fixes: 311191297125 ("e1000: use disable_hardirq() for e1000_netpoll()")
> Thomas had a similar patch, I don't know why he never sends it
> out formally. Anyway,
>
> Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

Ack. Let's pick up this patch.
Brown, Aaron F May 27, 2017, 1:21 a.m. UTC | #3
> From: netdev-owner@vger.kernel.org [mailto:netdev-

> owner@vger.kernel.org] On Behalf Of Konstantin Khlebnikov

> Sent: Friday, May 19, 2017 12:19 AM

> To: netdev@vger.kernel.org; intel-wired-lan@lists.osuosl.org; Kirsher, Jeffrey

> T <jeffrey.t.kirsher@intel.com>

> Cc: Dave Jones <davej@codemonkey.org.uk>; WANG Cong

> <xiyou.wangcong@gmail.com>; David S. Miller <davem@davemloft.net>;

> Sabrina Dubroca <sd@queasysnail.net>

> Subject: [PATCH] e1000e: use disable_hardirq() also for MSIX vectors in

> e1000_netpoll()

> 

> Replace disable_irq() which waits for threaded irq handlers with

> disable_hardirq() which waits only for hardirq part.

> 

> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

> Fixes: 311191297125 ("e1000: use disable_hardirq() for e1000_netpoll()")

> ---

>  drivers/net/ethernet/intel/e1000e/netdev.c |   12 ++++++------

>  1 file changed, 6 insertions(+), 6 deletions(-)


Tested-by: Aaron Brown <aaron.f.brown@intel.com>
diff mbox

Patch

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index b3679728caac..7f185f481b12 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6733,20 +6733,20 @@  static irqreturn_t e1000_intr_msix(int __always_unused irq, void *data)
 
 		vector = 0;
 		msix_irq = adapter->msix_entries[vector].vector;
-		disable_irq(msix_irq);
-		e1000_intr_msix_rx(msix_irq, netdev);
+		if (disable_hardirq(msix_irq))
+			e1000_intr_msix_rx(msix_irq, netdev);
 		enable_irq(msix_irq);
 
 		vector++;
 		msix_irq = adapter->msix_entries[vector].vector;
-		disable_irq(msix_irq);
-		e1000_intr_msix_tx(msix_irq, netdev);
+		if (disable_hardirq(msix_irq))
+			e1000_intr_msix_tx(msix_irq, netdev);
 		enable_irq(msix_irq);
 
 		vector++;
 		msix_irq = adapter->msix_entries[vector].vector;
-		disable_irq(msix_irq);
-		e1000_msix_other(msix_irq, netdev);
+		if (disable_hardirq(msix_irq))
+			e1000_msix_other(msix_irq, netdev);
 		enable_irq(msix_irq);
 	}