diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/nfc/llcp/commands.c | 17 | ||||
-rw-r--r-- | net/nfc/llcp/llcp.c | 6 | ||||
-rw-r--r-- | net/nfc/llcp/llcp.h | 6 | ||||
-rw-r--r-- | net/nfc/llcp/sock.c | 6 |
4 files changed, 19 insertions, 16 deletions
diff --git a/net/nfc/llcp/commands.c b/net/nfc/llcp/commands.c index c6bc3bd95052..c8a209665792 100644 --- a/net/nfc/llcp/commands.c +++ b/net/nfc/llcp/commands.c | |||
@@ -184,10 +184,10 @@ int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock, | |||
184 | 184 | ||
185 | switch (type) { | 185 | switch (type) { |
186 | case LLCP_TLV_MIUX: | 186 | case LLCP_TLV_MIUX: |
187 | sock->miu = llcp_tlv_miux(tlv) + 128; | 187 | sock->remote_miu = llcp_tlv_miux(tlv) + 128; |
188 | break; | 188 | break; |
189 | case LLCP_TLV_RW: | 189 | case LLCP_TLV_RW: |
190 | sock->rw = llcp_tlv_rw(tlv); | 190 | sock->remote_rw = llcp_tlv_rw(tlv); |
191 | break; | 191 | break; |
192 | case LLCP_TLV_SN: | 192 | case LLCP_TLV_SN: |
193 | break; | 193 | break; |
@@ -200,7 +200,8 @@ int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock, | |||
200 | tlv += length + 2; | 200 | tlv += length + 2; |
201 | } | 201 | } |
202 | 202 | ||
203 | pr_debug("sock %p rw %d miu %d\n", sock, sock->rw, sock->miu); | 203 | pr_debug("sock %p rw %d miu %d\n", sock, |
204 | sock->remote_rw, sock->remote_miu); | ||
204 | 205 | ||
205 | return 0; | 206 | return 0; |
206 | } | 207 | } |
@@ -532,8 +533,8 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, | |||
532 | 533 | ||
533 | /* Remote is ready but has not acknowledged our frames */ | 534 | /* Remote is ready but has not acknowledged our frames */ |
534 | if((sock->remote_ready && | 535 | if((sock->remote_ready && |
535 | skb_queue_len(&sock->tx_pending_queue) >= sock->rw && | 536 | skb_queue_len(&sock->tx_pending_queue) >= sock->remote_rw && |
536 | skb_queue_len(&sock->tx_queue) >= 2 * sock->rw)) { | 537 | skb_queue_len(&sock->tx_queue) >= 2 * sock->remote_rw)) { |
537 | pr_err("Pending queue is full %d frames\n", | 538 | pr_err("Pending queue is full %d frames\n", |
538 | skb_queue_len(&sock->tx_pending_queue)); | 539 | skb_queue_len(&sock->tx_pending_queue)); |
539 | return -ENOBUFS; | 540 | return -ENOBUFS; |
@@ -541,7 +542,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, | |||
541 | 542 | ||
542 | /* Remote is not ready and we've been queueing enough frames */ | 543 | /* Remote is not ready and we've been queueing enough frames */ |
543 | if ((!sock->remote_ready && | 544 | if ((!sock->remote_ready && |
544 | skb_queue_len(&sock->tx_queue) >= 2 * sock->rw)) { | 545 | skb_queue_len(&sock->tx_queue) >= 2 * sock->remote_rw)) { |
545 | pr_err("Tx queue is full %d frames\n", | 546 | pr_err("Tx queue is full %d frames\n", |
546 | skb_queue_len(&sock->tx_queue)); | 547 | skb_queue_len(&sock->tx_queue)); |
547 | return -ENOBUFS; | 548 | return -ENOBUFS; |
@@ -561,7 +562,7 @@ int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, | |||
561 | 562 | ||
562 | while (remaining_len > 0) { | 563 | while (remaining_len > 0) { |
563 | 564 | ||
564 | frag_len = min_t(size_t, sock->miu, remaining_len); | 565 | frag_len = min_t(size_t, sock->remote_miu, remaining_len); |
565 | 566 | ||
566 | pr_debug("Fragment %zd bytes remaining %zd", | 567 | pr_debug("Fragment %zd bytes remaining %zd", |
567 | frag_len, remaining_len); | 568 | frag_len, remaining_len); |
@@ -621,7 +622,7 @@ int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap, | |||
621 | 622 | ||
622 | while (remaining_len > 0) { | 623 | while (remaining_len > 0) { |
623 | 624 | ||
624 | frag_len = min_t(size_t, sock->miu, remaining_len); | 625 | frag_len = min_t(size_t, sock->remote_miu, remaining_len); |
625 | 626 | ||
626 | pr_debug("Fragment %zd bytes remaining %zd", | 627 | pr_debug("Fragment %zd bytes remaining %zd", |
627 | frag_len, remaining_len); | 628 | frag_len, remaining_len); |
diff --git a/net/nfc/llcp/llcp.c b/net/nfc/llcp/llcp.c index 7f8266dd14cb..c0048b2395dd 100644 --- a/net/nfc/llcp/llcp.c +++ b/net/nfc/llcp/llcp.c | |||
@@ -865,7 +865,7 @@ static void nfc_llcp_recv_connect(struct nfc_llcp_local *local, | |||
865 | new_sock = nfc_llcp_sock(new_sk); | 865 | new_sock = nfc_llcp_sock(new_sk); |
866 | new_sock->dev = local->dev; | 866 | new_sock->dev = local->dev; |
867 | new_sock->local = nfc_llcp_local_get(local); | 867 | new_sock->local = nfc_llcp_local_get(local); |
868 | new_sock->miu = local->remote_miu; | 868 | new_sock->remote_miu = local->remote_miu; |
869 | new_sock->nfc_protocol = sock->nfc_protocol; | 869 | new_sock->nfc_protocol = sock->nfc_protocol; |
870 | new_sock->dsap = ssap; | 870 | new_sock->dsap = ssap; |
871 | new_sock->target_idx = local->target_idx; | 871 | new_sock->target_idx = local->target_idx; |
@@ -919,11 +919,11 @@ int nfc_llcp_queue_i_frames(struct nfc_llcp_sock *sock) | |||
919 | 919 | ||
920 | pr_debug("Remote ready %d tx queue len %d remote rw %d", | 920 | pr_debug("Remote ready %d tx queue len %d remote rw %d", |
921 | sock->remote_ready, skb_queue_len(&sock->tx_pending_queue), | 921 | sock->remote_ready, skb_queue_len(&sock->tx_pending_queue), |
922 | sock->rw); | 922 | sock->remote_rw); |
923 | 923 | ||
924 | /* Try to queue some I frames for transmission */ | 924 | /* Try to queue some I frames for transmission */ |
925 | while (sock->remote_ready && | 925 | while (sock->remote_ready && |
926 | skb_queue_len(&sock->tx_pending_queue) < sock->rw) { | 926 | skb_queue_len(&sock->tx_pending_queue) < sock->remote_rw) { |
927 | struct sk_buff *pdu; | 927 | struct sk_buff *pdu; |
928 | 928 | ||
929 | pdu = skb_dequeue(&sock->tx_queue); | 929 | pdu = skb_dequeue(&sock->tx_queue); |
diff --git a/net/nfc/llcp/llcp.h b/net/nfc/llcp/llcp.h index 0eae5c509504..32cec81939e6 100644 --- a/net/nfc/llcp/llcp.h +++ b/net/nfc/llcp/llcp.h | |||
@@ -104,8 +104,10 @@ struct nfc_llcp_sock { | |||
104 | u8 dsap; | 104 | u8 dsap; |
105 | char *service_name; | 105 | char *service_name; |
106 | size_t service_name_len; | 106 | size_t service_name_len; |
107 | u8 rw; | 107 | |
108 | u16 miu; | 108 | /* Remote link parameters */ |
109 | u8 remote_rw; | ||
110 | u16 remote_miu; | ||
109 | 111 | ||
110 | /* Link variables */ | 112 | /* Link variables */ |
111 | u8 send_n; | 113 | u8 send_n; |
diff --git a/net/nfc/llcp/sock.c b/net/nfc/llcp/sock.c index 5332751943a9..cc564992ba95 100644 --- a/net/nfc/llcp/sock.c +++ b/net/nfc/llcp/sock.c | |||
@@ -541,7 +541,7 @@ static int llcp_sock_connect(struct socket *sock, struct sockaddr *_addr, | |||
541 | 541 | ||
542 | llcp_sock->dev = dev; | 542 | llcp_sock->dev = dev; |
543 | llcp_sock->local = nfc_llcp_local_get(local); | 543 | llcp_sock->local = nfc_llcp_local_get(local); |
544 | llcp_sock->miu = llcp_sock->local->remote_miu; | 544 | llcp_sock->remote_miu = llcp_sock->local->remote_miu; |
545 | llcp_sock->ssap = nfc_llcp_get_local_ssap(local); | 545 | llcp_sock->ssap = nfc_llcp_get_local_ssap(local); |
546 | if (llcp_sock->ssap == LLCP_SAP_MAX) { | 546 | if (llcp_sock->ssap == LLCP_SAP_MAX) { |
547 | ret = -ENOMEM; | 547 | ret = -ENOMEM; |
@@ -800,8 +800,8 @@ struct sock *nfc_llcp_sock_alloc(struct socket *sock, int type, gfp_t gfp) | |||
800 | 800 | ||
801 | llcp_sock->ssap = 0; | 801 | llcp_sock->ssap = 0; |
802 | llcp_sock->dsap = LLCP_SAP_SDP; | 802 | llcp_sock->dsap = LLCP_SAP_SDP; |
803 | llcp_sock->rw = LLCP_DEFAULT_RW; | 803 | llcp_sock->remote_rw = LLCP_DEFAULT_RW; |
804 | llcp_sock->miu = LLCP_DEFAULT_MIU; | 804 | llcp_sock->remote_miu = LLCP_DEFAULT_MIU; |
805 | llcp_sock->send_n = llcp_sock->send_ack_n = 0; | 805 | llcp_sock->send_n = llcp_sock->send_ack_n = 0; |
806 | llcp_sock->recv_n = llcp_sock->recv_ack_n = 0; | 806 | llcp_sock->recv_n = llcp_sock->recv_ack_n = 0; |
807 | llcp_sock->remote_ready = 1; | 807 | llcp_sock->remote_ready = 1; |