From: "Michael S. Tsirkin" <[EMAIL PROTECTED]> Date: Mon, 19 Mar 2007 00:42:34 +0200
> > Quoting Michael S. Tsirkin <[EMAIL PROTECTED]>: > > Subject: Re: [ofa-general] Re: dst_ifdown breaks infiniband? > > > > > Quoting Eric W. Biederman <ebiederman@lnxi.com>: > > > Subject: Re: [ofa-general] Re: dst_ifdown breaks infiniband? > > > > > > "Michael S. Tsirkin" <[EMAIL PROTECTED]> writes: > > > > > > >> > Why is neighbour->dev changed here? > > > >> > > > >> It holds reference to device and prevents its destruction. > > > >> If dst is held somewhere, we cannot destroy the device and deadlock > > > >> while unregister. > > > > > > > > BTW, can this ever happen for the loopback device itself? > > > > Is it ever unregistered? > > > > > > Well I don't think the loopback device is currently but as soon > > > as we get network namespace support we will have multiple loopback > > > devices and they will get unregistered when we remove the network > > > namespace. > > > > Hmm. Then the code moving dst->dev to point to the loopback > > device will have to be fixed too. I'll post a patch a bit later. > > Does this look sane (untested)? > > Signed-off-by: Michael S. Tsirkin <[EMAIL PROTECTED]> You can't point it at NULL, we don't point it at loopback just for fun. There can be asynchronous paths elsewhere in the networking still referencing the neigh or dst and they will (correctly) feel free to derefence whatever device is hanging there. So transitioning to NULL is invalid. You guys will need to come up with a better solution for this silly situation with network namespaces. Loopback is always available to point dead routes and neighbour entries at, and this assumption is massively rooted in the networking. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/