summaryrefslogtreecommitdiff
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2023-02-23 15:49:31 +0100
committerThomas Gleixner <tglx@linutronix.de>2023-02-23 15:49:31 +0100
commit5931e4eb55f904a4a221b57ff7d24afc0e463957 (patch)
treea6e51d12e3939d48470b75bc2bac28b337707076 /kernel/irq/manage.c
parentce7980ae9080f72f08d50355c4d9084d57aece63 (diff)
parent6f3ee0e22b4c62f44b8fa3c8de6e369a4d112a75 (diff)
Merge branch 'irq/core' into irq/urgent
Pull in the upstream changes so a fix for them can be applied.
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 5b7cf28df290..8ce75495e04f 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -723,10 +723,13 @@ EXPORT_SYMBOL(disable_irq_nosync);
* to complete before returning. If you use this function while
* holding a resource the IRQ handler may need you will deadlock.
*
- * This function may be called - with care - from IRQ context.
+ * Can only be called from preemptible code as it might sleep when
+ * an interrupt thread is associated to @irq.
+ *
*/
void disable_irq(unsigned int irq)
{
+ might_sleep();
if (!__disable_irq_nosync(irq))
synchronize_irq(irq);
}