[PATCH 4.17 042/336] irqchip/ls-scfg-msi: Map MSIs in the iommu

From: Greg Kroah-Hartman
Date: Wed Aug 01 2018 - 13:37:12 EST


4.17-stable review patch. If anyone has any objections, please let me know.

------------------

From: Laurentiu Tudor <laurentiu.tudor@xxxxxxx>

[ Upstream commit 0cdd431c337e99177e68597f3de34bedd3a20a74 ]

Add the required iommu_dma_map_msi_msg() when composing the MSI message,
otherwise the interrupts will not work.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@xxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: jason@xxxxxxxxxxxxxx
Cc: marc.zyngier@xxxxxxx
Cc: zhiqiang.hou@xxxxxxx
Cc: minghuan.lian@xxxxxxx
Link: https://lkml.kernel.org/r/20180605122727.12831-1-laurentiu.tudor@xxxxxxx
Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/irqchip/irq-ls-scfg-msi.c | 3 +++
1 file changed, 3 insertions(+)

--- a/drivers/irqchip/irq-ls-scfg-msi.c
+++ b/drivers/irqchip/irq-ls-scfg-msi.c
@@ -21,6 +21,7 @@
#include <linux/of_pci.h>
#include <linux/of_platform.h>
#include <linux/spinlock.h>
+#include <linux/dma-iommu.h>

#define MSI_IRQS_PER_MSIR 32
#define MSI_MSIR_OFFSET 4
@@ -94,6 +95,8 @@ static void ls_scfg_msi_compose_msg(stru

if (msi_affinity_flag)
msg->data |= cpumask_first(data->common->affinity);
+
+ iommu_dma_map_msi_msg(data->irq, msg);
}

static int ls_scfg_msi_set_affinity(struct irq_data *irq_data,