mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
Fix a boundary condition where in some cases an eeh event with state ==
pci_channel_io_perm_failure wont be passed on to a driver attached to
the virtual PCI device associated with a slice. This will happen in case
the slice just before (n-1) doesn't have any vPHB bus associated with
it, that results in an early return from cxl_pci_error_detected()
callback.
With state == pci_channel_io_perm_failure, the adapter will be removed
irrespective of the return value of cxl_vphb_error_detected(). So we now
always return PCI_ERS_RESULT_DISCONNECTED for this case i.e even if
the AFU isn't using a vPHB (currently returns PCI_ERS_RESULT_NONE).
Fixes: e4f5fc001a6("cxl: Do not create vPHB if there are no AFU configuration records")
Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com>
Reviewed-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
|
||
|---|---|---|
| .. | ||
| api.c | ||
| base.c | ||
| context.c | ||
| cxl.h | ||
| debugfs.c | ||
| fault.c | ||
| file.c | ||
| flash.c | ||
| guest.c | ||
| hcalls.c | ||
| hcalls.h | ||
| irq.c | ||
| Kconfig | ||
| main.c | ||
| Makefile | ||
| native.c | ||
| of.c | ||
| pci.c | ||
| phb.c | ||
| sysfs.c | ||
| trace.c | ||
| trace.h | ||
| vphb.c | ||