iommu: sprd: Avoid NULL deref in sprd_iommu_hw_en
[ Upstream commit630482ee06
] In sprd_iommu_cleanup() before calling function sprd_iommu_hw_en() dom->sdev is equal to NULL, which leads to null dereference. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes:9afea57384
("iommu/sprd: Release dma buffer to avoid memory leak") Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru> Reviewed-by: Chunyan Zhang <zhang.lyra@gmail.com> Link: https://lore.kernel.org/r/20240716125522.3690358-1-artem.chernyshev@red-soft.ru Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f82bc4a04a
commit
dfe90030a0
@ -234,8 +234,8 @@ static void sprd_iommu_cleanup(struct sprd_iommu_domain *dom)
|
|||||||
|
|
||||||
pgt_size = sprd_iommu_pgt_size(&dom->domain);
|
pgt_size = sprd_iommu_pgt_size(&dom->domain);
|
||||||
dma_free_coherent(dom->sdev->dev, pgt_size, dom->pgt_va, dom->pgt_pa);
|
dma_free_coherent(dom->sdev->dev, pgt_size, dom->pgt_va, dom->pgt_pa);
|
||||||
dom->sdev = NULL;
|
|
||||||
sprd_iommu_hw_en(dom->sdev, false);
|
sprd_iommu_hw_en(dom->sdev, false);
|
||||||
|
dom->sdev = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sprd_iommu_domain_free(struct iommu_domain *domain)
|
static void sprd_iommu_domain_free(struct iommu_domain *domain)
|
||||||
|
Reference in New Issue
Block a user