x86/pv: Use xmemdup() for cpuidmasks, rather than opencoding it
authorAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 15 Aug 2018 09:53:53 +0000 (10:53 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 15 Aug 2018 13:54:50 +0000 (14:54 +0100)
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/pv/domain.c

index 3230ac6a22bfc45bd02d4773c4f57266bedfc1e5..52108d4a83887c2735c7da3949fabbf24a683bb7 100644 (file)
@@ -240,13 +240,9 @@ int pv_domain_initialise(struct domain *d)
         goto fail;
     clear_page(d->arch.pv_domain.gdt_ldt_l1tab);
 
-    if ( levelling_caps & ~LCAP_faulting )
-    {
-        d->arch.pv_domain.cpuidmasks = xmalloc(struct cpuidmasks);
-        if ( !d->arch.pv_domain.cpuidmasks )
-            goto fail;
-        *d->arch.pv_domain.cpuidmasks = cpuidmask_defaults;
-    }
+    if ( levelling_caps & ~LCAP_faulting &&
+         (d->arch.pv_domain.cpuidmasks = xmemdup(&cpuidmask_defaults)) == NULL )
+        goto fail;
 
     rc = create_perdomain_mapping(d, GDT_LDT_VIRT_START,
                                   GDT_LDT_MBYTES << (20 - PAGE_SHIFT),