···287287{288288 u8 *ret;289289290290- if (!request_mem_region(address, MMIO_REGION_LENGTH, "amd_iommu"))290290+ if (!request_mem_region(address, MMIO_REGION_LENGTH, "amd_iommu")) {291291+ pr_err("AMD-Vi: Can not reserve memory region %llx for mmio\n",292292+ address);293293+ pr_err("AMD-Vi: This is a BIOS bug. Please contact your hardware vendor\n");291294 return NULL;295295+ }292296293297 ret = ioremap_nocache(address, MMIO_REGION_LENGTH);294298 if (ret != NULL)···13181314 ret = amd_iommu_init_dma_ops();1319131513201316 if (ret)13211321- goto free;13171317+ goto free_disable;1322131813231319 amd_iommu_init_api();13241320···13361332out:13371333 return ret;1338133413391339-free:13351335+free_disable:13401336 disable_iommus();1341133713381338+free:13421339 amd_iommu_uninit_devices();1343134013441341 free_pages((unsigned long)amd_iommu_pd_alloc_bitmap,···13571352 free_iommu_all();1358135313591354 free_unity_maps();13551355+13561356+#ifdef CONFIG_GART_IOMMU13571357+ /*13581358+ * We failed to initialize the AMD IOMMU - try fallback to GART13591359+ * if possible.13601360+ */13611361+ gart_iommu_init();13621362+13631363+#endif1360136413611365 goto out;13621366}