udp: introduce udp->udp_flags
[platform/kernel/linux-starfive.git] / net / ipv4 / udp.c
index f39b9c8..9709f8a 100644 (file)
@@ -1051,7 +1051,7 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
        u8 tos, scope;
        __be16 dport;
        int err, is_udplite = IS_UDPLITE(sk);
-       int corkreq = READ_ONCE(up->corkflag) || msg->msg_flags&MSG_MORE;
+       int corkreq = udp_test_bit(CORK, sk) || msg->msg_flags & MSG_MORE;
        int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
        struct sk_buff *skb;
        struct ip_options_data opt_copy;
@@ -1315,11 +1315,11 @@ void udp_splice_eof(struct socket *sock)
        struct sock *sk = sock->sk;
        struct udp_sock *up = udp_sk(sk);
 
-       if (!up->pending || READ_ONCE(up->corkflag))
+       if (!up->pending || udp_test_bit(CORK, sk))
                return;
 
        lock_sock(sk);
-       if (up->pending && !READ_ONCE(up->corkflag))
+       if (up->pending && !udp_test_bit(CORK, sk))
                udp_push_pending_frames(sk);
        release_sock(sk);
 }
@@ -2658,9 +2658,9 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
        switch (optname) {
        case UDP_CORK:
                if (val != 0) {
-                       WRITE_ONCE(up->corkflag, 1);
+                       udp_set_bit(CORK, sk);
                } else {
-                       WRITE_ONCE(up->corkflag, 0);
+                       udp_clear_bit(CORK, sk);
                        lock_sock(sk);
                        push_pending_frames(sk);
                        release_sock(sk);
@@ -2783,7 +2783,7 @@ int udp_lib_getsockopt(struct sock *sk, int level, int optname,
 
        switch (optname) {
        case UDP_CORK:
-               val = READ_ONCE(up->corkflag);
+               val = udp_test_bit(CORK, sk);
                break;
 
        case UDP_ENCAP: