aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCindy H Kao <cindy.h.kao@intel.com>2009-06-10 20:06:19 -0400
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-06-11 06:30:26 -0400
commit0bcfc5ef016e8217709c65c5a7335e40ceabc99c (patch)
tree8b669ff99674f137918f47aced255034db662248
parent8b5b30ee7ddc989b59ce05dcf2d024a819dc8040 (diff)
wimax/i2400m: use -EL3RST to indicate device reset instead of -ERESTARTSYS
When the i2400m device resets, the driver code will force some functions to return a -ERESTARTSYS error code, which can is used by the caller to determine which recovery actions to take. However, in certain situations the only thing that can be done is to bubble up said error code to user space, for handling. However, -ERESTARSYS was a poor choice, as it is supposed to be used by the kernel only. As such, replace -ERESTARTSYS with -EL3RST; as well, in i2400m_msg_to_dev(), when the device is in boot mode (following a recent reset), return -EL3RST instead of -ENODEV (meaning the device is in bootrom mode after a reset, not that the device was disconnected, and thus, normal commands cannot be executed). Signed-off-by: Cindy H Kao <cindy.h.kao@intel.com>
-rw-r--r--drivers/net/wimax/i2400m/control.c2
-rw-r--r--drivers/net/wimax/i2400m/driver.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
index f9399f2597f3..07308686dbcf 100644
--- a/drivers/net/wimax/i2400m/control.c
+++ b/drivers/net/wimax/i2400m/control.c
@@ -697,7 +697,7 @@ struct sk_buff *i2400m_msg_to_dev(struct i2400m *i2400m,
697 697
698 rmb(); /* Make sure we see what i2400m_dev_reset_handle() */ 698 rmb(); /* Make sure we see what i2400m_dev_reset_handle() */
699 if (i2400m->boot_mode) 699 if (i2400m->boot_mode)
700 return ERR_PTR(-ENODEV); 700 return ERR_PTR(-EL3RST);
701 701
702 msg_l3l4_hdr = buf; 702 msg_l3l4_hdr = buf;
703 /* Check msg & payload consistency */ 703 /* Check msg & payload consistency */
diff --git a/drivers/net/wimax/i2400m/driver.c b/drivers/net/wimax/i2400m/driver.c
index 2a093c5768cc..304f0443ca4b 100644
--- a/drivers/net/wimax/i2400m/driver.c
+++ b/drivers/net/wimax/i2400m/driver.c
@@ -453,7 +453,7 @@ error_rx_setup:
453 i2400m_tx_release(i2400m); 453 i2400m_tx_release(i2400m);
454error_tx_setup: 454error_tx_setup:
455error_bootstrap: 455error_bootstrap:
456 if (result == -ERESTARTSYS && times-- > 0) { 456 if (result == -EL3RST && times-- > 0) {
457 flags = I2400M_BRI_SOFT|I2400M_BRI_MAC_REINIT; 457 flags = I2400M_BRI_SOFT|I2400M_BRI_MAC_REINIT;
458 goto retry; 458 goto retry;
459 } 459 }
@@ -560,7 +560,7 @@ void __i2400m_dev_reset_handle(struct work_struct *ws)
560 * i2400m_dev_stop() [we are shutting down anyway, so 560 * i2400m_dev_stop() [we are shutting down anyway, so
561 * ignore it] or we are resetting somewhere else. */ 561 * ignore it] or we are resetting somewhere else. */
562 dev_err(dev, "device rebooted\n"); 562 dev_err(dev, "device rebooted\n");
563 i2400m_msg_to_dev_cancel_wait(i2400m, -ERESTARTSYS); 563 i2400m_msg_to_dev_cancel_wait(i2400m, -EL3RST);
564 complete(&i2400m->msg_completion); 564 complete(&i2400m->msg_completion);
565 goto out; 565 goto out;
566 } 566 }