Thread (5 messages) flat view 5 messages, 5 authors, 2018-08-01

Re: [PATCH v3 1/1] powerpc/pseries: fix EEH recovery of some IOV devices

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-07-31 06:43:23
Also in: linux-pci

Bjorn Helgaas [off-list ref] writes:
On Mon, Jul 30, 2018 at 11:59:14AM +1000, Sam Bobroff wrote:
quoted
EEH recovery currently fails on pSeries for some IOV capable PCI
devices, if CONFIG_PCI_IOV is on and the hypervisor doesn't provide
certain device tree properties for the device. (Found on an IOV
capable device using the ipr driver.)

Recovery fails in pci_enable_resources() at the check on r->parent,
because r->flags is set and r->parent is not.  This state is due to
sriov_init() setting the start, end and flags members of the IOV BARs
but the parent not being set later in
pseries_pci_fixup_iov_resources(), because the
"ibm,open-sriov-vf-bar-info" property is missing.

Correct this by zeroing the resource flags for IOV BARs when they
can't be configured (this is the same method used by sriov_init() and
__pci_read_base()).

VFs cleared this way can't be enabled later, because that requires
another device tree property, "ibm,number-of-configurable-vfs" as well
as support for the RTAS function "ibm_map_pes". These are all part of
hypervisor support for IOV and it seems unlikely that a hypervisor
would ever partially, but not fully, support it. (None are currently
provided by QEMU/KVM.)

Signed-off-by: Sam Bobroff <redacted>
Michael, I assume you'll take this, since it only touches powerpc.
Let me know if you need anything from me.
Yeah I'll take it, thanks.

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help