Messages in this thread | | | Date | Wed, 28 Dec 2011 18:24:18 +0100 | From | Rene Herman <> | Subject | Re: [bluetooth] linux-3.x regression (bisected) |
| |
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.
Don't know anything about pages, but... I can confirm that the above works for me as well.
Rene.
| |