Re: [NET] IPv6 oops bisected

From: David Miller
Date: Mon Oct 08 2007 - 02:23:21 EST


From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 8 Oct 2007 14:19:42 +0800

> On Sun, Oct 07, 2007 at 11:16:08PM -0700, David Miller wrote:
> >
> > diff --git a/net/ipv6/route.c b/net/ipv6/route.c
> > index a7db84c..7109ad6 100644
> > --- a/net/ipv6/route.c
> > +++ b/net/ipv6/route.c
> > @@ -1188,7 +1188,7 @@ int ip6_route_add(struct fib6_config *cfg)
> > if ((cfg->fc_flags & RTF_REJECT) ||
> > (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) {
> > /* hold loopback dev/idev if we haven't done so. */
> > - if (dev != dev->nd_net->loopback_dev) {
> > + if (!dev || (dev != dev->nd_net->loopback_dev)) {
> > if (dev) {
> > dev_put(dev);
> > in6_dev_put(idev);
>
> Unfortunately this'll still oops a few lines down when it tries
> to assign dev->nd_net->loopabck_dev to dev. The issue here is
> which namespace are we in if dev is NULL.

Good catch.

I'm just going to revert my bogus fix and the original change
for now. Denis can resubmit the original patch once this
is resolved.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/