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&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to