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

2015-06-30 Thread Tedd Ho-Jeong An
Hi Jörg

On Tue, 30 Jun 2015 16:58:13 +0200
Jörg Otte  wrote:

> > Regarding the system hang issue, it looks like the problem is caused by the 
> > list_del().
> > According to the list.h, this macro puts the entry into invalid state and 
> > it causes the device hang in the l2cap_core.c
> >
> > /**
> >  * list_del - deletes entry from list.
> >  * @entry: the element to delete from the list.
> >  * Note: list_empty() on entry does not return true after this, the 
> > entry is
> >  * in an undefined state.
> >  */
> >
> > So, one way to fix this issue is using the list_del_init() instead.
> >
> > Can you try this patch to see if it resolve the issue? No need to revert 
> > any patch.
> > I ran a quick test with a different scenarios and it looks good to me so 
> > far.
> >
> > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> > index 51594fb..45fffa4 100644
> > --- a/net/bluetooth/l2cap_core.c
> > +++ b/net/bluetooth/l2cap_core.c
> > @@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
> > struct l2cap_user *user)
> > if (list_empty(>list))
> > goto out_unlock;
> >
> > -   list_del(>list);
> > +   list_del_init(>list);
> > user->remove(conn, user);
> >
> >  out_unlock:
> > @@ -1648,7 +1648,7 @@ static void l2cap_unregister_all_users(struct 
> > l2cap_conn *conn)
> >
> > while (!list_empty(>users)) {
> > user = list_first_entry(>users, struct l2cap_user, 
> > list);
> > -   list_del(>list);
> > +   list_del_init(>list);
> > user->remove(conn, user);
> > }
> >  }
> >
> > Regards,
> > Tedd Ho-Jeong An
> 
> I now have both patche applied and no revert. Looks good so far.
> 
> Thanks, Jörg

Thanks for testing the patch. I submitted the patch just in case.
Now, I am tossing the ball to Marcel. :)

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


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

2015-06-30 Thread Jörg Otte
2015-06-29 23:13 GMT+02:00 Tedd Ho-Jeong An :
> Hi Jorg
>
> On Mon, 29 Jun 2015 16:37:32 +0200
> Jörg Otte  wrote:
>
>> 2015-06-29 12:30 GMT+02:00 Alexey Dobriyan :
>> > On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte  wrote:
>> >> 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan :
>> >>> 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 :
>>  > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
>>  >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>>  >>> 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 
>>   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 
>>  Signed-off-by: Marcel Holtmann 
>>  
>>   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(>user.list);
>>  >>> session->ctrl_sock = ctrl_sock;
>>  >>> session->intr_sock = intr_sock;
>>  >>> skb_queue_head_init(>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(>user.list);
>> >> session->ctrl_sock = ctrl_sock;
>> >> session->intr_sock = intr_sock;
>> >> skb_queue_head_init(>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.
>>
>> Looks good so far. The system freeze on resume is gone.
>>
>> Thanks, Jörg
>
> Regarding the system hang issue, it looks like the problem is caused by the 
> list_del().
> According to the list.h, this macro puts the entry into invalid state and it 
> causes the device hang in the l2cap_core.c
>
> /**
>  * list_del - deletes entry from list.
>  * @entry: the element to delete from the list.
>  * Note: list_empty() on entry does not return true after this, the entry 
> is
>  * in an undefined state.
>  */
>
> So, one way to fix this issue is using the list_del_init() instead.
>
> Can you try this patch to see if it resolve the issue? No need to revert any 
> patch.
> I ran a quick test with a different scenarios and it looks good to me so far.
>
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index 51594fb..45fffa4 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
> struct l2cap_user *user)
> if (list_empty(>list))
> goto out_unlock;
>
> -   list_del(>list);
> +   

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

2015-06-30 Thread Jörg Otte
2015-06-29 23:13 GMT+02:00 Tedd Ho-Jeong An tedd...@intel.com:
 Hi Jorg

 On Mon, 29 Jun 2015 16:37:32 +0200
 Jörg Otte jrg.o...@gmail.com wrote:

 2015-06-29 12:30 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
  On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte jrg.o...@gmail.com wrote:
  2015-06-28 18:09 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
  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.o...@gmail.com:
   2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
   2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
   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 adobri...@gmail.com
   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 adobri...@gmail.com
  Signed-off-by: Marcel Holtmann mar...@holtmann.org
  
   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.

 Looks good so far. The system freeze on resume is gone.

 Thanks, Jörg

 Regarding the system hang issue, it looks like the problem is caused by the 
 list_del().
 According to the list.h, this macro puts the entry into invalid state and it 
 causes the device hang in the l2cap_core.c

 /**
  * list_del - deletes entry from list.
  * @entry: the element to delete from the list.
  * Note: list_empty() on entry does not return true after this, the entry 
 is
  * in an undefined state.
  */

 So, one way to fix this issue is using the list_del_init() instead.

 Can you try this patch to see if it resolve the issue? No need to revert any 
 patch.
 I ran a quick test with a different scenarios and it looks good to me so far.

 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
 index 51594fb..45fffa4 100644
 --- a/net/bluetooth/l2cap_core.c
 +++ b/net/bluetooth/l2cap_core.c
 @@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
 struct l2cap_user *user)
 if (list_empty(user-list))
 goto out_unlock;

 -   list_del(user-list);
 +   list_del_init(user-list);
 user-remove(conn, user);

  out_unlock:
 @@ -1648,7 +1648,7 @@ static void l2cap_unregister_all_users(struct 
 l2cap_conn *conn)

 while (!list_empty(conn-users)) {
 user = list_first_entry(conn-users, struct l2cap_user, 
 list);
 -   list_del(user-list);
 +   list_del_init(user-list);
 user-remove(conn, user);
 }
  }

 Regards,
 Tedd 

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

