X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=net%2Fcore%2Fsock.c;h=b67b9aedb230f9480d7ae91d8a8a79f5693187a5;hb=266c73b77706f2d05b4a3e70a5bb702ed35431d6;hp=6c1c8bc934127c48bb5e0a95961e61c5b79da5b4;hpb=f11aec0d7c835c3b83e74e3fd60d2e48a850c857;p=mirror_ubuntu-jammy-kernel.git diff --git a/net/core/sock.c b/net/core/sock.c index 6c1c8bc93412..b67b9aedb230 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -987,6 +987,10 @@ set_rcvbuf: sk->sk_incoming_cpu = val; break; + case SO_CNX_ADVICE: + if (val == 1) + dst_negative_advice(sk); + break; default: ret = -ENOPROTOOPT; break; @@ -1531,6 +1535,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority) newsk = NULL; goto out; } + RCU_INIT_POINTER(newsk->sk_reuseport_cb, NULL); newsk->sk_err = 0; newsk->sk_priority = 0; @@ -1903,7 +1908,7 @@ EXPORT_SYMBOL(sock_cmsg_send); bool skb_page_frag_refill(unsigned int sz, struct page_frag *pfrag, gfp_t gfp) { if (pfrag->page) { - if (atomic_read(&pfrag->page->_count) == 1) { + if (page_ref_count(pfrag->page) == 1) { pfrag->offset = 0; return true; }