Hi Johan, > The L2CAP core expects channel implementations to manage the reference > returned by the new_connection callback. With sockets this is already > handled with each channel being tied to the corresponding socket. With > SMP however there's no context to tie the pointer to in the > smp_new_conn_cb function. The function can also not just drop the > reference since it's the only one at that point. > > For fixed channels (like SMP) the code path inside the L2CAP core from > new_connection() to ready() is short and straight-forwards. The > crucial difference is that in ready() the implementation has access to > the l2cap_conn that SMP needs associate its l2cap_chan. Instead of > taking a new reference in smp_ready_cb() we can simply assume to > already own the reference created in smp_new_conn_cb(), i.e. there is > no need to call l2cap_chan_hold(). > > Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # 3.19+ > --- > net/bluetooth/smp.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) 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