Re: [PATCH v1 2/4] KVM: s390: vsie: Disable some bits when in ESA mode

Eric Farman
2026-04-01T13:46:11Z

On Wed, 2026-04-01 at 14:58 +0200, Christian Borntraeger wrote:
>
> Am 01.04.26 um 04:09 schrieb Eric Farman:
> > In the event that a nested guest is put in ESA mode,
> > ensure that some bits are scrubbed from the shadow SCB.
> >
> > Signed-off-by: Eric Farman <farman@linux.ibm.com>
>
> Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
> apart from one thing below
>
> > ---
> > arch/s390/kvm/vsie.c | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> >
> > diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c
> > index 888370a02ef7..584fc7803632 100644
> > --- a/arch/s390/kvm/vsie.c
> > +++ b/arch/s390/kvm/vsie.c
> > @@ -387,6 +387,17 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> > return 0;
> > }
> >
> > +static void shadow_esa(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> > +{
> > + struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
> > +
> > + /* Ensure these bits are indeed turned off */
> > + scb_s->eca &= ~ECA_VX;
> > + scb_s->ecb &= ~ECB_GS;
> > + scb_s->ecb3 &= ~ECB3_RI;
> > + scb_s->ecd &= ~ECD_HOSTREGMGMT;
>
> shouldnt we also remove the TE bit (transactional execution)?

Ahh, good point. Yeah, that should be removed.

@Janosch, I'll spin a quick v2 with this and the other nits, so you don't have to do the fixups.
Just want to doublecheck this one.

>
> > +}
> > +
> > /* shadow (round up/down) the ibc to avoid validity icpt */
> > static void prepare_ibc(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> > {
> > @@ -590,6 +601,9 @@ static int shadow_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> > scb_s->hpid = HPID_VSIE;
> > scb_s->cpnc = scb_o->cpnc;
> >
> > + if (!(atomic_read(&scb_s->cpuflags) & CPUSTAT_ZARCH))
> > + shadow_esa(vcpu, vsie_page);
> > +
> > prepare_ibc(vcpu, vsie_page);
> > rc = shadow_crycb(vcpu, vsie_page);