NFC: Socket linked list
[deliverable/linux.git] / net / nfc / llcp / commands.c
index ef10ffcb4b6ffb5ed79eecdc8005dccc0de34575..bf8ae4f0b90c933d9dc3dbda70416498df2e97fa 100644 (file)
@@ -102,7 +102,7 @@ u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length)
        length = llcp_tlv_length[type];
        if (length == 0 && value_length == 0)
                return NULL;
-       else
+       else if (length == 0)
                length = value_length;
 
        *tlv_length = 2 + length;
@@ -248,7 +248,7 @@ int nfc_llcp_disconnect(struct nfc_llcp_sock *sock)
 
        skb_reserve(skb, dev->tx_headroom + NFC_HEADER_SIZE);
 
-       skb = llcp_add_header(skb, sock->ssap, sock->dsap, LLCP_PDU_DISC);
+       skb = llcp_add_header(skb, sock->dsap, sock->ssap, LLCP_PDU_DISC);
 
        skb_queue_tail(&local->tx_queue, skb);
 
@@ -416,7 +416,7 @@ int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason)
 
        skb_reserve(skb, dev->tx_headroom + NFC_HEADER_SIZE);
 
-       skb = llcp_add_header(skb, ssap, dsap, LLCP_PDU_DM);
+       skb = llcp_add_header(skb, dsap, ssap, LLCP_PDU_DM);
 
        memcpy(skb_put(skb, 1), &reason, 1);
 
@@ -488,7 +488,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
 
                memcpy(skb_put(pdu, frag_len), msg_ptr, frag_len);
 
-               skb_queue_head(&sock->tx_queue, pdu);
+               skb_queue_tail(&sock->tx_queue, pdu);
 
                lock_sock(sk);
 
@@ -502,7 +502,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
 
        kfree(msg_data);
 
-       return 0;
+       return len;
 }
 
 int nfc_llcp_send_rr(struct nfc_llcp_sock *sock)
@@ -522,7 +522,7 @@ int nfc_llcp_send_rr(struct nfc_llcp_sock *sock)
 
        skb_put(skb, LLCP_SEQUENCE_SIZE);
 
-       skb->data[2] = sock->recv_n % 16;
+       skb->data[2] = sock->recv_n;
 
        skb_queue_head(&local->tx_queue, skb);
 
This page took 0.026488 seconds and 5 git commands to generate.