On Mon, Apr 22, 2024, Rick P Edgecombe wrote: > On Mon, 2024-04-22 at 14:46 +0300, kirill.shutemov@xxxxxxxxxxxxxxx wrote: > > On Fri, Apr 19, 2024 at 08:04:26PM +0000, Edgecombe, Rick P wrote: > > > On Fri, 2024-04-19 at 17:46 +0300, kirill.shutemov@xxxxxxxxxxxxxxx wrote: > > > > > > > > > Side topic #3, the ud2 to induce panic should be out-of-line. > > > > > > > > Yeah. I switched to the inline one while debugging one section mismatch > > > > issue and forgot to switch back. > > > > > > Sorry, why do we need to panic? > > > > It panics in cases that should never occur if the TDX module is > > functioning properly. For example, TDVMCALL itself should never fail, > > although the leaf function could. > > Panic should normally be for desperate situations when horrible things will > likely happen if we continue, right? Why are we adding a panic when we didn't > have one before? Is it a second change, or a side affect of the refactor? The kernel already does panic() if TDCALL itself fails, static inline void tdcall(u64 fn, struct tdx_module_args *args) { if (__tdcall_ret(fn, args)) panic("TDCALL %lld failed (Buggy TDX module!)\n", fn); } /* Called from __tdx_hypercall() for unrecoverable failure */ noinstr void __noreturn __tdx_hypercall_failed(void) { instrumentation_begin(); panic("TDVMCALL failed. TDX module bug?"); } it's just doesn in C code via panic(), not in asm via a bare ud2.