Anton Vorontsov <avoront...@ru.mvista.com> wrote on 26/03/2009 19:05:43:
> On Thu, Mar 26, 2009 at 05:43:25PM +0100, Joakim Tjernlund wrote: > [...] > > > 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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev