IOMMU: default to always quarantining PCI devices

XSA-302 relies on the use of libxl's "assignable-add" feature to prepare
devices to be assigned to untrusted guests.

Unfortunately, this is not considered a strictly required step for
device assignment. The PCI passthrough documentation on the wiki
describes alternate ways of preparing devices for assignment, and
libvirt uses its own ways as well. Hosts where these alternate methods
are used will still leave the system in a vulnerable state after the
device comes back from a guest.

Default to always quarantining PCI devices, but provide a command line
option to revert back to prior behavior (such that people who both
sufficiently trust their guests and want to be able to use devices in
Dom0 again after they had been in use by a guest wouldn't need to
"manually" move such devices back from DomIO to Dom0).

This is XSA-306.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Wei Liu <wl@xen.org>
master commit: ba2ab00bbb
master date: 2019-11-26 14:15:01 +0100
This commit is contained in:
Jan Beulich committed 2019-11-26 14:24:44 +01:00
1 parent 0eb99bf90b
commit 1d6777df45
4 files changed
+16 -3

No files matched your search

+10 -1
View File
@@ -1137,7 +1137,7 @@ detection of systems known to misbehave upon accesses to that port.
> Default: `new` unless directed-EOI is supported
### iommu
> `= List of [ <boolean> | force | required | intremap | intpost | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | igfx | crash-disable | verbose | debug ]`
> `= List of [ <boolean> | force | required | quarantine | intremap | intpost | qinval | snoop | sharept | dom0-passthrough | dom0-strict | amd-iommu-perdev-intremap | workaround_bios_bug | igfx | crash-disable | verbose | debug ]`
> Sub-options:
@@ -1157,6 +1157,15 @@ detection of systems known to misbehave upon accesses to that port.
>> Don't continue booting unless IOMMU support is found and can be initialized
>> successfully.
> `quarantine`
> Default: `true`
>> Control Xen's behavior when de-assigning devices from guests. If enabled,
>> Xen always quarantines such devices; they must be explicitly assigned back
>> to Dom0 before they can be used there again. If disabled, Xen will only
>> quarantine devices the toolstack hass arranged for getting quarantined.
> `intremap`
> Default: `true`
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.