From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> Add a memory bank location check to the whitelist handling. Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> --- Changes since V1: - None, simply broke out this patch from the rest of the series drivers/iommu/ipmmu-vmsa.c | 7 +++++++ 1 file changed, 7 insertions(+) --- 0001/drivers/iommu/ipmmu-vmsa.c +++ work/drivers/iommu/ipmmu-vmsa.c 2019-03-19 21:04:43.000000000 +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]))