Re: [PATCH 2/2] ucc_geth: Rework the TX logic.
From: Joakim Tjernlund <hidden>
Date: 2009-03-26 18:20:54
Also in:
netdev
From: Joakim Tjernlund <hidden>
Date: 2009-03-26 18:20:54
Also in:
netdev
Anton Vorontsov [off-list ref] wrote on 26/03/2009 19:05:43:
On Thu, Mar 26, 2009 at 05:43:25PM +0100, Joakim Tjernlund wrote: [...]quoted
quoted
bd == ugeth->confBd[txQ] and !in_be32((u32 __iomem *)(bd+4)) Are not equivalent wrt. speed. MMIO accessors should be rather slow comparing to normal memory.Yes, I know. I did it this way because I something broke under stress when ugeth->confBd[txQ] instead. The ucc_geth_tx() and ucc_geth_start_xmit() gets out of sync somehow.Would be great if you could investigate it more. Maybe there is a serious bug somewhere, or maybe you're introducing another (yet hidden) bug...
I have spent some time on it and didn't see how to do it. I don't think the current method hides any bugs. I have used this method on 8xx for many years and it works well. Actually the current method might work without the spin_lock_irq(&ugeth->lock)/spin_unlock_irq(&ugeth->lock) in ucc_geth_start_xmit(). I can't break it, can you? Jocke