patches/pci_msix_vec_count.cocci (28 lines of code) (raw):

@find_func@ identifier func; expression pdev; identifier num_ntfy; @@ func(...) {... +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) num_ntfy = pci_msix_vec_count(pdev); if (num_ntfy <=0) +#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ +backport_err = pci_read_config_word(pdev, pdev->msix_cap + PCI_MSIX_FLAGS, &backport_val); +num_ntfy = (backport_val & PCI_MSIX_FLAGS_QSIZE) + 1; +if (num_ntfy <=0 || backport_err) +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0) */ {...} ...} @add_vars depends on find_func@ identifier find_func.func; typedef u16; @@ func(...) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) +u16 backport_val; +int backport_err; +#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) */ ...}