aboutsummaryrefslogtreecommitdiff
path: root/kernel/irq/manage.c
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil-cisco@xs4all.nl>2024-04-01 10:08:18 +0200
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2024-04-01 10:08:18 +0200
commitb82779648dfd3814df4e381f086326ec70fd791f (patch)
tree59868a9860d907e232275d7a5a667e91213e6aa9 /kernel/irq/manage.c
parentfe19aab844ad76a4e001082f633b1ac34f2a943d (diff)
parent39cd87c4eb2b893354f3b850f916353f2658ae6f (diff)
Merge tag 'v6.9-rc2' into media_stage
Linux 6.9-rc2 This is needed to pull in commit 11763a8598f88 ("fs/9p: fix uaf in in v9fs_stat2inode_dotl"), which fixes the broken virtme. With this fix the media regression tests can be run again without crashing.
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r--kernel/irq/manage.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index ad3eaf2ab959..bf9ae8a8686f 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1643,8 +1643,13 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
}
if (!((old->flags & new->flags) & IRQF_SHARED) ||
- (oldtype != (new->flags & IRQF_TRIGGER_MASK)) ||
- ((old->flags ^ new->flags) & IRQF_ONESHOT))
+ (oldtype != (new->flags & IRQF_TRIGGER_MASK)))
+ goto mismatch;
+
+ if ((old->flags & IRQF_ONESHOT) &&
+ (new->flags & IRQF_COND_ONESHOT))
+ new->flags |= IRQF_ONESHOT;
+ else if ((old->flags ^ new->flags) & IRQF_ONESHOT)
goto mismatch;
/* All handlers must agree on per-cpuness */