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>
This commit is contained in:
parent
ff80d13fc4
commit
80a284bd15
3 changed files with 8 additions and 12 deletions
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue