ntb: transport shouldn't disable link due to bogus values in SPADs
authorDave Jiang <dave.jiang@intel.com>
Fri, 28 Jul 2017 22:10:48 +0000 (15:10 -0700)
committerJon Mason <jdmason@kudzu.us>
Tue, 1 Aug 2017 17:31:44 +0000 (13:31 -0400)
It seems that under certain scenarios the SPAD can have bogus values caused
by an agent (i.e. BIOS or other software) that is not the kernel driver, and
that causes memory window setup failure. This should not cause the link to
be disabled because if we do that, the driver will never recover again. We
have verified in testing that this issue happens and prevents proper link
recovery.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Acked-by: Allen Hubbe <Allen.Hubbe@dell.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Fixes: 84f766855f61 ("ntb: stop link work when we do not have memory")

drivers/ntb/ntb_transport.c

index b29558ddfe9523bf962147da23aef0bcabdfcaa1..f58d8e3053236ad4608e5552052214b0694a3a95 100644 (file)
@@ -924,10 +924,8 @@ out1:
                ntb_free_mw(nt, i);
 
        /* if there's an actual failure, we should just bail */
-       if (rc < 0) {
-               ntb_link_disable(ndev);
+       if (rc < 0)
                return;
-       }
 
 out:
        if (ntb_link_is_up(ndev, NULL, NULL) == 1)