aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-18 15:04:50 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-19 09:24:09 -0400
commit0d5551f5e40c30ed8a6c1fc6bc6ea6aa96438324 (patch)
treed006b5a676405dd2533dd7f4230ea85be87c9dc4 /net
parentceeb3bc0f1623ecb86697445fd54017e4dab1bab (diff)
Bluetooth: Store local version information only during setup phase
The local version information from the controller can not change since they are static. So store them only once during setup phase and not bother overwriting them every time this command gets executed. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/hci_event.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index c171c0798499..848045223e98 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -468,14 +468,13 @@ static void hci_cc_read_local_version(struct hci_dev *hdev, struct sk_buff *skb)
468 if (rp->status) 468 if (rp->status)
469 return; 469 return;
470 470
471 hdev->hci_ver = rp->hci_ver; 471 if (test_bit(HCI_SETUP, &hdev->dev_flags)) {
472 hdev->hci_rev = __le16_to_cpu(rp->hci_rev); 472 hdev->hci_ver = rp->hci_ver;
473 hdev->lmp_ver = rp->lmp_ver; 473 hdev->hci_rev = __le16_to_cpu(rp->hci_rev);
474 hdev->manufacturer = __le16_to_cpu(rp->manufacturer); 474 hdev->lmp_ver = rp->lmp_ver;
475 hdev->lmp_subver = __le16_to_cpu(rp->lmp_subver); 475 hdev->manufacturer = __le16_to_cpu(rp->manufacturer);
476 476 hdev->lmp_subver = __le16_to_cpu(rp->lmp_subver);
477 BT_DBG("%s manufacturer 0x%4.4x hci ver %d:%d", hdev->name, 477 }
478 hdev->manufacturer, hdev->hci_ver, hdev->hci_rev);
479} 478}
480 479
481static void hci_cc_read_local_commands(struct hci_dev *hdev, 480static void hci_cc_read_local_commands(struct hci_dev *hdev,