From patchwork Wed May 13 09:16:43 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Subrata Modak X-Patchwork-Id: 23518 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n4D9HDxc020478 for ; Wed, 13 May 2009 09:17:13 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754628AbZEMJRG (ORCPT ); Wed, 13 May 2009 05:17:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753868AbZEMJRF (ORCPT ); Wed, 13 May 2009 05:17:05 -0400 Received: from e1.ny.us.ibm.com ([32.97.182.141]:51296 "EHLO e1.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753256AbZEMJRD (ORCPT ); Wed, 13 May 2009 05:17:03 -0400 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e1.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n4D9DAEi026406 for ; Wed, 13 May 2009 05:13:10 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n4D9GmaS202180 for ; Wed, 13 May 2009 05:16:48 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n4D9GlJA013415 for ; Wed, 13 May 2009 05:16:47 -0400 Received: from subratamodak.linux.ibm.com (subratamodak.in.ibm.com [9.124.158.99]) by d01av04.pok.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id n4D9GiO3013315; Wed, 13 May 2009 05:16:45 -0400 From: Subrata Modak To: , Yaniv Kamay , Avi Kivity Cc: Sachin P Sant , Subrata Modak , Balbir Singh Date: Wed, 13 May 2009 14:46:43 +0530 Message-Id: <20090513091643.8216.46699.sendpatchset@subratamodak.linux.ibm.com> Subject: [PATCH][Resend] Fix Warnining in arch/x86/kvm/vmx.c Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Hi Avi/Yaniv, With gcc --version 4.4.1 20090429 (prerelease) I get the following warning: arch/x86/kvm/vmx.c: In function ‘vmx_intr_assist’: arch/x86/kvm/vmx.c:3233: warning: ‘max_irr’ may be used uninitialized in this function arch/x86/kvm/vmx.c:3233: note: ‘max_irr’ was declared here Investigation found that: 3231 static void update_tpr_threshold(struct kvm_vcpu *vcpu) 3232 { 3233 int max_irr, tpr; 3234 3235 if (!vm_need_tpr_shadow(vcpu->kvm)) 3236 return; 3237 3238 if (!kvm_lapic_enabled(vcpu) || 3239 ((max_irr = kvm_lapic_find_highest_irr(vcpu)) == -1)) { (max_irr = kvm_lapic_find_highest_irr(vcpu)) == -1 may not get a chance to evaluate if: !kvm_lapic_enabled(vcpu) evaluates to true (as the expressions are Or-ed). 3240 vmcs_write32(TPR_THRESHOLD, 0); 3241 return; 3242 } 3243 3244 tpr = (kvm_lapic_get_cr8(vcpu) & 0x0f) << 4; 3245 vmcs_write32(TPR_THRESHOLD, (max_irr > tpr) ? tpr >> 4 : max_irr >> 4); Using (max_irr > tpr) and max_irr >> 4, without max_irr getting initialized can cause trouble. 3246 } I would like to propose a small fix for this by interchanging the operands in ||, so that max_irr is initialized in all instances, and, the warning fades away, without compromising the criteria of conditional evaluation inside if(). Signed-Off-By: Subrata Modak , To: Avi Kivity To: Yaniv Kamay To: Cc: Balbir Singh Cc: Sachin P Sant Subject: [PATCH][Resend] Fix Warnining in arch/x86/kvm/vmx.c --- --- Regards-- Subrata -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- a/arch/x86/kvm/vmx.c 2009-05-12 15:28:42.000000000 +0530 +++ b/arch/x86/kvm/vmx.c 2009-05-12 15:51:02.000000000 +0530 @@ -3235,8 +3235,8 @@ static void update_tpr_threshold(struct if (!vm_need_tpr_shadow(vcpu->kvm)) return; - if (!kvm_lapic_enabled(vcpu) || - ((max_irr = kvm_lapic_find_highest_irr(vcpu)) == -1)) { + if (((max_irr = kvm_lapic_find_highest_irr(vcpu)) == -1) || + !kvm_lapic_enabled(vcpu)) { vmcs_write32(TPR_THRESHOLD, 0); return; }