On Mon, Feb 06, 2012 at 05:13:25PM +0100, Johannes Berg wrote: > On 2/6/2012 5:09 PM, Stanislaw Gruszka wrote: > >wmb(), rmb() are not needed when writel(), readl() are used as > >accessors for MMIO. We use them indirectly via iowrite32(), > >ioread32(). > > > >What is needed mmiowb(), for synchronizing writes coming from > >different CPUs on PCIe bridge (see in patch comments). This > >fortunately is not needed on x86, where mmiowb() is just > >defined as compiler barrier. As iwlwifi devices are most likely > >not used on anything other than x86, this is not so important > >fix. > > Technically, PCIe bridges can reorder writes as well, so we really > need to do a dummy read somewhere -- we were discussing this > internally recently as well. PCIe can reorder writes only if they come from different CPUs, good examples are in "LOCKS VS I/O ACCESSES" in Documentation/memory-barriers.txt Stanislaw -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html