** Description changed: [Impact] - iommu/amd: Reserve exclusion range in iova-domain - - BugLink: https://bugs.launchpad.net/bugs/1823037 - If a device has an exclusion range specified in the IVRS table, this region needs to be reserved in the iova-domain of that device. This hasn't happened until now and can cause data corruption on data transfered with these devices. - - Treat exclusion ranges as reserved regions in the iommu-core - to fix the problem. - - Fixes: be2a022c0dd0 ('x86, AMD IOMMU: add functions to parse IOMMU memory mapping requirements for devices') - Signed-off-by: Joerg Roedel <jroe...@suse.de> - Reviewed-by: Gary R Hook <gary.h...@amd.com> - - (cherry picked from commit 8aafaaf2212192012f5bae305bb31cdf7681d777) - Signed-off-by: Jeffrey Lane <jeffrey.l...@canonical.com> - - iommu/amd: Set exclusion range correctly - - BugLink: https://bugs.launchpad.net/bugs/1823037 The exlcusion range limit register needs to contain the base-address of the last page that is part of the range, as bits 0-11 of this register are treated as 0xfff by the hardware for comparisons. So correctly set the exclusion range in the hardware to the last page which is _in_ the range. - - Fixes: b2026aa2dce44 ('x86, AMD IOMMU: add functions for programming IOMMU MMIO space') - Signed-off-by: Joerg Roedel <jroe...@suse.de> - - (cherry picked from commit 3c677d206210f53a4be972211066c0f1cd47fe12) - Signed-off-by: Jeffrey Lane <jeffrey.l...@canonical.com> [Fixes] Cherry pick the following from Mainline fd3b3448cf5adc2a2f09b70eaad03c27fe79e7a6 iommu/amd: Reserve exclusion range in iova-domain 3c677d206210f53a4be972211066c0f1cd47fe12 iommu/amd: Set exclusion range correctly These can be picked from my branches here: Bionic: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/bionic 1823037-amd_iommu-cherrypick b7abdb585d0ae4193add1f7038476cd8d6dd7f41 iommu/amd: Reserve exclusion range in iova-domain ee4a87e6b7fe7e039c1f02c50c53da63e4270732 iommu/amd: Set exclusion range correctly Cosmic: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/cosmic 1823037-amd_iommu-cherrypick 0acc8c0e862b46b12c233abd76593420f4a20e0c iommu/amd: Reserve exclusion range in iova-domain fbead5d71bfc2a49ffca8d181e2708fd616e9a7f iommu/amd: Set exclusion range correctly Disco: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/disco 1823037-amd_iommu-cherrypick 6ddc207ca0d442b413ea7f059937ba90e5139753 iommu/amd: Set exclusion range correctly Note Disco only required f1cd47fe12 as the first patch was already picked in LP: #1830934 Not necessary for Eoan as these are already upstream in 5.2-rc1 [Regression Risk] - Low,this adds memory protection to the driver and has already been acked upstream and tested by Dell for 24 hours with no failures noted. + Low,this adds memory protection to the driver and has already been applied upstream and tested by Dell for 24 hours with no failures noted.
-- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1823037 Title: amd_iommu possible data corruption Status in linux package in Ubuntu: In Progress Status in linux source package in Bionic: In Progress Status in linux source package in Cosmic: In Progress Status in linux source package in Disco: In Progress Bug description: [Impact] If a device has an exclusion range specified in the IVRS table, this region needs to be reserved in the iova-domain of that device. This hasn't happened until now and can cause data corruption on data transfered with these devices. The exlcusion range limit register needs to contain the base-address of the last page that is part of the range, as bits 0-11 of this register are treated as 0xfff by the hardware for comparisons. So correctly set the exclusion range in the hardware to the last page which is _in_ the range. [Fixes] Cherry pick the following from Mainline fd3b3448cf5adc2a2f09b70eaad03c27fe79e7a6 iommu/amd: Reserve exclusion range in iova-domain 3c677d206210f53a4be972211066c0f1cd47fe12 iommu/amd: Set exclusion range correctly These can be picked from my branches here: Bionic: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/bionic 1823037-amd_iommu-cherrypick b7abdb585d0ae4193add1f7038476cd8d6dd7f41 iommu/amd: Reserve exclusion range in iova-domain ee4a87e6b7fe7e039c1f02c50c53da63e4270732 iommu/amd: Set exclusion range correctly Cosmic: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/cosmic 1823037-amd_iommu-cherrypick 0acc8c0e862b46b12c233abd76593420f4a20e0c iommu/amd: Reserve exclusion range in iova-domain fbead5d71bfc2a49ffca8d181e2708fd616e9a7f iommu/amd: Set exclusion range correctly Disco: https://code.launchpad.net/~bladernr/ubuntu/+source/linux/+git/disco 1823037-amd_iommu-cherrypick 6ddc207ca0d442b413ea7f059937ba90e5139753 iommu/amd: Set exclusion range correctly Note Disco only required f1cd47fe12 as the first patch was already picked in LP: #1830934 Not necessary for Eoan as these are already upstream in 5.2-rc1 [Regression Risk] Low,this adds memory protection to the driver and has already been applied upstream and tested by Dell for 24 hours with no failures noted. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1823037/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp