patches/pci_enable_msix.cocci (29 lines of code) (raw):

@@ identifier priv, num_vec; expression entries, minvec, maxvec; @@ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) num_vec = pci_enable_msix_range(priv->pdev, entries, minvec, maxvec); +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ +num_vec = pci_enable_msix(priv->pdev, entries, maxvec); +if (!num_vec) { + num_vec = maxvec; +} else if (num_vec > 0) { + if (num_vec >= minvec) { + num_vec = pci_enable_msix(priv->pdev, entries, minvec); + if (num_vec) { + dev_err(&priv->pdev->dev, "Could not enable min msix %d error %d\n", + minvec, num_vec); + err = num_vec; + goto abort_with_msix_vectors; + } else { + num_vec = minvec; + } + } else { + dev_err(&priv->pdev->dev, "Could not enable msix error %d\n", + num_vec); + err = num_vec; + goto abort_with_msix_vectors; + } +} +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */