Re: [kvm-unit-tests PATCH 6/8] lib: s390x: Add PSW_MASK_64

Claudio Imbrenda
2021-08-13T08:50:56Z

On Fri, 13 Aug 2021 07:36:13 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:

> Let's replace the magic 0x0000000180000000ULL numeric constants with
> PSW_MASK_64 as it's used more often since the introduction of smp and
> sie.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>

Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

> ---
> lib/s390x/asm/arch_def.h | 3 +++
> lib/s390x/smp.c | 2 +-
> s390x/mvpg-sie.c | 2 +-
> s390x/sie.c | 2 +-
> s390x/skrf.c | 6 +++---
> 5 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h
> index 39c5ba99..245453c3 100644
> --- a/lib/s390x/asm/arch_def.h
> +++ b/lib/s390x/asm/arch_def.h
> @@ -50,6 +50,9 @@ struct psw {
> #define PSW_MASK_DAT 0x0400000000000000UL
> #define PSW_MASK_WAIT 0x0002000000000000UL
> #define PSW_MASK_PSTATE 0x0001000000000000UL
> +#define PSW_MASK_EA 0x0000000100000000UL
> +#define PSW_MASK_BA 0x0000000080000000UL
> +#define PSW_MASK_64 PSW_MASK_BA | PSW_MASK_EA;
>
> #define CR0_EXTM_SCLP 0x0000000000000200UL
> #define CR0_EXTM_EXTC 0x0000000000002000UL
> diff --git a/lib/s390x/smp.c b/lib/s390x/smp.c
> index ee68d676..228fe667 100644
> --- a/lib/s390x/smp.c
> +++ b/lib/s390x/smp.c
> @@ -202,7 +202,7 @@ int smp_cpu_setup(uint16_t addr, struct psw psw)
> cpu->lowcore->sw_int_psw.addr = psw.addr;
> cpu->lowcore->sw_int_grs[14] = psw.addr;
> cpu->lowcore->sw_int_grs[15] = (uint64_t)cpu->stack +
> (PAGE_SIZE * 4);
> - lc->restart_new_psw.mask = 0x0000000180000000UL;
> + lc->restart_new_psw.mask = PSW_MASK_64;
> lc->restart_new_psw.addr = (uint64_t)smp_cpu_setup_state;
> lc->sw_int_crs[0] = 0x0000000000040000UL;
>
> diff --git a/s390x/mvpg-sie.c b/s390x/mvpg-sie.c
> index 70d2fcfa..ccc273b4 100644
> --- a/s390x/mvpg-sie.c
> +++ b/s390x/mvpg-sie.c
> @@ -100,7 +100,7 @@ static void setup_guest(void)
> sie_guest_create(&vm, (uint64_t)guest, HPAGE_SIZE);
>
> vm.sblk->gpsw.addr = PAGE_SIZE * 4;
> - vm.sblk->gpsw.mask = 0x0000000180000000ULL;
> + vm.sblk->gpsw.mask = PSW_MASK_64;
> vm.sblk->ictl = ICTL_OPEREXC | ICTL_PINT;
> /* Enable MVPG interpretation as we want to test KVM and not
> ourselves */ vm.sblk->eca = ECA_MVPGI;
> diff --git a/s390x/sie.c b/s390x/sie.c
> index ed2c3263..87575b29 100644
> --- a/s390x/sie.c
> +++ b/s390x/sie.c
> @@ -27,7 +27,7 @@ static struct vm vm;
> static void test_diag(u32 instr)
> {
> vm.sblk->gpsw.addr = PAGE_SIZE * 2;
> - vm.sblk->gpsw.mask = 0x0000000180000000ULL;
> + vm.sblk->gpsw.mask = PSW_MASK_64;
>
> memset(guest_instr, 0, PAGE_SIZE);
> memcpy(guest_instr, &instr, 4);
> diff --git a/s390x/skrf.c b/s390x/skrf.c
> index 94e906a6..9488c32b 100644
> --- a/s390x/skrf.c
> +++ b/s390x/skrf.c
> @@ -125,15 +125,15 @@ static void ecall_cleanup(void)
> {
> struct lowcore *lc = (void *)0x0;
>
> - lc->ext_new_psw.mask = 0x0000000180000000UL;
> lc->sw_int_crs[0] = 0x0000000000040000;
> + lc->ext_new_psw.mask = PSW_MASK_64;
>
> /*
> * PGM old contains the ext new PSW, we need to clean it up,
> * so we don't get a special operation exception on the lpswe
> * of pgm old.
> */
> - lc->pgm_old_psw.mask = 0x0000000180000000UL;
> + lc->pgm_old_psw.mask = PSW_MASK_64;
>
> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION);
> set_flag(1);
> @@ -148,7 +148,7 @@ static void ecall_setup(void)
> register_pgm_cleanup_func(ecall_cleanup);
> expect_pgm_int();
> /* Put a skey into the ext new psw */
> - lc->ext_new_psw.mask = 0x00F0000180000000UL;
> + lc->ext_new_psw.mask = 0x00F0000000000000UL | PSW_MASK_64;
> /* Open up ext masks */
> ctl_set_bit(0, CTL0_EXTERNAL_CALL);
> mask = extract_psw_mask();