Messages in this thread Patch in this message | | | Date | Wed, 1 Mar 2017 23:38:07 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: e1000_netpoll() , BUG: sleeping function called from invalid context |
| |
On Wed, 1 Mar 2017, Gabriel C wrote: > On 01.03.2017 18:13, Thomas Gleixner wrote: > > On Sat, 18 Feb 2017, Gabriel C wrote: > > > That got changed in commit 3111912971251 which got into Linus tree during > > > the 4.10 merge window. So it is in 4.10-rc8. > > > > > > Confused. > > > > I'm still confused. Gabriel, can you please try to reproduce with 4.10 > > final? > > > > Sure , do you want plain 4.10.0 or 4.10.1 ? > > Btw is possible to rename e1000_netpoll() from e1000e driver > to e1000e_netpoll() so we know what driver is in use ?
Grr. yes. That would be definitely helpful. I was staring into the wrong one of course.
> My card uses the e1000e driver..
Does the patch below fix it?
Thanks,
tglx
8<--------------
--- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -6716,19 +6716,19 @@ static irqreturn_t e1000_intr_msix(int _ vector = 0; msix_irq = adapter->msix_entries[vector].vector; - disable_irq(msix_irq); + 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); + 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); + disable_hardirq(msix_irq); e1000_msix_other(msix_irq, netdev); enable_irq(msix_irq); }
| |