On Wed, Oct 02, 2013 at 12:49:06PM +0200, Alexander Gordeev wrote: > > + err = pci_msix_table_size(dev->pdev); > + if (err < 0) > + return err; > + > nvec = dev->caps.num_ports * num_online_cpus() + MLX5_EQ_VEC_COMP_BASE; > nvec = min_t(int, nvec, num_eqs); > + nvec = min_t(int, nvec, err); > if (nvec <= MLX5_EQ_VEC_COMP_BASE) > return -ENOSPC;
Making sure we don't request more vectors then the device's is capable of -- looks good. > > @@ -131,20 +136,15 @@ static int mlx5_enable_msix(struct mlx5_core_dev *dev) > for (i = 0; i < nvec; i++) > table->msix_arr[i].entry = i; > > -retry: > - table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; > err = pci_enable_msix(dev->pdev, table->msix_arr, nvec); > - if (err <= 0) { > + if (err) { > + kfree(table->msix_arr); > return err; > - } else if (err > MLX5_EQ_VEC_COMP_BASE) { > - nvec = err; > - goto retry; > } > According to latest sources, pci_enable_msix() may still fail so why do you want to remove this code? > - mlx5_core_dbg(dev, "received %d MSI vectors out of %d requested\n", > err, nvec); > - kfree(table->msix_arr); > + table->num_comp_vectors = nvec - MLX5_EQ_VEC_COMP_BASE; > > - return -ENOSPC; > + return 0; > } > > static void mlx5_disable_msix(struct mlx5_core_dev *dev) > -- > 1.7.7.6 > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired