Commit 40fc3423 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

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: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f83e8303
...@@ -364,7 +364,7 @@ struct tcp_sock { ...@@ -364,7 +364,7 @@ struct tcp_sock {
u32 *saved_syn; u32 *saved_syn;
}; };
enum tsq_flags { enum tsq_enum {
TSQ_THROTTLED, TSQ_THROTTLED,
TSQ_QUEUED, TSQ_QUEUED,
TCP_TSQ_DEFERRED, /* tcp_tasklet_func() found socket was owned */ TCP_TSQ_DEFERRED, /* tcp_tasklet_func() found socket was owned */
...@@ -375,6 +375,15 @@ enum tsq_flags { ...@@ -375,6 +375,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) static inline struct tcp_sock *tcp_sk(const struct sock *sk)
{ {
return (struct tcp_sock *)sk; return (struct tcp_sock *)sk;
......
...@@ -784,10 +784,10 @@ static void tcp_tasklet_func(unsigned long data) ...@@ -784,10 +784,10 @@ static void tcp_tasklet_func(unsigned long data)
} }
} }
#define TCP_DEFERRED_ALL ((1UL << TCP_TSQ_DEFERRED) | \ #define TCP_DEFERRED_ALL (TCPF_TSQ_DEFERRED | \
(1UL << TCP_WRITE_TIMER_DEFERRED) | \ TCPF_WRITE_TIMER_DEFERRED | \
(1UL << TCP_DELACK_TIMER_DEFERRED) | \ TCPF_DELACK_TIMER_DEFERRED | \
(1UL << TCP_MTU_REDUCED_DEFERRED)) TCPF_MTU_REDUCED_DEFERRED)
/** /**
* tcp_release_cb - tcp release_sock() callback * tcp_release_cb - tcp release_sock() callback
* @sk: socket * @sk: socket
...@@ -808,7 +808,7 @@ void tcp_release_cb(struct sock *sk) ...@@ -808,7 +808,7 @@ void tcp_release_cb(struct sock *sk)
nflags = flags & ~TCP_DEFERRED_ALL; nflags = flags & ~TCP_DEFERRED_ALL;
} while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags); } while (cmpxchg(&tp->tsq_flags, flags, nflags) != flags);
if (flags & (1UL << TCP_TSQ_DEFERRED)) if (flags & TCPF_TSQ_DEFERRED)
tcp_tsq_handler(sk); tcp_tsq_handler(sk);
/* Here begins the tricky part : /* Here begins the tricky part :
...@@ -822,15 +822,15 @@ void tcp_release_cb(struct sock *sk) ...@@ -822,15 +822,15 @@ void tcp_release_cb(struct sock *sk)
*/ */
sock_release_ownership(sk); sock_release_ownership(sk);
if (flags & (1UL << TCP_WRITE_TIMER_DEFERRED)) { if (flags & TCPF_WRITE_TIMER_DEFERRED) {
tcp_write_timer_handler(sk); tcp_write_timer_handler(sk);
__sock_put(sk); __sock_put(sk);
} }
if (flags & (1UL << TCP_DELACK_TIMER_DEFERRED)) { if (flags & TCPF_DELACK_TIMER_DEFERRED) {
tcp_delack_timer_handler(sk); tcp_delack_timer_handler(sk);
__sock_put(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); inet_csk(sk)->icsk_af_ops->mtu_reduced(sk);
__sock_put(sk); __sock_put(sk);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment