Re: [bluetooth] linux-3.x regression (bisected)

From: Rene Herman
Date: Wed Jan 04 2012 - 07:04:32 EST



On 28-12-11 17:48, Marcel Holtmann wrote:

The correct patch would be something like this:

diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 919e3c0..b6eb9c5 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -711,7 +711,8 @@ static void hci_cc_read_local_ext_features(struct hci_dev *h
if (rp->status)
return;

- memcpy(hdev->extfeatures, rp->features, 8);
+ if (rp->page == 1)
+ memcpy(hdev->extfeatures, rp->features, 8);

hci_req_complete(hdev, HCI_OP_READ_LOCAL_EXT_FEATURES, rp->status);
}

The current patch is actually fully broken anyway. So besides switching
LE on when requesting page 0, you will also switch it off when
requesting any other page and it accidentally returns 0x00 since we
unconditionally overwrite it.

Any word on a final fix for this?

Regards,
Rene Herman
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/