Insert set_current_state() before schedule_timeout() so the function delays as expected. Without the addition, schedule_timeout() will return immediately. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Domen Puncer --- kj-domen/drivers/net/wan/farsync.c | 1 + 1 files changed, 1 insertion(+) diff -puN drivers/net/wan/farsync.c~set_current_state-drivers_net_wan_farsync drivers/net/wan/farsync.c --- kj/drivers/net/wan/farsync.c~set_current_state-drivers_net_wan_farsync 2005-04-05 12:55:38.000000000 +0200 +++ kj-domen/drivers/net/wan/farsync.c 2005-04-05 12:55:38.000000000 +0200 @@ -981,6 +981,7 @@ fst_issue_cmd(struct fst_port_info *port /* Wait for any previous command to complete */ while (mbval > NAK) { spin_unlock_irqrestore(&card->card_lock, flags); + set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(1); spin_lock_irqsave(&card->card_lock, flags); _