On Mon, 6 Mar 2006 00:43:24 +0100, Michael Buesch <[EMAIL PROTECTED]> wrote:
> Yes, but I think the fix is to save the txb when transmitting > the last fragment rather than the first. This was my idea at first, too. > > + txb->fragments[i] = NULL; /* Take skb from ieee80211_txb_free */ > .... > > + ieee80211_txb_free(txb); > > This seems even more wrong to me than the current code. > This free's all fragments while transmission is in progress. What makes you think so? As long as I zero txb->fragments[], the ieee80211_txb_free will not free skb's. The skb's are only freed by free_descriptor_buffer, at the end of transmission. > The txb must be free'd after the xmitstatus for the last > fragment of the txb has been received. (and that is currently > indeed a bug. We free the txb on the first frag). Current implementation allows me to do what the patch does. So, this is down to the API definition. The one which mandates a driver to keep txb until all fragments are transmitted is unduly burdensome. -- Pete - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html