<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/pci/pcie/dpc.c, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-02-21T23:07:20Z</updated>
<entry>
<title>PCI/DPC: Fix print AER status in DPC event handling</title>
<updated>2019-02-21T23:07:20Z</updated>
<author>
<name>Dongdong Liu</name>
</author>
<published>2019-02-11T07:02:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f08a5d896ce43380314c34ed3f264c8e6075b80'/>
<id>urn:sha1:9f08a5d896ce43380314c34ed3f264c8e6075b80</id>
<content type='text'>
Previously dpc_handler() called aer_get_device_error_info() without
initializing info-&gt;severity, so aer_get_device_error_info() relied on
uninitialized data.

Add dpc_get_aer_uncorrect_severity() to read the port's AER status, mask,
and severity registers and set info-&gt;severity.

Also, clear the port's AER fatal error status bits.

Fixes: 8aefa9b0d910 ("PCI/DPC: Print AER status in DPC event handling")
Signed-off-by: Dongdong Liu &lt;liudongdong3@huawei.com&gt;
[bhelgaas: changelog]
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Keith Busch &lt;keith.busch@intel.com&gt;
Cc: stable@vger.kernel.org	# v4.19+
</content>
</entry>
<entry>
<title>PCI: Make link active reporting detection generic</title>
<updated>2018-10-02T21:04:40Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0157160b359b1d263ee9d4e0a435a7ad85bbcea'/>
<id>urn:sha1:f0157160b359b1d263ee9d4e0a435a7ad85bbcea</id>
<content type='text'>
The spec has timing requirements when waiting for a link to become active
after a conventional reset.  Implement those hard delays when waiting for
an active link so pciehp and dpc drivers don't need to duplicate this.

For devices that don't support data link layer active reporting, wait the
fixed time recommended by the PCIe spec.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
[bhelgaas: changelog]
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/ERR: Handle fatal error recovery</title>
<updated>2018-09-26T19:23:14Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bdb5ac85777de67c909c9ad4327f03f7648b543f'/>
<id>urn:sha1:bdb5ac85777de67c909c9ad4327f03f7648b543f</id>
<content type='text'>
We don't need to be paranoid about the topology changing while handling an
error.  If the device has changed in a hotplug capable slot, we can rely on
the presence detection handling to react to a changing topology.

Restore the fatal error handling behavior that existed before merging DPC
with AER with 7e9084b36740 ("PCI/AER: Handle ERR_FATAL with removal and
re-enumeration of devices").

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/DPC: Save and restore config state</title>
<updated>2018-09-20T21:06:27Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4f802170a861265680cad03f47b19c4c3a137052'/>
<id>urn:sha1:4f802170a861265680cad03f47b19c4c3a137052</id>
<content type='text'>
This patch provides DPC save and restore capabilities.  This is necessary
for the driver to observe DPC events in the event the configuration space
needs to be restored after a reset.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI: portdrv: Initialize service drivers directly</title>
<updated>2018-09-20T17:05:54Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c29de84149aba5f74e87b6491c13ac7203c12f55'/>
<id>urn:sha1:c29de84149aba5f74e87b6491c13ac7203c12f55</id>
<content type='text'>
The PCI port driver saves the PCI state after initializing the device with
the applicable service devices.  This was, however, before the service
drivers were even registered because PCI probe happens before the
device_initcall initialized those service drivers.  The config space state
that the services set up were not being saved.  The end result would cause
PCI devices to not react to events that the drivers think they did if the
PCI state ever needed to be restored.

Fix this by changing the service drivers from using the init calls to
having the portdrv driver calling the services directly.  This will get the
state saved as desired, while making the relationship between the port
driver and the services under it more explicit in the code.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;</content>
</entry>
<entry>
<title>PCI/DPC: Remove indirection waiting for inactive link</title>
<updated>2018-07-19T21:21:01Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-07-16T22:05:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e77b8216a2f9bec430ec46c34763567329ddafd9'/>
<id>urn:sha1:e77b8216a2f9bec430ec46c34763567329ddafd9</id>
<content type='text'>
Simplify waiting for the contained link to become inactive, removing the
indirection to a unnecessary DPC-specific handler.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;
Reviewed-by: Oza Pawandeep &lt;poza@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>PCI/DPC: Use threaded IRQ for bottom half handling</title>
<updated>2018-07-19T21:21:01Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-07-16T22:05:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=738c4e411dadbe341f80f30d56518b68ae1e605f'/>
<id>urn:sha1:738c4e411dadbe341f80f30d56518b68ae1e605f</id>
<content type='text'>
Remove the work struct that was being used to handle a DPC event and use a
threaded IRQ instead.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;
Reviewed-by: Oza Pawandeep &lt;poza@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>PCI/DPC: Print AER status in DPC event handling</title>
<updated>2018-07-19T21:21:01Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-07-16T22:05:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8aefa9b0d9105d70eb8799d2b4feffd784e22bae'/>
<id>urn:sha1:8aefa9b0d9105d70eb8799d2b4feffd784e22bae</id>
<content type='text'>
A DPC enabled device suppresses ERR_(NON)FATAL messages, preventing the AER
handler from reporting error details.  If the DPC trigger reason says the
downstream port detected the error, collect the AER uncorrectable status
for logging, then clear the status.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;
Reviewed-by: Oza Pawandeep &lt;poza@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>PCI/DPC: Remove rp_pio_status from dpc struct</title>
<updated>2018-07-19T21:21:01Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-07-16T22:05:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f1d16b17568e46f61cc59e2d0725b0fca856a34f'/>
<id>urn:sha1:f1d16b17568e46f61cc59e2d0725b0fca856a34f</id>
<content type='text'>
We don't need to save the rp pio status across multiple contexts as all
DPC event handling occurs in a single work queue context.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;
Reviewed-by: Oza Pawandeep &lt;poza@codeaurora.org&gt;
</content>
</entry>
<entry>
<title>PCI/DPC: Defer event handling to work queue</title>
<updated>2018-07-19T21:21:01Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-07-16T22:05:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0c27e28f77179548aa3d25a8f7a3dda22fd3e080'/>
<id>urn:sha1:0c27e28f77179548aa3d25a8f7a3dda22fd3e080</id>
<content type='text'>
Move all event handling to the existing work queue, which will
make it simpler to pass event information to the handler.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Sinan Kaya &lt;okaya@kernel.org&gt;
Reviewed-by: Oza Pawandeep &lt;poza@codeaurora.org&gt;
</content>
</entry>
</feed>
