On Tue, Jan 14, 2014 at 1:50 AM, Alexander Gordeev <agordeev@xxxxxxxxxx> wrote: > On Mon, Jan 13, 2014 at 12:12:20PM -0700, Bjorn Helgaas wrote: >> > - nvec = rc; >> > - rc = pci_enable_msi_block(pdev, nvec); >> > - if (rc) >> > + if (pci_enable_msi_range(pdev, nvec, nvec) < 0) >> > goto intx; >> > >> > return nvec; >> > >> > single_msi: >> > - rc = pci_enable_msi(pdev); >> > - if (rc) >> > + if (pci_enable_msi_range(pdev, 1, 1) < 0) >> >> This part doesn't seem like an improvement. There are a hundred or so >> callers of pci_enable_msi() that only want a single MSI. Is there any >> benefit in changing them to use pci_enable_msi_range()? > > In this particular case it reads better to me as one sees on the screen > pci_enable_msi_range(pdev, nvec, nvec) and pci_enable_msi_range(pdev, 1, 1) > calls. That allows to avoid switching in mind between negative-or-positive > return in the former call and negative-or-zero return from pci_enable_msi() > if we had it. > > But in most cases when single MSI is enabled we do cause complication > with the patterns below (which I expect I am going be hated for ;) ): I don't want to touch those hundred pci_enable_msi() callers at all. So I think we should have something like this: /* Return 0 for success (one MSI enabled) or negative errno */ static inline int pci_enable_msi(struct pci_dev *dev) { int rc; rc = pci_enable_msi_range(pdev, 1, 1); if (rc == 1) return 0; return rc; } -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html