Re: dst_ifdown breaks infiniband?

From: Michael S. Tsirkin
Date: Sun Mar 18 2007 - 16:24:27 EST


> Quoting Alexey Kuznetsov <kuznet@xxxxxxxxxxxxx>:
> Subject: Re: dst_ifdown breaks infiniband?
>
> Hello!
>
> > Hmm. Something I don't understand: does the code
> > in question not run on *each* device unregister?
>
> It does.
>
>
> > Why do I only see this under stress?
>
> You should have some referenced destination entries to trigger bad path.
> This should happen not only under stress.
>
> F.e. just try to ssh to something via this device. And unregister it.
> Seems, the crash is inevitable. If you do not see crash, I will be puzzled.


I did this.
What happens is:

neigh_setup is called
dst_ifdown changes the neigh->dev to loopback device

But the funny thing is that this neighbour can thinkably hang
around indefinitely now, and if it does destructor won't be called
and there won't be a crash.

To trigger a crash, I did simply
ifconfig lo down; ifconfig lo 127.0.0.1

and sure enough it crashes in drivers/infiniband/ulp/ipoib/ipoib_main.c.

--
MST
-
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/