On Thu, Jun 28, 2018 at 03:31:05PM -0400, Sinan Kaya wrote:
> +static pci_ers_result_t pciehp_reset_link(struct pci_dev *pdev)
> +{
> +     struct pcie_device *pciedev;
> +     struct controller *ctrl;
> +     struct device *devhp;
> +     struct slot *slot;
> +     int rc;
> +
> +     devhp = pcie_port_find_device(pdev, PCIE_PORT_SERVICE_HP);
> +     pciedev = to_pcie_device(devhp);
> +     ctrl = get_service_data(pciedev);
> +     slot = ctrl->slot;
> +
> +     rc = reset_slot(slot->hotplug_slot, 0);
> +
> +     return !rc ? PCI_ERS_RESULT_RECOVERED : PCI_ERS_RESULT_DISCONNECT;
> +}

This looks like a bit of a detour.  There's a "struct pci_slot *slot"
pointer in struct pci_dev.  Any reason not to simply call:

        rc = reset_slot(pdev->slot->hotplug_slot)

Lukas

Reply via email to