Search Linux Wireless

Re: ath5k phy0: no further txbuf available, dropping packet

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

 



On Tuesday 27 October 2009 11:09:26 Bob Copeland wrote:
> On Mon, Oct 26, 2009 at 10:30:55PM +0100, Michael Buesch wrote:
> > 		/* No frame has been send or error */
> > 		if (unlikely(!(tx_status->tx_status_1 & AR5K_DESC_TX_STATUS1_DONE)))
> > 			return -EINPROGRESS;
> > 		...
> > 	}
> 
> > Notice the comment and how it says "or error".
> 
> Hmm, that does sound problematic.  But looking at the various bitfields:
> 
> #define AR5K_DESC_TX_STATUS1_DONE               0x00000001
> #define AR5K_DESC_TX_STATUS1_SEQ_NUM            0x00001ffe
> #define AR5K_DESC_TX_STATUS1_ACK_SIG_STRENGTH   0x001fe000
> #define AR5K_DESC_TX_STATUS1_FINAL_TS_INDEX     0x00600000
> #define AR5K_DESC_TX_STATUS1_COMP_SUCCESS       0x00800000
> #define AR5K_DESC_TX_STATUS1_XMIT_ANTENNA       0x01000000
> 
> I would be led to believe that 'done' means 'completed or error' and
> the comment is similarly ambiguous.  The status0 word contains things
> like 'really did succeed, number of retries, timestamp' etc.

Hm, I looked through the whole status processing code and this is the only
place I can see that could trigger stalling of the buffer head queue.

If the lowlevel status handler is able to distinguish between "done", "error" and "not done yet",
the return codes should probably changed:

0 => Packet was properly processed.
     The upper status handler will free it
-INPROGRESS => Packet was not processed, yet.
               The upper status handler should bail out and wait.
ERROR => Packet failed.
         The upper status handler should drop the packet
         and go on processing the other frames.

If that's not the case, I don't really know what's happening.

-- 
Greetings, Michael.
--
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