On 5/28/24 02:55, Kirill A. Shutemov wrote: > +/* Stop new private<->shared conversions */ > +static void tdx_kexec_begin(bool crash) > +{ > + /* > + * Crash kernel reaches here with interrupts disabled: can't wait for > + * conversions to finish. > + * > + * If race happened, just report and proceed. > + */ > + if (!set_memory_enc_stop_conversion(!crash)) > + pr_warn("Failed to stop shared<->private conversions\n"); > +} I don't like having to pass 'crash' in here. If interrupts are the problem we have ways of testing for those directly. If it's being in an oops that's a problem, we have 'oops_in_progress' for that. In other words, I'd much rather this function (or better yet set_memory_enc_stop_conversion() itself) use some existing API to change its behavior in a crash rather than have the context be passed down and twiddled through several levels of function calls. There are a ton of these in the console code: if (oops_in_progress) foo_trylock(); else foo_lock(); To me, that's a billion times more clear than a 'wait' argument that gets derives from who-knows-what that I have to trace through ten levels of function calls.