Tarun Sahu <[email protected]> writes: > 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 <[email protected]> > --- > 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 needs to be updated as per Mike's comment on v4. > /* > * 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
