On Thu, Oct 03, 2013 at 10:14:33AM +0300, Eli Cohen wrote: > 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?
pci_enable_msix() may fail, but it can not return a positive number. We first calculate how many MSI-Xs we need, adjust to what we can get, check if that is enough and only then go for it. > > - 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) -- Regards, Alexander Gordeev agord...@redhat.com ------------------------------------------------------------------------------ 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