TL;DR
Linux 7.3 adds a kernel quirk to fix NVMe passthrough issues for Samsung 990 PRO and 990 EVO Plus drives.
Linux 7.3 includes a patch to fix NVMe passthrough failures for Samsung 990 PRO and 990 EVO Plus SSDs. Users passing these drives to virtual machines via the vfio-pci driver reported that the drives stopped working after the kernel 7.2 update.
The issue stems from the drives claiming Immediate Readiness via a PCIe flag. This flag tells the operating system that the device is ready to handle requests immediately after a Function Level Reset (FLR). However, Alexander Gruhlke notes that the 990 PRO can return all-ones for up to 7 ms after an FLR. When Linux 7.2 removed previous retries for restoring device BARs, the configuration for these drives was lost because the kernel believed the drives were ready too early.
The fix in Linux 7.3 clears the Immediate Readiness flag for these specific PCI IDs. This forces the kernel to wait after a reset like it does for other hardware. While some 990 PRO firmware versions can be updated to handle resets better, the kernel cannot detect the firmware version during this process. Consequently, the quirk applies to all 990 PRO models. Bjorn Helgaas included the 990 EVO Plus in the patch after it showed the same behavior.
This issue only affects users passing the SSD controller directly to a virtual machine. Standard desktop users are not affected and their data is not at risk.




