Hi Tedd, > If the user->list is deleted with list_del(), it doesn't initialize the > entry which can cause the issue with list_empty(). According to the > comment from the list.h, list_empty() returns false even if the list is > empty and put the entry in an undefined state. > > /** > * 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. > */ > > Because of this behavior, list_empty() returns false even if list is empty > when the device is reconnected. > > So, user->list needs to be re-initialized after list_del(). list.h already > have a macro list_del_init() which deletes the entry and initailze it again. > > Tested-by: Jörg Otte <jrg.otte@xxxxxxxxx> > Signed-off-by: Tedd Ho-Jeong An <tedd.an@xxxxxxxxx> > --- > net/bluetooth/l2cap_core.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) patch has been applied to bluetooth-stable tree. Regards Marcel -- 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