From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> Add a memory bank location check to the whitelist handling. Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> --- drivers/iommu/ipmmu-vmsa.c | 7 +++++++ 1 file changed, 7 insertions(+) --- 0001/drivers/iommu/ipmmu-vmsa.c +++ work/drivers/iommu/ipmmu-vmsa.c 2019-02-20 22:59:28.589893396 +0900 @@ -17,6 +17,7 @@ #include <linux/io.h> #include <linux/io-pgtable.h> #include <linux/iommu.h> +#include <linux/memblock.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_iommu.h> @@ -797,6 +798,12 @@ static bool ipmmu_slave_whitelist(struct if (!soc_device_match(soc_rcar_gen3_whitelist)) return false; + /* In case all system memory fits within 32 bits of physical space + * then assume the IPMMU will not be needed for address expansion. + */ + if (memblock_end_of_DRAM() <= SZ_4G) + return false; + /* Check whether this slave device can work with the IPMMU */ for (i = 0; i < ARRAY_SIZE(rcar_gen3_slave_whitelist); i++) { if (!strcmp(dev_name(dev), rcar_gen3_slave_whitelist[i]))