[ofa-general] [PATCH] Bug fix IPOIB CM dereferencing invalid pointer - resend
Eli Cohen
eli at dev.mellanox.co.il
Wed Nov 28 08:32:14 PST 2007
Actually I see that tx->neigh is already set to NULL in
ipoib_cm_destroy_tx so this fixes nothing. Although when I did this my
system stopped crashing. I guess I have to dig farther. By the way this
happens when I run netperf UDP and the connection is closed during the
test runs.
On Wed, 2007-11-28 at 18:05 +0200, Eli Cohen wrote:
> Bug fix IPOIB CM dereferencing invalid pointer
>
> When ipoib_neigh_free gets called it needs to set to NULL
> its ->cm->neigh member So that a completion with error reaching
> ipoib_cm_handle_tx_wc will not access an invalid pointer.
>
> Signed-off-by: Eli Cohen <eli at mellanox.co.il>
> ---
>
> This is what I really meant to send
>
>
> drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
> index a03a65e..0c66723 100644
> --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
> +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
> @@ -869,6 +869,10 @@ void ipoib_neigh_free(struct net_device *dev, struct ipoib_neigh *neigh)
> }
> if (ipoib_cm_get(neigh))
> ipoib_cm_destroy_tx(ipoib_cm_get(neigh));
> +
> + if (neigh->cm)
> + neigh->cm->neigh = NULL;
> +
> kfree(neigh);
> }
>
More information about the general
mailing list