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

Reply via email to