Messages in this thread | | | Subject | Re: [PATCH] Fix possible race with 4level-fixup.h | From | Benjamin Herrenschmidt <> | Date | Thu, 17 Feb 2005 19:40:48 +1100 |
| |
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 <benh@kernel.crashing.org> > > > > 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |