A vIRQ can be reported only from a threaded IRQ context. Change to use
to request_threaded_irq to support that.

Signed-off-by: Nicolin Chen <nicol...@nvidia.com>
---
 drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c 
b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
index dd7d030d2e89..ba029f7d24ce 100644
--- a/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
+++ b/drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
@@ -824,8 +824,9 @@ __tegra241_cmdqv_probe(struct arm_smmu_device *smmu, struct 
resource *res,
        cmdqv->dev = smmu->impl_dev;
 
        if (cmdqv->irq > 0) {
-               ret = request_irq(irq, tegra241_cmdqv_isr, 0, "tegra241-cmdqv",
-                                 cmdqv);
+               ret = request_threaded_irq(irq, NULL, tegra241_cmdqv_isr,
+                                          IRQF_ONESHOT, "tegra241-cmdqv",
+                                          cmdqv);
                if (ret) {
                        dev_err(cmdqv->dev, "failed to request irq (%d): %d\n",
                                cmdqv->irq, ret);
-- 
2.43.0


Reply via email to