diff options
author | Pekka Enberg <penberg@kernel.org> | 2010-09-19 13:01:02 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-09-21 10:46:03 -0700 |
commit | 80a284bd154ee3a9d38ee9c264a3a2bf6114385e (patch) | |
tree | 2e45c166f005b365323185995b94494c22382a1c | |
parent | ff80d13fc45b97bb06dcb57036c768c8d3674d7d (diff) | |
download | linux-80a284bd154ee3a9d38ee9c264a3a2bf6114385e.tar.bz2 |
staging: w35und: Use NETDEV_TX_BUSY if MLMESendFrame fails
This patch changes MLMESendFrame to return NETDEV_TX_BUSY if MLME frame is in
use so that wbsoft_tx() doesn't blindly return NETDEV_TX_OK in that case.
Cc: Sandro Bonazzola <sandro.bonazzola@gmail.com>
Cc: Lars Lindley <lindley@coyote.org>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Ruslan Pisarev <ruslan@rpisarev.org.ua>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/winbond/mlmetxrx.c | 13 | ||||
-rw-r--r-- | drivers/staging/winbond/mlmetxrx_f.h | 3 | ||||
-rw-r--r-- | drivers/staging/winbond/wbusb.c | 4 |
3 files changed, 8 insertions, 12 deletions
diff --git a/drivers/staging/winbond/mlmetxrx.c b/drivers/staging/winbond/mlmetxrx.c index 74488c2f8c95..6b28898485d6 100644 --- a/drivers/staging/winbond/mlmetxrx.c +++ b/drivers/staging/winbond/mlmetxrx.c @@ -19,14 +19,13 @@ #include "mds_f.h" -/* ============================================================================= */ -u8 MLMESendFrame(struct wbsoft_priv *adapter, u8 *pMMPDU, u16 len, u8 DataType) -/* DataType : FRAME_TYPE_802_11_MANAGEMENT, FRAME_TYPE_802_11_MANAGEMENT_CHALLENGE, - FRAME_TYPE_802_11_DATA */ +#include <linux/netdevice.h> + +int MLMESendFrame(struct wbsoft_priv *adapter, u8 *pMMPDU, u16 len, u8 DataType) { if (adapter->sMlmeFrame.IsInUsed != PACKET_FREE_TO_USE) { adapter->sMlmeFrame.wNumTxMMPDUDiscarded++; - return false; + return NETDEV_TX_BUSY; } adapter->sMlmeFrame.IsInUsed = PACKET_COME_FROM_MLME; @@ -40,9 +39,9 @@ u8 MLMESendFrame(struct wbsoft_priv *adapter, u8 *pMMPDU, u16 len, u8 DataType) /* H/W will enter power save by set the register. S/W don't send null frame with PWRMgt bit enbled to enter power save now. */ - /* Transmit NDIS packet */ Mds_Tx(adapter); - return true; + + return NETDEV_TX_OK; } void MLME_GetNextPacket(struct wbsoft_priv *adapter, struct wb35_descriptor *desc) diff --git a/drivers/staging/winbond/mlmetxrx_f.h b/drivers/staging/winbond/mlmetxrx_f.h index d1aa2617d24b..ddccbc2e1cd2 100644 --- a/drivers/staging/winbond/mlmetxrx_f.h +++ b/drivers/staging/winbond/mlmetxrx_f.h @@ -11,8 +11,7 @@ #include "core.h" void MLME_GetNextPacket(struct wbsoft_priv *adapter, struct wb35_descriptor *pDes); -u8 MLMESendFrame(struct wbsoft_priv *adapter, - u8 *pMMPDU, u16 len, u8 DataType); +int MLMESendFrame(struct wbsoft_priv *adapter, u8 *pMMPDU, u16 len, u8 DataType); void MLME_SendComplete(struct wbsoft_priv *adapter, u8 PacketID, diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c index 5419f4fd198f..157c05bf2578 100644 --- a/drivers/staging/winbond/wbusb.c +++ b/drivers/staging/winbond/wbusb.c @@ -121,9 +121,7 @@ static int wbsoft_tx(struct ieee80211_hw *dev, struct sk_buff *skb) { struct wbsoft_priv *priv = dev->priv; - MLMESendFrame(priv, skb->data, skb->len, FRAME_TYPE_802_11_MANAGEMENT); - - return NETDEV_TX_OK; + return MLMESendFrame(priv, skb->data, skb->len, FRAME_TYPE_802_11_MANAGEMENT); } static int wbsoft_start(struct ieee80211_hw *dev) |