Re: [git pull] x86 fixes

Ingo Molnar
2009-01-12T21:12:58Z

* Harvey Harrison <harvey.harrison@gmail.com> wrote:

> On Mon, 2009-01-12 at 21:52 +0100, Ingo Molnar wrote:
> > * Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
> > +static inline int is_new_memtype_allowed(unsigned long flags,
> > + unsigned long new_flags)
> > +{
> > + /*
> > + * Certain new memtypes are not allowed with certain
> > + * requested memtype:
> > + * - request is uncached, return cannot be write-back
> > + * - request is write-combine, return cannot be write-back
> > + */
> > + if ((flags == _PAGE_CACHE_UC_MINUS &&
> > + new_flags == _PAGE_CACHE_WB) ||
> > + (flags == _PAGE_CACHE_WC &&
> > + new_flags == _PAGE_CACHE_WB)) {
> > + return 0;
> > + }
>
> if ((flags == _PAGE_CACHE_UC_MINUS || flags == _PAGE_CACHE_WC) &&
> (new_flags == _PAGE_CACHE_WB))
>
> might be a bit neater perhaps.

indeed. The most readable one is probably:

static inline int
is_new_memtype_allowed(unsigned long flags, unsigned long new_flags)
{
/*
* Certain new memtypes are not allowed with certain
* requested memtype:
* - request is uncached, return cannot be write-back
* - request is write-combine, return cannot be write-back
*/

if (new_flags != _PAGE_CACHE_WB)
return 1;

if (flags == _PAGE_CACHE_UC_MINUS)
return 0;
if (flags == _PAGE_CACHE_WC)
return 0;

return 1;
}

Ingo