A SoC typically has multiple remoteprocs (ADSP, MPSS, CDSP, etc.), each registering its own SMEM GLINK instance. With the static name "glink-smem" all instances appear identically in /proc/interrupts, making it impossible to associate an IRQ with a specific remote processor.
Pass dev_name(&smem->dev) to devm_request_irq() instead. The device name is already set to "<parent>:<edge-node>" which uniquely identifies each instance without requiring an additional field in the driver struct. Signed-off-by: Chunkai Deng <[email protected]> --- drivers/rpmsg/qcom_glink_smem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c index 62adc4db2317..edab912557ac 100644 --- a/drivers/rpmsg/qcom_glink_smem.c +++ b/drivers/rpmsg/qcom_glink_smem.c @@ -307,7 +307,7 @@ struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent, smem->irq = of_irq_get(smem->dev.of_node, 0); ret = devm_request_irq(&smem->dev, smem->irq, qcom_glink_smem_intr, IRQF_NO_SUSPEND | IRQF_NO_AUTOEN, - "glink-smem", smem); + dev_name(&smem->dev), smem); if (ret) { dev_err(&smem->dev, "failed to request IRQ\n"); goto err_put_dev; -- 2.34.1

