diff options
author | Ashok Nagarajan <asnagarajan@chromium.org> | 2013-03-08 10:58:45 -0800 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-03-08 16:02:48 -0500 |
commit | 8908c7d5392671610a2d80107845d4aeee92d9c1 (patch) | |
tree | 5434b6c0f94bdcb7b5106b238c4905623eb93433 /drivers/net/wireless/mwifiex/txrx.c | |
parent | e6146c5cefedefe69676ab6b2c28a40c2d749ec2 (diff) | |
download | op-kernel-dev-8908c7d5392671610a2d80107845d4aeee92d9c1.zip op-kernel-dev-8908c7d5392671610a2d80107845d4aeee92d9c1.tar.gz |
mwifiex: Trigger a card reset on reaching tx_timeout threshold
tx_timeout doesn't always lead to a cmd_timeout. There are
occurrences where cmd_timeout never gets triggered for a long
time and we encounter a kernel crash. In this patch, we track
the consecutive timeouts (tx_timeout_cnt). When tx_timeout_cnt
exceeds the threshold, trigger a card reset thereby avoiding a
kernel crash.
Signed-off-by: Ashok Nagarajan <asnagarajan@chromium.org>
Signed-off-by: Paul Stewart <pstew@chromium.org>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/txrx.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/txrx.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/txrx.c b/drivers/net/wireless/mwifiex/txrx.c index 296faec..8f923d0 100644 --- a/drivers/net/wireless/mwifiex/txrx.c +++ b/drivers/net/wireless/mwifiex/txrx.c @@ -169,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++; } |