cxl: Adapter failure handling
Check the AFU state whenever an API is called. The hypervisor may issue a reset of the adapter when it detects a fault. When it happens, it launches an error recovery which will either move the AFU to a permanent failure state, or in the disabled state. If the AFU is found to be disabled, detach all existing contexts from it before issuing a AFU reset to re-enable it. Before detaching contexts, notify any kernel driver through the EEH callbacks of the AFU pci device. Co-authored-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Reviewed-by: Manoj Kumar <manoj@linux.vnet.ibm.com> Acked-by: Ian Munsie <imunsie@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
d601ea918b
commit
0d400f77c1
@@ -48,7 +48,7 @@ int cxl_afu_slbia(struct cxl_afu *afu)
|
||||
/* If the adapter has gone down, we can assume that we
|
||||
* will PERST it and that will invalidate everything.
|
||||
*/
|
||||
if (!cxl_ops->link_ok(afu->adapter))
|
||||
if (!cxl_ops->link_ok(afu->adapter, afu))
|
||||
return -EIO;
|
||||
cpu_relax();
|
||||
}
|
||||
|
Reference in New Issue
Block a user