On Tue, Oct 16, 2007 at 12:33:54PM +0200, Mikulas Patocka wrote:
No. In Linux kernel, rmb() means that all previous loads, including to
any IO regions, will be executed before any subsequent load.
How can you possibly get rid of lfence from there just because you may
happen to *know* that it isn't used (btw. the IO serialisation isn't for
kernel data structures, it is for actual IO operations, generally).
Doing that would lead to an unmaintainable mess. If drivers don't need rmb,
then they don't call it.
-