Commit 68beef57 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen updates from Juergen Gross:
 "A small series for fixing a problem with Xen PVH guests when running
  as backends (e.g. as dom0).

  Mapping other guests' memory is now working via ZONE_DEVICE, thus not
  requiring to abuse the memory hotplug functionality for that purpose"

* tag 'for-linus-5.9-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: add helpers to allocate unpopulated memory
  memremap: rename MEMORY_DEVICE_DEVDAX to MEMORY_DEVICE_GENERIC
  xen/balloon: add header guard
parents dd9fb9bb 9e2369c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -429,7 +429,7 @@ int dev_dax_probe(struct device *dev)
		return -EBUSY;
	}

	dev_dax->pgmap.type = MEMORY_DEVICE_DEVDAX;
	dev_dax->pgmap.type = MEMORY_DEVICE_GENERIC;
	addr = devm_memremap_pages(dev, &dev_dax->pgmap);
	if (IS_ERR(addr))
		return PTR_ERR(addr);
+5 −4
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <drm/drm_probe_helper.h>

#include <xen/balloon.h>
#include <xen/xen.h>

#include "xen_drm_front.h"
#include "xen_drm_front_gem.h"
@@ -99,7 +100,7 @@ static struct xen_gem_object *gem_create(struct drm_device *dev, size_t size)
		 * allocate ballooned pages which will be used to map
		 * grant references provided by the backend
		 */
		ret = alloc_xenballooned_pages(xen_obj->num_pages,
		ret = xen_alloc_unpopulated_pages(xen_obj->num_pages,
					          xen_obj->pages);
		if (ret < 0) {
			DRM_ERROR("Cannot allocate %zu ballooned pages: %d\n",
@@ -152,7 +153,7 @@ void xen_drm_front_gem_free_object_unlocked(struct drm_gem_object *gem_obj)
	} else {
		if (xen_obj->pages) {
			if (xen_obj->be_alloc) {
				free_xenballooned_pages(xen_obj->num_pages,
				xen_free_unpopulated_pages(xen_obj->num_pages,
							   xen_obj->pages);
				gem_free_pages_array(xen_obj);
			} else {
+10 −0
Original line number Diff line number Diff line
@@ -325,4 +325,14 @@ config XEN_HAVE_VPMU
config XEN_FRONT_PGDIR_SHBUF
	tristate

config XEN_UNPOPULATED_ALLOC
	bool "Use unpopulated memory ranges for guest mappings"
	depends on X86 && ZONE_DEVICE
	default XEN_BACKEND || XEN_GNTDEV || XEN_DOM0
	help
	  Use unpopulated memory ranges in order to create mappings for guest
	  memory regions, including grant maps and foreign pages. This avoids
	  having to balloon out RAM regions in order to obtain physical memory
	  space to create such mappings.

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -41,3 +41,4 @@ xen-gntdev-$(CONFIG_XEN_GNTDEV_DMABUF) += gntdev-dmabuf.o
xen-gntalloc-y				:= gntalloc.o
xen-privcmd-y				:= privcmd.o privcmd-buf.o
obj-$(CONFIG_XEN_FRONT_PGDIR_SHBUF)	+= xen-front-pgdir-shbuf.o
obj-$(CONFIG_XEN_UNPOPULATED_ALLOC)	+= unpopulated-alloc.o
+2 −2
Original line number Diff line number Diff line
@@ -653,7 +653,7 @@ void free_xenballooned_pages(int nr_pages, struct page **pages)
}
EXPORT_SYMBOL(free_xenballooned_pages);

#ifdef CONFIG_XEN_PV
#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
static void __init balloon_add_region(unsigned long start_pfn,
				      unsigned long pages)
{
@@ -707,7 +707,7 @@ static int __init balloon_init(void)
	register_sysctl_table(xen_root);
#endif

#ifdef CONFIG_XEN_PV
#if defined(CONFIG_XEN_PV) && !defined(CONFIG_XEN_UNPOPULATED_ALLOC)
	{
		int i;

Loading