[PATCH 0/2] Fix for storage corruption w/ AMD IOMMU on 64-bit DMA

Mario Limonciello posted 2 patches 2 weeks, 3 days ago
arch/x86/pci/fixup.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
drivers/ata/ahci.c   | 18 ---------
2 files changed, 93 insertions(+), 18 deletions(-)
[PATCH 0/2] Fix for storage corruption w/ AMD IOMMU on 64-bit DMA
Posted by Mario Limonciello 2 weeks, 3 days ago
An issue has been reported by a number of people that corruption
was occurring on storage for desktop systems.  It's notably reported
on SATA, but the same issue also appears on NVME.

At a glance it looks like an IOMMU issue as turning off the IOMMU helps
the issue, but it's actually a problem that occurs specifically with any
IOVA addressed >58 bits.

This is because the BIOS on these systems is enabling a feature of the
root port called 'enhanced atomics' which repurposes those upper 5 bits
of address space.  That feature should only be enabled by the BIOS when
the partner device supports it, but it's instead needlessly enabled on a
number of root ports.

As some of these systems probably won't receive BIOS updates and there is
active reports of data corruption root caused to this add a quirk to
disable it on affected models, and also remove the quirk that was
introduced to work around this issue in drivers/ata.

Mario Limonciello (2):
  x86/PCI: Disable enhanced atomics on some AMD PCIe ports
  Revert "ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585"

 arch/x86/pci/fixup.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
 drivers/ata/ahci.c   | 18 ---------
 2 files changed, 93 insertions(+), 18 deletions(-)

-- 
2.43.0