Commit 9f542085 authored by Margit Schubert-While's avatar Margit Schubert-While Committed by Linus Torvalds

[PATCH] prism54 Bug in timeout scheduling

*  Bug in loop around schedule_timeout
*  We must rearm the task
*
*  Make timeout message meaningful
parent 710ce9d8
...@@ -486,6 +486,7 @@ islpci_reset_if(islpci_private *priv) ...@@ -486,6 +486,7 @@ islpci_reset_if(islpci_private *priv)
/* The software reset acknowledge needs about 220 msec here. /* The software reset acknowledge needs about 220 msec here.
* Be conservative and wait for up to one second. */ * Be conservative and wait for up to one second. */
set_current_state(TASK_UNINTERRUPTIBLE);
remaining = schedule_timeout(HZ); remaining = schedule_timeout(HZ);
if(remaining > 0) { if(remaining > 0) {
...@@ -496,14 +497,14 @@ islpci_reset_if(islpci_private *priv) ...@@ -496,14 +497,14 @@ islpci_reset_if(islpci_private *priv)
/* If we're here it's because our IRQ hasn't yet gone through. /* If we're here it's because our IRQ hasn't yet gone through.
* Retry a bit more... * Retry a bit more...
*/ */
printk(KERN_ERR "%s: reset problem: no 'reset complete' IRQ seen\n", printk(KERN_ERR "%s: no 'reset complete' IRQ seen - retrying\n",
priv->ndev->name); priv->ndev->name);
} }
finish_wait(&priv->reset_done, &wait); finish_wait(&priv->reset_done, &wait);
if (result) { if (result) {
printk(KERN_ERR "%s: islpci_reset_if: failure\n", priv->ndev->name); printk(KERN_ERR "%s: interface reset failure\n", priv->ndev->name);
return result; return result;
} }
......
...@@ -473,6 +473,7 @@ islpci_mgt_transaction(struct net_device *ndev, ...@@ -473,6 +473,7 @@ islpci_mgt_transaction(struct net_device *ndev,
int timeleft; int timeleft;
struct islpci_mgmtframe *frame; struct islpci_mgmtframe *frame;
set_current_state(TASK_UNINTERRUPTIBLE);
timeleft = schedule_timeout(wait_cycle_jiffies); timeleft = schedule_timeout(wait_cycle_jiffies);
frame = xchg(&priv->mgmt_received, NULL); frame = xchg(&priv->mgmt_received, NULL);
if (frame) { if (frame) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment