On Sat, 5 Feb 2005 17:11:10 +1100
Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote:
> You're right of course. I thought they were all harmless but I was
> obviously wrong about this one.
>
> So here is a patch that essentially reverts the split devices
> semantics introduced by these two changesets:
>
> [IPV6] addrconf_dst_alloc() to allocate new route for local address.
> [IPV6] take rt6i_idev into account when looking up routes.
>
> Signed-off-by: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Ok.
But Herbert, let's take a step back real quick because I want
to point something out. IPv6 does try to handle the dangling
mismatched idev's, in route.c:ip6_dst_ifdown(), this is called
via net/core/dst.c:dst_ifdown(), and this releases the ipv6
idev correctly in the split device case.
Did your analysis of this bridging release bug take this into
account? That's why we added this dst->ops method, specifically
to handle this problem.
This was added by Yoshifuji-san in ChangeSet 1.1722.137.17 which
has the checking comment:
[NET]: Add dst->ifdown callback.
Use it to release protocol specific objects that may be
tied to a dst cache object, at ifdown time. Currently
this is used to release ipv4/ipv6 specific device state.
|