Commit 403a40f2 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

mptcp: preserve const qualifier in mptcp_sk()

We can change mptcp_sk() to propagate its argument const qualifier,
thanks to container_of_const().

We need to change few things to avoid build errors:

mptcp_set_datafin_timeout() and mptcp_rtx_head() have to accept
non-const sk pointers.

@msk local variable in mptcp_pending_tail() must be const.
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Matthieu Baerts <matthieu.baerts@tessares.net>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Reviewed-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c7154ca8
...@@ -459,7 +459,7 @@ static bool mptcp_pending_data_fin(struct sock *sk, u64 *seq) ...@@ -459,7 +459,7 @@ static bool mptcp_pending_data_fin(struct sock *sk, u64 *seq)
return false; return false;
} }
static void mptcp_set_datafin_timeout(const struct sock *sk) static void mptcp_set_datafin_timeout(struct sock *sk)
{ {
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
u32 retransmits; u32 retransmits;
......
...@@ -334,10 +334,7 @@ static inline void msk_owned_by_me(const struct mptcp_sock *msk) ...@@ -334,10 +334,7 @@ static inline void msk_owned_by_me(const struct mptcp_sock *msk)
sock_owned_by_me((const struct sock *)msk); sock_owned_by_me((const struct sock *)msk);
} }
static inline struct mptcp_sock *mptcp_sk(const struct sock *sk) #define mptcp_sk(ptr) container_of_const(ptr, struct mptcp_sock, sk.icsk_inet.sk)
{
return (struct mptcp_sock *)sk;
}
/* the msk socket don't use the backlog, also account for the bulk /* the msk socket don't use the backlog, also account for the bulk
* free memory * free memory
...@@ -371,7 +368,7 @@ static inline struct mptcp_data_frag *mptcp_send_next(struct sock *sk) ...@@ -371,7 +368,7 @@ static inline struct mptcp_data_frag *mptcp_send_next(struct sock *sk)
static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk) static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk)
{ {
struct mptcp_sock *msk = mptcp_sk(sk); const struct mptcp_sock *msk = mptcp_sk(sk);
if (!msk->first_pending) if (!msk->first_pending)
return NULL; return NULL;
...@@ -382,7 +379,7 @@ static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk) ...@@ -382,7 +379,7 @@ static inline struct mptcp_data_frag *mptcp_pending_tail(const struct sock *sk)
return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list); return list_last_entry(&msk->rtx_queue, struct mptcp_data_frag, list);
} }
static inline struct mptcp_data_frag *mptcp_rtx_head(const struct sock *sk) static inline struct mptcp_data_frag *mptcp_rtx_head(struct sock *sk)
{ {
struct mptcp_sock *msk = mptcp_sk(sk); struct mptcp_sock *msk = mptcp_sk(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