• Thomas Gleixner's avatar
    iommu/amd: Fix irq remapping detection logic · 3f4cb7c0
    Thomas Gleixner authored
    Commit 7fa1c842 "iommu/irq_remapping: Change variable
    disable_irq_remap to be static" returns unconditionally success from
    the irq remapping prepare callback if the iommu can be initialized.
    
    The change assumed that iommu_go_to_state(IOMMU_ACPI_FINISHED) returns
    a failure if irq remapping is not enabled, but thats not the case.
    
    The function returns success when the iommu is initialized to the
    point which is required for remapping to work. The actual state of the
    irq remapping feature is reflected in the status variable
    amd_iommu_irq_remap, which is not considered in the return value.
    
    The fix is simple: If the iommu_go_to_state() returns success,
    evaluate the remapping state amd_iommu_irq_remap and reflect it in the
    return value.
    
    Fixes: 7fa1c842 iommu/irq_remapping: Change variable disable_irq_remap to be static
    Reported-and-tested-by: default avatarBorislav Petkov <bp@alien8.de>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Jiang Liu <jiang.liu@linux.intel.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    3f4cb7c0
amd_iommu_init.c 57.6 KB