diff --git a/[refs] b/[refs] index 498777003812..42ce9fec4d65 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7fe9b298c98fdfecf3b0efb4c971b7696d091ae9 +refs/heads/master: 2ece3684b4037ad2394de795d67abbe412ab5e2f diff --git a/trunk/net/bluetooth/l2cap.c b/trunk/net/bluetooth/l2cap.c index 40cf67c11d20..ecf3e3dcefe3 100644 --- a/trunk/net/bluetooth/l2cap.c +++ b/trunk/net/bluetooth/l2cap.c @@ -3931,6 +3931,10 @@ static inline int l2cap_data_channel_iframe(struct sock *sk, u16 rx_control, str return 0; } + err = l2cap_push_rx_skb(sk, skb, rx_control); + if (err < 0) + return 0; + if (rx_control & L2CAP_CTRL_FINAL) { if (pi->conn_state & L2CAP_CONN_REJ_ACT) pi->conn_state &= ~L2CAP_CONN_REJ_ACT; @@ -3938,10 +3942,6 @@ static inline int l2cap_data_channel_iframe(struct sock *sk, u16 rx_control, str l2cap_retransmit_frames(sk); } - err = l2cap_push_rx_skb(sk, skb, rx_control); - if (err < 0) - return 0; - __mod_ack_timer(); pi->num_acked = (pi->num_acked + 1) % num_to_ack;