Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer --- kj-domen/drivers/net/ixgb/ixgb_ethtool.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/net/ixgb/ixgb_ethtool.c~msleep_interruptible-drivers_net_ixgb_ixgb_ethtool drivers/net/ixgb/ixgb_ethtool.c --- kj/drivers/net/ixgb/ixgb_ethtool.c~msleep_interruptible-drivers_net_ixgb_ixgb_ethtool 2005-04-05 12:55:23.000000000 +0200 +++ kj-domen/drivers/net/ixgb/ixgb_ethtool.c 2005-04-05 12:55:23.000000000 +0200 @@ -620,9 +620,9 @@ ixgb_phys_id(struct net_device *netdev, set_current_state(TASK_INTERRUPTIBLE); if(data) - schedule_timeout(data * HZ); + msleep_interruptible(data * 1000); else - schedule_timeout(MAX_SCHEDULE_TIMEOUT); + msleep_interruptible(jiffies_to_msecs(MAX_SCHEDULE_TIMEOUT)); del_timer_sync(&adapter->blink_timer); ixgb_led_off(&adapter->hw); _