Messages in this thread | | | Date | Tue, 7 Mar 2006 12:06:02 -0700 | From | Matthew Wilcox <> | Subject | Re: [PATCH] Document Linux's memory barriers |
| |
On Tue, Mar 07, 2006 at 01:54:33PM -0500, linux-os (Dick Johnson) wrote: > This might be a good place to document: > dummy = readl(&foodev->ctrl); > > Will flush all pending writes to the PCI bus and that: > (void) readl(&foodev->ctrl); > ... won't because `gcc` may optimize it away. In fact, variable > "dummy" should be global or `gcc` may make it go away as well.
static inline unsigned int readl(const volatile void __iomem *addr) { return *(volatile unsigned int __force *) addr; }
The cast is volatile, so gcc knows not to optimise it away. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |