> ... and try to find a way to test for it at runtime or compile time.It's hard. I haven't managed to come up with a good idea on how to test for it either at runtime or from sparse. There -might- be way to test up to a certain point with sparse by defining a __coherent attribute for coherent memory and trying to figure out patterns like write to __coherent followed by MMIO with no barrier in between but that's fishy and won't catch many cases. Sticking barriers in the accessors is thus indeed the "easy" and somewhat safe fix and keeping everything as ordered as possible Though it's my understanding that at least ia64 does require the explicit barriers anyway, so we are still in a dodgy situation here where it's not clear what drivers should do and we end up with possibly excessive barriers on powerpc where I end up with both the wmb/rmb/mb that were added for ia64 -and- the ones I have in readl/writel to make them look synchronous... Not nice. I'm not sure there is a good answer... Cheers, Ben. --
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
git: | |
| David Miller | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 05/37] dccp: Cleanup routines for feature negotiation |
| Lennert Buytenhek | [PATCH 16/39] mv643xx_eth: get rid of ETH_/ethernet_/eth_ prefixes |
