From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v18 05/16] x86/VPMU: Interface for setting PMU mode and flags Date: Fri, 20 Feb 2015 11:07:24 -0500 Message-ID: <54E75BBC.5080005@oracle.com> References: <1424125619-10851-1-git-send-email-boris.ostrovsky@oracle.com> <1424125619-10851-6-git-send-email-boris.ostrovsky@oracle.com> <54E75349020000780006212E@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <54E75349020000780006212E@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: kevin.tian@intel.com, suravee.suthikulpanit@amd.com, andrew.cooper3@citrix.com, tim@xen.org, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org, Aravind.Gopalakrishnan@amd.com, jun.nakajima@intel.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org On 02/20/2015 09:31 AM, Jan Beulich wrote: >>>> On 16.02.15 at 23:26, wrote: >> +long do_xenpmu_op(unsigned int op, XEN_GUEST_HANDLE_PARAM(xen_pmu_params_t) arg) >> +{ >> + int ret; >> + struct xen_pmu_params pmu_params; >> + >> + if ( vpmu_disabled ) >> + return -EINVAL; >> + >> + ret = xsm_pmu_op(XSM_OTHER, current->domain, op); >> + if ( ret ) >> + return ret; >> + >> + /* Check major version when parameters are specified */ >> + switch ( op ) >> + { >> + case XENPMU_mode_set: >> + case XENPMU_feature_set: >> + if ( copy_from_guest(&pmu_params, arg, 1) ) >> + return -EFAULT; >> + >> + if ( pmu_params.version.maj != XENPMU_VER_MAJ ) >> + return -EINVAL; >> + } >> + >> + switch ( op ) >> + { >> + case XENPMU_mode_set: >> + { >> + unsigned int old_mode; >> + static DEFINE_SPINLOCK(xenpmu_mode_lock); >> + >> + if ( pmu_params.val & ~(XENPMU_MODE_SELF | XENPMU_MODE_HV) ) > I btw also highly doubt that all compiler versions can properly track > the pmu_params is not used uninitialized here. I'll add a zero initializer. -boris