Skip to content

Commit

Permalink
bnxt_re: Free up devices in module_exit path
Browse files Browse the repository at this point in the history
Clean up all devices added to the bnxt_re_dev_list in the
module_exit entry point.

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
  • Loading branch information
Somnath Kotur authored and Doug Ledford committed Sep 22, 2017
1 parent 55311d0 commit 027c892
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions drivers/infiniband/hw/bnxt_re/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1375,6 +1375,22 @@ static int __init bnxt_re_mod_init(void)

static void __exit bnxt_re_mod_exit(void)
{
struct bnxt_re_dev *rdev;
LIST_HEAD(to_be_deleted);

mutex_lock(&bnxt_re_dev_lock);
/* Free all adapter allocated resources */
if (!list_empty(&bnxt_re_dev_list))
list_splice_init(&bnxt_re_dev_list, &to_be_deleted);
mutex_unlock(&bnxt_re_dev_lock);

list_for_each_entry(rdev, &to_be_deleted, list) {
dev_info(rdev_to_dev(rdev), "Unregistering Device");
bnxt_re_dev_stop(rdev);
bnxt_re_ib_unreg(rdev, true);
bnxt_re_remove_one(rdev);
bnxt_re_dev_unreg(rdev);
}
unregister_netdevice_notifier(&bnxt_re_netdev_notifier);
if (bnxt_re_wq)
destroy_workqueue(bnxt_re_wq);
Expand Down

0 comments on commit 027c892

Please sign in to comment.