|
@@ -931,10 +931,20 @@ static int __hci_init(struct hci_dev *hdev)
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
|
|
|
- /* Only create debugfs entries during the initial setup
|
|
|
- * phase and not every time the controller gets powered on.
|
|
|
+ /* This function is only called when the controller is actually in
|
|
|
+ * configured state. When the controller is marked as unconfigured,
|
|
|
+ * this initialization procedure is not run.
|
|
|
+ *
|
|
|
+ * It means that it is possible that a controller runs through its
|
|
|
+ * setup phase and then discovers missing settings. If that is the
|
|
|
+ * case, then this function will not be called. It then will only
|
|
|
+ * be called during the config phase.
|
|
|
+ *
|
|
|
+ * So only when in setup phase or config phase, create the debugfs
|
|
|
+ * entries and register the SMP channels.
|
|
|
*/
|
|
|
- if (!test_bit(HCI_SETUP, &hdev->dev_flags))
|
|
|
+ if (!test_bit(HCI_SETUP, &hdev->dev_flags) &&
|
|
|
+ !test_bit(HCI_CONFIG, &hdev->dev_flags))
|
|
|
return 0;
|
|
|
|
|
|
hci_debugfs_create_common(hdev);
|