[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2AD939572F25A448A3AE3CAEA61328C236946741@BC-MAIL-MBX12.internal.baidu.com>
Date: Fri, 26 Jan 2018 03:21:37 +0000
From: "Li,Rongqing" <lirongqing@...du.com>
To: Eric Dumazet <eric.dumazet@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: "edumazet@...gle.com" <edumazet@...gle.com>
Subject: 答复: 答复: [PATCH] net: clean the sk_frag.page of new cloned socket
> > my kernel is 3.10, I did not find the root cause, I guest all kind of
> > possibility
> >
>
> Have you backported 22a0e18eac7a9e986fec76c60fa4a2926d1291e2 ?
>
>
When I see this bug, I find this commit, and backport it,
But this seems to not related to my bug.
> > > I would rather move that in tcp_disconnect() that only fuzzers use,
> > > instead of doing this on every clone and slowing down normal users.
> > >
> >
> >
> > Do you mean we should fix it like below:
> >
> > diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index
> > f08eebe60446..44f8320610ab 100644
> > --- a/net/ipv4/tcp.c
> > +++ b/net/ipv4/tcp.c
> > @@ -2431,6 +2431,12 @@ int tcp_disconnect(struct sock *sk, int flags)
> >
> > WARN_ON(inet->inet_num && !icsk->icsk_bind_hash);
> >
> > +
> > + if (sk->sk_frag.page) {
> > + put_page(sk->sk_frag.page);
> > + sk->sk_frag.page = NULL;
> > + }
> > +
> > sk->sk_error_report(sk);
> > return err;
> > }
>
> Yes, something like that.
Ok, thanks
-R
Powered by blists - more mailing lists