|
103 | 103 | #include <net/busy_poll.h>
|
104 | 104 | #include <linux/errqueue.h>
|
105 | 105 |
|
106 |
| -/* proto_ops for ipv4 and ipv6 use the same {recv,send}msg function */ |
107 |
| -#if IS_ENABLED(CONFIG_INET) |
108 |
| -#define INDIRECT_CALL_INET4(f, f1, ...) INDIRECT_CALL_1(f, f1, __VA_ARGS__) |
109 |
| -#else |
110 |
| -#define INDIRECT_CALL_INET4(f, f1, ...) f(__VA_ARGS__) |
111 |
| -#endif |
112 |
| - |
113 | 106 | #ifdef CONFIG_NET_RX_BUSY_POLL
|
114 | 107 | unsigned int sysctl_net_busy_read __read_mostly;
|
115 | 108 | unsigned int sysctl_net_busy_poll __read_mostly;
|
@@ -641,10 +634,13 @@ EXPORT_SYMBOL(__sock_tx_timestamp);
|
641 | 634 |
|
642 | 635 | INDIRECT_CALLABLE_DECLARE(int inet_sendmsg(struct socket *, struct msghdr *,
|
643 | 636 | size_t));
|
| 637 | +INDIRECT_CALLABLE_DECLARE(int inet6_sendmsg(struct socket *, struct msghdr *, |
| 638 | + size_t)); |
644 | 639 | static inline int sock_sendmsg_nosec(struct socket *sock, struct msghdr *msg)
|
645 | 640 | {
|
646 |
| - int ret = INDIRECT_CALL_INET4(sock->ops->sendmsg, inet_sendmsg, sock, |
647 |
| - msg, msg_data_left(msg)); |
| 641 | + int ret = INDIRECT_CALL_INET(sock->ops->sendmsg, inet6_sendmsg, |
| 642 | + inet_sendmsg, sock, msg, |
| 643 | + msg_data_left(msg)); |
648 | 644 | BUG_ON(ret == -EIOCBQUEUED);
|
649 | 645 | return ret;
|
650 | 646 | }
|
@@ -870,12 +866,15 @@ void __sock_recv_ts_and_drops(struct msghdr *msg, struct sock *sk,
|
870 | 866 | EXPORT_SYMBOL_GPL(__sock_recv_ts_and_drops);
|
871 | 867 |
|
872 | 868 | INDIRECT_CALLABLE_DECLARE(int inet_recvmsg(struct socket *, struct msghdr *,
|
873 |
| - size_t , int )); |
| 869 | + size_t, int)); |
| 870 | +INDIRECT_CALLABLE_DECLARE(int inet6_recvmsg(struct socket *, struct msghdr *, |
| 871 | + size_t, int)); |
874 | 872 | static inline int sock_recvmsg_nosec(struct socket *sock, struct msghdr *msg,
|
875 | 873 | int flags)
|
876 | 874 | {
|
877 |
| - return INDIRECT_CALL_INET4(sock->ops->recvmsg, inet_recvmsg, sock, msg, |
878 |
| - msg_data_left(msg), flags); |
| 875 | + return INDIRECT_CALL_INET(sock->ops->recvmsg, inet6_recvmsg, |
| 876 | + inet_recvmsg, sock, msg, msg_data_left(msg), |
| 877 | + flags); |
879 | 878 | }
|
880 | 879 |
|
881 | 880 | /**
|
|
0 commit comments