Roland Dreier wrote: > > If mlx4_create_eq() would fail for one of EQ's assigned for > > completion handling, the code would try to free the same EQ > > we failed to create. > > The crash was found by Christoph Lameter > > Thanks, good catch. However looking at the code it seems that a simpler > way to fix this would be as below. Can you confirm that this works too? > --- > drivers/net/mlx4/eq.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/mlx4/eq.c b/drivers/net/mlx4/eq.c > index 8830dcb..033817e 100644 > --- a/drivers/net/mlx4/eq.c > +++ b/drivers/net/mlx4/eq.c > @@ -677,12 +677,12 @@ err_out_async: > mlx4_free_eq(dev, &priv->eq_table.eq[dev->caps.num_comp_vectors]); > > err_out_comp: > - i = dev->caps.num_comp_vectors - 1; > + i = dev->caps.num_comp_vectors; > > err_out_unmap: > - while (i >= 0) { > - mlx4_free_eq(dev, &priv->eq_table.eq[i]); > + while (i > 0) { > --i; > + mlx4_free_eq(dev, &priv->eq_table.eq[i]); > } > mlx4_unmap_clr_int(dev); > mlx4_free_irqs(dev); > Yes, it also works Yevgeny _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general