Luis R. Rodriguez wrote: > On Tue, Dec 2, 2008 at 5:06 AM, Sujith <Sujith.Manoharan@xxxxxxxxxxx> wrote: > > > --- a/drivers/net/wireless/ath9k/xmit.c > > +++ b/drivers/net/wireless/ath9k/xmit.c > > @@ -1787,7 +1793,12 @@ int ath_tx_start(struct ath_softc *sc, struct sk_buff *skb, > > return -1; > > } > > > > - ath_tx_setup_buffer(sc, bf, skb, txctl); > > + ret = ath_tx_setup_buffer(sc, bf, skb, txctl); > > + if (ret) { > > + DPRINTF(sc, ATH_DBG_FATAL, "TX mem alloc failure\n"); > > + return ret; > > Hm, this doesn't add the bf back to the txq, so we'd run out of bf's > completely when on low memory, eventually leaving the list always > empty. I'll resend with that added and a few more changes. > Right. I think the queue has to be stopped too (ieee80211_stop_queue()), and resumed when memory is available again. What do you think ? Sujith -- 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