Commit f640ee98 authored by Marcel Holtmann's avatar Marcel Holtmann Committed by Johan Hedberg

Bluetooth: Fix basic debugfs entries for unconfigured controllers

When the controller is unconfigured (for example it does not have a
valid Bluetooth address), then the basic debugfs entries for dut_mode
and vendor_diag are not creates. Ensure they are created in __hci_init
and also __hci_unconf_init functions. One of them is called during setup
stage of a new controller.
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
Signed-off-by: default avatarJohan Hedberg <johan.hedberg@intel.com>
parent 4d6a6aed
...@@ -184,6 +184,16 @@ static const struct file_operations vendor_diag_fops = { ...@@ -184,6 +184,16 @@ static const struct file_operations vendor_diag_fops = {
.llseek = default_llseek, .llseek = default_llseek,
}; };
static void hci_debugfs_create_basic(struct hci_dev *hdev)
{
debugfs_create_file("dut_mode", 0644, hdev->debugfs, hdev,
&dut_mode_fops);
if (hdev->set_diag)
debugfs_create_file("vendor_diag", 0644, hdev->debugfs, hdev,
&vendor_diag_fops);
}
/* ---- HCI requests ---- */ /* ---- HCI requests ---- */
static void hci_req_sync_complete(struct hci_dev *hdev, u8 result, u16 opcode, static void hci_req_sync_complete(struct hci_dev *hdev, u8 result, u16 opcode,
...@@ -900,20 +910,8 @@ static int __hci_init(struct hci_dev *hdev) ...@@ -900,20 +910,8 @@ static int __hci_init(struct hci_dev *hdev)
if (err < 0) if (err < 0)
return err; return err;
if (hci_dev_test_flag(hdev, HCI_SETUP)) { if (hci_dev_test_flag(hdev, HCI_SETUP))
/* The Device Under Test (DUT) mode is special and available hci_debugfs_create_basic(hdev);
* for all controller types. So just create it early on.
*/
debugfs_create_file("dut_mode", 0644, hdev->debugfs, hdev,
&dut_mode_fops);
/* When the driver supports the set_diag callback, then
* expose an entry to modify the vendor diagnostic setting.
*/
if (hdev->set_diag)
debugfs_create_file("vendor_diag", 0644, hdev->debugfs,
hdev, &vendor_diag_fops);
}
err = __hci_req_sync(hdev, hci_init2_req, 0, HCI_INIT_TIMEOUT); err = __hci_req_sync(hdev, hci_init2_req, 0, HCI_INIT_TIMEOUT);
if (err < 0) if (err < 0)
...@@ -990,6 +988,9 @@ static int __hci_unconf_init(struct hci_dev *hdev) ...@@ -990,6 +988,9 @@ static int __hci_unconf_init(struct hci_dev *hdev)
if (err < 0) if (err < 0)
return err; return err;
if (hci_dev_test_flag(hdev, HCI_SETUP))
hci_debugfs_create_basic(hdev);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment