igb_uio: fix interrupt enablement after FLR in VM
authorJingjing Wu <jingjing.wu@intel.com>
Mon, 9 Oct 2017 22:09:20 +0000 (06:09 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 13 Oct 2017 21:35:29 +0000 (22:35 +0100)
commit5f6ff30dc5075c49069d684bab229aef7ff0fdc3
tree38780ed16d434963cec881ddafde69775c3be9ea
parent8cacf78469a78b42557895ad1c2b40fbee864f53
igb_uio: fix interrupt enablement after FLR in VM

If pass-through a VF by vfio-pci to a Qemu VM, after FLR
in VM, the interrupt setting is not recoverd correctly
to host as below:
 in VM guest:
        Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
 in Host:
        Capabilities: [70] MSI-X: Enable+ Count=5 Masked-

That was because in pci_reset_function, it first reads the
PCI configure and set FLR reset, and then writes PCI configure
as restoration. But not all the writing are successful to Host.
Because vfio-pci driver doesn't allow directly write PCI MSI-X
Cap.

To fix this issue, we need to move the interrupt enablement from
igb_uio probe to open device file. While it is also the similar as
the behaviour in vfio_pci kernel module code.

Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Cc: stable@dpdk.org
Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Tested-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_eal/linuxapp/igb_uio/igb_uio.c