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

irqwork: Move data struct to a types header

... to avoid header recursion hell.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://patch.msgid.link/20251119172550.152813625@linutronix.de

+16 -7
+2 -7
include/linux/irq_work.h
··· 2 2 #ifndef _LINUX_IRQ_WORK_H 3 3 #define _LINUX_IRQ_WORK_H 4 4 5 - #include <linux/smp_types.h> 5 + #include <linux/irq_work_types.h> 6 6 #include <linux/rcuwait.h> 7 + #include <linux/smp_types.h> 7 8 8 9 /* 9 10 * An entry can be in one of four states: ··· 14 13 * pending next, 3 -> {busy} : queued, pending callback 15 14 * busy NULL, 2 -> {free, claimed} : callback in progress, can be claimed 16 15 */ 17 - 18 - struct irq_work { 19 - struct __call_single_node node; 20 - void (*func)(struct irq_work *); 21 - struct rcuwait irqwait; 22 - }; 23 16 24 17 #define __IRQ_WORK_INIT(_func, _flags) (struct irq_work){ \ 25 18 .node = { .u_flags = (_flags), }, \
+14
include/linux/irq_work_types.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + #ifndef _LINUX_IRQ_WORK_TYPES_H 3 + #define _LINUX_IRQ_WORK_TYPES_H 4 + 5 + #include <linux/smp_types.h> 6 + #include <linux/types.h> 7 + 8 + struct irq_work { 9 + struct __call_single_node node; 10 + void (*func)(struct irq_work *); 11 + struct rcuwait irqwait; 12 + }; 13 + 14 + #endif