Search Linux Wireless

Re: [PATCH] rt2x00mac: In error case stop netdev queue, free skb and return NETDEV_TX_OK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ivo van Doorn wrote:
On Wednesday 23 July 2008, Daniel Wagner wrote:
It is not allowed to use NETDEV_TX_BUSY in tx path anymore.

If not, then why is mac80211 checking and handling the return value
and is tx() still a function returning an int. mac80211 is actually requeueing
the frame when the hardware fails to send it, so why should that be completely blocked?

Well, I might be completely wrong here. I got this idea from following mail on netdev:
http://marc.info/?l=linux-wireless&m=121025252321824&w=2

--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -46,7 +46,7 @@ static int rt2x00mac_tx_rts_cts(struct rt2x00_dev *rt2x00dev,
 	skb = dev_alloc_skb(size + rt2x00dev->hw->extra_tx_headroom);
 	if (!skb) {
 		WARNING(rt2x00dev, "Failed to create RTS/CTS frame.\n");
-		return NETDEV_TX_BUSY;
+		return -1;

I am kind of missing the point here, this patch seems to come down to:
	We can't return TX_BUSY so we return a random other value

Unfortunately yes. The last return in this function is still NETDEV_TX_OK. My idea
was to return 0 on success in error -1. Is this not the expected normal
'typeless' return behavior of a function, no?
daniel

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux