VT-d: fix deassign of device with RMRR

Ignoring a specific error code here was not meant to short circuit
deassign to _just_ the unmapping of RMRRs. This bug was previously
hidden by the bogus (potentially indefinite) looping in
pci_release_devices(), until f591755823 ("IOMMU/PCI: don't let domain
cleanup continue when device de-assignment failed") fixed that loop.

This is CVE-2021-28702 / XSA-386.

Fixes: 8b99f4400b ("VT-d: fix RMRR related error handling")
Reported-by: Ivan Kardykov <kardykov@tabit.pro>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Ivan Kardykov <kardykov@tabit.pro>
This commit is contained in:
Jan Beulich authored and Andrew Cooper committed 2021-10-05 19:56:16 +01:00
1 parent d6bdad32cb
commit 192aaf7e14
1 file changed
+1 -1
+1 -1
View File
@@ -2409,7 +2409,7 @@ static int reassign_device_ownership(
ret = iommu_identity_mapping(source, p2m_access_x,
rmrr->base_address,
rmrr->end_address, 0);
if ( ret != -ENOENT )
if ( ret && ret != -ENOENT )
return ret;
}
}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.