I use pci passthrough. Unfortunately my card is sharing the same irq of an usb controller. I use this procedure:
Find the sharing irq, in my case return 21 lspci -s 00:05:00 -vvv
Find the irq
cat /proc/interrupts|grep 21:
Return me usb2
So search usb2
find /sys/devices/pci0000\:00/0000\:00\:* -iname usb2
Return me pci address, so I go to address and remove the usb2 hub-slot
cd /sys/devices/pci0000\:00/0000\:00\:13.2/ echo -n 1 > remove
The question is: how to read the usb2 slot?
If you have a question like: why do you remove the slot? The answer is: my pci card is really old(1999!) and doesn't share the irq, so if you run a vm with this card the interrupt must be unique, otherwise qemu/libvirt gives an error.