On Fri, 2017-05-05 at 11:39 -0700, KarimAllah Ahmed wrote: > Ever since commit 091d42e43d ("iommu/vt-d: Copy translation tables from > old kernel") 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 <j...@8bytes.org> > Cc: David Woodhouse <dw...@infradead.org> > Cc: David Woodhouse <d...@amazon.co.uk> > Cc: Anthony Liguori <aligu...@amazon.com> > Signed-off-by: KarimAllah Ahmed <karah...@amazon.de>
Acked-by: David Woodhouse <d...@amazon.co.uk> Cc: sta...@vger.kernel.org v4.2+ I'm still moderately unhappy about the whole "preserve existing mappings during kdump" thing, and wanted to have a PCI quirk for the known-broken-can't-be-reset-after-fault devices, and trigger this behaviour only then. Although I have a vague recollection of there being a slightly saner justification for it... perhaps this should be documented, if there is one?
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu