Bluetooth: Fix notifying discovery state upon reset
authorJohan Hedberg <johan.hedberg@intel.com>
Wed, 28 Jan 2015 17:56:01 +0000 (19:56 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 28 Jan 2015 20:26:23 +0000 (21:26 +0100)
When HCI_Reset is issued the discovery state is assumed to be stopped.
The hci_cc_reset() handler was trying to set the state but it was doing
it without using the hci_discovery_set_state() function. Because of this
e.g. the mgmt Discovering event could go without being sent. This patch
fixes the code to use the hci_discovery_set_state() function instead of
just blindly setting the state value.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/hci_event.c

index 00c160634e7bdff4c572fc50e6586433030a854c..4175470ff48ec6d8f680506457aaa128e8021af2 100644 (file)
@@ -200,7 +200,8 @@ static void hci_cc_reset(struct hci_dev *hdev, struct sk_buff *skb)
        /* Reset all non-persistent flags */
        hdev->dev_flags &= ~HCI_PERSISTENT_MASK;
 
-       hdev->discovery.state = DISCOVERY_STOPPED;
+       hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
+
        hdev->inq_tx_power = HCI_TX_POWER_INVALID;
        hdev->adv_tx_power = HCI_TX_POWER_INVALID;