diff options
author | Jean-Sébastien Pédron <dumbbell@FreeBSD.org> | 2022-11-11 20:32:58 +0300 |
---|---|---|
committer | Jean-Sébastien Pédron <dumbbell@FreeBSD.org> | 2022-11-11 20:32:58 +0300 |
commit | f021c5c4a1770987f01530fa59e5ccba3759c0ab (patch) | |
tree | d9921d029de009c5b49ef96ec47ed49d0ba324cd | |
parent | bfe6bfd79e05041f0b3ca2ca2f18405f5c4a6484 (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.h | 7 |
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; }; |