2015-06-30 Thread Tedd Ho-Jeong An
Hi Jörg

On Tue, 30 Jun 2015 16:58:13 +0200
Jörg Otte jrg.o...@gmail.com wrote:

  Regarding the system hang issue, it looks like the problem is caused by the 
  list_del().
  According to the list.h, this macro puts the entry into invalid state and 
  it causes the device hang in the l2cap_core.c
 
  /**
   * list_del - deletes entry from list.
   * @entry: the element to delete from the list.
   * Note: list_empty() on entry does not return true after this, the 
  entry is
   * in an undefined state.
   */
 
  So, one way to fix this issue is using the list_del_init() instead.
 
  Can you try this patch to see if it resolve the issue? No need to revert 
  any patch.
  I ran a quick test with a different scenarios and it looks good to me so 
  far.
 
  diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
  index 51594fb..45fffa4 100644
  --- a/net/bluetooth/l2cap_core.c
  +++ b/net/bluetooth/l2cap_core.c
  @@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
  struct l2cap_user *user)
  if (list_empty(user-list))
  goto out_unlock;
 
  -   list_del(user-list);
  +   list_del_init(user-list);
  user-remove(conn, user);
 
   out_unlock:
  @@ -1648,7 +1648,7 @@ static void l2cap_unregister_all_users(struct 
  l2cap_conn *conn)
 
  while (!list_empty(conn-users)) {
  user = list_first_entry(conn-users, struct l2cap_user, 
  list);
  -   list_del(user-list);
  +   list_del_init(user-list);
  user-remove(conn, user);
  }
   }
 
  Regards,
  Tedd Ho-Jeong An
 
 I now have both patche applied and no revert. Looks good so far.
 
 Thanks, Jörg

Thanks for testing the patch. I submitted the patch just in case.
Now, I am tossing the ball to Marcel. :)

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


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

2015-06-29 Thread Tedd Ho-Jeong An
Hi Jorg

On Mon, 29 Jun 2015 16:37:32 +0200
Jörg Otte  wrote:

