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>
This commit is contained in:
parent
2b0b05ddc0
commit
4818d14de3
|
@ -643,9 +643,11 @@ int i2400m_tx(struct i2400m *i2400m, const void *buf, size_t buf_len,
|
|||
* current one is out of payload slots or we have a singleton,
|
||||
* close it and start a new one */
|
||||
spin_lock_irqsave(&i2400m->tx_lock, flags);
|
||||
result = -ESHUTDOWN;
|
||||
if (i2400m->tx_buf == NULL)
|
||||
/* If tx_buf is NULL, device is shutdown */
|
||||
if (i2400m->tx_buf == NULL) {
|
||||
result = -ESHUTDOWN;
|
||||
goto error_tx_new;
|
||||
}
|
||||
try_new:
|
||||
if (unlikely(i2400m->tx_msg == NULL))
|
||||
i2400m_tx_new(i2400m);
|
||||
|
|
Loading…
Reference in New Issue