|
@@ -1304,8 +1304,13 @@ static void hci_init3_req(struct hci_request *req, unsigned long opt)
|
|
|
* as supported send it. If not supported assume that the controller
|
|
|
* does not have actual support for stored link keys which makes this
|
|
|
* command redundant anyway.
|
|
|
+ *
|
|
|
+ * Some controllers indicate that they support handling deleting
|
|
|
+ * stored link keys, but they don't. The quirk lets a driver
|
|
|
+ * just disable this command.
|
|
|
*/
|
|
|
- if (hdev->commands[6] & 0x80) {
|
|
|
+ if (hdev->commands[6] & 0x80 &&
|
|
|
+ !test_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks)) {
|
|
|
struct hci_cp_delete_stored_link_key cp;
|
|
|
|
|
|
bacpy(&cp.bdaddr, BDADDR_ANY);
|