Skip to content

Commit

Permalink
Bluetooth: Explicitly clear EIR data upon hci_dev setup
Browse files Browse the repository at this point in the history
Some controllers preserve their EIR data even after a reset so we need
to explicitly clear this during the device setup procedure.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
  • Loading branch information
Johan Hedberg committed Feb 23, 2012
1 parent c80da27 commit 54d04db
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -557,10 +557,19 @@ static void hci_setup(struct hci_dev *hdev)
if (hdev->hci_ver > BLUETOOTH_VER_1_1)
hci_send_cmd(hdev, HCI_OP_READ_LOCAL_COMMANDS, 0, NULL);

if (hdev->features[6] & LMP_SIMPLE_PAIR &&
test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
u8 mode = 0x01;
hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, sizeof(mode), &mode);
if (hdev->features[6] & LMP_SIMPLE_PAIR) {
if (test_bit(HCI_SSP_ENABLED, &hdev->dev_flags)) {
u8 mode = 0x01;
hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE,
sizeof(mode), &mode);
} else {
struct hci_cp_write_eir cp;

memset(hdev->eir, 0, sizeof(hdev->eir));
memset(&cp, 0, sizeof(cp));

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

if (hdev->features[3] & LMP_RSSI_INQ)
Expand Down

0 comments on commit 54d04db

Please sign in to comment.