summaryrefslogtreecommitdiffstats
path: root/drivers/net/wimax/i2400m/control.c
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-06-03 09:45:55 +0800
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-06-11 03:30:23 -0700
commitb4013f91cdda10f3f15530914f3c7f39738b0b50 (patch)
tree8dc5ab721c3f2028de4e2372436f76bb059a9fff /drivers/net/wimax/i2400m/control.c
parent59063afa0afabc68d2b6ca0d106da9165e1c7d39 (diff)
downloadkernel-crypto-b4013f91cdda10f3f15530914f3c7f39738b0b50.tar.gz
kernel-crypto-b4013f91cdda10f3f15530914f3c7f39738b0b50.tar.xz
kernel-crypto-b4013f91cdda10f3f15530914f3c7f39738b0b50.zip
wimax/i2400m: if a device reboot happens during probe, handle it
When a device reboot happens when we are under probe, with init_mutex taken, make sure we can recover. Have dev_reset_handle set boot mode and i2400m_msg_to_dev() will see it and fail gracefully instead of timing out. Found and diagnosed by Cindy H. Kao. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers/net/wimax/i2400m/control.c')
-rw-r--r--drivers/net/wimax/i2400m/control.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
index d8e0cdfa35d..f9399f2597f 100644
--- a/drivers/net/wimax/i2400m/control.c
+++ b/drivers/net/wimax/i2400m/control.c
@@ -695,6 +695,7 @@ struct sk_buff *i2400m_msg_to_dev(struct i2400m *i2400m,
d_fnstart(3, dev, "(i2400m %p buf %p len %zu)\n",
i2400m, buf, buf_len);
+ rmb(); /* Make sure we see what i2400m_dev_reset_handle() */
if (i2400m->boot_mode)
return ERR_PTR(-ENODEV);