** 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
  
  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 range protection to the driver and has already been 
acked upstream.
+ 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.

** 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
+ 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.

-- 
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]
  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.

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

Reply via email to