On Wed, Aug 22, 2007 at 05:33:16AM +0200, Segher Boessenkool wrote: > >>The I/O accessor functions enforce the necessary ordering > >>already I believe. > > > >Hmm, I never followed those discussions last year about IO ordering, > >and > >I can't see where (if) it was documented anywhere :( > > The comments in system.h weren't updated with the last fix, I think. > > >It appears that legacy code is handled by defining the old IO > >accessors to > >be completely ordered, and introducing new __raw_ variants that are not > >(OTOH, it seems like other architectures are implementing __raw prefix > >as > >inorder unless there is a _relaxed postfix). > > __raw_XX() is for platform code only, which can do the needed > barriers without having to use the heavy hammer like everything > else unfortunately does.
[EMAIL PROTECTED]:~/usr/src/linux-2.6/drivers> egrep '__raw_(write|read)' -r * | wc -l 685 > >Drivers are definitely using these __raw_ accessors, and from a quick > >look, they do appear to be hoping that *mb() is going to order access > >for > >them. > > Which drivers? There are maybe a dozen that use the raw accessors, and use non-smp_ memory barriers. I just looked at drivers/video/tgafb.c, which indeed appears to intermix them. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev