From: Marcel Holtmann Date: Tue, 28 Sep 2021 10:10:14 +0000 (+0200) Subject: Bluetooth: Fix handling of experimental feature for quality reports X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=823f3bc4e2eca7170c2367c050c5361cb1cd7c25;p=linux.git Bluetooth: Fix handling of experimental feature for quality reports The existence of the experimental feature identifiy is the indication that it is supported or not. No extra flag needed and the initial flag should define if a feature is enabled or not. This is actually defined in the management API definition. Fixes: ae7d925b5c043 ("Bluetooth: Support the quality report events") Signed-off-by: Marcel Holtmann Signed-off-by: Luiz Augusto von Dentz --- diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index a6aeefd2c14f0..84336be4d00dc 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c @@ -3863,19 +3863,12 @@ static int read_exp_features_info(struct sock *sk, struct hci_dev *hdev, idx++; } - if (hdev) { - if (hdev->set_quality_report) { - /* BIT(0): indicating if set_quality_report is - * supported by controller. - */ + if (hdev && hdev->set_quality_report) { + if (hci_dev_test_flag(hdev, HCI_QUALITY_REPORT)) flags = BIT(0); - - /* BIT(1): indicating if the feature is enabled. */ - if (hci_dev_test_flag(hdev, HCI_QUALITY_REPORT)) - flags |= BIT(1); - } else { + else flags = 0; - } + memcpy(rp->features[idx].uuid, quality_report_uuid, 16); rp->features[idx].flags = cpu_to_le32(flags); idx++;