On Wed, 2024-12-04 at 11:57 -0800, Dave Hansen wrote: > On 12/2/24 17:03, Rick Edgecombe wrote: > > +u64 tdh_vp_wr(struct tdx_vp *vp, u64 field, u64 data, u64 mask) > > +{ > > + struct tdx_module_args args = { > > + .rcx = tdx_tdvpr_pa(vp), > > + .rdx = field, > > + .r8 = data, > > + .r9 = mask, > > + }; > > + > > + return seamcall(TDH_VP_WR, &args); > > +} > > +EXPORT_SYMBOL_GPL(tdh_vp_wr); > > There's a bit more tweaking you could _probably_ do here like giving > 'field' a real type that means something, probably an enum. But that's > well into nitpicky territory and might not buy anything in practice. > > Overall this set looks fine to me. The types are much more safe and > helpers are much more self-explanatory. So, for the series: > > Acked-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Thanks Dave! We have two more batches of SEAMCALLs required for base support. A bunch for managing the S-EPT, and the single multiplexed TDH.VP.ENTER one. Next, Yan is going to take this general scheme and post another RFC series with the S-EPT ones for review.