Re: [PATCH] avoid unnecessary cache flushes

David Mosberger
2001-09-03T20:27:21Z

>>>>> On Mon, 3 Sep 2001 13:14:36 -0700, Richard Henderson <rth@twiddle.net> said:

Richard> On Fri, Aug 31, 2001 at 09:18:50PM +1000, Paul Mackerras wrote:
>> + if (!test_bit(PG_arch_1, &page->flags)) {
>> + __flush_dcache_icache((unsigned long)kmap(page));
>> + kunmap(page);
>> + set_bit(PG_arch_1, &page->flags);

Richard> Race. Use test_and_set_bit.

Nope, the old code is correct: you must turn on PG_arch_1 *after*
flushing the cache. Yes, you might sometimes double flush, but that's
both safe and rare.

--david