| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: [Xen-devel] [PATCH v18 05/16] x86/VPMU: Interface for setting PMU mode and flags
 
To: Jan Beulich <JBeulich@xxxxxxxx>From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>Date: Fri, 20 Feb 2015 11:07:24 -0500Cc: kevin.tian@xxxxxxxxx, suravee.suthikulpanit@xxxxxxx,	andrew.cooper3@xxxxxxxxxx, tim@xxxxxxx,	dietmar.hahn@xxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxx,	Aravind.Gopalakrishnan@xxxxxxx, jun.nakajima@xxxxxxxxx,	dgdegra@xxxxxxxxxxxxxDelivery-date: Fri, 20 Feb 2015 16:07:44 +0000List-id: Xen developer discussion <xen-devel.lists.xen.org> 
 
On 02/20/2015 09:31 AM, Jan Beulich wrote:
 
On 16.02.15 at 23:26, <boris.ostrovsky@xxxxxxxxxx> 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 |