Hi Gustavo, On Wed, Dec 12, 2012 at 02:13:40AM -0200, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > > If the L2CAP user is l2cap_sock.c chan->data is a pointer to the l2cap > socket so chan->sk and chan->data are the same thing. Then we can just > compare with chan->data instead. > > Non-socket users will have skb->sk = NULL, thus this change does not > interfere in other users. > > Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxxxx> > --- > net/bluetooth/l2cap_core.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c > index 934ac1b..92936db 100644 > --- a/net/bluetooth/l2cap_core.c > +++ b/net/bluetooth/l2cap_core.c > @@ -2682,12 +2682,11 @@ static void l2cap_raw_recv(struct l2cap_conn *conn, struct sk_buff *skb) > mutex_lock(&conn->chan_lock); > > list_for_each_entry(chan, &conn->chan_l, list) { > - struct sock *sk = chan->sk; > if (chan->chan_type != L2CAP_CHAN_RAW) > continue; > > /* Don't send frame to the socket it came from */ > - if (skb->sk == sk) > + if (skb->sk && skb->sk == chan->data) In the other patch you delete chan->sk pointer and then we have only chan->data which points to sk. What is the reason for that? This would confuse people reading chan->data guessing what the hell is this. I really think we can leave chan->sk if it is needed and it is better to remove chan->data. Best regards Andrei Emeltchenko -- 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