Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / mwifiex / txrx.c
index 8c80024c30ff6345399d53e7132bed310a6c12a6..8f923d0d2ba657241c7634b26dc6f04697045e40 100644 (file)
@@ -117,14 +117,16 @@ int mwifiex_process_tx(struct mwifiex_private *priv, struct sk_buff *skb,
                dev_dbg(adapter->dev, "data: -EBUSY is returned\n");
                break;
        case -1:
-               adapter->data_sent = false;
+               if (adapter->iface_type != MWIFIEX_PCIE)
+                       adapter->data_sent = false;
                dev_err(adapter->dev, "mwifiex_write_data_async failed: 0x%X\n",
                        ret);
                adapter->dbg.num_tx_host_to_card_failure++;
                mwifiex_write_data_complete(adapter, skb, 0, ret);
                break;
        case -EINPROGRESS:
-               adapter->data_sent = false;
+               if (adapter->iface_type != MWIFIEX_PCIE)
+                       adapter->data_sent = false;
                break;
        case 0:
                mwifiex_write_data_complete(adapter, skb, 0, ret);
@@ -167,6 +169,8 @@ int mwifiex_write_data_complete(struct mwifiex_adapter *adapter,
        if (!status) {
                priv->stats.tx_packets++;
                priv->stats.tx_bytes += skb->len;
+               if (priv->tx_timeout_cnt)
+                       priv->tx_timeout_cnt = 0;
        } else {
                priv->stats.tx_errors++;
        }