aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorPrasanna S.Panchamukhi <prasannax.s.panchamukhi@intel.com>2010-01-18 17:28:23 -0500
committerInaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>2010-05-11 17:03:32 -0400
commit4818d14de36228a749f714b450a85c1b35542e6f (patch)
treeedafd028ff6c03ce30df6a3480898b690abd5a40 /drivers/net
parent2b0b05ddc04b6d45e71cd36405df512075786f1e (diff)
wimax/i2400m: fix incorrect return -ESHUTDOWN when there is no Tx buffer available
i2400m_tx() routine was returning -ESHUTDOWN even when there was no Tx buffer available. This patch fixes the i2400m_tx() to return -ESHUTDOWN only when the device is down(i2400m->tx_buf is NULL) and also to return -ENOSPC when there is no Tx buffer. Error seen in the kernel log. kernel: i2400m_sdio mmc0:0001:1: can't send message 0x5606: -108 kernel: i2400m_sdio mmc0:0001:1: Failed to issue 'Enter power save'command: -108 Signed-off-by: Prasanna S.Panchamukhi <prasannax.s.panchamukhi@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wimax/i2400m/tx.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wimax/i2400m/tx.c b/drivers/net/wimax/i2400m/tx.c
index 6db909ecf1c9..fab27e4a4cb3 100644
--- a/drivers/net/wimax/i2400m/tx.c
+++ b/drivers/net/wimax/i2400m/tx.c
@@ -643,9 +643,11 @@ int i2400m_tx(struct i2400m *i2400m, const void *buf, size_t buf_len,
643 * current one is out of payload slots or we have a singleton, 643 * current one is out of payload slots or we have a singleton,
644 * close it and start a new one */ 644 * close it and start a new one */
645 spin_lock_irqsave(&i2400m->tx_lock, flags); 645 spin_lock_irqsave(&i2400m->tx_lock, flags);
646 result = -ESHUTDOWN; 646 /* If tx_buf is NULL, device is shutdown */
647 if (i2400m->tx_buf == NULL) 647 if (i2400m->tx_buf == NULL) {
648 result = -ESHUTDOWN;
648 goto error_tx_new; 649 goto error_tx_new;
650 }
649try_new: 651try_new:
650 if (unlikely(i2400m->tx_msg == NULL)) 652 if (unlikely(i2400m->tx_msg == NULL))
651 i2400m_tx_new(i2400m); 653 i2400m_tx_new(i2400m);