|
@@ -1025,6 +1025,7 @@ static void set_discoverable_complete(struct hci_dev *hdev, u8 status)
|
|
|
{
|
|
|
struct pending_cmd *cmd;
|
|
|
struct mgmt_mode *cp;
|
|
|
+ struct hci_request req;
|
|
|
bool changed;
|
|
|
|
|
|
BT_DBG("status 0x%02x", status);
|
|
@@ -1054,6 +1055,14 @@ static void set_discoverable_complete(struct hci_dev *hdev, u8 status)
|
|
|
if (changed)
|
|
|
new_settings(hdev, cmd->sk);
|
|
|
|
|
|
+ /* When the discoverable mode gets changed, make sure
|
|
|
+ * that class of device has the limited discoverable
|
|
|
+ * bit correctly set.
|
|
|
+ */
|
|
|
+ hci_req_init(&req, hdev);
|
|
|
+ update_class(&req);
|
|
|
+ hci_req_run(&req, NULL);
|
|
|
+
|
|
|
remove_cmd:
|
|
|
mgmt_pending_remove(cmd);
|
|
|
|