On 11/21/24 12:14, Adrian Hunter wrote: > +u64 tdh_vp_enter(u64 tdvpr, struct tdx_module_args *args) > +{ > + args->rcx = tdvpr; > + > + return __seamcall_saved_ret(TDH_VP_ENTER, args); > +} > +EXPORT_SYMBOL_GPL(tdh_vp_enter); I made a similar comment on another series, but it stands here too: the typing of this wrappers really needs a closer look. Passing u64's around everywhere means zero type safety. Type safety is the reason that we have types like pte_t and pgprot_t in mm code even though they're really just longs (most of the time). I'd suggest keeping the tdx_td_page type as long as possible, probably until (for example) the ->rcx assignment, like this: args->rcx = td_page.pa;