[PATCH 2/2] nvme/pci: Enable SR-IOV capabilities
Christoph Hellwig
hch at infradead.org
Mon May 23 10:09:32 PDT 2016
On Mon, May 23, 2016 at 12:06:52PM -0500, Bjorn Helgaas wrote:
> > +static int nvme_sriov_configure(struct pci_dev *pdev, int numvfs)
> > +{
> > + int ret = 0;
> > +
> > + if (numvfs == 0)
> > + pci_disable_sriov(pdev);
> > + else
> > + ret = pci_enable_sriov(pdev, numvfs);
> > +
> > + return ret ? ret : numvfs;
> > +}
>
> I do not subscribe to the belief that every function should have a
> single exit. In this case, I think it makes the function much harder
> to understand than this:
>
> if (numvfs == 0)
> pci_disable_sriov(pdev);
> return 0;
> }
>
> return pci_enable_sriov(pdev, numvfs);
I'd tend to agree. But then again the real issue here is that we should
have two methods instead, and useful defaults. I.e. if the SR-IOV API
was properly designed NVMe wouldn't even need this callout at all,
and drivers that need it should have one method each for enable /
disable.
More information about the Linux-nvme
mailing list