On Thu, 2005-02-17 at 19:33 +1100, Nick Piggin wrote: > Benjamin Herrenschmidt wrote: > > Hi ! > > > > When using 4level-fixup.h, a PMD page may end up beeing freed before the > > matching PGD entry is cleared due to the way the compatibility macros > > work. This can cause nasty races on some architectures. > > > > This patch fixes it by defining pud_clear() to be pgd_clear(). That > > means we'll actually write 0 twice, a small price to pay here, > > especially seeing how easy it is to convert to the new headers anyway > > (hint hint, ppc & ppc64 patches as soon as 2.6.11 is out). > > > > Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> > > > > Index: linux-work/include/asm-generic/4level-fixup.h > > =================================================================== > > --- linux-work.orig/include/asm-generic/4level-fixup.h 2005-01-24 > > 17:09:49.000000000 +1100 > > +++ linux-work/include/asm-generic/4level-fixup.h 2005-02-17 > > 18:10:38.000000000 +1100 > > @@ -24,7 +24,7 @@ > > #define pud_bad(pud) 0 > > #define pud_present(pud) 1 > > #define pud_ERROR(pud) do { } while (0) > > -#define pud_clear(pud) do { } while (0) > > +#define pud_clear(pud) pgd_clear((pgd_t *)(pud)) > > > > Just a small nit - no cast needed here.
Well, do you know ? pud is a pud_t* and the arch is free to implement pgd_clear as an inline with strong typing no ? Ben. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/