From f62e37003c5dfe00100d64358656642d65c2cd7c Mon Sep 17 00:00:00 2001 From: Sumit Gupta Date: Tue, 15 Oct 2019 11:23:43 +0530 Subject: [PATCH] irq: tegra: add IRQF_NO_THREAD flag for doorbell Doorbell irq's are used for communication with BPMP. Adding IRQF_NO_THREAD flag in request_irq() for doorbell interrupts to prevent converting irq handler to thread. Converting to thread was causing crash as kthread is not available during early kernel init. Patch Added: 354 Bug 200511477 Change-Id: Id7c6797cfa0a3ec44745f9b0fc3f9cc58ad6968c Signed-off-by: Sumit Gupta Reviewed-on: https://git-master.nvidia.com/r/2218138 Reviewed-by: Bibek Basu GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions Tested-by: mobile promotions --- ...add-IRQF_NO_THREAD-flag-for-doorbell.patch | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 rt-patches/0354-irq-tegra-add-IRQF_NO_THREAD-flag-for-doorbell.patch diff --git a/rt-patches/0354-irq-tegra-add-IRQF_NO_THREAD-flag-for-doorbell.patch b/rt-patches/0354-irq-tegra-add-IRQF_NO_THREAD-flag-for-doorbell.patch new file mode 100644 index 000000000000..c873580a18eb --- /dev/null +++ b/rt-patches/0354-irq-tegra-add-IRQF_NO_THREAD-flag-for-doorbell.patch @@ -0,0 +1,38 @@ +From acf8828acb4aedd612148f27c75a0d5de4497c4c Mon Sep 17 00:00:00 2001 +From: Sumit Gupta +Date: Mon, 14 Oct 2019 18:27:33 +0530 +Subject: [PATCH 354/354] irq: tegra: add IRQF_NO_THREAD flag for doorbell +X-NVConfidentiality: public + +Doorbell irq's are used for communication with BPMP. +Adding IRQF_NO_THREAD flag in request_irq() for doorbell +interrupts to prevent converting irq hanlder to thread. +Converting to thread was causing crash as kthread is not +available during early kernel init. + +Bug 200511477 + +Change-Id: Id927221ce9dd601ef5127f886f07eb34dfc27763 +Signed-off-by: Sumit Gupta +--- + drivers/irqchip/irq-tegra.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c +index 2311084..0e5f4fa 100644 +--- a/drivers/irqchip/irq-tegra.c ++++ b/drivers/irqchip/irq-tegra.c +@@ -515,8 +515,8 @@ static int __init tegra_ictlr_init(struct device_node *node, + break; + + doorbells[idx].hwirq = irq_to_desc(irq)->irq_data.hwirq - 32; +- err = request_irq(doorbells[idx].irq, doorbell_handler, 0, +- "doorbell", &doorbells[idx]); ++ err = request_irq(doorbells[idx].irq, doorbell_handler, ++ IRQF_NO_THREAD, "doorbell", &doorbells[idx]); + if (err < 0) { + pr_err("doorbell %d irq %d request failure\n", + idx, irq); +-- +2.7.4 +