aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ocrdma/ocrdma_main.c
diff options
context:
space:
mode:
authorDevesh Sharma <devesh.sharma@emulex.com>2014-06-10 10:02:16 -0400
committerRoland Dreier <roland@purestorage.com>2014-08-01 18:07:36 -0400
commitefe4593720829066667397f540d50baffc706435 (patch)
tree3d4a9b5b2ab318d80480e39682ae8d655939bf5b /drivers/infiniband/hw/ocrdma/ocrdma_main.c
parentd114f99a29b7f9c7a5e001ca1ef9c93db70d8668 (diff)
RDMA/ocrdma: Handle shutdown event from be2net driver
be2net driver sends a shutdown event to ocrdma during shutdown/reboot. As part of event processing, ocrdma calls close() and remove() to free all the resources associated with ocrdma. This also frees irqs used by ocrdma. Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com> Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/ocrdma/ocrdma_main.c')
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_main.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
index 227a5422db0b..3cb20c6b91ce 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
@@ -519,6 +519,12 @@ static int ocrdma_close(struct ocrdma_dev *dev)
519 return 0; 519 return 0;
520} 520}
521 521
522static void ocrdma_shutdown(struct ocrdma_dev *dev)
523{
524 ocrdma_close(dev);
525 ocrdma_remove(dev);
526}
527
522/* event handling via NIC driver ensures that all the NIC specific 528/* event handling via NIC driver ensures that all the NIC specific
523 * initialization done before RoCE driver notifies 529 * initialization done before RoCE driver notifies
524 * event to stack. 530 * event to stack.
@@ -532,6 +538,9 @@ static void ocrdma_event_handler(struct ocrdma_dev *dev, u32 event)
532 case BE_DEV_DOWN: 538 case BE_DEV_DOWN:
533 ocrdma_close(dev); 539 ocrdma_close(dev);
534 break; 540 break;
541 case BE_DEV_SHUTDOWN:
542 ocrdma_shutdown(dev);
543 break;
535 } 544 }
536} 545}
537 546