pci: rework interrupt fd init and fix fd leak