iommu/arm-smmu: Disable stalling faults for all endpoints
authorWill Deacon <will.deacon@arm.com>
Fri, 5 Aug 2016 18:49:45 +0000 (19:49 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 19 Aug 2016 08:48:01 +0000 (09:48 +0100)
commit3714ce1d6655098ee69ede632883e5874d67e4ab
tree7245fb629d464eb2da13da01ae556d8be7078887
parentaea2037e0d3e23c3be1498feae29f71ca997d9e6
iommu/arm-smmu: Disable stalling faults for all endpoints

Enabling stalling faults can result in hardware deadlock on poorly
designed systems, particularly those with a PCI root complex upstream of
the SMMU.

Although it's not really Linux's job to save hardware integrators from
their own misfortune, it *is* our job to stop userspace (e.g. VFIO
clients) from hosing the system for everybody else, even if they might
already be required to have elevated privileges.

Given that the fault handling code currently executes entirely in IRQ
context, there is nothing that can sensibly be done to recover from
things like page faults anyway, so let's rip this code out for now and
avoid the potential for deadlock.

Cc: <stable@vger.kernel.org>
Fixes: 48ec83bcbcf5 ("iommu/arm-smmu: Add initial driver support for ARM SMMUv3 devices")
Reported-by: Matt Evans <matt.evans@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu.c