|
@@ -841,7 +841,7 @@ static int mwifiex_usb_host_to_card(struct mwifiex_adapter *adapter, u8 ep,
|
|
|
struct usb_tx_data_port *port = NULL;
|
|
|
u8 *data = (u8 *)skb->data;
|
|
|
struct urb *tx_urb;
|
|
|
- int idx, ret;
|
|
|
+ int idx, ret = -EINPROGRESS;
|
|
|
|
|
|
if (adapter->is_suspended) {
|
|
|
mwifiex_dbg(adapter, ERROR,
|
|
@@ -865,8 +865,9 @@ static int mwifiex_usb_host_to_card(struct mwifiex_adapter *adapter, u8 ep,
|
|
|
if (atomic_read(&port->tx_data_urb_pending)
|
|
|
>= MWIFIEX_TX_DATA_URB) {
|
|
|
port->block_status = true;
|
|
|
- ret = -EBUSY;
|
|
|
- goto done;
|
|
|
+ adapter->data_sent =
|
|
|
+ mwifiex_usb_data_sent(adapter);
|
|
|
+ return -EBUSY;
|
|
|
}
|
|
|
if (port->tx_data_ix >= MWIFIEX_TX_DATA_URB)
|
|
|
port->tx_data_ix = 0;
|
|
@@ -902,6 +903,7 @@ static int mwifiex_usb_host_to_card(struct mwifiex_adapter *adapter, u8 ep,
|
|
|
MWIFIEX_TX_DATA_URB) {
|
|
|
port->block_status = true;
|
|
|
adapter->data_sent = mwifiex_usb_data_sent(adapter);
|
|
|
+ ret = -ENOSR;
|
|
|
}
|
|
|
|
|
|
if (usb_submit_urb(tx_urb, GFP_ATOMIC)) {
|
|
@@ -918,22 +920,9 @@ static int mwifiex_usb_host_to_card(struct mwifiex_adapter *adapter, u8 ep,
|
|
|
else
|
|
|
port->tx_data_ix = MWIFIEX_TX_DATA_URB;
|
|
|
}
|
|
|
-
|
|
|
- return -1;
|
|
|
- } else {
|
|
|
- if (ep != card->tx_cmd_ep &&
|
|
|
- atomic_read(&port->tx_data_urb_pending) ==
|
|
|
- MWIFIEX_TX_DATA_URB) {
|
|
|
- return -ENOSR;
|
|
|
- }
|
|
|
+ ret = -1;
|
|
|
}
|
|
|
|
|
|
- return -EINPROGRESS;
|
|
|
-
|
|
|
-done:
|
|
|
- if (ep != card->tx_cmd_ep)
|
|
|
- adapter->data_sent = mwifiex_usb_data_sent(adapter);
|
|
|
-
|
|
|
return ret;
|
|
|
}
|
|
|
|