+++ /dev/null
-From 18436afdc11a00ac881990b454cfb2eae81d6003 Mon Sep 17 00:00:00 2001
-From: David Woodhouse <David.Woodhouse@intel.com>
-Date: Wed, 25 Mar 2015 15:05:47 +0000
-Subject: iommu/vt-d: Allow RMRR on graphics devices too
-
-From: David Woodhouse <David.Woodhouse@intel.com>
-
-commit 18436afdc11a00ac881990b454cfb2eae81d6003 upstream.
-
-Commit c875d2c1 ("iommu/vt-d: Exclude devices using RMRRs from IOMMU API
-domains") prevents certain options for devices with RMRRs. This even
-prevents those devices from getting a 1:1 mapping with 'iommu=pt',
-because we don't have the code to handle *preserving* the RMRR regions
-when moving the device between domains.
-
-There's already an exclusion for USB devices, because we know the only
-reason for RMRRs there is a misguided desire to keep legacy
-keyboard/mouse emulation running in some theoretical OS which doesn't
-have support for USB in its own right... but which *does* enable the
-IOMMU.
-
-Add an exclusion for graphics devices too, so that 'iommu=pt' works
-there. We should be able to successfully assign graphics devices to
-guests too, as long as the initial handling of stolen memory is
-reconfigured appropriately. This has certainly worked in the past.
-
-Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/iommu/intel-iommu.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
---- a/drivers/iommu/intel-iommu.c
-+++ b/drivers/iommu/intel-iommu.c
-@@ -50,6 +50,7 @@
- #define CONTEXT_SIZE VTD_PAGE_SIZE
-
- #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
-+#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
- #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
- #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
-
-@@ -2561,6 +2562,10 @@ static bool device_has_rmrr(struct devic
- * In both cases we assume that PCI USB devices with RMRRs have them largely
- * for historical reasons and that the RMRR space is not actively used post
- * boot. This exclusion may change if vendors begin to abuse it.
-+ *
-+ * The same exception is made for graphics devices, with the requirement that
-+ * any use of the RMRR regions will be torn down before assigning the device
-+ * to a guest.
- */
- static bool device_is_rmrr_locked(struct device *dev)
- {
-@@ -2570,7 +2575,7 @@ static bool device_is_rmrr_locked(struct
- if (dev_is_pci(dev)) {
- struct pci_dev *pdev = to_pci_dev(dev);
-
-- if ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
-+ if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
- return false;
- }
-
nfsd4-disallow-seek-with-special-stateids.patch
nfsd-eliminate-nfsd_debug.patch
nfs-add-a-stub-for-getdevicelist.patch
-iommu-vt-d-allow-rmrr-on-graphics-devices-too.patch
e1000-add-dummy-allocator-to-fix-race-condition-between-mtu-change-and-netpoll.patch
mac80211-send-ap-probe-as-unicast-again.patch
ebpf-verifier-check-that-call-reg-with-arg_anything-is-initialized.patch
+++ /dev/null
-From 18436afdc11a00ac881990b454cfb2eae81d6003 Mon Sep 17 00:00:00 2001
-From: David Woodhouse <David.Woodhouse@intel.com>
-Date: Wed, 25 Mar 2015 15:05:47 +0000
-Subject: iommu/vt-d: Allow RMRR on graphics devices too
-
-From: David Woodhouse <David.Woodhouse@intel.com>
-
-commit 18436afdc11a00ac881990b454cfb2eae81d6003 upstream.
-
-Commit c875d2c1 ("iommu/vt-d: Exclude devices using RMRRs from IOMMU API
-domains") prevents certain options for devices with RMRRs. This even
-prevents those devices from getting a 1:1 mapping with 'iommu=pt',
-because we don't have the code to handle *preserving* the RMRR regions
-when moving the device between domains.
-
-There's already an exclusion for USB devices, because we know the only
-reason for RMRRs there is a misguided desire to keep legacy
-keyboard/mouse emulation running in some theoretical OS which doesn't
-have support for USB in its own right... but which *does* enable the
-IOMMU.
-
-Add an exclusion for graphics devices too, so that 'iommu=pt' works
-there. We should be able to successfully assign graphics devices to
-guests too, as long as the initial handling of stolen memory is
-reconfigured appropriately. This has certainly worked in the past.
-
-Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/iommu/intel-iommu.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
---- a/drivers/iommu/intel-iommu.c
-+++ b/drivers/iommu/intel-iommu.c
-@@ -50,6 +50,7 @@
- #define CONTEXT_SIZE VTD_PAGE_SIZE
-
- #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
-+#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
- #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
- #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
-
-@@ -2554,6 +2555,10 @@ static bool device_has_rmrr(struct devic
- * In both cases we assume that PCI USB devices with RMRRs have them largely
- * for historical reasons and that the RMRR space is not actively used post
- * boot. This exclusion may change if vendors begin to abuse it.
-+ *
-+ * The same exception is made for graphics devices, with the requirement that
-+ * any use of the RMRR regions will be torn down before assigning the device
-+ * to a guest.
- */
- static bool device_is_rmrr_locked(struct device *dev)
- {
-@@ -2563,7 +2568,7 @@ static bool device_is_rmrr_locked(struct
- if (dev_is_pci(dev)) {
- struct pci_dev *pdev = to_pci_dev(dev);
-
-- if ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
-+ if (IS_USB_DEVICE(pdev) || IS_GFX_DEVICE(pdev))
- return false;
- }
-
nfs-fix-dio-good-bytes-calculation.patch
nfs-remove-warn_on_once-from-nfs_direct_good_bytes.patch
nfs-add-a-stub-for-getdevicelist.patch
-iommu-vt-d-allow-rmrr-on-graphics-devices-too.patch
sched-deadline-always-enqueue-on-previous-rq-when-dl_task_timer-fires.patch
e1000-add-dummy-allocator-to-fix-race-condition-between-mtu-change-and-netpoll.patch
mac80211-send-ap-probe-as-unicast-again.patch