Commit 511d8dec authored by Kevin Mitchell's avatar Kevin Mitchell Committed by Greg Kroah-Hartman

iommu/amd: Make iommu_disable safer

[ Upstream commit 3ddbe913 ]

Make it safe to call iommu_disable during early init error conditions
before mmio_base is set, but after the struct amd_iommu has been added
to the amd_iommu_list. For example, this happens if firmware fails to
fill in mmio_phys in the ACPI table leading to a NULL pointer
dereference in iommu_feature_disable.

Fixes: 2c0ae172 ('iommu/amd: Convert iommu initialization to state machine')
Signed-off-by: default avatarKevin Mitchell <kevmitch@arista.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 959c90f3
...@@ -422,6 +422,9 @@ static void iommu_enable(struct amd_iommu *iommu) ...@@ -422,6 +422,9 @@ static void iommu_enable(struct amd_iommu *iommu)
static void iommu_disable(struct amd_iommu *iommu) static void iommu_disable(struct amd_iommu *iommu)
{ {
if (!iommu->mmio_base)
return;
/* Disable command buffer */ /* Disable command buffer */
iommu_feature_disable(iommu, CONTROL_CMDBUF_EN); iommu_feature_disable(iommu, CONTROL_CMDBUF_EN);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment