Re: [PATCH] x86/PAE: Fix pte_clear for the >4GB RAM case

From: Andi Kleen
Date: Fri Apr 28 2006 - 01:18:38 EST


Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx> writes:
> +/*
> + * For PTEs and PDEs, we must clear the P-bit first when clearing a page table
> + * entry, so clear the bottom half first and enforce ordering with a compiler
> + * barrier.
> + */
> +static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
> +{
> + ptep->pte_low = 0;
> + smp_wmb();
> + ptep->pte_high = 0;
> +}
> +
> +static inline void pmd_clear(pmd_t *pmd)
> +{
> + u32 *tmp = (u32 *)pmd;
> + *tmp = 0;
> + smp_wmb();
> + *(tmp + 1) = 0;
> +}

I think that's still wrong - it should be wmb() not smp_wmb because this
problem can happen on a UP kernel already.

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/