Bluetooth: Fix reporting invalid RSSI for LE devices
authorSzymon Janc <szymon.janc@tieto.com>
Thu, 22 Jan 2015 15:57:05 +0000 (16:57 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 22 Jan 2015 17:06:43 +0000 (18:06 +0100)
Start Discovery was reporting 0 RSSI for invalid RSSI only for
BR/EDR devices. LE devices were reported with RSSI 127.

Signed-off-by: Szymon Janc <szymon.janc@tieto.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Cc: stable@vger.kernel.org # 3.19+
net/bluetooth/mgmt.c

index f5c4d2eed9a18e9b5e8b71659ed06d8eda4fd8ed..a619d983c078a42bc01ca19f83d2e4dd80c86f43 100644 (file)
@@ -7238,7 +7238,8 @@ void mgmt_device_found(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type,
         * However when using service discovery, the value 127 will be
         * returned when the RSSI is not available.
         */
-       if (rssi == HCI_RSSI_INVALID && !hdev->discovery.report_invalid_rssi)
+       if (rssi == HCI_RSSI_INVALID && !hdev->discovery.report_invalid_rssi &&
+           link_type == ACL_LINK)
                rssi = 0;
 
        bacpy(&ev->addr.bdaddr, bdaddr);