diff options
author | Devesh Sharma <devesh.sharma@emulex.com> | 2014-06-10 10:02:16 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-08-01 18:07:36 -0400 |
commit | efe4593720829066667397f540d50baffc706435 (patch) | |
tree | 3d4a9b5b2ab318d80480e39682ae8d655939bf5b /drivers/infiniband/hw/ocrdma/ocrdma_main.c | |
parent | d114f99a29b7f9c7a5e001ca1ef9c93db70d8668 (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.c | 9 |
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 | ||
522 | static 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 | ||