[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4CAC1F20.6070009@iki.fi>
Date: Wed, 06 Oct 2010 10:02:56 +0300
From: Timo Teräs <timo.teras@....fi>
To: "Chung-Yih Wang (王崇懿)"
<cywang@...gle.com>
CC: herbert@...dor.hengli.com.au, davem@...emloft.net,
netdev@...r.kernel.org
Subject: Re: Regarding to your linux kernel CL
On 10/05/2010 04:23 AM, Chung-Yih Wang (王崇懿) wrote:
> I encountered an issue with your CL
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d11a4dc18bf41719c9f0d7ed494d295dd2973b92.
> The cause is that we use a connected UDP socket for building the
> l2tp/ipsec vpn connection. However, when the ipsec tunnel is built,
> your CL made the sk_dst_check useless(since it always return the
> 'freed' dst_entry and can not reset the dst entry for the socket).
> What is your comment to conquer this issue?
>
> Solution 1. We could add a CL to change it to (dst && dst->obsolete &&
> (dst->obsolete>0 || dst->ops->check(...)==NULL) in sk_dst_check()) ?
>
> Solution 2. Revert the change?
>
> Any comment?
What's the problem here? sk_dst_check not honoring if dst->obsolete>0 ?
Sounds like the sk_dst_check was buggy in the first place.
Looks like there's still some code around that does not do what the
obsolete field has been used for a long time.
obsolete = 0, dst entry is ok
obsolete = -1, you need to call ops->check for this entry
obsolete > 0, this entry is invalid
So net/core/sock.c needs fixing. Just if we should change dst_check()
too, I'm not sure.
Should we fix sk_dst_check to use dst_check(), and dst_check() to check
for dst->obsolete>0 ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists