Re: [PATCH v6 3/3] luo: Update serialized data to use KHOSER_PTR

From: Pasha Tatashin

Date: Mon Jun 29 2026 - 03:14:50 EST


On Sun, 28 Jun 2026 00:11:14 +0000, Tarun Sahu <tarunsahu@xxxxxxxxxx> wrote:
> diff --git a/include/linux/kho/abi/luo.h b/include/linux/kho/abi/luo.h
> index 288076de6d4a..9e78625cfdc1 100644
> --- a/include/linux/kho/abi/luo.h
> +++ b/include/linux/kho/abi/luo.h
> @@ -89,14 +90,14 @@ struct luo_ser {
> /**
> * struct luo_file_ser - Represents the serialized preserves files.
> * @compatible: File handler compatible string.
> - * @data: Private data
> + * @serialized_data: The serialized KHO pointer for this file

I am concerned about layring violation here.

LUO is designed as a generic, opaque transport layer that promises to
preserve 64 bits of raw data. How those 64 bits are interpreted is
entirely up to individual clients.

While some clients like memfd_luo will use those 64 bits as a physical
address pointing to KHO-preserved structures, other clients may store a
generic token, cookie, index, or non-pointer status. By
changing u64 data to DECLARE_KHOSER_PTR(serialized_data, void *) in
struct luo_file_ser, we force KHO pointer semantics and layout
constraints on all generic LUO files.

Clients that need KHO pointer serialization must cast that opaque 64-bit
value to/from a KHOSER_PTR within their own callbacks.

Also, the field descriptions in struct luo_file_ser are no longer
aligned due to the length of the new variable name, I believe it will
cause warning when making docs.

--
Pasha Tatashin <pasha.tatashin@xxxxxxxxxx>