net: use sk_is_tcp() in more places
authorEric Dumazet <edumazet@google.com>
Mon, 15 Nov 2021 19:02:33 +0000 (11:02 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 2 Mar 2022 10:51:10 +0000 (11:51 +0100)
[ Upstream commit 42f67eea3ba36cef2dce2e853de6ddcb2e89eb39 ]

Move sk_is_tcp() to include/net/sock.h and use it where we can.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/skmsg.h
include/net/sock.h
net/core/skbuff.c
net/core/sock.c

index 584d94be9c8b06e43dff0eecfcc25a63a17a652d..18a717fe62eb049758bc1502da97365cf7587ffd 100644 (file)
@@ -507,12 +507,6 @@ static inline bool sk_psock_strp_enabled(struct sk_psock *psock)
        return !!psock->saved_data_ready;
 }
 
-static inline bool sk_is_tcp(const struct sock *sk)
-{
-       return sk->sk_type == SOCK_STREAM &&
-              sk->sk_protocol == IPPROTO_TCP;
-}
-
 static inline bool sk_is_udp(const struct sock *sk)
 {
        return sk->sk_type == SOCK_DGRAM &&
index d47e9658da28545c1f6afd9db0cf136b3e13d7b6..4e575735563a7e29e09043f631f13c7eaa7638a2 100644 (file)
@@ -2654,6 +2654,11 @@ static inline void skb_setup_tx_timestamp(struct sk_buff *skb, __u16 tsflags)
                           &skb_shinfo(skb)->tskey);
 }
 
+static inline bool sk_is_tcp(const struct sock *sk)
+{
+       return sk->sk_type == SOCK_STREAM && sk->sk_protocol == IPPROTO_TCP;
+}
+
 /**
  * sk_eat_skb - Release a skb if it is no longer needed
  * @sk: socket to eat this skb from
index 92edd03c2cd1c64517a2550d6e108327f1667d5b..2b2e19afef158c633adc919f02e57e87b63a2c90 100644 (file)
@@ -4849,8 +4849,7 @@ static void __skb_complete_tx_timestamp(struct sk_buff *skb,
        serr->header.h4.iif = skb->dev ? skb->dev->ifindex : 0;
        if (sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID) {
                serr->ee.ee_data = skb_shinfo(skb)->tskey;
-               if (sk->sk_protocol == IPPROTO_TCP &&
-                   sk->sk_type == SOCK_STREAM)
+               if (sk_is_tcp(sk))
                        serr->ee.ee_data -= sk->sk_tskey;
        }
 
@@ -4919,8 +4918,7 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb,
        if (tsonly) {
 #ifdef CONFIG_INET
                if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_STATS) &&
-                   sk->sk_protocol == IPPROTO_TCP &&
-                   sk->sk_type == SOCK_STREAM) {
+                   sk_is_tcp(sk)) {
                        skb = tcp_get_timestamping_opt_stats(sk, orig_skb,
                                                             ack_skb);
                        opt_stats = true;
index 7de234693a3bf53d320cef0f2e5fde988188c2dd..d18e4ffd84820b8f53c8e27a05946273f6fc85fa 100644 (file)
@@ -874,8 +874,7 @@ int sock_set_timestamping(struct sock *sk, int optname,
 
        if (val & SOF_TIMESTAMPING_OPT_ID &&
            !(sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID)) {
-               if (sk->sk_protocol == IPPROTO_TCP &&
-                   sk->sk_type == SOCK_STREAM) {
+               if (sk_is_tcp(sk)) {
                        if ((1 << sk->sk_state) &
                            (TCPF_CLOSE | TCPF_LISTEN))
                                return -EINVAL;
@@ -1372,8 +1371,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
 
        case SO_ZEROCOPY:
                if (sk->sk_family == PF_INET || sk->sk_family == PF_INET6) {
-                       if (!((sk->sk_type == SOCK_STREAM &&
-                              sk->sk_protocol == IPPROTO_TCP) ||
+                       if (!(sk_is_tcp(sk) ||
                              (sk->sk_type == SOCK_DGRAM &&
                               sk->sk_protocol == IPPROTO_UDP)))
                                ret = -ENOTSUPP;