]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Sep 2016 06:34:48 +0000 (08:34 +0200)
commitd182fcb5ad4172d26bcd5a4af71fc08c0cb85481
treeea5737f28c78fc0fb097d844d6f969edceba190c
parentc2b15a151773fee378a31e33fbb43b9aaaa08468
iommu/arm-smmu: Disable stalling faults for all endpoints

commit 3714ce1d6655098ee69ede632883e5874d67e4ab upstream.

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.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iommu/arm-smmu.c