Quoting r. Shirley Ma <[EMAIL PROTECTED]>:
> Subject: Re: Re: [PATCH RESEND] net: Move destructor from?neigh->ops to 
> neigh_params
> 
> 
> Hi, Michael,
> 
> What's the current status of this patch?
> 
> I kept hitting the panic when bring the interface up and down. I went through 
> the neighbour and ipoib_neigh code. I think it's not necessary to patch 
> net/core/neighbour.
> 
> The reason we hit this problem is neighbour won't have a pointer to 
> ipoib_neigh if path_free() or mcast_free() being called by the time neighbour 
> has been freed. (ipoib_neigh always has a pointer to a neighbour).
> 
> If neigh_destructor() gets called in this context, in 
> ipoib_neigh_destructor() if ipoib_neigh is NULL it does nothing. So removing 
> neigh->neighbour->ops->destructor = NULL in kfree(neigh) is sufficient to fix 
> this problem. How do you think?
> 
> Here is the patch I used for testing.

With this approach you'll get crashes when the module will get unloaded.
Further, we may get called with neighbour that is not related to ipoib at all.

Shirley, please look under
https://openib.org/svn/trunk/contrib/mellanox/patches
There is a set of various patches for ipoib pending Rolands review there. Most
of them fix various hang/oops conditions or packet leaks.

An approach to fixing this specific problem that does not involve kernel patches
is implemented in patch ipoib_all_neigh_issues_2.patch.

I'll be thankful for more testing.

-- 
Michael S. Tsirkin
Staff Engineer, Mellanox Technologies
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to