Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fix from Thomas Gleixner:
"A single bugfix for the irq core to prevent silent data corruption and
malfunction of threaded interrupts under certain conditions"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
genirq: Make force irq threading setup more robust

+8 -1
+8 -1
kernel/irq/manage.c
··· 1068 1068 if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT)) 1069 1069 return 0; 1070 1070 1071 + /* 1072 + * No further action required for interrupts which are requested as 1073 + * threaded interrupts already 1074 + */ 1075 + if (new->handler == irq_default_primary_handler) 1076 + return 0; 1077 + 1071 1078 new->flags |= IRQF_ONESHOT; 1072 1079 1073 1080 /* ··· 1082 1075 * thread handler. We force thread them as well by creating a 1083 1076 * secondary action. 1084 1077 */ 1085 - if (new->handler != irq_default_primary_handler && new->thread_fn) { 1078 + if (new->handler && new->thread_fn) { 1086 1079 /* Allocate the secondary action */ 1087 1080 new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL); 1088 1081 if (!new->secondary)