[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20120424.005309.2292973770816115829.davem@davemloft.net>
Date: Tue, 24 Apr 2012 00:53:09 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: ogerlitz@...lanox.com
Cc: netdev@...r.kernel.org, shlomop@...lanox.com
Subject: Re: [PATCH net] net/neigh: move neigh cleanup routine to
neigh_destroy
From: Or Gerlitz <ogerlitz@...lanox.com>
Date: Mon, 23 Apr 2012 18:34:42 +0300
> From: Shlomo Pongratz <shlomop@...lanox.com>
>
> Move call the neigh_cleanup call to be done from neigh_destroy, this
> ensures the cleanup callback is invoked only when the neighbour reference
> count becomes zero (e.g in the same manner as ndo_neigh_destory).
>
> Note that with this change neigh_destroy will truly revert the action of
> neigh_create, as neigh_release which calls neigh_destroy is called directly
> from various code paths, and thus neigh->parms->neigh_cleanup is not called
> for these code paths.
>
> Also, with commit 7d26bb103 "bonding: emit event when bonding changes MAC" that
> triggers netdev address change event, a race was introduced since neigh cleanup
> can be called when there's reference on the neighbour.
>
> Signed-off-by: Shlomo Pongratz <shlomop@...lanox.com>
> Signed-off-by: Or Gerlitz <ogerlitz@...lanox.com>
With IPOIB, the neigh_cleanup purges references to the neigh when it
liberates the SKBs in the neigh resolution TX backlog during
ipoib_neigh_free().
Therefore, with your change, IPOIB neighs will never be destroyed if
they have any SKBs in their neigh resolution queues.
I'm not applying this, it's buggy.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists