diff options
| author | David S. Miller <davem@davemloft.net> | 2013-10-18 13:22:19 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-10-18 13:22:19 -0400 |
| commit | ace0d5d8bf8a69866e4394ca2e4c5d1296ef7db2 (patch) | |
| tree | d12bae2180f77b4dc48580bf5a85b995f1f4909c /net/tipc/socket.c | |
| parent | 7cc7c5e54b7128195a1403747a63971c3c3f8e25 (diff) | |
| parent | bbfbe47cc99ce093708aaf28b7f2c08d28045c67 (diff) | |
Merge branch 'tipc'
Jon Maloy says:
====================
Some small and relatively straightforward patches. With exception of
the two first ones they are all unrelated and address minor issues.
v2: update of v1 (http://patchwork.ozlabs.org/patch/277404/)
-added commit to use memcpy_fromiovec on user data as per v1 feedback
-updated sparse fix commit to drop chunks covered by above commit
-added new commit that greatly simplifies the link lookup routine
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/socket.c')
| -rw-r--r-- | net/tipc/socket.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index 6cc7ddd2fb7c..3906527259d1 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
| @@ -338,7 +338,7 @@ static int release(struct socket *sock) | |||
| 338 | buf = __skb_dequeue(&sk->sk_receive_queue); | 338 | buf = __skb_dequeue(&sk->sk_receive_queue); |
| 339 | if (buf == NULL) | 339 | if (buf == NULL) |
| 340 | break; | 340 | break; |
| 341 | if (TIPC_SKB_CB(buf)->handle != 0) | 341 | if (TIPC_SKB_CB(buf)->handle != NULL) |
| 342 | kfree_skb(buf); | 342 | kfree_skb(buf); |
| 343 | else { | 343 | else { |
| 344 | if ((sock->state == SS_CONNECTING) || | 344 | if ((sock->state == SS_CONNECTING) || |
| @@ -622,13 +622,11 @@ static int send_msg(struct kiocb *iocb, struct socket *sock, | |||
| 622 | res = tipc_send2name(tport->ref, | 622 | res = tipc_send2name(tport->ref, |
| 623 | &dest->addr.name.name, | 623 | &dest->addr.name.name, |
| 624 | dest->addr.name.domain, | 624 | dest->addr.name.domain, |
| 625 | m->msg_iovlen, | ||
| 626 | m->msg_iov, | 625 | m->msg_iov, |
| 627 | total_len); | 626 | total_len); |
| 628 | } else if (dest->addrtype == TIPC_ADDR_ID) { | 627 | } else if (dest->addrtype == TIPC_ADDR_ID) { |
| 629 | res = tipc_send2port(tport->ref, | 628 | res = tipc_send2port(tport->ref, |
| 630 | &dest->addr.id, | 629 | &dest->addr.id, |
| 631 | m->msg_iovlen, | ||
| 632 | m->msg_iov, | 630 | m->msg_iov, |
| 633 | total_len); | 631 | total_len); |
| 634 | } else if (dest->addrtype == TIPC_ADDR_MCAST) { | 632 | } else if (dest->addrtype == TIPC_ADDR_MCAST) { |
| @@ -641,7 +639,6 @@ static int send_msg(struct kiocb *iocb, struct socket *sock, | |||
| 641 | break; | 639 | break; |
| 642 | res = tipc_multicast(tport->ref, | 640 | res = tipc_multicast(tport->ref, |
| 643 | &dest->addr.nameseq, | 641 | &dest->addr.nameseq, |
| 644 | m->msg_iovlen, | ||
| 645 | m->msg_iov, | 642 | m->msg_iov, |
| 646 | total_len); | 643 | total_len); |
| 647 | } | 644 | } |
| @@ -707,8 +704,7 @@ static int send_packet(struct kiocb *iocb, struct socket *sock, | |||
| 707 | break; | 704 | break; |
| 708 | } | 705 | } |
| 709 | 706 | ||
| 710 | res = tipc_send(tport->ref, m->msg_iovlen, m->msg_iov, | 707 | res = tipc_send(tport->ref, m->msg_iov, total_len); |
| 711 | total_len); | ||
| 712 | if (likely(res != -ELINKCONG)) | 708 | if (likely(res != -ELINKCONG)) |
| 713 | break; | 709 | break; |
| 714 | if (timeout_val <= 0L) { | 710 | if (timeout_val <= 0L) { |
| @@ -1368,7 +1364,7 @@ static u32 filter_rcv(struct sock *sk, struct sk_buff *buf) | |||
| 1368 | return TIPC_ERR_OVERLOAD; | 1364 | return TIPC_ERR_OVERLOAD; |
| 1369 | 1365 | ||
| 1370 | /* Enqueue message */ | 1366 | /* Enqueue message */ |
| 1371 | TIPC_SKB_CB(buf)->handle = 0; | 1367 | TIPC_SKB_CB(buf)->handle = NULL; |
| 1372 | __skb_queue_tail(&sk->sk_receive_queue, buf); | 1368 | __skb_queue_tail(&sk->sk_receive_queue, buf); |
| 1373 | skb_set_owner_r(buf, sk); | 1369 | skb_set_owner_r(buf, sk); |
| 1374 | 1370 | ||
| @@ -1691,7 +1687,7 @@ restart: | |||
| 1691 | /* Disconnect and send a 'FIN+' or 'FIN-' message to peer */ | 1687 | /* Disconnect and send a 'FIN+' or 'FIN-' message to peer */ |
| 1692 | buf = __skb_dequeue(&sk->sk_receive_queue); | 1688 | buf = __skb_dequeue(&sk->sk_receive_queue); |
| 1693 | if (buf) { | 1689 | if (buf) { |
| 1694 | if (TIPC_SKB_CB(buf)->handle != 0) { | 1690 | if (TIPC_SKB_CB(buf)->handle != NULL) { |
| 1695 | kfree_skb(buf); | 1691 | kfree_skb(buf); |
| 1696 | goto restart; | 1692 | goto restart; |
| 1697 | } | 1693 | } |
