]> xenbits.xensource.com Git - xen.git/commitdiff
x86/pv-shim: correctly ignore empty onlining requests
authorIgor Druzhinin <igor.druzhinin@citrix.com>
Mon, 31 Oct 2022 12:26:59 +0000 (13:26 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 31 Oct 2022 12:26:59 +0000 (13:26 +0100)
Mem-op requests may have zero extents. Such requests need treating as
no-ops. pv_shim_online_memory(), however, would have tried to take 2³²-1
order-sized pages from its balloon list (to then populate them),
typically ending when the entire set of ballooned pages of this order
was consumed.

Note that pv_shim_offline_memory() does not have such an issue.

Fixes: b2245acc60c3 ("xen/pvshim: memory hotplug")
Signed-off-by: Igor Druzhinin <igor.druzhinin@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 9272225ca72801fd9fa5b268a2d1c5adebd19cd9
master date: 2022-10-28 15:47:59 +0200

xen/arch/x86/pv/shim.c

index d9704121a73965402839c0bd93872cd8ec63d892..4146ee3f9ce849dc7c47352dcc2d5ae3b40427ba 100644 (file)
@@ -944,6 +944,9 @@ void pv_shim_online_memory(unsigned int nr, unsigned int order)
     struct page_info *page, *tmp;
     PAGE_LIST_HEAD(list);
 
+    if ( !nr )
+        return;
+
     spin_lock(&balloon_lock);
     page_list_for_each_safe ( page, tmp, &balloon )
     {