iommu/qcom: Fix bogus detach logic
authorRobin Murphy <robin.murphy@arm.com>
Tue, 18 Feb 2020 18:12:41 +0000 (18:12 +0000)
committerJoerg Roedel <jroedel@suse.de>
Wed, 19 Feb 2020 10:55:48 +0000 (11:55 +0100)
commitfaf305c51aeabd1ea2d7131e798ef5f55f4a7750
treeca7bcab187843da3d6dcf62cac5a15408c0dca49
parent3dfee47b215e49788cfc80e474820ea2e948c031
iommu/qcom: Fix bogus detach logic

Currently, the implementation of qcom_iommu_domain_free() is guaranteed
to do one of two things: WARN() and leak everything, or dereference NULL
and crash. That alone is terrible, but in fact the whole idea of trying
to track the liveness of a domain via the qcom_domain->iommu pointer as
a sanity check is full of fundamentally flawed assumptions. Make things
robust and actually functional by not trying to be quite so clever.

Reported-by: Brian Masney <masneyb@onstation.org>
Tested-by: Brian Masney <masneyb@onstation.org>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Fixes: 0ae349a0f33f ("iommu/qcom: Add qcom_iommu")
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Stephan Gerhold <stephan@gerhold.net>
Cc: stable@vger.kernel.org # v4.14+
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/qcom_iommu.c