Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'for-linus-4.14c-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:

- a fix for the Xen gntdev device repairing an issue in case of partial
failure of mapping multiple pages of another domain

- a fix of a regression in the Xen balloon driver introduced in 4.13

- a build fix for Xen on ARM which will trigger e.g. for Linux RT

- a maintainers update for pvops (not really Xen, but carrying through
this tree just for convenience)

* tag 'for-linus-4.14c-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
maintainers: drop Chris Wright from pvops
arm/xen: don't inclide rwlock.h directly.
xen: fix booting ballooned down hvm guest
xen/gntdev: avoid out of bounds access in case of partial gntdev_mmap()

+15 -9
-1
MAINTAINERS
··· 10179 10179 10180 10180 PARAVIRT_OPS INTERFACE 10181 10181 M: Juergen Gross <jgross@suse.com> 10182 - M: Chris Wright <chrisw@sous-sol.org> 10183 10182 M: Alok Kataria <akataria@vmware.com> 10184 10183 M: Rusty Russell <rusty@rustcorp.com.au> 10185 10184 L: virtualization@lists.linux-foundation.org
+1 -1
arch/arm/xen/p2m.c
··· 1 1 #include <linux/bootmem.h> 2 2 #include <linux/gfp.h> 3 3 #include <linux/export.h> 4 - #include <linux/rwlock.h> 4 + #include <linux/spinlock.h> 5 5 #include <linux/slab.h> 6 6 #include <linux/types.h> 7 7 #include <linux/dma-mapping.h>
+1 -1
drivers/xen/gntdev.c
··· 1024 1024 mutex_unlock(&priv->lock); 1025 1025 1026 1026 if (use_ptemod) { 1027 + map->pages_vm_start = vma->vm_start; 1027 1028 err = apply_to_page_range(vma->vm_mm, vma->vm_start, 1028 1029 vma->vm_end - vma->vm_start, 1029 1030 find_grant_ptes, map); ··· 1062 1061 set_grant_ptes_as_special, NULL); 1063 1062 } 1064 1063 #endif 1065 - map->pages_vm_start = vma->vm_start; 1066 1064 } 1067 1065 1068 1066 return 0;
+13 -6
drivers/xen/xen-balloon.c
··· 57 57 static void watch_target(struct xenbus_watch *watch, 58 58 const char *path, const char *token) 59 59 { 60 - unsigned long long new_target; 60 + unsigned long long new_target, static_max; 61 61 int err; 62 62 static bool watch_fired; 63 63 static long target_diff; ··· 72 72 * pages. PAGE_SHIFT converts bytes to pages, hence PAGE_SHIFT - 10. 73 73 */ 74 74 new_target >>= PAGE_SHIFT - 10; 75 - if (watch_fired) { 76 - balloon_set_new_target(new_target - target_diff); 77 - return; 75 + 76 + if (!watch_fired) { 77 + watch_fired = true; 78 + err = xenbus_scanf(XBT_NIL, "memory", "static-max", "%llu", 79 + &static_max); 80 + if (err != 1) 81 + static_max = new_target; 82 + else 83 + static_max >>= PAGE_SHIFT - 10; 84 + target_diff = xen_pv_domain() ? 0 85 + : static_max - balloon_stats.target_pages; 78 86 } 79 87 80 - watch_fired = true; 81 - target_diff = new_target - balloon_stats.target_pages; 88 + balloon_set_new_target(new_target - target_diff); 82 89 } 83 90 static struct xenbus_watch target_watch = { 84 91 .node = "memory/target",