Commit 5b4c0d87 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-4.20a-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull xen fixes from Juergen Gross:
 "Only several small fixes and cleanups this time"

* tag 'for-linus-4.20a-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: drop writing error messages to xenstore
  xen/pvh: don't try to unplug emulated devices
  add myself as reviewer for Xen support in Linux
  xen: remove redundant 'default n' from Kconfig
  xen/balloon: Support xend-based toolstack
  xen/pvh: increase early stack size
  xen: make xen_qlock_wait() nestable
  xen: fix race in xen_qlock_wait()
  xen/balloon: Grammar s/Is it/It is/
  xen: Make XEN_BACKEND selectable by DomU
parents c2101d01 7a048cec
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16317,6 +16317,7 @@ F: arch/arm64/include/asm/xen/
XEN HYPERVISOR INTERFACE
M:	Boris Ostrovsky <boris.ostrovsky@oracle.com>
M:	Juergen Gross <jgross@suse.com>
R:	Stefano Stabellini <sstabellini@kernel.org>
L:	xen-devel@lists.xenproject.org (moderated for non-subscribers)
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git
S:	Supported
+4 −0
Original line number Diff line number Diff line
@@ -134,6 +134,10 @@ void xen_unplug_emulated_devices(void)
{
	int r;

	/* PVH guests don't have emulated devices. */
	if (xen_pvh_domain())
		return;

	/* user explicitly requested no unplug */
	if (xen_emul_unplug & XEN_UNPLUG_NEVER)
		return;
+12 −21
Original line number Diff line number Diff line
@@ -39,36 +39,27 @@ static void xen_qlock_kick(int cpu)
 */
static void xen_qlock_wait(u8 *byte, u8 val)
{
	unsigned long flags;
	int irq = __this_cpu_read(lock_kicker_irq);

	/* If kicker interrupts not initialized yet, just spin */
	if (irq == -1)
	if (irq == -1 || in_nmi())
		return;

	/* clear pending */
	xen_clear_irq_pending(irq);
	barrier();

	/*
	 * We check the byte value after clearing pending IRQ to make sure
	 * that we won't miss a wakeup event because of the clearing.
	 *
	 * The sync_clear_bit() call in xen_clear_irq_pending() is atomic.
	 * So it is effectively a memory barrier for x86.
	 */
	if (READ_ONCE(*byte) != val)
		return;
	/* Guard against reentry. */
	local_irq_save(flags);

	/*
	 * If an interrupt happens here, it will leave the wakeup irq
	 * pending, which will cause xen_poll_irq() to return
	 * immediately.
	 */

	/* Block until irq becomes pending (or perhaps a spurious wakeup) */
	/* If irq pending already clear it. */
	if (xen_test_irq_pending(irq)) {
		xen_clear_irq_pending(irq);
	} else if (READ_ONCE(*byte) == val) {
		/* Block until irq becomes pending (or a spurious wakeup) */
		xen_poll_irq(irq);
	}

	local_irq_restore(flags);
}

static irqreturn_t dummy_handler(int irq, void *dev_id)
{
	BUG();
+1 −1
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ canary:
	.fill 48, 1, 0

early_stack:
	.fill 256, 1, 0
	.fill BOOT_STACK_SIZE, 1, 0
early_stack_end:

	ELFNOTE(Xen, XEN_ELFNOTE_PHYS32_ENTRY,
+2 −11
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@ config XEN_BALLOON
config XEN_SELFBALLOONING
	bool "Dynamically self-balloon kernel memory to target"
	depends on XEN && XEN_BALLOON && CLEANCACHE && SWAP && XEN_TMEM
	default n
	help
	  Self-ballooning dynamically balloons available kernel memory driven
	  by the current usage of anonymous memory ("committed AS") and
@@ -27,7 +26,6 @@ config XEN_SELFBALLOONING

config XEN_BALLOON_MEMORY_HOTPLUG
	bool "Memory hotplug support for Xen balloon driver"
	default n
	depends on XEN_BALLOON && MEMORY_HOTPLUG
	help
	  Memory hotplug support for Xen balloon driver allows expanding memory
@@ -86,7 +84,7 @@ config XEN_SCRUB_PAGES_DEFAULT
	help
	  Scrub pages before returning them to the system for reuse by
	  other domains.  This makes sure that any confidential data
	  is not accidentally visible to other domains.  Is it more
	  is not accidentally visible to other domains.  It is more
	  secure, but slightly less efficient. This can be controlled with
	  xen_scrub_pages=0 parameter and
	  /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
@@ -105,8 +103,7 @@ config XEN_DEV_EVTCHN

config XEN_BACKEND
	bool "Backend driver support"
	depends on XEN_DOM0
	default y
	default XEN_DOM0
	help
	  Support for backend device drivers that provide I/O services
	  to other virtual machines.
@@ -227,7 +224,6 @@ config XEN_PCIDEV_BACKEND
config XEN_PVCALLS_FRONTEND
	tristate "XEN PV Calls frontend driver"
	depends on INET && XEN
	default n
	select XEN_XENBUS_FRONTEND
	help
	  Experimental frontend for the Xen PV Calls protocol
@@ -238,7 +234,6 @@ config XEN_PVCALLS_FRONTEND
config XEN_PVCALLS_BACKEND
	bool "XEN PV Calls backend driver"
	depends on INET && XEN && XEN_BACKEND
	default n
	help
	  Experimental backend for the Xen PV Calls protocol
	  (https://xenbits.xen.org/docs/unstable/misc/pvcalls.html). It
@@ -264,7 +259,6 @@ config XEN_PRIVCMD
config XEN_STUB
	bool "Xen stub drivers"
	depends on XEN && X86_64 && BROKEN
	default n
	help
	  Allow kernel to install stub drivers, to reserve space for Xen drivers,
	  i.e. memory hotplug and cpu hotplug, and to block native drivers loaded,
@@ -275,7 +269,6 @@ config XEN_STUB
config XEN_ACPI_HOTPLUG_MEMORY
	tristate "Xen ACPI memory hotplug"
	depends on XEN_DOM0 && XEN_STUB && ACPI
	default n
	help
	  This is Xen ACPI memory hotplug.

@@ -287,7 +280,6 @@ config XEN_ACPI_HOTPLUG_CPU
	tristate "Xen ACPI cpu hotplug"
	depends on XEN_DOM0 && XEN_STUB && ACPI
	select ACPI_CONTAINER
	default n
	help
	  Xen ACPI cpu enumerating and hotplugging

@@ -316,7 +308,6 @@ config XEN_ACPI_PROCESSOR
config XEN_MCE_LOG
	bool "Xen platform mcelog"
	depends on XEN_DOM0 && X86_64 && X86_MCE
	default n
	help
	  Allow kernel fetching MCE error from Xen platform and
	  converting it into Linux mcelog format for mcelog tools
Loading