On Mon, 2022-11-28 at 13:38 +0100, Claudio Imbrenda wrote: > Since a lot of code starts new CPUs using the current PSW mask, add a > wrapper to streamline the operation and hopefully make the code of the > tests more readable. > > Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > lib/s390x/smp.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/lib/s390x/smp.h b/lib/s390x/smp.h > index f4ae973d..0bcb1999 100644 > --- a/lib/s390x/smp.h > +++ b/lib/s390x/smp.h > @@ -47,4 +47,13 @@ void smp_setup(void); > int smp_sigp(uint16_t idx, uint8_t order, unsigned long parm, uint32_t *status); > struct lowcore *smp_get_lowcore(uint16_t idx); > > +static inline void smp_cpu_setup_cur_psw_mask(uint16_t idx, void *addr) > +{ > + struct psw psw = { > + .mask = extract_psw_mask(), > + .addr = (unsigned long)addr, > + }; > + smp_cpu_setup(idx, psw); > +} > + > #endif Reviewed-by: Janis Schoetterl-Glausch <scgl@xxxxxxxxxxxxx> Although I would have expected you to also use the function. I'm wondering if just improving the ergonomics of creating a psw would suffice #define PSW(m, a) ((struct psw){ .mask = (uint64_t)m, .addr = (uint64_t)a }) Then it would look like smp_cpu_setup(idx, PSW(extract_psw_mask(), addr)) and the macro might come in handy in other situations, too, but I haven't surveyed the code.