[PATCH] PCI: iproc: fix 32-bit build error

Kevin Hilman khilman at kernel.org
Tue Oct 13 14:21:35 PDT 2015


Arnd Bergmann <arnd at arndb.de> writes:

> The iproc PCI driver tries to figure out whether the MMIO window has
> a valid size, but does this using a 64-bit modulo operation, which
> is not allowed on 32-bit kernels and leads to a link error:
>
> drivers/built-in.o: In function `iproc_pcie_setup':
> :(.text+0x4b798): undefined reference to `__aeabi_uldivmod'
>
> This works around that error by using the div64_u64() function
> provided by the kernel. While this is an expensive operation,
> it is harmless because we only call it during the probing
> of the driver.
>
> Signed-off-by: Arnd Bergmann <arnd at arndb.de>
> Fixes: 0ab99ca8eb6c ("PCI: iproc: Fix compile warnings")

Tested-by: Kevin Hilman <khilman at linaro.org>

Verified that this fixes the build failure on arm multi_v7_defconfig +
CONFIG_ARM_LPAE=y on top of next-20151013.

Kevin



More information about the linux-arm-kernel mailing list