On Monday 06 March 2006 00:43, you wrote:
> > +           txb->fragments[i] = NULL; /* Take skb from ieee80211_txb_free */
> > +           dma_tx_fragment(ring, skb, i);
> >             //TODO: handle failure of dma_tx_fragment
> >     }
> >  
> > +   ieee80211_txb_free(txb);
> 
> This seems even more wrong to me than the current code.

Oh, I'm sorry. I did not see you were NULLing the fragment here
before calling ieee80211_txb_free().
So, ok. This might work.

But: This shows us that the struct ieee80211_txb is useless
and should be eliminated. Look at how d80211 handles fragments.
It sends every single fragment in an skb to the driver. I think
this is _much_ more painless and sane, in the first place.
I am pretty sure Jiri Benc will second my opinion. ;)

But in the meantime, I can apply and test your patch.
In the long term, we should get rid of struct ieee80211_txb
(and also introduce something like the TX control structure,
which d80211 also has).

-- 
Greetings Michael.

Attachment: pgpdCYykQqXOH.pgp
Description: PGP signature

Reply via email to