Commit 2ff729f5 authored by David Woodhouse's avatar David Woodhouse
Browse files

intel-iommu: Cope with yet another BIOS screwup causing crashes

parent 94a91b50
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1975,6 +1975,17 @@ static int iommu_prepare_identity_map(struct pci_dev *pdev,
	       "IOMMU: Setting identity map for device %s [0x%Lx - 0x%Lx]\n",
	       pci_name(pdev), start, end);
	
	if (end >> agaw_to_width(domain->agaw)) {
		WARN(1, "Your BIOS is broken; RMRR exceeds permitted address width (%d bits)\n"
		     "BIOS vendor: %s; Ver: %s; Product Version: %s\n",
		     agaw_to_width(domain->agaw),
		     dmi_get_system_info(DMI_BIOS_VENDOR),
		     dmi_get_system_info(DMI_BIOS_VERSION),
		     dmi_get_system_info(DMI_PRODUCT_VERSION));
		ret = -EIO;
		goto error;
	}

	ret = iommu_domain_identity_map(domain, start, end);
	if (ret)
		goto error;