Re: [PATCH] iommu: intel: Flush the IOTLB to get rid of the initial kdump mappings

From: Joerg Roedel
Date: Wed May 17 2017 - 08:46:42 EST


On Fri, May 05, 2017 at 11:39:59AM -0700, KarimAllah Ahmed wrote:
> Ever since commit 091d42e43d ("iommu/vt-d: Copy translation tables from
> old kernel")

Please put the commit-information into a Fixes: tag next time. I'll
added a Fixes tag to the commit this time.

> the kdump kernel copies the IOMMU context tables from the
> previous kernel. Each device mappings will be destroyed once the driver
> for the respective device takes over.
>
> This unfortunately breaks the workflow of mapping and unmapping a new
> context to the IOMMU. The mapping function assumes that either:
>
> 1) Unmapping did the proper IOMMU flushing and it only ever flush if the
> IOMMU unit supports caching invalid entries.
> 2) The system just booted and the initialization code took care of
> flushing all IOMMU caches.
>
> This assumption is not true for the kdump kernel since the context
> tables have been copied from the previous kernel and translations could
> have been cached ever since. So make sure to flush the IOTLB as well
> when we destroy these old copied mappings.
>
> Cc: Joerg Roedel <joro@xxxxxxxxxx>
> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
> Cc: David Woodhouse <dwmw@xxxxxxxxxxxx>
> Cc: Anthony Liguori <aliguori@xxxxxxxxxx>
> Signed-off-by: KarimAllah Ahmed <karahmed@xxxxxxxxx>

Applied to iommu/fixes, thanks.