lkml.org 
[lkml]   [2005]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: PROBLEM: 2.6.11-rc2 hangs on bridge shutdown (br0)
    On Sat, 5 Feb 2005 16:24:07 +1100
    Herbert Xu <herbert@gondor.apana.org.au> wrote:

    > This is the key to the problem.
    ...
    > All of these bugs stem from the idev reference held in rtable/rt6_info.
    ...
    > Anyway, this particular problem is due to IPv6 adding local addresses
    > with split devices. That is, routes to local addresses are added with
    > rt6i_dev set to &loopback_dev and rt6i_idev set to the idev of the
    > device where the address is added.
    ...
    > It also goes against the Linux philosophy where the addresses are owned
    > by the host, not the interface.
    >
    > Therefore I propose the simple solution of not doing the split device
    > accounting in rt6_info.

    I agree with your analysis, however... this change is not sufficient.
    You have to then walk over all the uses of rt6i_dev and sanitize the
    cases that still expect the split semantics. For example, things like
    this piece of coe in rt6_device_match():

    if (dev->flags & IFF_LOOPBACK) {
    if (sprt->rt6i_idev == NULL ||
    sprt->rt6i_idev->dev->ifindex != oif) {
    if (strict && oif)
    continue;
    if (local && (!oif ||
    local->rt6i_idev->dev->ifindex == oif))
    continue;
    }
    local = sprt;
    }

    It is just the first such thing I found, scanning rt6i_idev uses
    will easily find several others.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:10    [W:0.020 / U:92.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site