]> git.baikalelectronics.ru Git - kernel.git/commit
Bluetooth: Fix rfkill functionality during the HCI setup stage
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 13 Sep 2013 05:58:18 +0000 (08:58 +0300)
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>
Wed, 18 Sep 2013 17:39:23 +0000 (12:39 -0500)
commit28ae662801eb089f7566a60c4f7d8a57dfe7932e
tree676531272b9aca18360c87395d062a12dddabf8f
parent34db372f83c97fd99819c2de8e338e6b6a9a4aff
Bluetooth: Fix rfkill functionality during the HCI setup stage

We need to let the setup stage complete cleanly even when the HCI device
is rfkilled. Otherwise the HCI device will stay in an undefined state
and never get notified to user space through mgmt (even when it gets
unblocked through rfkill).

This patch makes sure that hci_dev_open() can be called in the HCI_SETUP
stage, that blocking the device doesn't abort the setup stage, and that
the device gets proper powered down as soon as the setup stage completes
in case it was blocked meanwhile.

The bug that this patch fixed can be very easily reproduced using e.g.
the rfkill command line too. By running "rfkill block all" before
inserting a Bluetooth dongle the resulting HCI device goes into a state
where it is never announced over mgmt, not even when "rfkill unblock all"
is run.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Cc: stable@vger.kernel.org
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
net/bluetooth/hci_core.c