Re: [PATCH] x86: fix pte_flags() to only return flags, fix lguest(updated)

From: Ingo Molnar
Date: Tue Jul 22 2008 - 05:05:01 EST

* Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:

> (Jeremy said:
> rusty: use PTE_MASK
> rusty: use PTE_MASK
> rusty: use PTE_MASK
> When I asked:
> jsgf: does that include the NX flag?
> He responded eloquently:
> rusty: use PTE_MASK
> rusty: use PTE_MASK
> yes, it's the official constant of masking flags out of ptes
> )
> Change a15af1c9ea2750a9ff01e51615c45950bad8221b 'x86/paravirt: add
> pte_flags to just get pte flags' removed lguest's private pte_flags()
> in favor of a generic one.
> Unfortunately, the generic one doesn't filter out the non-flags bits:
> this results in lguest creating corrupt shadow page tables and blowing
> up host memory.
> Since noone is supposed to use the pfn part of pte_flags(), it seems
> safest to always do the filtering.
> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
> Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

applied to tip/x86/urgent - thanks Rusty!

i'm wondering. My randconfig tests boot up an lguest enabled kernel
every 30 minutes or so:


Would it be possible to have some really stupid lguest self-test which
would complain spectacularly in the host kernel if it fails to reach
some minimal user-space?

Something that could be self-contained within a single bzImage. (i.e. it
would contain a minimalistic image of some sort with a very minimalistic
userspace component as well - or something like that)

I test many distros so installing anything on the user-space side is
quite a PITA and it can go bust without me noticing.

If we had something like that then we'd have noticed the lguest breakage
within 30 minutes of adding the bad commit. (Unless of course you insist
on us adding hard to find random breakages to lguest - which service i'm
afraid we are bound to provide to you in the future too! ;)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at