Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 027c8929 authored by Somnath Kotur's avatar Somnath Kotur Committed by Doug Ledford
Browse files

bnxt_re: Free up devices in module_exit path



Clean up all devices added to the bnxt_re_dev_list in the
module_exit entry point.

Signed-off-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 55311d05
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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);