Skip to content
  • Stefano Stabellini's avatar
    xen: fix MSI setup and teardown for PV on HVM guests · af42b8d1
    Stefano Stabellini authored
    
    
    When remapping MSIs into pirqs for PV on HVM guests, qemu is responsible
    for doing the actual mapping and unmapping.
    We only give qemu the desired pirq number when we ask to do the mapping
    the first time, after that we should be reading back the pirq number
    from qemu every time we want to re-enable the MSI.
    
    This fixes a bug in xen_hvm_setup_msi_irqs that manifests itself when
    trying to enable the same MSI for the second time: the old MSI to pirq
    mapping is still valid at this point but xen_hvm_setup_msi_irqs would
    try to assign a new pirq anyway.
    A simple way to reproduce this bug is to assign an MSI capable network
    card to a PV on HVM guest, if the user brings down the corresponding
    ethernet interface and up again, Linux would fail to enable MSIs on the
    device.
    
    Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
    af42b8d1