Message ID | 1249530754.18245.71.camel@pasglop (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | af984b816530b4725b92e01ecfba7c5e3eab910d |
Headers | show |
Benjamin Herrenschmidt wrote: > Does this patch fixes it ? > > [PATCH] powerpc/mm: Fix encoding of page table cache numbers > > The mask used to encode the page table cache number in the > batch when freeing page tables was too small for the new > possible values of MMU page sizes. This increases it along > with a comment explaining the constraints. > > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> > --- > Yes this patch fixed the issue for me. Thanks Ben. Tested-by: Sachin Sant <sachinp@in.ibm.com> Regards -Sachin
diff --git a/arch/powerpc/include/asm/pgalloc.h b/arch/powerpc/include/asm/pgalloc.h index 34b0806..f2e812d 100644 --- a/arch/powerpc/include/asm/pgalloc.h +++ b/arch/powerpc/include/asm/pgalloc.h @@ -28,7 +28,12 @@ typedef struct pgtable_free { unsigned long val; } pgtable_free_t; -#define PGF_CACHENUM_MASK 0x7 +/* This needs to be big enough to allow for MMU_PAGE_COUNT + 2 to be stored + * and small enough to fit in the low bits of any naturally aligned page + * table cache entry. Arbitrarily set to 0x1f, that should give us some + * room to grow + */ +#define PGF_CACHENUM_MASK 0x1f static inline pgtable_free_t pgtable_free_cache(void *p, int cachenum, unsigned long mask)