iommu/vt-d: Turn off translations at shutdown
authorDeepa Dinamani <deepa.kernel@gmail.com>
Sun, 10 Nov 2019 17:27:44 +0000 (09:27 -0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 11 Nov 2019 15:07:13 +0000 (16:07 +0100)
commit6c3a44ed3c553c324845744f30bcd1d3b07d61fd
tree2c2eb3c804f9f9bf01704683efe113b60fbeb4e0
parentf036c7fa0ab60b7ea47560c32c78e435eb1cd214
iommu/vt-d: Turn off translations at shutdown

The intel-iommu driver assumes that the iommu state is
cleaned up at the start of the new kernel.
But, when we try to kexec boot something other than the
Linux kernel, the cleanup cannot be relied upon.
Hence, cleanup before we go down for reboot.

Keeping the cleanup at initialization also, in case BIOS
leaves the IOMMU enabled.

I considered turning off iommu only during kexec reboot, but a clean
shutdown seems always a good idea. But if someone wants to make it
conditional, such as VMM live update, we can do that.  There doesn't
seem to be such a condition at this time.

Tested that before, the info message
'DMAR: Translation was enabled for <iommu> but we are not in kdump mode'
would be reported for each iommu. The message will not appear when the
DMA-remapping is not enabled on entry to the kernel.

Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/dmar.c
drivers/iommu/intel-iommu.c
include/linux/dmar.h