[ofa-general] Re: Probable bug in mlx4 driver
Roland Dreier
rdreier at cisco.com
Mon Apr 20 14:11:59 PDT 2009
> diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c
> index 102bac9..ae692f1 100644
> --- a/drivers/net/mlx4/main.c
> +++ b/drivers/net/mlx4/main.c
> @@ -977,6 +977,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
> goto retry;
> }
>
> + kfree(entries);
> goto no_msi;
> }
This part of the patch is correct I believe -- entries is leaked
otherwise if enabling MSI-X fails.
> @@ -993,7 +994,7 @@ static void mlx4_enable_msi_x(struct mlx4_dev *dev)
> no_msi:
> dev->caps.num_comp_vectors = 1;
>
> - for (i = 0; i < 2; ++i)
> + for (i = 0; i < nreq; ++i)
> priv->eq_table.eq[i].irq = dev->pdev->irq;
> }
This is incorrect -- if msi_x is not set, then the function will fall
through to here and nreq will not even be initialized. If we are not
using MSI-X, then only one completion event queue will ever be used, and
so only the first two EQs need IRQs assigned.
Care to resend the first half of the patch with a proper
subject/changelog/signed-off-by/etc? (cf Documentation/SubmittingPatches)
Thanks,
Roland
More information about the general
mailing list