• S
    x86_iommu/amd: remove V=1 check from amdvi_validate_dte() · 470506b5
    Singh, Brijesh 提交于
    Currently, the amdvi_validate_dte() assumes that a valid DTE will
    always have V=1. This is not true. The V=1 means that bit[127:1] are
    valid. A valid DTE can have IV=1 and V=0 (i.e address translation
    disabled and interrupt remapping enabled)
    
    Remove the V=1 check from amdvi_validate_dte(), make the caller
    responsible to check for V or IV bits.
    
    This also fixes a bug in existing code that when error is
    detected during the translation we'll fail the translation
    instead of assuming a passthrough mode.
    Signed-off-by: NBrijesh Singh <brijesh.singh@amd.com>
    Reviewed-by: NPeter Xu <peterx@redhat.com>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Eduardo Habkost <ehabkost@redhat.com>
    Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
    Cc: Tom Lendacky <Thomas.Lendacky@amd.com>
    Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
    470506b5
amd_iommu.c 39.5 KB