diff options
author | Aditya Sarwade <asarwade@vmware.com> | 2017-02-22 20:22:58 -0500 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-03-24 20:49:53 -0400 |
commit | b172679b0d3b93a6197b2ff892794e7178e3c448 (patch) | |
tree | b8d4102871de05159812dac7cd001ea4cb7ec9ea | |
parent | e51c2fb0331cb3440d7dc83ee78019ee8c7bb366 (diff) |
RDMA/vmw_pvrdma: Activate device on ethernet link up
Restore device state when ethernet link changes to active.
Acked-by: George Zhang <georgezhang@vmware.com>
Acked-by: Jorgen Hansen <jhansen@vmware.com>
Acked-by: Bryan Tan <bryantan@vmware.com>
Signed-off-by: Aditya Sarwade <asarwade@vmware.com>
Signed-off-by: Adit Ranadive <aditr@vmware.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
-rw-r--r-- | drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h index e69d6f3cae32..09078ccfaec7 100644 --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h | |||
@@ -132,7 +132,7 @@ enum pvrdma_pci_resource { | |||
132 | 132 | ||
133 | enum pvrdma_device_ctl { | 133 | enum pvrdma_device_ctl { |
134 | PVRDMA_DEVICE_CTL_ACTIVATE, /* Activate device. */ | 134 | PVRDMA_DEVICE_CTL_ACTIVATE, /* Activate device. */ |
135 | PVRDMA_DEVICE_CTL_QUIESCE, /* Quiesce device. */ | 135 | PVRDMA_DEVICE_CTL_UNQUIESCE, /* Unquiesce device. */ |
136 | PVRDMA_DEVICE_CTL_RESET, /* Reset device. */ | 136 | PVRDMA_DEVICE_CTL_RESET, /* Reset device. */ |
137 | }; | 137 | }; |
138 | 138 | ||
diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c index e77476ca70ac..34ebc7615411 100644 --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #include "pvrdma.h" | 56 | #include "pvrdma.h" |
57 | 57 | ||
58 | #define DRV_NAME "vmw_pvrdma" | 58 | #define DRV_NAME "vmw_pvrdma" |
59 | #define DRV_VERSION "1.0.0.0-k" | 59 | #define DRV_VERSION "1.0.1.0-k" |
60 | 60 | ||
61 | static DEFINE_MUTEX(pvrdma_device_list_lock); | 61 | static DEFINE_MUTEX(pvrdma_device_list_lock); |
62 | static LIST_HEAD(pvrdma_device_list); | 62 | static LIST_HEAD(pvrdma_device_list); |
@@ -660,7 +660,16 @@ static void pvrdma_netdevice_event_handle(struct pvrdma_dev *dev, | |||
660 | pvrdma_dispatch_event(dev, 1, IB_EVENT_PORT_ERR); | 660 | pvrdma_dispatch_event(dev, 1, IB_EVENT_PORT_ERR); |
661 | break; | 661 | break; |
662 | case NETDEV_UP: | 662 | case NETDEV_UP: |
663 | pvrdma_dispatch_event(dev, 1, IB_EVENT_PORT_ACTIVE); | 663 | pvrdma_write_reg(dev, PVRDMA_REG_CTL, |
664 | PVRDMA_DEVICE_CTL_UNQUIESCE); | ||
665 | |||
666 | mb(); | ||
667 | |||
668 | if (pvrdma_read_reg(dev, PVRDMA_REG_ERR)) | ||
669 | dev_err(&dev->pdev->dev, | ||
670 | "failed to activate device during link up\n"); | ||
671 | else | ||
672 | pvrdma_dispatch_event(dev, 1, IB_EVENT_PORT_ACTIVE); | ||
664 | break; | 673 | break; |
665 | default: | 674 | default: |
666 | dev_dbg(&dev->pdev->dev, "ignore netdevice event %ld on %s\n", | 675 | dev_dbg(&dev->pdev->dev, "ignore netdevice event %ld on %s\n", |