aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/tipc/node.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-05-20 03:40:09 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2020-05-20 03:40:09 -0400
commit9d5272f5e36155bcead69417fd12e98624e7faef (patch)
tree770af81c03932ad4e508a12cca6f83fbb3527689 /net/tipc/node.c
parentrcuwait: avoid lockdep splats from rcuwait_active() (diff)
parentx86/kvm: Restrict ASYNC_PF to user space (diff)
downloadwireguard-linux-9d5272f5e36155bcead69417fd12e98624e7faef.tar.xz
wireguard-linux-9d5272f5e36155bcead69417fd12e98624e7faef.zip
Merge tag 'noinstr-x86-kvm-2020-05-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into HEAD
Diffstat (limited to '')
-rw-r--r--net/tipc/node.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 10292c942384..803a3a6d0f50 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -2038,6 +2038,7 @@ void tipc_rcv(struct net *net, struct sk_buff *skb, struct tipc_bearer *b)
n = tipc_node_find_by_id(net, ehdr->id);
}
tipc_crypto_rcv(net, (n) ? n->crypto_rx : NULL, &skb, b);
+ tipc_node_put(n);
if (!skb)
return;
@@ -2090,7 +2091,7 @@ rcv:
/* Check/update node state before receiving */
if (unlikely(skb)) {
if (unlikely(skb_linearize(skb)))
- goto discard;
+ goto out_node_put;
tipc_node_write_lock(n);
if (tipc_node_check_state(n, skb, bearer_id, &xmitq)) {
if (le->link) {
@@ -2119,6 +2120,7 @@ rcv:
if (!skb_queue_empty(&xmitq))
tipc_bearer_xmit(net, bearer_id, &xmitq, &le->maddr, n);
+out_node_put:
tipc_node_put(n);
discard:
kfree_skb(skb);