Re: [PATCH v2 6/9] KVM: s390: Fix IRQ injection with SIGP Stop and Store Status
| Newsgroups | org.kernel.vger.linux-s390,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
> When __inject_sigp_stop() is called for a Stop and Store Status > operation, if the vCPU is running, the interrupt is marked as pending > and the status is stored by the thread performing the KVM_RUN IOCTL. > > If the vCPU is already stopped, the status is stored immediately. > > Storing the status means writing into userspace, which might fault, and > __inject_sigp_stop() is called from do_inject_vcpu() which in turn is > always called holding a spinlock, which is obviously an issue. > > Fix this by returning -EWOULDBLOCK from __inject_sigp_stop(), and > adding a bool flag to indicate whether a store status is needed. The > callers of do_inject_vcpu() are modified to pass the pointer to the > bool flag; whenever a Store Status operation is needed, the callers can > now perform it outside the spinlock. > > Opportunistically refactor kvm_s390_set_irq_state() to use > scoped_guard() and __free(). > > Signed-off-by: Claudio Imbrenda <[email protected]> Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=6