lkml.org 
[lkml]   [2017]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: e1000_netpoll() , BUG: sleeping function called from invalid context
From
Date


On 18.02.2017 00:44, Cong Wang wrote:
> On Fri, Feb 17, 2017 at 3:38 PM, Gabriel C <nix.or.die@gmail.com> wrote:
>>
>> My card seems to use the e1000e driver which is buit-in..
>>
>> Anyway here an objdump -x :
>>
>> http://ftp.frugalware.org/pub/other/people/crazy/kernel/t/objdump-x_e1000.ko.txt
>>
>
> Found disable_hardirq() but not disable_irq().
>
> Are you sure the kernel warning was emitted by this binary rather than
> some old one?
>

Yes , I use an clean build , remove any other files in /boot && /lib/modules before installing the new build kernel.

I've asked Thomas before I send this to lkml and to you and he said :

..


It's a real issue. netconsole calls disable_irq() which might sleep from an
interrupt and preemption disabled context.

> [85362.132801] __might_sleep+0x6b/0x80
> [85362.132803] synchronize_irq+0x33/0x90
> [85362.132805] ? __irq_put_desc_unlock+0x19/0x40
> [85362.132807] ? __disable_irq_nosync+0x4e/0x60
> [85362.132808] disable_irq+0x17/0x20
> [85362.132810] e1000_netpoll+0x3d/0x110

Though, what's weird is that the e1000_netpoll() does not longer call
disable_irq(). It calls disable_hardirq().

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.

...

\
 
 \ /
  Last update: 2017-02-18 00:54    [W:0.355 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site