• Stuart Hayes's avatar
    iommu/amd: Flush old domains in kdump kernel · 36b7200f
    Stuart Hayes authored
    When devices are attached to the amd_iommu in a kdump kernel, the old device
    table entries (DTEs), which were copied from the crashed kernel, will be
    overwritten with a new domain number.  When the new DTE is written, the IOMMU
    is told to flush the DTE from its internal cache--but it is not told to flush
    the translation cache entries for the old domain number.
    
    Without this patch, AMD systems using the tg3 network driver fail when kdump
    tries to save the vmcore to a network system, showing network timeouts and
    (sometimes) IOMMU errors in the kernel log.
    
    This patch will flush IOMMU translation cache entries for the old domain when
    a DTE gets overwritten with a new domain number.
    Signed-off-by: default avatarStuart Hayes <stuart.w.hayes@gmail.com>
    Fixes: 3ac3e5ee ('iommu/amd: Copy old trans table from old kernel')
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    36b7200f
amd_iommu.c 105 KB