iommu/vt-d: Make context clearing consistent with context mapping
[ Upstream commit 9a16ab9d640274b20813d2d17475e18d3e99d834 ]
In the iommu probe_device path, domain_context_mapping() allows setting
up the context entry for a non-PCI device. However, in the iommu
release_device path, domain_context_clear() only clears context entries
for PCI devices.
Make domain_context_clear() behave consistently with
domain_context_mapping() by clearing context entries for both PCI and
non-PCI devices.
Fixes: 579305f75d
("iommu/vt-d: Update to use PCI DMA aliases")
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20231114011036.70142-4-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
ee2c224769
commit
59862b8692
|
@ -4086,8 +4086,8 @@ static int domain_context_clear_one_cb(struct pci_dev *pdev, u16 alias, void *op
|
||||||
*/
|
*/
|
||||||
static void domain_context_clear(struct device_domain_info *info)
|
static void domain_context_clear(struct device_domain_info *info)
|
||||||
{
|
{
|
||||||
if (!info->iommu || !info->dev || !dev_is_pci(info->dev))
|
if (!dev_is_pci(info->dev))
|
||||||
return;
|
domain_context_clear_one(info, info->bus, info->devfn);
|
||||||
|
|
||||||
pci_for_each_dma_alias(to_pci_dev(info->dev),
|
pci_for_each_dma_alias(to_pci_dev(info->dev),
|
||||||
&domain_context_clear_one_cb, info);
|
&domain_context_clear_one_cb, info);
|
||||||
|
|
Loading…
Reference in New Issue