From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
linux-s390@vger.kernel.org, frankja@linux.ibm.com,
david@kernel.org, seiden@linux.ibm.com, nrb@linux.ibm.com,
schlameuss@linux.ibm.com, gra@linux.ibm.com
Subject: Re: [PATCH v1 02/11] KVM: s390: Use srcu in kvm_arch_vcpu_unlocked_ioctl()
Date: Tue, 11 Aug 2026 20:01:15 +0200 [thread overview]
Message-ID: <20260811200115.03b66ee0@p-imbrenda> (raw)
In-Reply-To: <c1816927-d455-4164-8ae1-d0ccbac5aa9a@de.ibm.com>
On Tue, 11 Aug 2026 19:26:42 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> Am 11.08.26 um 17:56 schrieb Claudio Imbrenda:
> > kvm_arch_vcpu_unlocked_ioctl() is called without further locks held, but
> > kvm_s390_inject_vcpu(), which is called from there, needs either the
> > kvm->srcu or the slots lock.
> >
> > Fix by taking the kvm->srcu in kvm_arch_vcpu_unlocked_ioctl().
> >
> > Fixes: ba5c1e9b6cee ("KVM: s390: interrupt subsystem, cpu timer, waitpsw")
> > Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
> > ---
> > arch/s390/kvm/kvm-s390.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
> > index 518a69c55e85..02c5428ba239 100644
> > --- a/arch/s390/kvm/kvm-s390.c
> > +++ b/arch/s390/kvm/kvm-s390.c
> > @@ -5444,6 +5444,8 @@ long kvm_arch_vcpu_unlocked_ioctl(struct file *filp, unsigned int ioctl,
> > void __user *argp = (void __user *)arg;
> > int rc;
> >
> > + guard(srcu)(&vcpu->kvm->srcu);
> > +
>
> not a bug, but just having srcu around both inject would avoid having holding srcu on the
> argument usercopy. This is not forbidden but might just take a while when paging.
>
> scoped_guard(srcu)(&vcpu->kvm->srcu)
> rc = kvm_s390_inject_vcpu(vcpu, &s390irq);
>
> in any way, no objection to your variant and a real fix.
>
> Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
I had not considered the user copy; I will definitely respin with the
scoped_guard()
>
>
> > switch (ioctl) {
> > case KVM_S390_IRQ: {
> > struct kvm_s390_irq s390irq;
>
next prev parent reply other threads:[~2026-08-11 18:01 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-11 15:56 [PATCH v1 00/11] KVM: s390: And then... even more fixes again Claudio Imbrenda
2026-08-11 15:56 ` [PATCH v1 01/11] KVM: s390: Properly handle NULL pointer in dat_cond_set_storage_key() Claudio Imbrenda
2026-08-12 7:02 ` Christian Borntraeger
2026-08-12 8:06 ` Christoph Schlameuss
2026-08-11 15:56 ` [PATCH v1 02/11] KVM: s390: Use srcu in kvm_arch_vcpu_unlocked_ioctl() Claudio Imbrenda
2026-08-11 17:26 ` Christian Borntraeger
2026-08-11 18:01 ` Claudio Imbrenda [this message]
2026-08-11 15:56 ` [PATCH v1 03/11] KVM: s390: Fix get_all_floating_irqs() Claudio Imbrenda
2026-08-12 7:11 ` Christian Borntraeger
2026-08-12 9:12 ` Claudio Imbrenda
2026-08-11 15:56 ` [PATCH v1 04/11] KVM: s390: Fix dirty marking in adapter_indicators_set*() Claudio Imbrenda
2026-08-11 15:56 ` [PATCH v1 05/11] KVM: s390: Fix pgste_get_trylock_multiple() Claudio Imbrenda
2026-08-11 17:07 ` Christian Borntraeger
2026-08-11 15:56 ` [PATCH v1 06/11] KVM: s390: Introduce extended topup for struct kvm_s390_mmu_cache Claudio Imbrenda
2026-08-11 15:56 ` [PATCH v1 07/11] KVM: s390: Move all code into kvm_arch_prepare_memory_region() Claudio Imbrenda
2026-08-12 8:39 ` Christian Borntraeger
2026-08-11 15:56 ` [PATCH v1 08/11] KVM: s390: Fix IRQ injection with SIGP Stop and Store Status Claudio Imbrenda
2026-08-11 15:56 ` [PATCH v1 09/11] KVM: s390: Fix kvm_s390_clear_pv_state() Claudio Imbrenda
2026-08-12 7:22 ` Christian Borntraeger
2026-08-12 8:07 ` Christian Borntraeger
2026-08-11 15:56 ` [PATCH v1 10/11] KVM: s390: Fix potential tiny kernel stack leak Claudio Imbrenda
2026-08-11 17:03 ` Christian Borntraeger
2026-08-11 15:56 ` [PATCH v1 11/11] KVM: s390: Fix _gaccess_shadow_fault() Claudio Imbrenda
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=20260811200115.03b66ee0@p-imbrenda \
--to=imbrenda@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=david@kernel.org \
--cc=frankja@linux.ibm.com \
--cc=gra@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=nrb@linux.ibm.com \
--cc=schlameuss@linux.ibm.com \
--cc=seiden@linux.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.