[Intel-wired-lan] [e1000_netpoll] BUG: sleeping function called from invalid context at kernel/irq/manage.c:110
nick
xerofoify at gmail.com
Tue Jul 26 12:48:50 UTC 2016
On 2016-07-26 05:50 AM, Thomas Gleixner wrote:
> On Tue, 26 Jul 2016, Fengguang Wu wrote:
>> --- a/drivers/net/ethernet/intel/e1000/e1000_main.c
>> +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
>> @@ -3797,7 +3797,7 @@ static irqreturn_t e1000_intr(int irq, void *data)
>> hw->get_link_status = 1;
>> /* guard against interrupt when we're going down */
>> if (!test_bit(__E1000_DOWN, &adapter->flags))
>> - schedule_delayed_work(&adapter->watchdog_task, 1);
>> + mod_timer(&adapter->watchdog_timer, jiffies + 1);
>
> ROTFL ....
>
Thomas,
Yes it's a pretty funny typo, below is a patch that fixes the build error
as reported by kbuild robot:
>From 013dbc315c452d37d565e9c27b90b02239b5a1bb Mon Sep 17 00:00:00 2001
From: Nicholas Krause <xerofoify at gmail.com>
Date: Tue, 26 Jul 2016 08:43:56 -0400
Subject: [PATCH] use atomic mod timer rather then schedule work
Signed-off-by: Nicholas Krause <xerofoify at gmail.com>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index f42129d..e1830af 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -3797,7 +3797,7 @@ static irqreturn_t e1000_intr(int irq, void *data)
hw->get_link_status = 1;
/* guard against interrupt when we're going down */
if (!test_bit(__E1000_DOWN, &adapter->flags))
- schedule_delayed_work(&adapter->watchdog_task, 1);
+ mod_work(&adapter->watchdog_task, jiffies + 1);
}
/* disable interrupts, without the synchronize_irq bit */
--
2.7.4
Cheers,
Nick
More information about the Intel-wired-lan
mailing list