From: Łukasz Rymanowski Date: Fri, 9 Feb 2018 17:26:02 +0000 (+0100) Subject: Bluetooth: Fix incorrect bits for LE states X-Git-Tag: pci-v4.17-changes-2~83^2~421^2~2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=62ebdc25c4002e5fc104ab536ce7d99ba76be03f;p=users%2Fdwmw2%2Flinux.git Bluetooth: Fix incorrect bits for LE states This patch fixes incorrect checks for LE states. Issues found when doing mgmt tests for scenario when Linux Kernel should do connectable advertising while connected. Signed-off-by: Łukasz Rymanowski Signed-off-by: Marcel Holtmann --- diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c index 3394e67916738..66c0781773dff 100644 --- a/net/bluetooth/hci_request.c +++ b/net/bluetooth/hci_request.c @@ -934,8 +934,8 @@ static bool is_advertising_allowed(struct hci_dev *hdev, bool connectable) /* Slave connection state and connectable mode bit 38 * and scannable bit 21. */ - if (connectable && (!(hdev->le_states[4] & 0x01) || - !(hdev->le_states[2] & 0x40))) + if (connectable && (!(hdev->le_states[4] & 0x40) || + !(hdev->le_states[2] & 0x20))) return false; } @@ -948,7 +948,7 @@ static bool is_advertising_allowed(struct hci_dev *hdev, bool connectable) /* Master connection state and connectable mode bit 35 and * scannable 19. */ - if (connectable && (!(hdev->le_states[4] & 0x10) || + if (connectable && (!(hdev->le_states[4] & 0x08) || !(hdev->le_states[2] & 0x08))) return false; }