xen/balloon: Support xend-based toolstack
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Sun, 7 Oct 2018 20:05:38 +0000 (16:05 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:15:02 +0000 (11:15 -0800)
commit 3aa6c19d2f38be9c6e9a8ad5fa8e3c9d29ee3c35 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/xen/xen-balloon.c

index 294f35c..cf8ef8c 100644 (file)
@@ -75,12 +75,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;
        }