Re: [PATCH v5 2/3] kho: add KHOSER_COPY_PTR to allow phys copy of serialized ptr
| Newsgroups | org.infradead.lists.kexec,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
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