Skip to contentSkip to conversation

b43legacy: Do not return TX_BUSY from op_tx

PATCH New Michael Buesch 1 participant 1 message Jul 2, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 b43legacy: Do not return TX_BUSY from op_tx

Never return TX_BUSY from op_tx. It doesn't make sense to return TX_BUSY, if we can not transmit the packet.
Drop the packet and return TX_OK.

Upstream commit is
eb803e419ca6be06ece2e42027bb4ebd8ec09f91

drivers/net/wireless/b43legacy/main.c +4 -2
Index: linux-2.6.25.6/drivers/net/wireless/b43legacy/main.c
===================================================================
@@ -2347,14 +2347,16 @@ static int b43legacy_op_tx(struct ieee80
 		spin_lock_irqsave(&wl->irq_lock, flags);
 		err = b43legacy_pio_tx(dev, skb, ctl);
 		spin_unlock_irqrestore(&wl->irq_lock, flags);
 	} else
 		err = b43legacy_dma_tx(dev, skb, ctl);
 out:
-	if (unlikely(err))
-		return NETDEV_TX_BUSY;
+	if (unlikely(err)) {
+		/* Drop the packet. */
+		dev_kfree_skb_any(skb);
+	}
 	return NETDEV_TX_OK;
 }
 
 static int b43legacy_op_conf_tx(struct ieee80211_hw *hw,
 				int queue,
 				const struct ieee80211_tx_queue_params *params)