[PATCH v5 2/3] kho: add KHOSER_COPY_PTR to allow phys copy of serialized ptr
Tarun Sahu
tarunsahu at google.com
Tue Jun 23 03:52:00 PDT 2026
Adding KHOSER_COPY_PTR to copy one serializeable pointer to
another. It basically allows copy of phys val of the
serializeable pointer.
It ignores the typecheck if any of the argument is of void *
Signed-off-by: Tarun Sahu <tarunsahu at google.com>
---
include/linux/kho/abi/kexec_handover.h | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/include/linux/kho/abi/kexec_handover.h b/include/linux/kho/abi/kexec_handover.h
index 5e2eb8519bda..c1b61d875dcc 100644
--- a/include/linux/kho/abi/kexec_handover.h
+++ b/include/linux/kho/abi/kexec_handover.h
@@ -139,6 +139,17 @@
(typeof((s).ptr))((s).phys ? phys_to_virt((s).phys) : NULL); \
})
+/* Copies one serializable pointer to another. */
+#define KHOSER_COPY_PTR(dest, src) \
+ ({ \
+ static_assert( \
+ __builtin_types_compatible_p(typeof((dest).ptr), typeof((src).ptr)) || \
+ __builtin_types_compatible_p(typeof((dest).ptr), void *) || \
+ __builtin_types_compatible_p(typeof((src).ptr), void *), \
+ "pointer type mismatch in KHOSER_COPY_PTR" \
+ ); \
+ (dest).phys = (src).phys; \
+ })
/*
* This header is embedded at the beginning of each `kho_vmalloc_chunk`
* and contains a pointer to the next chunk in the linked list,
--
2.55.0.rc0.786.g65d90a0328-goog
More information about the kexec
mailing list