Bluetooth: Fix debugfs entry leak in hci_register_dev()
authorWei Yongjun <weiyongjun1@huawei.com>
Wed, 13 Oct 2021 08:55:46 +0000 (16:55 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:04:22 +0000 (11:04 +0100)
[ Upstream commit 5a4bb6a8e981d3d0d492aa38412ee80b21033177 ]

Fault injection test report debugfs entry leak as follows:

debugfs: Directory 'hci0' with parent 'bluetooth' already present!

When register_pm_notifier() failed in hci_register_dev(), the debugfs
create by debugfs_create_dir() do not removed in the error handing path.

Add the remove debugfs code to fix it.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bluetooth/hci_core.c

index 325db9c..53f1b08 100644 (file)
@@ -3999,6 +3999,7 @@ int hci_register_dev(struct hci_dev *hdev)
        return id;
 
 err_wqueue:
+       debugfs_remove_recursive(hdev->debugfs);
        destroy_workqueue(hdev->workqueue);
        destroy_workqueue(hdev->req_workqueue);
 err: