Kernel KVM virtualization development
 help / color / mirror / Atom feed
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: Janosch Frank <frankja@linux.ibm.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	borntraeger@linux.ibm.com, akrowiak@linux.ibm.com
Subject: Re: [RFC 10/10] KVM: s390: Cleanup kvm_s390_store_status_unloaded
Date: Wed, 18 Mar 2026 16:51:51 +0100	[thread overview]
Message-ID: <20260318165151.19e0aff8@p-imbrenda> (raw)
In-Reply-To: <20260316180310.17765-11-frankja@linux.ibm.com>

On Mon, 16 Mar 2026 16:23:57 +0000
Janosch Frank <frankja@linux.ibm.com> wrote:

> Fixup comments, use gpa_t and replace magic constants.
> 
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> ---
>  arch/s390/kvm/kvm-s390.c | 24 ++++++++++++++++--------
>  arch/s390/kvm/kvm-s390.h |  4 ++--
>  2 files changed, 18 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> index 1668580008c6..c76f83b38d27 100644
> --- a/arch/s390/kvm/kvm-s390.c
> +++ b/arch/s390/kvm/kvm-s390.c
> @@ -4993,11 +4993,12 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
>  
>  /*
>   * store status at address
> - * we use have two special cases:
> - * KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
> - * KVM_S390_STORE_STATUS_PREFIXED: -> prefix
> + *
> + * We have two special cases:
> + * - KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit
> + * - KVM_S390_STORE_STATUS_PREFIXED: -> prefix
>   */

since you're touching this comment block, make it proper kerneldoc,
describing parameters, return value, etc

the rest of the patch is good

> -int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long gpa)
> +int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, gpa_t gpa)
>  {
>  	unsigned char archmode = 1;
>  	freg_t fprs[NUM_FPRS];
> @@ -5007,15 +5008,22 @@ int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long gpa)
>  
>  	px = kvm_s390_get_prefix(vcpu);
>  	if (gpa == KVM_S390_STORE_STATUS_NOADDR) {
> -		if (write_guest_abs(vcpu, 163, &archmode, 1))
> +		if (write_guest_abs(vcpu, __LC_AR_MODE_ID, &archmode, 1))
>  			return -EFAULT;
>  		gpa = 0;
>  	} else if (gpa == KVM_S390_STORE_STATUS_PREFIXED) {
> -		if (write_guest_real(vcpu, 163, &archmode, 1))
> +		if (write_guest_real(vcpu, __LC_AR_MODE_ID, &archmode, 1))
>  			return -EFAULT;
>  		gpa = px;
> -	} else
> +	} else {
> +		/*
> +		 * Store status at address does NOT store vrs and arch
> +		 * indication. Since we add __LC_FPREGS_SAVE_AREA to
> +		 * the address when writing, we need to subtract it
> +		 * here.
> +		 */
>  		gpa -= __LC_FPREGS_SAVE_AREA;
> +	}
>  
>  	/* manually convert vector registers if necessary */
>  	if (cpu_has_vx()) {
> @@ -5049,7 +5057,7 @@ int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long gpa)
>  	return rc ? -EFAULT : 0;
>  }
>  
> -int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr)
> +int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, gpa_t addr)
>  {
>  	/*
>  	 * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy
> diff --git a/arch/s390/kvm/kvm-s390.h b/arch/s390/kvm/kvm-s390.h
> index 1ffaec723a30..9cfc3caee334 100644
> --- a/arch/s390/kvm/kvm-s390.h
> +++ b/arch/s390/kvm/kvm-s390.h
> @@ -450,8 +450,8 @@ int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu);
>  
>  /* implemented in kvm-s390.c */
>  int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
> -int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr);
> -int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr);
> +int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, gpa_t addr);
> +int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, gpa_t addr);
>  int kvm_s390_vcpu_start(struct kvm_vcpu *vcpu);
>  int kvm_s390_vcpu_stop(struct kvm_vcpu *vcpu);
>  void kvm_s390_vcpu_block(struct kvm_vcpu *vcpu);


  reply	other threads:[~2026-03-18 15:51 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-16 16:23 [RFC 00/10] KVM: s390: spring cleanup Janosch Frank
2026-03-16 16:23 ` [RFC 01/10] KVM: s390: diag258: Pass absolute address to kvm_is_gpa_in_memslot() Janosch Frank
2026-03-16 18:34   ` Christian Borntraeger
2026-03-17 10:01   ` Christoph Schlameuss
2026-03-18 16:04   ` Claudio Imbrenda
2026-03-16 16:23 ` [RFC 02/10] KVM: s390: Consolidate lpswe variants Janosch Frank
2026-03-16 18:47   ` Christian Borntraeger
2026-03-17  8:13     ` Janosch Frank
2026-03-17 13:03     ` [PATCH] KVM: s390: Fix lpsw/e breaking event handling Janosch Frank
2026-03-17 13:30       ` Christian Borntraeger
2026-03-23 15:08       ` Hendrik Brueckner
2026-03-16 16:23 ` [RFC 03/10] KVM: s390: Convert shifts to gpa_to_gfn() Janosch Frank
2026-03-16 18:49   ` Christian Borntraeger
2026-03-17 10:38   ` Christoph Schlameuss
2026-03-18 14:26   ` Claudio Imbrenda
2026-03-16 16:23 ` [RFC 04/10] KVM: s390: kvm_s390_real_to_abs() should return gpa_t Janosch Frank
2026-03-16 18:53   ` Christian Borntraeger
2026-03-18  7:10   ` Christoph Schlameuss
2026-03-18 14:29   ` Claudio Imbrenda
2026-03-16 16:23 ` [RFC 05/10] KVM: s390: vsie: Cleanup and fixup of crycb handling Janosch Frank
2026-03-18 14:13   ` Christoph Schlameuss
2026-03-18 16:48   ` Claudio Imbrenda
2026-03-20 12:01   ` Anthony Krowiak
2026-03-23 15:54     ` Janosch Frank
2026-03-16 16:23 ` [RFC 06/10] KVM: s390: Rework lowcore access functions Janosch Frank
2026-03-18 14:25   ` Claudio Imbrenda
2026-03-23  9:11   ` Christoph Schlameuss
2026-03-16 16:23 ` [RFC 07/10] KVM: s390: Use gpa_t and gva_t in gaccess files Janosch Frank
2026-03-18 15:36   ` Claudio Imbrenda
2026-03-23  9:10   ` Christoph Schlameuss
2026-03-16 16:23 ` [RFC 08/10] KVM: s390: Use gpa_t in priv.c Janosch Frank
2026-03-18 16:02   ` Claudio Imbrenda
2026-03-30 14:53     ` Janosch Frank
2026-03-23  9:28   ` Christoph Schlameuss
2026-03-16 16:23 ` [RFC 09/10] KVM: s390: Use gpa_t in pv.c Janosch Frank
2026-03-18 15:46   ` Claudio Imbrenda
2026-03-23  9:41   ` Christoph Schlameuss
2026-03-30 14:36     ` Janosch Frank
2026-03-16 16:23 ` [RFC 10/10] KVM: s390: Cleanup kvm_s390_store_status_unloaded Janosch Frank
2026-03-18 15:51   ` Claudio Imbrenda [this message]
2026-03-23  9:47   ` Christoph Schlameuss

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260318165151.19e0aff8@p-imbrenda \
    --to=imbrenda@linux.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox