• Noa Osherovich's avatar
    PCI: Support INTx masking on ConnectX-4 with firmware x.14.1100+ · 1600f625
    Noa Osherovich authored
    Mellanox devices were marked as having INTx masking ability broken.  As a
    result, the VFIO driver fails to start when more than one device function
    is passed-through to a VM if both have the same INTx pin.
    
    Prior to Connect-IB, Mellanox devices exposed to the operating system one
    PCI function per all ports.  Starting from Connect-IB, the devices are
    function-per-port.  When passing the second function to a VM, VFIO will
    fail to start.
    
    Exclude ConnectX-4, ConnectX4-Lx and Connect-IB from the list of Mellanox
    devices marked as having broken INTx masking:
    
    - ConnectX-4 and ConnectX4-LX firmware version is checked. If INTx
      masking is supported, we unmark the broken INTx masking.
    - Connect-IB does not support INTx currently so will not cause any
      problem.
    
    [bhelgaas: call pci_disable_device() always, after iounmap()]
    Fixes: 11e42532 ("PCI: Assume all Mellanox devices have broken INTx masking")
    Signed-off-by: default avatarNoa Osherovich <noaos@mellanox.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
    Reviewed-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
    1600f625
quirks.c 159 KB