Bluetooth: Move set of P-bit to l2cap_send_sframe()
authorGustavo F. Padovan <padovan@profusion.mobi>
Sat, 1 May 2010 19:15:37 +0000 (16:15 -0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 10 May 2010 07:28:47 +0000 (09:28 +0200)
Abstract the send of of P-bit and avoids code duplication like we
did with the setting of F-bit.

Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Reviewed-by: João Paulo Rechi Vita <jprvita@profusion.mobi>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/l2cap.c

index 0a739ef..852c140 100644 (file)
@@ -357,6 +357,11 @@ static inline int l2cap_send_sframe(struct l2cap_pinfo *pi, u16 control)
                pi->conn_state &= ~L2CAP_CONN_SEND_FBIT;
        }
 
+       if (pi->conn_state & L2CAP_CONN_SEND_PBIT) {
+               control |= L2CAP_CTRL_POLL;
+               pi->conn_state &= ~L2CAP_CONN_SEND_PBIT;
+       }
+
        skb = bt_skb_alloc(count, GFP_ATOMIC);
        if (!skb)
                return -ENOMEM;
@@ -3364,10 +3369,6 @@ static void l2cap_send_srejframe(struct sock *sk, u8 tx_seq)
        while (tx_seq != pi->expected_tx_seq) {
                control = L2CAP_SUPER_SELECT_REJECT;
                control |= pi->expected_tx_seq << L2CAP_CTRL_REQSEQ_SHIFT;
-               if (pi->conn_state & L2CAP_CONN_SEND_PBIT) {
-                       control |= L2CAP_CTRL_POLL;
-                       pi->conn_state &= ~L2CAP_CONN_SEND_PBIT;
-               }
                l2cap_send_sframe(pi, control);
 
                new = kzalloc(sizeof(struct srej_list), GFP_ATOMIC);