mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 ec095263a9
			
		
	
	
		ec095263a9
		
	
	
	
	
		
			
			The internal recvmsg() functions have two parameters 'flags' and 'noblock'
that were merged inside skb_recv_datagram(). As a follow up patch to commit
f4b41f062c ("net: remove noblock parameter from skb_recv_datagram()")
this patch removes the separate 'noblock' parameter for recvmsg().
Analogue to the referenced patch for skb_recv_datagram() the 'flags' and
'noblock' parameters are unnecessarily split up with e.g.
err = sk->sk_prot->recvmsg(sk, msg, size, flags & MSG_DONTWAIT,
                           flags & ~MSG_DONTWAIT, &addr_len);
or in
err = INDIRECT_CALL_2(sk->sk_prot->recvmsg, tcp_recvmsg, udp_recvmsg,
                      sk, msg, size, flags & MSG_DONTWAIT,
                      flags & ~MSG_DONTWAIT, &addr_len);
instead of simply using only flags all the time and check for MSG_DONTWAIT
where needed (to preserve for the formerly separated no(n)block condition).
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Link: https://lore.kernel.org/r/20220411124955.154876-1-socketcan@hartkopp.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
		
	
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			953 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			953 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _UDP4_IMPL_H
 | |
| #define _UDP4_IMPL_H
 | |
| #include <net/udp.h>
 | |
| #include <net/udplite.h>
 | |
| #include <net/protocol.h>
 | |
| #include <net/inet_common.h>
 | |
| 
 | |
| int __udp4_lib_rcv(struct sk_buff *, struct udp_table *, int);
 | |
| int __udp4_lib_err(struct sk_buff *, u32, struct udp_table *);
 | |
| 
 | |
| int udp_v4_get_port(struct sock *sk, unsigned short snum);
 | |
| void udp_v4_rehash(struct sock *sk);
 | |
| 
 | |
| int udp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
 | |
| 		   unsigned int optlen);
 | |
| int udp_getsockopt(struct sock *sk, int level, int optname,
 | |
| 		   char __user *optval, int __user *optlen);
 | |
| 
 | |
| int udp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int flags,
 | |
| 		int *addr_len);
 | |
| int udp_sendpage(struct sock *sk, struct page *page, int offset, size_t size,
 | |
| 		 int flags);
 | |
| void udp_destroy_sock(struct sock *sk);
 | |
| 
 | |
| #ifdef CONFIG_PROC_FS
 | |
| int udp4_seq_show(struct seq_file *seq, void *v);
 | |
| #endif
 | |
| #endif	/* _UDP4_IMPL_H */
 |