OpenWrt – Rev 1

Subversion Repositories:
Rev:
From 40fc3423b983b864bf70b03199191260ae9b2ea6 Mon Sep 17 00:00:00 2001
From: Eric Dumazet <edumazet@google.com>
Date: Sat, 3 Dec 2016 11:14:50 -0800
Subject: [PATCH 01/10] tcp: tsq: add tsq_flags / tsq_enum

This is a cleanup, to ease code review of following patches.

Old 'enum tsq_flags' is renamed, and a new enumeration is added
with the flags used in cmpxchg() operations as opposed to
single bit operations.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
 include/linux/tcp.h   | 11 ++++++++++-
 net/ipv4/tcp_output.c | 16 ++++++++--------
 2 files changed, 18 insertions(+), 9 deletions(-)

--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -368,7 +368,7 @@ struct tcp_sock {
        u32     *saved_syn;
 };
 
-enum tsq_flags {
+enum tsq_enum {
        TSQ_THROTTLED,
        TSQ_QUEUED,
        TCP_TSQ_DEFERRED,          /* tcp_tasklet_func() found socket was owned */
@@ -379,6 +379,15 @@ enum tsq_flags {
                                    */
 };
 
+enum tsq_flags {
+       TSQF_THROTTLED                  = (1UL << TSQ_THROTTLED),
+       TSQF_QUEUED                     = (1UL << TSQ_QUEUED),
+       TCPF_TSQ_DEFERRED               = (1UL << TCP_TSQ_DEFERRED),
+       TCPF_WRITE_TIMER_DEFERRED       = (1UL << TCP_WRITE_TIMER_DEFERRED),
+       TCPF_DELACK_TIMER_DEFERRED      = (1UL << TCP_DELACK_TIMER_DEFERRED),
+       TCPF_MTU_REDUCED_DEFERRED       = (1UL << TCP_MTU_REDUCED_DEFERRED),
+};
+
 static inline struct tcp_sock *tcp_sk(const struct sock *sk)
 {
        return (struct tcp_sock *)sk;
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -789,10 +789,10 @@ static void tcp_tasklet_func(unsigned lo
        }
 }
 
-#define TCP_DEFERRED_ALL ((1UL << TCP_TSQ_DEFERRED) |          \
-                         (1UL << TCP_WRITE_TIMER_DEFERRED) |   \
-                         (1UL << TCP_DELACK_TIMER_DEFERRED) |  \
-                         (1UL << TCP_MTU_REDUCED_DEFERRED))
+#define TCP_DEFERRED_ALL (TCPF_TSQ_DEFERRED |          \
+                         TCPF_WRITE_TIMER_DEFERRED |   \
+                         TCPF_DELACK_TIMER_DEFERRED |  \
+                         TCPF_MTU_REDUCED_DEFERRED)
 /**
  * tcp_release_cb - tcp release_sock() callback
  * @sk: socket
@@ -813,7 +813,7 @@ void tcp_release_cb(struct sock *sk)
                nflags = flags & ~TCP_DEFERRED_ALL;
        } while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags);
 
-       if (flags & (1UL << TCP_TSQ_DEFERRED))
+       if (flags & TCPF_TSQ_DEFERRED)
                tcp_tsq_handler(sk);
 
        /* Here begins the tricky part :
@@ -827,15 +827,15 @@ void tcp_release_cb(struct sock *sk)
         */
        sock_release_ownership(sk);
 
-       if (flags & (1UL << TCP_WRITE_TIMER_DEFERRED)) {
+       if (flags & TCPF_WRITE_TIMER_DEFERRED) {
                tcp_write_timer_handler(sk);
                __sock_put(sk);
        }
-       if (flags & (1UL << TCP_DELACK_TIMER_DEFERRED)) {
+       if (flags & TCPF_DELACK_TIMER_DEFERRED) {
                tcp_delack_timer_handler(sk);
                __sock_put(sk);
        }
-       if (flags & (1UL << TCP_MTU_REDUCED_DEFERRED)) {
+       if (flags & TCPF_MTU_REDUCED_DEFERRED) {
                inet_csk(sk)->icsk_af_ops->mtu_reduced(sk);
                __sock_put(sk);
        }