RE: [PATCH] e1000e: use disable_hardirq() also for MSIX vectors in e1000_netpoll()
> From: netdev-ow...@vger.kernel.org [mailto:netdev- > ow...@vger.kernel.org] On Behalf Of Konstantin Khlebnikov > Sent: Friday, May 19, 2017 12:19 AM > To: netdev@vger.kernel.org; intel-wired-...@lists.osuosl.org; Kirsher, Jeffrey > T > Cc: Dave Jones ; WANG Cong > ; David S. Miller ; > Sabrina Dubroca > 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 > 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
Re: [Intel-wired-lan] [PATCH] e1000e: use disable_hardirq() also for MSIX vectors in e1000_netpoll()
On 5/19/2017 21:34, Cong Wang wrote: On Fri, May 19, 2017 at 12:18 AM, Konstantin Khlebnikov wrote: Replace disable_irq() which waits for threaded irq handlers with disable_hardirq() which waits only for hardirq part. Signed-off-by: Konstantin Khlebnikov 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 ___ Intel-wired-lan mailing list intel-wired-...@osuosl.org https://lists.osuosl.org/mailman/listinfo/intel-wired-lan Ack. Let's pick up this patch.
Re: [PATCH] e1000e: use disable_hardirq() also for MSIX vectors in e1000_netpoll()
On Fri, May 19, 2017 at 12:18 AM, Konstantin Khlebnikov wrote: > Replace disable_irq() which waits for threaded irq handlers with > disable_hardirq() which waits only for hardirq part. > > Signed-off-by: Konstantin Khlebnikov > 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
[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 Fixes: 311191297125 ("e1000: use disable_hardirq() for e1000_netpoll()") --- drivers/net/ethernet/intel/e1000e/netdev.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) 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); }