Re: [PATCH v3 1/1] PCI/ERR: Fix reset logic in pcie_do_recovery() call

Kuppuswamy, Sathyanarayanan
2020-09-24T02:04:41Z

On 9/23/20 6:15 PM, Sinan Kaya wrote:
> On 9/22/2020 7:44 PM, Kuppuswamy, Sathyanarayanan wrote:
>>> here does the restore happen here?  I.e., what function does this?
>>
>> DLLSC link down event will remove affected devices/drivers. And link up
>> event
>> will re-create all devices.
>>
>> on DLLSC link down event
>> ->pciehp_ist()
>>   ->pciehp_handle_presence_or_link_change()
>>     ->pciehp_disable_slot()
>>       ->__pciehp_disable_slot()
>>         ->remove_board()
>>           ->pciehp_unconfigure_device()
>>
>> on DLLSC link up event
>> ->pciehp_ist()
>>   ->pciehp_handle_presence_or_link_change()
>>     ->pciehp_enable_slot()
>>       ->__pciehp_enable_slot()
>>         ->board_added()
>>           ->pciehp_configure_device()
>
> AFAIK, DLLSC is a requirement not optional. Why is this not supported by
> non-hotplug ports?
Its required for hotplug capable ports. Please check PCIe spec v5.0 sec 6.7.3.3.

The Data Link Layer State Changed event provides an indication that the state of
the Data Link Layer Link Active bit in the Link Status Register has changed.
Support for Data Link Layer State Changed events and software notification of these
events are required for hot-plug capable Downstream Ports.

>

--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer