Re: [PATCH v2 -next] libnvdimm/region: Fix build error

From: Dan Williams
Date: Tue Mar 31 2020 - 15:42:43 EST


On Tue, Mar 31, 2020 at 4:52 AM YueHaibing <yuehaibing@xxxxxxxxxx> wrote:
>
> On CONFIG_PPC32=y build fails:
>
> drivers/nvdimm/region_devs.c:1034:14: note: in expansion of macro âdo_divâ
> remainder = do_div(per_mapping, mappings);
> ^~~~~~
> In file included from ./arch/powerpc/include/generated/asm/div64.h:1:0,
> from ./include/linux/kernel.h:18,
> from ./include/asm-generic/bug.h:19,
> from ./arch/powerpc/include/asm/bug.h:109,
> from ./include/linux/bug.h:5,
> from ./include/linux/scatterlist.h:7,
> from drivers/nvdimm/region_devs.c:5:
> ./include/asm-generic/div64.h:243:22: error: passing argument 1 of â__div64_32â from incompatible pointer type [-Werror=incompatible-pointer-types]
> __rem = __div64_32(&(n), __base); \
>
> Use div_u64 instead of do_div to fix this.
>
> Fixes: 2522afb86a8c ("libnvdimm/region: Introduce an 'align' attribute")
> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
> ---
> v2: use div_u64_rem and code cleanup

Looks good now, thanks, applied.