xen/balloon: Support xend-based toolstack
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Sun, 7 Oct 2018 20:05:38 +0000 (16:05 -0400)
committerJuergen Gross <jgross@suse.com>
Wed, 24 Oct 2018 08:18:47 +0000 (10:18 +0200)
Xend-based toolstacks don't have static-max entry in xenstore. The
equivalent node for those toolstacks is memory_static_max.

Fixes: 5266b8e4445c (xen: fix booting ballooned down hvm guest)
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: <stable@vger.kernel.org> # 4.13
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/xen-balloon.c

index 63c1494a8d73bf2f53f0f0a1887290f338ae454a..2acbfe104e464ab0d8e59bb5ff1862ce08411ed0 100644 (file)
@@ -76,12 +76,15 @@ static void watch_target(struct xenbus_watch *watch,
 
        if (!watch_fired) {
                watch_fired = true;
-               err = xenbus_scanf(XBT_NIL, "memory", "static-max", "%llu",
-                                  &static_max);
-               if (err != 1)
-                       static_max = new_target;
-               else
+
+               if ((xenbus_scanf(XBT_NIL, "memory", "static-max",
+                                 "%llu", &static_max) == 1) ||
+                   (xenbus_scanf(XBT_NIL, "memory", "memory_static_max",
+                                 "%llu", &static_max) == 1))
                        static_max >>= PAGE_SHIFT - 10;
+               else
+                       static_max = new_target;
+
                target_diff = (xen_pv_domain() || xen_initial_domain()) ? 0
                                : static_max - balloon_stats.target_pages;
        }