Re: [4.1.0-07254-gc13c810] Regression: Bluetooth not working.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte <jrg.otte@xxxxxxxxx> wrote:
> 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan <adobriyan@xxxxxxxxx>:
>> On Sun, Jun 28, 2015 at 05:36:04PM +0200, Jörg Otte wrote:
>>> 2015-06-26 16:28 GMT+02:00 Jörg Otte <jrg.otte@xxxxxxxxx>:
>>> > 2015-06-26 12:03 GMT+02:00 Jörg Otte <jrg.otte@xxxxxxxxx>:
>>> >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann <marcel@xxxxxxxxxxxx>:
>>> >>> Hi Joerg,
>>> >>>
>>> >>>> Bluetooth is inoperable in current Linus tree and the
>>> >>>> first bad commit is:
>>> >>>>
>>> >>>> 835a6a2f8603237a3e6cded5a6765090ecb06ea5 is the first bad commit
>>> >>>> commit 835a6a2f8603237a3e6cded5a6765090ecb06ea5
>>> >>>> Author: Alexey Dobriyan <adobriyan@xxxxxxxxx>
>>> >>>> Date:   Wed Jun 10 20:28:33 2015 +0300
>>> >>>>
>>> >>>>    Bluetooth: Stop sabotaging list poisoning
>>> >>>>
>>> >>>>    list_del() poisons pointers with special values, no need to overwrite them.
>>> >>>>
>>> >>>>    Signed-off-by: Alexey Dobriyan <adobriyan@xxxxxxxxx>
>>> >>>>    Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
>>> >>>>
>>> >>>> My BT adapter is an intel 8087:07da
>>> >>>> I reverted that commit and this fixed the problem for me.
>>> >>>
>>> >>> today we had a patch from Tedd fixing the list initialization in the HIDP code.
>>> >>>
>>> >>> diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
>>> >>> index 9070dfd6b4ad..f1a117f8cad2 100644
>>> >>> --- a/net/bluetooth/hidp/core.c
>>> >>> +++ b/net/bluetooth/hidp/core.c
>>> >>> @@ -915,6 +915,7 @@ static int hidp_session_new(struct hidp_session **out, const bdaddr_t *bdaddr,
>>> >>>         session->conn = l2cap_conn_get(conn);
>>> >>>         session->user.probe = hidp_session_probe;
>>> >>>         session->user.remove = hidp_session_remove;
>>> >>> +       INIT_LIST_HEAD(&session->user.list);
>>> >>>         session->ctrl_sock = ctrl_sock;
>>> >>>         session->intr_sock = intr_sock;
>>> >>>         skb_queue_head_init(&session->ctrl_transmit);
>>> >>>
>>> >>> Could this be fixing it for you as well?
>>> >>>
>>> >> I will check this when I am at home in the
>>> >> afternoon.
>>> >>
>>> >
>>> > The patch works for me too.
>>> >
>>> Ok, this was a little bit hasty!
>>> I now see the following additional problems:
>>>
>>> - System freeze on resume (occures always).
>>> - System freeze on shutdown (occures sometimes)
>>> - System freeze when BT-mouse is connecting (occures sometimes).
>>>
>>> Then I can't do anything except power off.
>>>
>>> This happens only if Bluetooth AND BT-mouse is activated.
>>
>> OK, what happens if you just revert only list_del patch?
>
> I have applied this patch:
>
> diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
> index 9070dfd6b4ad..f1a117f8cad2 100644
> --- a/net/bluetooth/hidp/core.c
> +++ b/net/bluetooth/hidp/core.c
> @@ -915,6 +915,7 @@ static int hidp_session_new(struct hidp_session
> **out, const bdaddr_t *bdaddr,
>         session->conn = l2cap_conn_get(conn);
>         session->user.probe = hidp_session_probe;
>         session->user.remove = hidp_session_remove;
> +       INIT_LIST_HEAD(&session->user.list);
>         session->ctrl_sock = ctrl_sock;
>         session->intr_sock = intr_sock;
>         skb_queue_head_init(&session->ctrl_transmit);
>
> without this patch bluetooth doesn't work at all for me.

Sure.

Please drop this patch, and do

  git-revert 835a6a2f8603237a3e6cded5a6765090ecb06ea5

Maybe it's some other changes causing hangs.
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux