[ofa-general] [RFC] ipoib: avoid using stale ipoib_neigh* in ipoib_neigh_cleanup()
akepner at sgi.com
akepner at sgi.com
Wed May 27 16:27:21 PDT 2009
On Sun, May 24, 2009 at 08:11:32AM +0300, Or Gerlitz wrote:
> ... how come a neigh cleanup
> callback is invoked when someone out there has a ref on the neighbour?
Don't know if you saw all of this thread, but in:
http://lists.openfabrics.org/pipermail/general/2009-May/059730.html
I mentioned a race between a tx completion (with an error) and
ipoib_neigh_cleanup(), which could happen even if the callback
is invoked at the correct time (as far as the neighbour code is
concerned).
> ...
> also I'd like to clarify with you if the rest of this thread applies
> only to 2.6.16 and possibly more old kernels, or to the current mainline
> bits?
>
Although I've only seen the bug with 2.6.16 vintage kernels (and
maybe only once) , I think it's still possible in the latest code
via the mechanism I mentioned above (and maybe other ways, too).
The best idea I've got so far is to use a new set of locks to
consistently read/write the struct ipoib_neigh pointer that's
stashed away in the neighbour structures.
--
Arthur
More information about the general
mailing list