iommu/io-pgtable-arm: Fix self-test WARNs on i386
authorWill Deacon <will.deacon@arm.com>
Mon, 16 Feb 2015 18:38:20 +0000 (18:38 +0000)
committerJoerg Roedel <jroedel@suse.de>
Wed, 25 Feb 2015 12:37:32 +0000 (13:37 +0100)
commit367bd978b81c2c7bcdcacdd3156645a27fab0676
treef64011e8248831b77a25acac1349b16ca621e650
parentc517d838eb7d07bbe9507871fab3931deccff539
iommu/io-pgtable-arm: Fix self-test WARNs on i386

Various build/boot bots have reported WARNs being triggered by the ARM
iopgtable LPAE self-tests on i386 machines.

This boils down to two instances of right-shifting a 32-bit unsigned
long (i.e. an iova) by more than the size of the type. On 32-bit ARM,
this happens to give us zero, hence my testing didn't catch this
earlier.

This patch fixes the issue by using DIV_ROUND_UP and explicit case to
to avoid the erroneous shifts.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Reported-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/io-pgtable-arm.c