|
@@ -2883,12 +2883,11 @@ static int b43_op_tx(struct ieee80211_hw *hw,
|
|
|
|
|
|
if (unlikely(skb->len < 2 + 2 + 6)) {
|
|
|
/* Too short, this can't be a valid frame. */
|
|
|
- dev_kfree_skb_any(skb);
|
|
|
- return NETDEV_TX_OK;
|
|
|
+ goto drop_packet;
|
|
|
}
|
|
|
B43_WARN_ON(skb_shinfo(skb)->nr_frags);
|
|
|
if (unlikely(!dev))
|
|
|
- return NETDEV_TX_BUSY;
|
|
|
+ goto drop_packet;
|
|
|
|
|
|
/* Transmissions on seperate queues can run concurrently. */
|
|
|
read_lock_irqsave(&wl->tx_lock, flags);
|
|
@@ -2904,7 +2903,12 @@ static int b43_op_tx(struct ieee80211_hw *hw,
|
|
|
read_unlock_irqrestore(&wl->tx_lock, flags);
|
|
|
|
|
|
if (unlikely(err))
|
|
|
- return NETDEV_TX_BUSY;
|
|
|
+ goto drop_packet;
|
|
|
+ return NETDEV_TX_OK;
|
|
|
+
|
|
|
+drop_packet:
|
|
|
+ /* We can not transmit this packet. Drop it. */
|
|
|
+ dev_kfree_skb_any(skb);
|
|
|
return NETDEV_TX_OK;
|
|
|
}
|
|
|
|