> 2015-06-29 12:30 GMT+02:00 Alexey Dobriyan :
> > On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte  wrote:
> >> 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan :
> >>> 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 :
>  > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
>  >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>  >>> 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 
>   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 
>  Signed-off-by: Marcel Holtmann 
>  
>   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(>user.list);
>  >>> session->ctrl_sock = ctrl_sock;
>  >>> session->intr_sock = intr_sock;
>  >>> skb_queue_head_init(>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(>user.list);
> >> session->ctrl_sock = ctrl_sock;
> >> session->intr_sock = intr_sock;
> >> skb_queue_head_init(>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.
> 
> Looks good so far. The system freeze on resume is gone.
> 
> Thanks, Jörg

Regarding the system hang issue, it looks like the problem is caused by the 
list_del().
According to the list.h, this macro puts the entry into invalid state and it 
causes the device hang in the l2cap_core.c

/**
 * list_del - deletes entry from list.
 * @entry: the element to delete from the list.
 * Note: list_empty() on entry does not return true after this, the entry is
 * in an undefined state.
 */

So, one way to fix this issue is using the list_del_init() instead.

Can you try this patch to see if it resolve the issue? No need to revert any 
patch.
I ran a quick test with a different scenarios and it looks good to me so far.

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 51594fb..45fffa4 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
struct l2cap_user *user)
if (list_empty(>list))
goto out_unlock;
 
-   list_del(>list);
+   list_del_init(>list);
user->remove(conn, user);
 
 out_unlock:
@@ -1648,7 +1648,7 @@ static void l2cap_unregister_all_users(struct l2cap_conn 
*conn)
 
while (!list_empty(>users)) {
  

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

2015-06-29 Thread Jörg Otte
2015-06-29 12:30 GMT+02:00 Alexey Dobriyan :
> On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte  wrote:
>> 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan :
>>> 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 :
 > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
 >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
 >>> 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 
  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 
 Signed-off-by: Marcel Holtmann 
 
  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(>user.list);
 >>> session->ctrl_sock = ctrl_sock;
 >>> session->intr_sock = intr_sock;
 >>> skb_queue_head_init(>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(>user.list);
>> session->ctrl_sock = ctrl_sock;
>> session->intr_sock = intr_sock;
>> skb_queue_head_init(>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.

Looks good so far. The system freeze on resume is gone.

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


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

2015-06-29 Thread Alexey Dobriyan
On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte  wrote:
> 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan :
>> 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 :
>>> > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
>>> >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>>> >>> 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 
>>>  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 
>>> Signed-off-by: Marcel Holtmann 
>>> 
>>>  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(>user.list);
>>> >>> session->ctrl_sock = ctrl_sock;
>>> >>> session->intr_sock = intr_sock;
>>> >>> skb_queue_head_init(>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(>user.list);
> session->ctrl_sock = ctrl_sock;
> session->intr_sock = intr_sock;
> skb_queue_head_init(>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-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-29 Thread Jörg Otte
2015-06-28 18:09 GMT+02:00 Alexey Dobriyan :
> 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 :
>> > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
>> >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>> >>> 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 
>>  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 
>> Signed-off-by: Marcel Holtmann 
>> 
>>  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(>user.list);
>> >>> session->ctrl_sock = ctrl_sock;
>> >>> session->intr_sock = intr_sock;
>> >>> skb_queue_head_init(>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(>user.list);
session->ctrl_sock = ctrl_sock;
session->intr_sock = intr_sock;
skb_queue_head_init(>ctrl_transmit);

without this patch bluetooth doesn't work at all for me.

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


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

2015-06-29 Thread Alexey Dobriyan
On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte jrg.o...@gmail.com wrote:
 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
 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.o...@gmail.com:
  2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
  2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
  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 adobri...@gmail.com
  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 adobri...@gmail.com
 Signed-off-by: Marcel Holtmann mar...@holtmann.org
 
  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-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-29 Thread Jörg Otte
2015-06-29 12:30 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
 On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte jrg.o...@gmail.com wrote:
 2015-06-28 18:09 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
 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.o...@gmail.com:
  2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
  2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
  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 adobri...@gmail.com
  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 adobri...@gmail.com
 Signed-off-by: Marcel Holtmann mar...@holtmann.org
 
  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.

Looks good so far. The system freeze on resume is gone.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-29 Thread Tedd Ho-Jeong An
Hi Jorg

On Mon, 29 Jun 2015 16:37:32 +0200
Jörg Otte jrg.o...@gmail.com wrote:

 2015-06-29 12:30 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
  On Mon, Jun 29, 2015 at 12:00 PM, Jörg Otte jrg.o...@gmail.com wrote:
  2015-06-28 18:09 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
  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.o...@gmail.com:
   2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
   2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
   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 adobri...@gmail.com
   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 adobri...@gmail.com
  Signed-off-by: Marcel Holtmann mar...@holtmann.org
  
   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.
 
 Looks good so far. The system freeze on resume is gone.
 
 Thanks, Jörg

Regarding the system hang issue, it looks like the problem is caused by the 
list_del().
According to the list.h, this macro puts the entry into invalid state and it 
causes the device hang in the l2cap_core.c

/**
 * list_del - deletes entry from list.
 * @entry: the element to delete from the list.
 * Note: list_empty() on entry does not return true after this, the entry is
 * in an undefined state.
 */

So, one way to fix this issue is using the list_del_init() instead.

Can you try this patch to see if it resolve the issue? No need to revert any 
patch.
I ran a quick test with a different scenarios and it looks good to me so far.

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 51594fb..45fffa4 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -1634,7 +1634,7 @@ void l2cap_unregister_user(struct l2cap_conn *conn, 
struct l2cap_user *user)
if (list_empty(user-list))
goto out_unlock;
 
-   list_del(user-list);
+   list_del_init(user-list);
user-remove(conn, user);
 
 out_unlock:
@@ -1648,7 +1648,7 @@ static void l2cap_unregister_all_users(struct l2cap_conn 
*conn)
 
while (!list_empty(conn-users)) {
user = list_first_entry(conn-users, struct l2cap_user, list);
-   list_del(user-list);
+   list_del_init(user-list);
user-remove(conn, user);
}
 }

Regards,
Tedd Ho-Jeong An
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a 

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

2015-06-29 Thread Jörg Otte
2015-06-28 18:09 GMT+02:00 Alexey Dobriyan adobri...@gmail.com:
 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.o...@gmail.com:
  2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
  2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
  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 adobri...@gmail.com
  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 adobri...@gmail.com
 Signed-off-by: Marcel Holtmann mar...@holtmann.org
 
  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.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-28 Thread Alexey Dobriyan
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 :
> > 2015-06-26 12:03 GMT+02:00 Jörg Otte :
> >> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
> >>> 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 
>  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 
> Signed-off-by: Marcel Holtmann 
> 
>  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(>user.list);
> >>> session->ctrl_sock = ctrl_sock;
> >>> session->intr_sock = intr_sock;
> >>> skb_queue_head_init(>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?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-28 Thread Jörg Otte
2015-06-26 16:28 GMT+02:00 Jörg Otte :
> 2015-06-26 12:03 GMT+02:00 Jörg Otte :
>> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>>> 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 
 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 
Signed-off-by: Marcel Holtmann 

 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(>user.list);
>>> session->ctrl_sock = ctrl_sock;
>>> session->intr_sock = intr_sock;
>>> skb_queue_head_init(>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.

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


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

2015-06-28 Thread Alexey Dobriyan
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.o...@gmail.com:
  2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
  2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
  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 adobri...@gmail.com
  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 adobri...@gmail.com
 Signed-off-by: Marcel Holtmann mar...@holtmann.org
 
  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?
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-28 Thread Jörg Otte
2015-06-26 16:28 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
 2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
 2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
 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 adobri...@gmail.com
 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 adobri...@gmail.com
Signed-off-by: Marcel Holtmann mar...@holtmann.org

 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.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-26 Thread Jörg Otte
2015-06-26 12:03 GMT+02:00 Jörg Otte :
> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
>> 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 
>>> 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 
>>>Signed-off-by: Marcel Holtmann 
>>>
>>> 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(>user.list);
>> session->ctrl_sock = ctrl_sock;
>> session->intr_sock = intr_sock;
>> skb_queue_head_init(>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.

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


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

2015-06-26 Thread Alexey Dobriyan
On Fri, Jun 26, 2015 at 1:03 PM, Jörg Otte  wrote:
> 2015-06-26 11:37 GMT+02:00 Marcel Holtmann :

>> --- 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(>user.list);

Heh, I checked every list.next/prev instance except init bit.
Sorry for the breakage.

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


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

2015-06-26 Thread Jörg Otte
2015-06-26 11:37 GMT+02:00 Marcel Holtmann :
> 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 
>> 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 
>>Signed-off-by: Marcel Holtmann 
>>
>> 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(>user.list);
> session->ctrl_sock = ctrl_sock;
> session->intr_sock = intr_sock;
> skb_queue_head_init(>ctrl_transmit);
>
> Could this be fixing it for you as well?
>
I will check this when I am at home in the
afternoon.

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


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

2015-06-26 Thread Marcel Holtmann
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 
> 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 
>Signed-off-by: Marcel Holtmann 
> 
> 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(>user.list);
session->ctrl_sock = ctrl_sock;
session->intr_sock = intr_sock;
skb_queue_head_init(>ctrl_transmit);

Could this be fixing it for you as well?

Regards

Marcel

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


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

2015-06-26 Thread Jörg Otte
Bluetooth is inoperable in current Linus tree and the
first bad commit is:

835a6a2f8603237a3e6cded5a6765090ecb06ea5 is the first bad commit
commit 835a6a2f8603237a3e6cded5a6765090ecb06ea5
Author: Alexey Dobriyan 
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 
Signed-off-by: Marcel Holtmann 

My BT adapter is an intel 8087:07da
I reverted that commit and this fixed the problem for me.

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


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

2015-06-26 Thread Jörg Otte
2015-06-26 12:03 GMT+02:00 Jörg Otte jrg.o...@gmail.com:
 2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
 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 adobri...@gmail.com
 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 adobri...@gmail.com
Signed-off-by: Marcel Holtmann mar...@holtmann.org

 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.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-26 Thread Jörg Otte
2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:
 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 adobri...@gmail.com
 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 adobri...@gmail.com
Signed-off-by: Marcel Holtmann mar...@holtmann.org

 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.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-26 Thread Jörg Otte
Bluetooth is inoperable in current Linus tree and the
first bad commit is:

835a6a2f8603237a3e6cded5a6765090ecb06ea5 is the first bad commit
commit 835a6a2f8603237a3e6cded5a6765090ecb06ea5
Author: Alexey Dobriyan adobri...@gmail.com
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 adobri...@gmail.com
Signed-off-by: Marcel Holtmann mar...@holtmann.org

My BT adapter is an intel 8087:07da
I reverted that commit and this fixed the problem for me.

Thanks, Jörg
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2015-06-26 Thread Marcel Holtmann
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 adobri...@gmail.com
 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 adobri...@gmail.com
Signed-off-by: Marcel Holtmann mar...@holtmann.org
 
 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?

Regards

Marcel

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


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

2015-06-26 Thread Alexey Dobriyan
On Fri, Jun 26, 2015 at 1:03 PM, Jörg Otte jrg.o...@gmail.com wrote:
 2015-06-26 11:37 GMT+02:00 Marcel Holtmann mar...@holtmann.org:

 --- 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);

Heh, I checked every list.next/prev instance except init bit.
Sorry for the breakage.

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