Message ID | 99135405274e3d94b4eafe6e92eaffc99f436b76.1611019539.git.geliangtang@gmail.com |
---|---|
State | Superseded, archived |
Headers | show |
Series | [mptcp-next] Squash to "mptcp: implement delegated actions" | expand |
This patch is obsolete by Paolo's fix. -Geliang Geliang Tang <geliangtang@gmail.com> 于2021年1月19日周二 上午9:26写道: > > Since a new listening socket in kernel for the new port is added, there's > a lockdep warning in mptcp_subflow_process_delegated. This patch added the > _nested annotation for the sock lock to fix it. > > Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/138 > Suggested-by: Paolo Abeni <pabeni@redhat.com> > Signed-off-by: Geliang Tang <geliangtang@gmail.com> > --- > net/mptcp/protocol.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c > index 442ad81d4abc..c750767be898 100644 > --- a/net/mptcp/protocol.c > +++ b/net/mptcp/protocol.c > @@ -2978,13 +2978,14 @@ void mptcp_subflow_process_delegated(struct sock *ssk) > { > struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); > struct sock *sk = subflow->conn; > + unsigned long flags; > > - mptcp_data_lock(sk); > + spin_lock_irqsave_nested(&sk->sk_lock.slock, flags, SINGLE_DEPTH_NESTING); > if (!sock_owned_by_user(sk)) > __mptcp_subflow_push_pending(sk, ssk); > else > set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->flags); > - mptcp_data_unlock(sk); > + spin_unlock_irqrestore(&sk->sk_lock.slock, flags); > mptcp_subflow_delegated_done(subflow); > } > > -- > 2.29.2 >
diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 442ad81d4abc..c750767be898 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2978,13 +2978,14 @@ void mptcp_subflow_process_delegated(struct sock *ssk) { struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk); struct sock *sk = subflow->conn; + unsigned long flags; - mptcp_data_lock(sk); + spin_lock_irqsave_nested(&sk->sk_lock.slock, flags, SINGLE_DEPTH_NESTING); if (!sock_owned_by_user(sk)) __mptcp_subflow_push_pending(sk, ssk); else set_bit(MPTCP_PUSH_PENDING, &mptcp_sk(sk)->flags); - mptcp_data_unlock(sk); + spin_unlock_irqrestore(&sk->sk_lock.slock, flags); mptcp_subflow_delegated_done(subflow); }
Since a new listening socket in kernel for the new port is added, there's a lockdep warning in mptcp_subflow_process_delegated. This patch added the _nested annotation for the sock lock to fix it. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/138 Suggested-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Geliang Tang <geliangtang@gmail.com> --- net/mptcp/protocol.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)