Re: [PATCH] sh: pgtable-3level: Fix cast to pointer from integer of different size

From: John Paul Adrian Glaubitz
Date: Thu Sep 23 2021 - 11:21:04 EST


Hi Geert!

On 9/15/21 15:50, Geert Uytterhoeven wrote:
> If X2TLB=y (CPU_SHX2=y or CPU_SHX3=y, e.g. migor_defconfig), pgd_t.pgd
> is "unsigned long long", causing:
>
> In file included from arch/sh/include/asm/pgtable.h:13,
> from include/linux/pgtable.h:6,
> from include/linux/mm.h:33,
> from arch/sh/kernel/asm-offsets.c:14:
> arch/sh/include/asm/pgtable-3level.h: In function ‘pud_pgtable’:
> arch/sh/include/asm/pgtable-3level.h:37:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
> 37 | return (pmd_t *)pud_val(pud);
> | ^
>
> Fix this by adding an intermediate cast to "unsigned long", which is
> basically what the old code did before.

Thanks a lot for fixing this. My SH kernel build becomes much less noisy with
your patch. I can also confirm that it doesn't break the boot on my SH-7785LCR
as expected.

Tested-by: John Paul Adrian Glaubitz <glaubitz@xxxxxxxxxxxxxxxxxxx>

Adrian

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz@xxxxxxxxxx
`. `' Freie Universitaet Berlin - glaubitz@xxxxxxxxxxxxxxxxxxx
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913