udp_bpf.c (7ae9fb1b7ecbb5d85d07857943f677fd1a559b18) udp_bpf.c (d900f3d20cc3169ce42ec72acc850e662a4d4db2)
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2020 Cloudflare Ltd https://cloudflare.com */
3
4#include <linux/skmsg.h>
5#include <net/sock.h>
6#include <net/udp.h>
7#include <net/inet_common.h>
8

--- 54 unchanged lines hidden (view full) ---

63 int flags, int *addr_len)
64{
65 struct sk_psock *psock;
66 int copied, ret;
67
68 if (unlikely(flags & MSG_ERRQUEUE))
69 return inet_recv_error(sk, msg, len, addr_len);
70
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2020 Cloudflare Ltd https://cloudflare.com */
3
4#include <linux/skmsg.h>
5#include <net/sock.h>
6#include <net/udp.h>
7#include <net/inet_common.h>
8

--- 54 unchanged lines hidden (view full) ---

63 int flags, int *addr_len)
64{
65 struct sk_psock *psock;
66 int copied, ret;
67
68 if (unlikely(flags & MSG_ERRQUEUE))
69 return inet_recv_error(sk, msg, len, addr_len);
70
71 if (!len)
72 return 0;
73
71 psock = sk_psock_get(sk);
72 if (unlikely(!psock))
73 return sk_udp_recvmsg(sk, msg, len, flags, addr_len);
74
75 if (!psock_has_data(psock)) {
76 ret = sk_udp_recvmsg(sk, msg, len, flags, addr_len);
77 goto out;
78 }

--- 76 unchanged lines hidden ---
74 psock = sk_psock_get(sk);
75 if (unlikely(!psock))
76 return sk_udp_recvmsg(sk, msg, len, flags, addr_len);
77
78 if (!psock_has_data(psock)) {
79 ret = sk_udp_recvmsg(sk, msg, len, flags, addr_len);
80 goto out;
81 }

--- 76 unchanged lines hidden ---