Bluetooth: Fix discovery state machine
authorAndre Guedes <andre.guedes@openbossa.org>
Mon, 13 Feb 2012 18:41:01 +0000 (15:41 -0300)
committerJohan Hedberg <johan.hedberg@intel.com>
Wed, 15 Feb 2012 13:23:27 +0000 (15:23 +0200)
In case of Start Discovery command failure, we should set the discovery
state to DISCOVERY_STOPPED. Otherwise, we stuck at DISCOVERY_STARTING
state and subsequent Start Discovery commands will simply fail.

Signed-off-by: Andre Guedes <andre.guedes@openbossa.org>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/mgmt.c

index 8efbd8eaa1b33aa88dc2ba4e07dce0e73f007284..066d338be1ce68f1780c1bff71d260bb8a399e51 100644 (file)
@@ -3096,6 +3096,8 @@ int mgmt_start_discovery_failed(struct hci_dev *hdev, u8 status)
        struct pending_cmd *cmd;
        int err;
 
+       hci_discovery_set_state(hdev, DISCOVERY_STOPPED);
+
        cmd = mgmt_pending_find(MGMT_OP_START_DISCOVERY, hdev);
        if (!cmd)
                return -ENOENT;