Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756138AbbLGWK3 (ORCPT ); Mon, 7 Dec 2015 17:10:29 -0500 Received: from e06smtp09.uk.ibm.com ([195.75.94.105]:32838 "EHLO e06smtp09.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754745AbbLGWK1 (ORCPT ); Mon, 7 Dec 2015 17:10:27 -0500 X-IBM-Helo: d06dlp01.portsmouth.uk.ibm.com X-IBM-MailFrom: borntraeger@de.ibm.com X-IBM-RcptTo: linux-kernel@vger.kernel.org;stable@vger.kernel.org Subject: Re: [PATCH 4.3 090/125] KVM: s390: fix wrong lookup of VCPUs by array index To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org References: <20151207145752.225938417@linuxfoundation.org> <20151207145756.688439386@linuxfoundation.org> Cc: stable@vger.kernel.org, David Hildenbrand From: Christian Borntraeger Message-ID: <566603CE.8040306@de.ibm.com> Date: Mon, 7 Dec 2015 23:10:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20151207145756.688439386@linuxfoundation.org> Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15120722-0037-0000-0000-000004E5E8E9 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2813 Lines: 87 On 12/07/2015 04:01 PM, Greg Kroah-Hartman wrote: > 4.3-stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: David Hildenbrand > > commit 152e9f65d66f0a3891efc3869440becc0e7ff53f upstream. Greg, That commit has a dependency, the patch description has Cc: stable@vger.kernel.org # db27a7a KVM: Provide function for VCPU lookup b but db27a7a is not in 4.1 4.2 and 4.3 stable queue Without that commit 4.1, 4.2 and 4.3 fail to build Is the syntax for a dependency wrong? > > For now, VCPUs were always created sequentially with incrementing > VCPU ids. Therefore, the index in the VCPUs array matched the id. > > As sequential creation might change with cpu hotplug, let's use > the correct lookup function to find a VCPU by id, not array index. > > Let's also use kvm_lookup_vcpu() for validation of the sending VCPU > on external call injection. > > Reviewed-by: Christian Borntraeger > Signed-off-by: David Hildenbrand > Signed-off-by: Christian Borntraeger > Signed-off-by: Greg Kroah-Hartman > > --- > arch/s390/kvm/interrupt.c | 3 +-- > arch/s390/kvm/sigp.c | 8 ++------ > 2 files changed, 3 insertions(+), 8 deletions(-) > > --- a/arch/s390/kvm/interrupt.c > +++ b/arch/s390/kvm/interrupt.c > @@ -1057,8 +1057,7 @@ static int __inject_extcall(struct kvm_v > src_id, 0); > > /* sending vcpu invalid */ > - if (src_id >= KVM_MAX_VCPUS || > - kvm_get_vcpu(vcpu->kvm, src_id) == NULL) > + if (kvm_get_vcpu_by_id(vcpu->kvm, src_id) == NULL) > return -EINVAL; > > if (sclp.has_sigpif) > --- a/arch/s390/kvm/sigp.c > +++ b/arch/s390/kvm/sigp.c > @@ -291,12 +291,8 @@ static int handle_sigp_dst(struct kvm_vc > u16 cpu_addr, u32 parameter, u64 *status_reg) > { > int rc; > - struct kvm_vcpu *dst_vcpu; > + struct kvm_vcpu *dst_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); > > - if (cpu_addr >= KVM_MAX_VCPUS) > - return SIGP_CC_NOT_OPERATIONAL; > - > - dst_vcpu = kvm_get_vcpu(vcpu->kvm, cpu_addr); > if (!dst_vcpu) > return SIGP_CC_NOT_OPERATIONAL; > > @@ -478,7 +474,7 @@ int kvm_s390_handle_sigp_pei(struct kvm_ > trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr); > > if (order_code == SIGP_EXTERNAL_CALL) { > - dest_vcpu = kvm_get_vcpu(vcpu->kvm, cpu_addr); > + dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); > BUG_ON(dest_vcpu == NULL); > > kvm_s390_vcpu_wakeup(dest_vcpu); > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/