Bluetooth: Fix pair device command reply if adapter is powered off
According to Bluetooth Management API specification Pair Device Command should generate command complete event on both success and failure. This fix replying with command status (which lacks address info) when adapter is powered off. Signed-off-by: Szymon Janc <szymon.janc@tieto.com> Acked-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
This commit is contained in:
Родитель
fe038884a8
Коммит
f950a30e24
|
@ -1939,11 +1939,15 @@ static int pair_device(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
|
|
||||||
BT_DBG("");
|
BT_DBG("");
|
||||||
|
|
||||||
|
memset(&rp, 0, sizeof(rp));
|
||||||
|
bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr);
|
||||||
|
rp.addr.type = cp->addr.type;
|
||||||
|
|
||||||
hci_dev_lock(hdev);
|
hci_dev_lock(hdev);
|
||||||
|
|
||||||
if (!hdev_is_powered(hdev)) {
|
if (!hdev_is_powered(hdev)) {
|
||||||
err = cmd_status(sk, hdev->id, MGMT_OP_PAIR_DEVICE,
|
err = cmd_complete(sk, hdev->id, MGMT_OP_PAIR_DEVICE,
|
||||||
MGMT_STATUS_NOT_POWERED);
|
MGMT_STATUS_NOT_POWERED, &rp, sizeof(rp));
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1960,10 +1964,6 @@ static int pair_device(struct sock *sk, struct hci_dev *hdev, void *data,
|
||||||
conn = hci_connect(hdev, LE_LINK, &cp->addr.bdaddr,
|
conn = hci_connect(hdev, LE_LINK, &cp->addr.bdaddr,
|
||||||
cp->addr.type, sec_level, auth_type);
|
cp->addr.type, sec_level, auth_type);
|
||||||
|
|
||||||
memset(&rp, 0, sizeof(rp));
|
|
||||||
bacpy(&rp.addr.bdaddr, &cp->addr.bdaddr);
|
|
||||||
rp.addr.type = cp->addr.type;
|
|
||||||
|
|
||||||
if (IS_ERR(conn)) {
|
if (IS_ERR(conn)) {
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче