Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/freebsd-src.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <dumbbell@FreeBSD.org>2022-11-11 20:32:58 +0300
committerJean-Sébastien Pédron <dumbbell@FreeBSD.org>2022-11-11 20:32:58 +0300
commitf021c5c4a1770987f01530fa59e5ccba3759c0ab (patch)
treed9921d029de009c5b49ef96ec47ed49d0ba324cd
parentbfe6bfd79e05041f0b3ca2ca2f18405f5c4a6484 (diff)
linuxkpi: Update `struct irq_work`
The previous `llnode` field is moved inside another field `node`. This `node` field is a `struct __call_single_node` in Linux. Here, we simply add an anonymous struct with the `llnode` field inside. That field's new name is `llist` now. V2: Use an anonymous union to keep the structure backward compatible with drivers using the previous `llnode` field. This was suggested by wufl@ and hselasky@. Thank you! Reviewed by: manu Approved by: manu Differential Revision: https://reviews.freebsd.org/D36955
-rw-r--r--sys/compat/linuxkpi/common/include/linux/irq_work.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/irq_work.h b/sys/compat/linuxkpi/common/include/linux/irq_work.h
index ec71a7ee094f..a263d730967b 100644
--- a/sys/compat/linuxkpi/common/include/linux/irq_work.h
+++ b/sys/compat/linuxkpi/common/include/linux/irq_work.h
@@ -51,7 +51,12 @@ typedef void (*irq_work_func_t)(struct irq_work *);
struct irq_work {
struct task irq_task;
- struct llist_node llnode;
+ union {
+ struct llist_node llnode;
+ struct {
+ struct llist_node llist;
+ } node;
+ };
irq_work_func_t func;
};