igb_uio: fix unknown MSI symbols
authorFerruh Yigit <ferruh.yigit@intel.com>
Fri, 13 Oct 2017 02:46:44 +0000 (03:46 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 13 Oct 2017 13:50:13 +0000 (15:50 +0200)
commita8ea1e5fb64786065776491cec721b16d100171a
tree0f476dee05d51d813f3ae5b6a67b40c816abeac6
parent07a6f5c2d302cdccbbdf3b6f98be8a2238d40a29
igb_uio: fix unknown MSI symbols

This patch partially reverts the commit d196343a258e and adds some
functions from Markus' previous version of the patch [1].

igb_uio uses pci_msi_unmask_irq() and pci_msi_mask_irq() kernel APIs
when kernel version is >= 3.19 because these APIs are implemented in
this Linux kernel version.

But these APIs only exported beginning from Linux kernel 4.5, so before
this Linux kernel version igb_uio kernel module is not usable,
and giving following warnings:
"igb_uio: Unknown symbol pci_msi_unmask_irq"
"igb_uio: Unknown symbol pci_msi_mask_irq"

The support for these APIs increased to Linux kernel >= 4.5

For older version of Linux kernel unmask_msi_irq() and mask_msi_irq()
are used but these functions are not exported at all.
Instead of these functions switched back to previous implementation in
igb_uio for MSI-X, and for MSI used igbuio_msi_mask_irq() from [1].

[1]
http://dpdk.org/dev/patchwork/patch/28144/

Fixes: d196343a258e ("igb_uio: use kernel functions for masking MSI-X")

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_eal/linuxapp/igb_uio/compat.h
lib/librte_eal/linuxapp/igb_uio/igb_uio.c