Re: [PATCH v5 02/18] PCI/CXL: Probe the underlying bus reset in cxl_reset_bus_function()
Jason Gunthorpe <[email protected]>
| Newsgroups | org.kernel.vger.linux-acpi,dev.linux.lists.iommu,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <178786269177.3808739.5968833634148757858.b4-review@b4> |
> [ ... 27 lines skipped ... ]
> @@ -4979,8 +4979,16 @@ static int cxl_reset_bus_function(struct pci_dev *dev, bool probe)
> if (!dvsec)
> return -ENOTTY;
>
> - if (probe)
> - return 0;
> + /*
> + * Do not probe via pci_reset_bus_function(), which would reject a
> + * masked SBR that the do-reset path below unmasks before resetting.
> + */
> + if (probe) {
> + rc = pci_dev_reset_slot_function(dev, PCI_RESET_PROBE);
> + if (rc != -ENOTTY)
> + return rc;
> + return pci_parent_bus_reset(dev, PCI_RESET_PROBE);
> + }
Why not put this a little lower after the:
>
> rc = pci_read_config_word(bridge, dvsec + PCI_DVSEC_CXL_PORT_CTL, ®);
> if (rc)
?
--
Jason