Re: [PATCH v1 1/1] lib: s390x: add smp_cpu_setup_cur_psw_mask

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux