Skip to content

Commit

Permalink
Bluetooth: mgmt: Clear EIR data when disabling SSP
Browse files Browse the repository at this point in the history
EIR shouldn't be enabled if SSP isn't enabled. This patch adds the
clearing of EIR data when disabling SSP and restores the data when SSP
is re-enabled.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Johan Hedberg committed Feb 20, 2012
1 parent 1e16357 commit cacaf52
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -3250,6 +3250,18 @@ int mgmt_auth_enable_complete(struct hci_dev *hdev, u8 status)
return err;
}

static int clear_eir(struct hci_dev *hdev)
{
struct hci_cp_write_eir cp;

if (!(hdev->features[6] & LMP_EXT_INQ))
return 0;

memset(&cp, 0, sizeof(cp));

return hci_send_cmd(hdev, HCI_OP_WRITE_EIR, sizeof(cp), &cp);
}

int mgmt_ssp_enable_complete(struct hci_dev *hdev, u8 status)
{
struct cmd_lookup match = { NULL, hdev };
Expand All @@ -3268,9 +3280,15 @@ int mgmt_ssp_enable_complete(struct hci_dev *hdev, u8 status)
ev = cpu_to_le32(get_current_settings(hdev));
err = mgmt_event(MGMT_EV_NEW_SETTINGS, hdev, &ev, sizeof(ev), match.sk);

if (match.sk)
if (match.sk) {
sock_put(match.sk);

if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags))
update_eir(hdev);
else
clear_eir(hdev);
}

return err;
}

Expand Down

0 comments on commit cacaf52

Please sign in to comment.