* Re: [PATCH] powerpc/mm: Fix size of allocated PGDIR
[not found] <1cdaacb391cbd3e0240f0e0faf691202874e9422.1723109462.git.christophe.leroy@csgroup.eu>
@ 2024-08-08 15:20 ` Guenter Roeck
2024-08-12 11:59 ` Michael Ellerman
1 sibling, 0 replies; 2+ messages in thread
From: Guenter Roeck @ 2024-08-08 15:20 UTC (permalink / raw)
To: Christophe Leroy, Andrew Morton; +Cc: linux-kernel, linux-mm, linuxppc-dev
On 8/8/24 02:32, Christophe Leroy wrote:
> Commit 6b0e82791bd0 ("powerpc/e500: switch to 64 bits PGD on 85xx
> (32 bits)") increased the size of PGD entries but failed to increase
> the PGD directory.
>
> Use the size of pgd_t instead of the size of pointers to calculate
> the allocated size.
>
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Fixes: 6b0e82791bd0 ("powerpc/e500: switch to 64 bits PGD on 85xx (32 bits)")
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Guenter Roeck <linux@roeck-us.net>
> ---
> arch/powerpc/mm/init-common.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/mm/init-common.c b/arch/powerpc/mm/init-common.c
> index 9b4a675eb8f8..2978fcbe307e 100644
> --- a/arch/powerpc/mm/init-common.c
> +++ b/arch/powerpc/mm/init-common.c
> @@ -73,7 +73,7 @@ void setup_kup(void)
>
> #define CTOR(shift) static void ctor_##shift(void *addr) \
> { \
> - memset(addr, 0, sizeof(void *) << (shift)); \
> + memset(addr, 0, sizeof(pgd_t) << (shift)); \
> }
>
> CTOR(0); CTOR(1); CTOR(2); CTOR(3); CTOR(4); CTOR(5); CTOR(6); CTOR(7);
> @@ -117,7 +117,7 @@ EXPORT_SYMBOL_GPL(pgtable_cache); /* used by kvm_hv module */
> void pgtable_cache_add(unsigned int shift)
> {
> char *name;
> - unsigned long table_size = sizeof(void *) << shift;
> + unsigned long table_size = sizeof(pgd_t) << shift;
> unsigned long align = table_size;
>
> /* When batching pgtable pointers for RCU freeing, we store
^ permalink raw reply [flat|nested] 2+ messages in thread