<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/pci/pcie/err.c, branch linux-5.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-09-07T12:45:31Z</updated>
<entry>
<title>PCI: Get rid of dev-&gt;has_secondary_link flag</title>
<updated>2019-09-07T12:45:31Z</updated>
<author>
<name>Mika Westerberg</name>
</author>
<published>2019-08-22T08:55:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca78410403dd64ac0ee0e3cc8646b38335271bfd'/>
<id>urn:sha1:ca78410403dd64ac0ee0e3cc8646b38335271bfd</id>
<content type='text'>
In some systems, the Device/Port Type in the PCI Express Capabilities
register incorrectly identifies upstream ports as downstream ports.

d0751b98dfa3 ("PCI: Add dev-&gt;has_secondary_link to track downstream PCIe
links") addressed this by adding pci_dev.has_secondary_link, which is set
for downstream ports.  But this is confusing because pci_pcie_type()
sometimes gives the wrong answer, and it's not obvious that we should use
pci_dev.has_secondary_link instead.

Reduce the confusion by correcting the type of the port itself so that
pci_pcie_type() returns the actual type regardless of what the Device/Port
Type register claims it is.  Update the users to call pci_pcie_type() and
pcie_downstream_port() accordingly, and remove pci_dev.has_secondary_link
completely.

Link: https://lore.kernel.org/linux-pci/20190703133953.GK128603@google.com/
Suggested-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Link: https://lore.kernel.org/r/20190822085553.62697-2-mika.westerberg@linux.intel.com
Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Reviewed-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>PCI/ERR: Remove duplicated include from err.c</title>
<updated>2018-10-02T21:04:40Z</updated>
<author>
<name>YueHaibing</name>
</author>
<published>2018-09-26T11:00:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=479e01a402f006746324a04a72bd949ceca5e73d'/>
<id>urn:sha1:479e01a402f006746324a04a72bd949ceca5e73d</id>
<content type='text'>
Remove duplicated include.

Signed-off-by: YueHaibing &lt;yuehaibing@huawei.com&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;</content>
</entry>
<entry>
<title>PCI: Unify device inaccessible</title>
<updated>2018-10-02T21:04:40Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a6bd101b8f84f9b98768e9ab1e418c239e2e669f'/>
<id>urn:sha1:a6bd101b8f84f9b98768e9ab1e418c239e2e669f</id>
<content type='text'>
Bring surprise removals and permanent failures together so we no longer
need separate flags.  The implementation enforces that error handling will
not be able to override a surprise removal's permanent channel failure.

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/ERR: Always report current recovery status for udev</title>
<updated>2018-10-02T21:04:40Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b42d97e99d3a2babffd1b3456ded08b54981538'/>
<id>urn:sha1:7b42d97e99d3a2babffd1b3456ded08b54981538</id>
<content type='text'>
A device still participates in error recovery even if it doesn't have
the error callbacks.

Always provide the status for user event watchers.

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/ERR: Simplify broadcast callouts</title>
<updated>2018-10-02T21:04:40Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=542aeb9c8f930e4099432cb0bec17b92c0175e08'/>
<id>urn:sha1:542aeb9c8f930e4099432cb0bec17b92c0175e08</id>
<content type='text'>
There is no point in having a generic broadcast function if it needs to
have special cases for each callback it broadcasts.

Abstract the error broadcast to only the necessary information and removes
the now unnecessary helper to walk the bus.

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/ERR: Run error recovery callbacks for all affected devices</title>
<updated>2018-09-26T19:23:15Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bfcb79fca19d267712e425af1dd48812c40dec0c'/>
<id>urn:sha1:bfcb79fca19d267712e425af1dd48812c40dec0c</id>
<content type='text'>
If an Endpoint reported an error with ERR_FATAL, we previously ran driver
error recovery callbacks only for the Endpoint's driver.  But if we reset a
Link to recover from the error, all downstream components are affected,
including the Endpoint, any multi-function peers, and children of those
peers.

Initiate the Link reset from the deepest Downstream Port that is
reliable, and call the error recovery callbacks for all its children.

If a Downstream Port (including a Root Port) reports an error, we assume
the Port itself is reliable and we need to reset its downstream Link.  In
all other cases (Switch Upstream Ports, Endpoints, Bridges, etc), we assume
the Link leading to the component needs to be reset, so we initiate the
reset at the parent Downstream Port.

This allows two other clean-ups.  First, we currently only use a Link
reset, which can only be initiated using a Downstream Port, so we can
remove checks for Endpoints.  Second, the Downstream Port where we initiate
the Link reset is reliable (unlike components downstream from it), so the
special cases for error detect and resume are no longer necessary.

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/ERR: Use slot reset if available</title>
<updated>2018-09-21T17:18:10Z</updated>
<author>
<name>Keith Busch</name>
</author>
<published>2018-09-20T16:27:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c4eed62a214330908eec11b0dc170d34fa50b412'/>
<id>urn:sha1:c4eed62a214330908eec11b0dc170d34fa50b412</id>
<content type='text'>
The secondary bus reset may have link side effects that a hotplug capable
port may incorrectly react to.  Use the slot specific reset for hotplug
ports, fixing the undesirable link down-up handling during error
recovering.

Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
[bhelgaas: fold in
https://lore.kernel.org/linux-pci/20180926152326.14821-1-keith.busch@intel.com
for issue reported by Stephen Rothwell &lt;sfr@canb.auug.org.au&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: Simplify disconnected marking</title>
<updated>2018-09-17T21:34:35Z</updated>
<author>
<name>Lukas Wunner</name>
</author>
<published>2018-08-19T14:29:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a50ac6bfd6042b16e0de4ac3264c407e678c9b10'/>
<id>urn:sha1:a50ac6bfd6042b16e0de4ac3264c407e678c9b10</id>
<content type='text'>
Commit 89ee9f768003 ("PCI: Add device disconnected state") iterates over
the devices on a parent bus, marks each as disconnected, then marks
each device's children as disconnected using pci_walk_bus().

The same can be achieved more succinctly by calling pci_walk_bus() on
the parent bus.  Moreover, this does not need to wait until acquiring
pci_lock_rescan_remove(), so move it out of that critical section.

The critical section in err.c contains a pci_dev_get() / pci_dev_put()
pair which was apparently copy-pasted from pciehp_pci.c.  In the latter
it serves the purpose of holding the struct pci_dev in place until the
Command register is updated.  err.c doesn't do anything like that, hence
the pair is unnecessary.  Remove it.

Signed-off-by: Lukas Wunner &lt;lukas@wunner.de&gt;
Signed-off-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Cc: Keith Busch &lt;keith.busch@intel.com&gt;
Cc: Oza Pawandeep &lt;poza@codeaurora.org&gt;
Cc: Sinan Kaya &lt;okaya@kernel.org&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;</content>
</entry>
<entry>
<title>Merge branch 'pci/virtualization'</title>
<updated>2018-08-15T19:59:06Z</updated>
<author>
<name>Bjorn Helgaas</name>
</author>
<published>2018-08-15T19:59:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3a48dc6fc260c9cac302a9ffaeab95359431c485'/>
<id>urn:sha1:3a48dc6fc260c9cac302a9ffaeab95359431c485</id>
<content type='text'>
  - To avoid bus errors, enable PASID only if entire path supports End-End
    TLP prefixes (Sinan Kaya)

  - Unify slot and bus reset functions and remove hotplug knowledge from
    callers (Sinan Kaya)

  - Add Function-Level Reset quirks for Intel and Samsung NVMe devices to
    fix guest reboot issues (Alex Williamson)

  - Add function 1 DMA alias quirk for Marvell 88SS9183 PCIe SSD Controller
    (Bjorn Helgaas)

* pci/virtualization:
  PCI: Add function 1 DMA alias quirk for Marvell 88SS9183
  PCI: Delay after FLR of Intel DC P3700 NVMe
  PCI: Disable Samsung SM961/PM961 NVMe before FLR
  PCI: Export pcie_has_flr()
  PCI: Rename pci_try_reset_bus() to pci_reset_bus()
  PCI: Deprecate pci_reset_bus() and pci_reset_slot() functions
  PCI: Unify try slot and bus reset API
  PCI: Hide pci_reset_bridge_secondary_bus() from drivers
  IB/hfi1: Use pci_try_reset_bus() for initiating PCI Secondary Bus Reset
  PCI: Handle error return from pci_reset_bridge_secondary_bus()
  PCI/IOV: Tidy pci_sriov_set_totalvfs()
  PCI: Enable PASID only if entire path supports End-End TLP prefixes

# Conflicts:
#	drivers/pci/hotplug/pciehp_hpc.c
</content>
</entry>
</feed>
