ntb: stop link work when we do not have memory
authorDave Jiang <dave.jiang@intel.com>
Mon, 29 Feb 2016 16:35:26 +0000 (09:35 -0700)
committerJon Mason <jdmason@kudzu.us>
Fri, 18 Mar 2016 00:38:40 +0000 (20:38 -0400)
Instead of keep trying to go through the init routine when we aren't able
to allocate memory, we should just stop and go down.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/ntb_transport.c

index 4321488d21795233dff7668db612280222c1c84b..2ef9d91308646010ec5d017dc93d8aa43b6ff584 100644 (file)
@@ -829,7 +829,7 @@ static void ntb_transport_link_work(struct work_struct *work)
        struct pci_dev *pdev = ndev->pdev;
        resource_size_t size;
        u32 val;
-       int rc, i, spad;
+       int rc = 0, i, spad;
 
        /* send the local info, in the opposite order of the way we read it */
        for (i = 0; i < nt->mw_count; i++) {
@@ -899,6 +899,13 @@ static void ntb_transport_link_work(struct work_struct *work)
 out1:
        for (i = 0; i < nt->mw_count; i++)
                ntb_free_mw(nt, i);
+
+       /* if there's an actual failure, we should just bail */
+       if (rc < 0) {
+               ntb_link_disable(ndev);
+               return;
+       }
+
 out:
        if (ntb_link_is_up(ndev, NULL, NULL) == 1)
                schedule_delayed_work(&nt->link_work,