cxl: Don't remove AFUs/vPHBs in cxl_reset
authorDaniel Axtens <dja@axtens.net>
Fri, 14 Aug 2015 07:41:24 +0000 (17:41 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Sep 2015 17:26:26 +0000 (19:26 +0200)
commit 4e1efb403c1c016ae831bd9988a7d2e5e0af41a0 upstream.

If the driver doesn't participate in EEH, the AFUs will be removed
by cxl_remove, which will be invoked by EEH.

If the driver does particpate in EEH, the vPHB needs to stick around
so that the it can particpate.

In both cases, we shouldn't remove the AFU/vPHB.

Reviewed-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/cxl/pci.c

index 9eab76c48e59020ab7fcd3b1b6d08769c2c2076c..4f1b0bdb9cf84790a31002bad4968b5dd9b7a5c3 100644 (file)
@@ -781,9 +781,6 @@ int cxl_reset(struct cxl *adapter)
 
        dev_info(&dev->dev, "CXL reset\n");
 
-       for (i = 0; i < adapter->slices; i++)
-               cxl_remove_afu(adapter->afu[i]);
-
        /* pcie_warm_reset requests a fundamental pci reset which includes a
         * PERST assert/deassert.  PERST triggers a loading of the image
         * if "user" or "factory" is selected in sysfs */