Re: [PATCH 4 of 4] x86: mask NX from pte_pfn

Hugh Dickins
2008-01-18T13:54:42Z

On Tue, 15 Jan 2008, Jeremy Fitzhardinge wrote:
> In 32-bit PAE, mask NX from pte_pfn, since it isn't part of the PFN.
> This code is due for unification anyway, but this fixes a latent bug.
>
> Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
>
> ---
> include/asm-x86/pgtable-3level.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/asm-x86/pgtable-3level.h b/include/asm-x86/pgtable-3level.h
> --- a/include/asm-x86/pgtable-3level.h
> +++ b/include/asm-x86/pgtable-3level.h
> @@ -139,7 +139,7 @@ static inline int pte_none(pte_t pte)
>
> static inline unsigned long pte_pfn(pte_t pte)
> {
> - return pte_val(pte) >> PAGE_SHIFT;
> + return (pte_val(pte) >> PAGE_SHIFT) & ~_PAGE_NX;
> }
>
> /*

Shouldn't that be

return (pte_val(pte) & ~_PAGE_NX) >> PAGE_SHIFT;

? Hugh