• S
    iommu/amd: Flush old domains in kdump kernel · 52f32e4a
    Stuart Hayes 提交于
    [ Upstream commit 36b7200f67dfe75b416b5281ed4ace9927b513bc ]
    
    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: NStuart Hayes <stuart.w.hayes@gmail.com>
    Fixes: 3ac3e5ee ('iommu/amd: Copy old trans table from old kernel')
    Signed-off-by: NJoerg Roedel <jroedel@suse.de>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    52f32e4a
amd_iommu.c 105.5 KB