[PATCH] PCI: Disable bus reset for ASM1164 SATA controller

Alex Williamson posted 1 patch 1 month ago
drivers/pci/quirks.c | 10 ++++++++++
1 file changed, 10 insertions(+)
[PATCH] PCI: Disable bus reset for ASM1164 SATA controller
Posted by Alex Williamson 1 month ago
User forums report issues when assigning ASM1164 SATA controllers to
VMs, especially in configurations with multiple controllers.  Logs
show the device fails to retrain after bus reset.  Reports suggest
this is an issue across multiple platforms.  The device indicates
support for PM reset, therefore the device still has a viable function
level reset mechanism.  The reporting user confirms the device is well
behaved in this use case with bus reset disabled.

Reported-by: Patrick Bianchi <patrick.w.bianchi@gmail.com>
Link: https://forum.proxmox.com/threads/problems-with-pcie-passthrough-with-two-identical-devices.149003/
Signed-off-by: Alex Williamson <alex.williamson@nvidia.com>
---
 drivers/pci/quirks.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index b9c252aa6fe0..3a8d5622ee2b 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3791,6 +3791,16 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CAVIUM, 0xa100, quirk_no_bus_reset);
  */
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, 0xb005, quirk_no_bus_reset);
 
+/*
+ * Reports from users making use of PCI device assignment with ASM1164
+ * controllers indicate an issue with bus reset where the device fails to
+ * retrain.  The issue appears more common in configurations with multiple
+ * controllers.  The device does indicate PM reset support (NoSoftRst-),
+ * therefore this still leaves a viable reset method.
+ * https://forum.proxmox.com/threads/problems-with-pcie-passthrough-with-two-identical-devices.149003/
+ */
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ASMEDIA, 0x1164, quirk_no_bus_reset);
+
 static void quirk_no_pm_reset(struct pci_dev *dev)
 {
 	/*
-- 
2.51.0
Re: [PATCH] PCI: Disable bus reset for ASM1164 SATA controller
Posted by Bjorn Helgaas 4 weeks, 1 day ago
On Thu, Jan 08, 2026 at 05:02:08PM -0700, Alex Williamson wrote:
> User forums report issues when assigning ASM1164 SATA controllers to
> VMs, especially in configurations with multiple controllers.  Logs
> show the device fails to retrain after bus reset.  Reports suggest
> this is an issue across multiple platforms.  The device indicates
> support for PM reset, therefore the device still has a viable function
> level reset mechanism.  The reporting user confirms the device is well
> behaved in this use case with bus reset disabled.
> 
> Reported-by: Patrick Bianchi <patrick.w.bianchi@gmail.com>
> Link: https://forum.proxmox.com/threads/problems-with-pcie-passthrough-with-two-identical-devices.149003/
> Signed-off-by: Alex Williamson <alex.williamson@nvidia.com>

Applied to pci/virtualization for v6.20, thanks!

> ---
>  drivers/pci/quirks.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index b9c252aa6fe0..3a8d5622ee2b 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3791,6 +3791,16 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CAVIUM, 0xa100, quirk_no_bus_reset);
>   */
>  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, 0xb005, quirk_no_bus_reset);
>  
> +/*
> + * Reports from users making use of PCI device assignment with ASM1164
> + * controllers indicate an issue with bus reset where the device fails to
> + * retrain.  The issue appears more common in configurations with multiple
> + * controllers.  The device does indicate PM reset support (NoSoftRst-),
> + * therefore this still leaves a viable reset method.
> + * https://forum.proxmox.com/threads/problems-with-pcie-passthrough-with-two-identical-devices.149003/
> + */
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ASMEDIA, 0x1164, quirk_no_bus_reset);
> +
>  static void quirk_no_pm_reset(struct pci_dev *dev)
>  {
>  	/*
> -- 
> 2.51.0
>