[kernel] r16449 - in dists/sid/linux-2.6/debian: . patches/features/all/xen patches/features/all/xen/pvhvm patches/series

Ian Campbell ijc-guest at alioth.debian.org
Fri Oct 15 15:31:58 UTC 2010


Author: ijc-guest
Date: Fri Oct 15 15:31:54 2010
New Revision: 16449

Log:
xen: backport pair of fixes from v2.6.36-rc7 for issues caused by pvhvm support

Added:
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0018-xen-do-not-set-xenstored_ready-before-xenbus_probe.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0019-xen-do-not-initialize-PV-timers-on-HVM-if-xen_have.patch
   dists/sid/linux-2.6/debian/patches/series/26
   dists/sid/linux-2.6/debian/patches/series/26-extra
      - copied, changed from r16448, dists/sid/linux-2.6/debian/patches/series/25-extra
Deleted:
   dists/sid/linux-2.6/debian/patches/series/25-extra
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0001-xen-Add-support-for-HVM-hypercalls.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0002-x86-early-PV-on-HVM-features-initialization.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0003-x86-xen-event-channels-delivery-on-HVM.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0004-xen-Xen-PCI-platform-device-driver.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0005-xen-Add-suspend-resume-support-for-PV-on-HVM-guests.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0006-xen-Fix-find_unbound_irq-in-presence-of-ioapic-irqs.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0007-x86-Use-xen_vcpuop_clockevent-xen_clocksource-and.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0008-x86-Unplug-emulated-disks-and-nics.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0009-x86-Call-HVMOP_pagetable_dying-on-exit_mmap.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0010-xenfs-enable-for-HVM-domains-too.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0011-support-multiple-.discard.-sections-to-avoid-sectio.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0012-blkfront-do-not-create-a-PV-cdrom-device-if-xen_hvm.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0013-Introduce-CONFIG_XEN_PVHVM-compile-option.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0014-pvops-do-not-notify-callers-from-register_xenstore_.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0015-xen-pvhvm-allow-user-to-request-no-emulated-device.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0016-xen-pvhvm-rename-xen_emul_unplug-ignore-to-unnnec.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0017-xen-pvhvm-make-it-clearer-that-XEN_UNPLUG_-define.patch
   dists/sid/linux-2.6/debian/patches/features/all/xen/pvops.patch

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/changelog	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,3 +1,12 @@
+linux-2.6 (2.6.32-26) UNRELEASED; urgency=low
+
+  [ Ian Campbell ]
+  * xen: fix PVHVM hang at boot when Xen does not support vector callbacks.
+  * xen: fix race between PV drivers and xenstore initialisation which caused
+    breakage in drivers for both regular PV and PVHVM guests.
+
+ -- dann frazier <dannf at debian.org>  Fri, 15 Oct 2010 16:03:12 +0100
+
 linux-2.6 (2.6.32-25) unstable; urgency=high
 
   [ Ben Hutchings ]

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0001-xen-Add-support-for-HVM-hypercalls.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0001-xen-Add-support-for-HVM-hypercalls.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0001-xen-Add-support-for-HVM-hypercalls.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From f1d25fa1b16536b1dfe8ee41fd152b6960d618a1 Mon Sep 17 00:00:00 2001
+From 18bead72e8ef16cbf7deb1e62b6cf49ea17208cf Mon Sep 17 00:00:00 2001
 From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com>
 Date: Fri, 14 May 2010 12:38:24 +0100
 Subject: [PATCH] xen: Add support for HVM hypercalls.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0002-x86-early-PV-on-HVM-features-initialization.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0002-x86-early-PV-on-HVM-features-initialization.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0002-x86-early-PV-on-HVM-features-initialization.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From d1d33440ff3851e3e3937ef16c94e238e7b6209b Mon Sep 17 00:00:00 2001
+From a8467e58d26fba816ec66b213f1ef64b599d3696 Mon Sep 17 00:00:00 2001
 From: Sheng Yang <sheng at linux.intel.com>
 Date: Fri, 14 May 2010 12:39:33 +0100
 Subject: [PATCH] x86: early PV on HVM features initialization.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0003-x86-xen-event-channels-delivery-on-HVM.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0003-x86-xen-event-channels-delivery-on-HVM.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0003-x86-xen-event-channels-delivery-on-HVM.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From b1a340f0801b0cb7225436fdd115b4d162f3fb4f Mon Sep 17 00:00:00 2001
+From 72d5868bd133a6de295ec11fd8c479ff66c4daee Mon Sep 17 00:00:00 2001
 From: Sheng Yang <sheng at linux.intel.com>
 Date: Fri, 14 May 2010 12:40:51 +0100
 Subject: [PATCH] x86/xen: event channels delivery on HVM.
@@ -152,7 +152,7 @@
  
  void xen_init_irq_ops(void);
 diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 30e0467..9b03dcd 100644
+index ac91a4e..b18ed66 100644
 --- a/drivers/xen/events.c
 +++ b/drivers/xen/events.c
 @@ -28,6 +28,7 @@
@@ -177,7 +177,7 @@
  
  /*
   * This lock protects updates to the following mapping and reference-count
-@@ -617,17 +621,13 @@ static DEFINE_PER_CPU(unsigned, xed_nesting_count);
+@@ -618,17 +622,13 @@ static DEFINE_PER_CPU(unsigned, xed_nesting_count);
   * a bitset of words which contain pending event bits.  The second
   * level is a bitset of pending events themselves.
   */
@@ -196,7 +196,7 @@
  	do {
  		unsigned long pending_words;
  
-@@ -663,10 +663,26 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
+@@ -664,10 +664,26 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
  	} while(count != 1);
  
  out:
@@ -224,8 +224,8 @@
  }
  
  /* Rebind a new event channel to an existing irq. */
-@@ -929,6 +945,40 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
- 	.retrigger	= retrigger_dynirq,
+@@ -940,6 +956,40 @@ static struct irq_chip xen_percpu_chip __read_mostly = {
+ 	.ack		= ack_dynirq,
  };
  
 +int xen_set_callback_via(uint64_t via)
@@ -265,7 +265,7 @@
  void __init xen_init_IRQ(void)
  {
  	int i;
-@@ -943,5 +993,10 @@ void __init xen_init_IRQ(void)
+@@ -954,5 +1004,10 @@ void __init xen_init_IRQ(void)
  	for (i = 0; i < NR_EVENT_CHANNELS; i++)
  		mask_evtchn(i);
  

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0004-xen-Xen-PCI-platform-device-driver.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0004-xen-Xen-PCI-platform-device-driver.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0004-xen-Xen-PCI-platform-device-driver.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 06fdafa2eb7de1a800febb62d302fe72ddba033e Mon Sep 17 00:00:00 2001
+From c405b056d5c75c010f0ceccf6603f157dd67a2d1 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Mon, 17 May 2010 17:08:21 +0100
 Subject: [PATCH] xen: Xen PCI platform device driver.
@@ -77,10 +77,10 @@
 +obj-$(CONFIG_XEN_SYS_HYPERVISOR)	+= sys-hypervisor.o
 +obj-$(CONFIG_XEN_PLATFORM_PCI)	+= platform-pci.o
 diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 9b03dcd..9d99c9a 100644
+index b18ed66..4e27981 100644
 --- a/drivers/xen/events.c
 +++ b/drivers/xen/events.c
-@@ -660,7 +660,7 @@ static void __xen_evtchn_do_upcall(struct pt_regs *regs)
+@@ -661,7 +661,7 @@ static void __xen_evtchn_do_upcall(struct pt_regs *regs)
  
  		count = __get_cpu_var(xed_nesting_count);
  		__get_cpu_var(xed_nesting_count) = 0;
@@ -89,7 +89,7 @@
  
  out:
  
-@@ -684,6 +684,7 @@ void xen_hvm_evtchn_do_upcall(void)
+@@ -685,6 +685,7 @@ void xen_hvm_evtchn_do_upcall(void)
  {
  	__xen_evtchn_do_upcall(get_irq_regs());
  }
@@ -97,7 +97,7 @@
  
  /* Rebind a new event channel to an existing irq. */
  void rebind_evtchn_irq(int evtchn, int irq)
-@@ -720,7 +721,10 @@ static int rebind_irq_to_cpu(unsigned irq, unsigned tcpu)
+@@ -721,7 +722,10 @@ static int rebind_irq_to_cpu(unsigned irq, unsigned tcpu)
  	struct evtchn_bind_vcpu bind_vcpu;
  	int evtchn = evtchn_from_irq(irq);
  

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0005-xen-Add-suspend-resume-support-for-PV-on-HVM-guests.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0005-xen-Add-suspend-resume-support-for-PV-on-HVM-guests.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0005-xen-Add-suspend-resume-support-for-PV-on-HVM-guests.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 86e23db6cf392fe26d24653d64ef39586fd8dc5a Mon Sep 17 00:00:00 2001
+From 303aa8c43299c101aec84cdd2734aeba0f98164c Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Fri, 14 May 2010 12:45:07 +0100
 Subject: [PATCH] xen: Add suspend/resume support for PV on HVM guests.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0006-xen-Fix-find_unbound_irq-in-presence-of-ioapic-irqs.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0006-xen-Fix-find_unbound_irq-in-presence-of-ioapic-irqs.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0006-xen-Fix-find_unbound_irq-in-presence-of-ioapic-irqs.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 3dc94dc81f56fec4a409b049c12413e847d05056 Mon Sep 17 00:00:00 2001
+From 157110d7caaa447b7cb3f53efe52cf2b45b7bbc2 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Fri, 14 May 2010 12:41:20 +0100
 Subject: [PATCH] xen: Fix find_unbound_irq in presence of ioapic irqs.
@@ -18,10 +18,10 @@
  1 files changed, 11 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 9d99c9a..da01209 100644
+index 4e27981..30891d0 100644
 --- a/drivers/xen/events.c
 +++ b/drivers/xen/events.c
-@@ -338,9 +338,18 @@ static int find_unbound_irq(void)
+@@ -339,9 +339,18 @@ static int find_unbound_irq(void)
  	int irq;
  	struct irq_desc *desc;
  
@@ -41,7 +41,7 @@
  
  	if (irq == nr_irqs)
  		panic("No available IRQ to bind to: increase nr_irqs!\n");
-@@ -349,7 +358,7 @@ static int find_unbound_irq(void)
+@@ -350,7 +359,7 @@ static int find_unbound_irq(void)
  	if (WARN_ON(desc == NULL))
  		return -1;
  

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0007-x86-Use-xen_vcpuop_clockevent-xen_clocksource-and.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0007-x86-Use-xen_vcpuop_clockevent-xen_clocksource-and.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0007-x86-Use-xen_vcpuop_clockevent-xen_clocksource-and.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From fa466b657a6fcd885010a11181facc7b546d304d Mon Sep 17 00:00:00 2001
+From 482a146c01b7d0ab909ea46db8a1a9668f95fad8 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Fri, 14 May 2010 12:48:19 +0100
 Subject: [PATCH] x86: Use xen_vcpuop_clockevent, xen_clocksource and xen wallclock.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0008-x86-Unplug-emulated-disks-and-nics.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0008-x86-Unplug-emulated-disks-and-nics.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0008-x86-Unplug-emulated-disks-and-nics.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 2028bd4b38952279d585c8cb9c4fcf20dbe49f8d Mon Sep 17 00:00:00 2001
+From 92b4c1980e16ac02e5c67de2e78d1008197c7a79 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Fri, 14 May 2010 12:44:30 +0100
 Subject: [PATCH] x86: Unplug emulated disks and nics.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0009-x86-Call-HVMOP_pagetable_dying-on-exit_mmap.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0009-x86-Call-HVMOP_pagetable_dying-on-exit_mmap.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0009-x86-Call-HVMOP_pagetable_dying-on-exit_mmap.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 433c1fcf01da8d4e860c8632d6173fa7e71131f4 Mon Sep 17 00:00:00 2001
+From f1dcacf67b12417de4ea44490e284306079211c2 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Thu, 17 Jun 2010 14:22:52 +0100
 Subject: [PATCH] x86: Call HVMOP_pagetable_dying on exit_mmap.

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0010-xenfs-enable-for-HVM-domains-too.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0010-xenfs-enable-for-HVM-domains-too.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0010-xenfs-enable-for-HVM-domains-too.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 35d88765e6e1d7f823321197374de2eb8dff49a2 Mon Sep 17 00:00:00 2001
+From 95015fe45d55b139001badc4b6d81e13643d05e9 Mon Sep 17 00:00:00 2001
 From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com>
 Date: Wed, 21 Jul 2010 22:51:39 -0700
 Subject: [PATCH] xenfs: enable for HVM domains too

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0011-support-multiple-.discard.-sections-to-avoid-sectio.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0011-support-multiple-.discard.-sections-to-avoid-sectio.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0011-support-multiple-.discard.-sections-to-avoid-sectio.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From a543c647ea71c2888c989424c2931419dd269a34 Mon Sep 17 00:00:00 2001
+From de808912b7a98963650bd69b14d43f5b18d26ab2 Mon Sep 17 00:00:00 2001
 From: Jeremy Fitzhardinge <jeremy.fitzhardinge at citrix.com>
 Date: Thu, 22 Jul 2010 22:58:01 -0700
 Subject: [PATCH] support multiple .discard.* sections to avoid section type conflicts

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0012-blkfront-do-not-create-a-PV-cdrom-device-if-xen_hvm.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0012-blkfront-do-not-create-a-PV-cdrom-device-if-xen_hvm.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0012-blkfront-do-not-create-a-PV-cdrom-device-if-xen_hvm.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From f1626eb8756c2aae216e3f1e56008013876cdee8 Mon Sep 17 00:00:00 2001
+From 94a2d06759ffaee52d07a9234f1fbaa17c2fb604 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Thu, 29 Jul 2010 14:53:16 +0100
 Subject: [PATCH] blkfront: do not create a PV cdrom device if xen_hvm_guest

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0013-Introduce-CONFIG_XEN_PVHVM-compile-option.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0013-Introduce-CONFIG_XEN_PVHVM-compile-option.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0013-Introduce-CONFIG_XEN_PVHVM-compile-option.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 5a949a535944f82ae85d56c7fabb232a61499273 Mon Sep 17 00:00:00 2001
+From 85fd6f697ed3d6eaad0a4a5d313ccd0aad076a2c Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Thu, 29 Jul 2010 14:37:48 +0100
 Subject: [PATCH] Introduce CONFIG_XEN_PVHVM compile option
@@ -121,10 +121,10 @@
  	help
  	  Driver for the Xen PCI Platform device: it is responsible for
 diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index da01209..5d25cdf 100644
+index 30891d0..373905b 100644
 --- a/drivers/xen/events.c
 +++ b/drivers/xen/events.c
-@@ -968,6 +968,7 @@ int xen_set_callback_via(uint64_t via)
+@@ -979,6 +979,7 @@ int xen_set_callback_via(uint64_t via)
  }
  EXPORT_SYMBOL_GPL(xen_set_callback_via);
  
@@ -132,7 +132,7 @@
  /* Vector callbacks are better than PCI interrupts to receive event
   * channel notifications because we can receive vector callbacks on any
   * vcpu and we don't need PCI support or APIC interactions. */
-@@ -991,6 +992,9 @@ void xen_callback_vector(void)
+@@ -1002,6 +1003,9 @@ void xen_callback_vector(void)
  			alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
  	}
  }

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0014-pvops-do-not-notify-callers-from-register_xenstore_.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0014-pvops-do-not-notify-callers-from-register_xenstore_.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0014-pvops-do-not-notify-callers-from-register_xenstore_.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 2444ef2cef95949d2f429d5e0dfef2e987a2c491 Mon Sep 17 00:00:00 2001
+From 645691ac94c92a6891c5aac9fbc49dc1867742d3 Mon Sep 17 00:00:00 2001
 From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Date: Fri, 16 Jul 2010 17:30:19 +0100
 Subject: [PATCH] pvops: do not notify callers from register_xenstore_notifier

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0015-xen-pvhvm-allow-user-to-request-no-emulated-device.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0015-xen-pvhvm-allow-user-to-request-no-emulated-device.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0015-xen-pvhvm-allow-user-to-request-no-emulated-device.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From fb9586290f3fe27d154394c8f899d3f09f999721 Mon Sep 17 00:00:00 2001
+From 518855d71bcd59c8c0f3e8f6d2c3eda07a0a405f Mon Sep 17 00:00:00 2001
 From: Ian Campbell <ian.campbell at citrix.com>
 Date: Mon, 23 Aug 2010 11:59:28 +0100
 Subject: [PATCH] xen: pvhvm: allow user to request no emulated device unplug

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0016-xen-pvhvm-rename-xen_emul_unplug-ignore-to-unnnec.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0016-xen-pvhvm-rename-xen_emul_unplug-ignore-to-unnnec.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0016-xen-pvhvm-rename-xen_emul_unplug-ignore-to-unnnec.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 8ea5516badd9ccaa6088e8d1c634bb146f0125da Mon Sep 17 00:00:00 2001
+From bb18d7f128a63e23f88f5f346b7f397521380ae4 Mon Sep 17 00:00:00 2001
 From: Ian Campbell <ian.campbell at citrix.com>
 Date: Mon, 23 Aug 2010 11:59:29 +0100
 Subject: [PATCH] xen: pvhvm: rename xen_emul_unplug=ignore to =unnnecessary

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0017-xen-pvhvm-make-it-clearer-that-XEN_UNPLUG_-define.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0017-xen-pvhvm-make-it-clearer-that-XEN_UNPLUG_-define.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0017-xen-pvhvm-make-it-clearer-that-XEN_UNPLUG_-define.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -1,4 +1,4 @@
-From 416d0512ba8d717ce996a89ab1e900208feebe46 Mon Sep 17 00:00:00 2001
+From bc2c1a9783634b4ec6a0895276399771e2e2c20d Mon Sep 17 00:00:00 2001
 From: Ian Campbell <ian.campbell at citrix.com>
 Date: Mon, 23 Aug 2010 12:01:35 +0100
 Subject: [PATCH] xen: pvhvm: make it clearer that XEN_UNPLUG_* define bits in a bitfield

Added: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0018-xen-do-not-set-xenstored_ready-before-xenbus_probe.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0018-xen-do-not-set-xenstored_ready-before-xenbus_probe.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -0,0 +1,64 @@
+From 6f79b062998da6aced68cc190ba61d9d132efa7a Mon Sep 17 00:00:00 2001
+From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
+Date: Mon, 4 Oct 2010 16:10:06 +0100
+Subject: [PATCH] xen: do not set xenstored_ready before xenbus_probe on hvm
+
+Register_xenstore_notifier should guarantee that the caller gets
+notified even if xenstore is already up.
+Therefore we revert "do not notify callers from
+register_xenstore_notifier" and set xenstored_read at the right time for
+PV on HVM guests too.
+In fact in case of PV on HVM guests xenstored is ready only after the
+platform pci driver has completed the initialization, so do not set
+xenstored_ready before the call to xenbus_probe().
+
+This patch fixes a shutdown_event watcher registration bug that causes
+"xm shutdown" not to work properly.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
+Acked-by: Jeremy Fitzhardinge <jeremy at goop.org>
+(cherry picked from commit a947f0f8f7012a5e8689a9cff7209ec6964ec154)
+
+Signed-off-by: Ian Campbell <ian.campbell at citrix.com>
+---
+ drivers/xen/xenbus/xenbus_probe.c |    9 ++++++---
+ 1 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+index f52baf3..59857e8 100644
+--- a/drivers/xen/xenbus/xenbus_probe.c
++++ b/drivers/xen/xenbus/xenbus_probe.c
+@@ -752,7 +752,10 @@ int register_xenstore_notifier(struct notifier_block *nb)
+ {
+ 	int ret = 0;
+ 
+-	blocking_notifier_chain_register(&xenstore_chain, nb);
++	if (xenstored_ready > 0)
++		ret = nb->notifier_call(nb, 0, NULL);
++	else
++		blocking_notifier_chain_register(&xenstore_chain, nb);
+ 
+ 	return ret;
+ }
+@@ -766,7 +769,7 @@ EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
+ 
+ void xenbus_probe(struct work_struct *unused)
+ {
+-	BUG_ON((xenstored_ready <= 0));
++	xenstored_ready = 1;
+ 
+ 	/* Enumerate devices in xenstore and watch for changes. */
+ 	xenbus_probe_devices(&xenbus_frontend);
+@@ -832,8 +835,8 @@ static int __init xenbus_init(void)
+ 			xen_store_evtchn = xen_start_info->store_evtchn;
+ 			xen_store_mfn = xen_start_info->store_mfn;
+ 			xen_store_interface = mfn_to_virt(xen_store_mfn);
++			xenstored_ready = 1;
+ 		}
+-		xenstored_ready = 1;
+ 	}
+ 
+ 	/* Initialize the interface to xenstore. */
+-- 
+1.5.6.5
+

Added: dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0019-xen-do-not-initialize-PV-timers-on-HVM-if-xen_have.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvhvm/0019-xen-do-not-initialize-PV-timers-on-HVM-if-xen_have.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -0,0 +1,41 @@
+From be74246bdc4ec4de0b47ab5a937a7579cb9bad51 Mon Sep 17 00:00:00 2001
+From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
+Date: Fri, 1 Oct 2010 17:35:46 +0100
+Subject: [PATCH] xen: do not initialize PV timers on HVM if !xen_have_vector_callback
+
+if !xen_have_vector_callback do not initialize PV timer unconditionally
+because we still don't know how many cpus are available and if there is
+more than one we won't be able to receive the timer interrupts on
+cpu > 0.
+
+This patch fixes an hang at boot when Xen does not support vector
+callbacks and the guest has multiple vcpus.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
+Acked-by: Jeremy Fitzhardinge <jeremy at goop.org>
+(cherry picked from commit 31e7e931cdc27f76dc68444edc4df1c0d1bfa6cc)
+
+Signed-off-by: Ian Campbell <ian.campbell at citrix.com>
+---
+ arch/x86/xen/time.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+index 094c70a..3b1ba77 100644
+--- a/arch/x86/xen/time.c
++++ b/arch/x86/xen/time.c
+@@ -488,8 +488,9 @@ static void xen_hvm_setup_cpu_clockevents(void)
+ __init void xen_hvm_init_time_ops(void)
+ {
+ 	/* vector callback is needed otherwise we cannot receive interrupts
+-	 * on cpu > 0 */
+-	if (!xen_have_vector_callback && num_present_cpus() > 1)
++	 * on cpu > 0 and at this point we don't know how many cpus are
++	 * available */
++	if (!xen_have_vector_callback)
+ 		return;
+ 	if (!xen_feature(XENFEAT_hvm_safe_pvclock)) {
+ 		printk(KERN_INFO "Xen doesn't support pvclock on HVM,"
+-- 
+1.5.6.5
+

Modified: dists/sid/linux-2.6/debian/patches/features/all/xen/pvops.patch
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/xen/pvops.patch	Fri Oct 15 15:31:33 2010	(r16448)
+++ dists/sid/linux-2.6/debian/patches/features/all/xen/pvops.patch	Fri Oct 15 15:31:54 2010	(r16449)
@@ -5274,7 +5274,7 @@
  	BUG();
  }
 diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-index 094c70a..68feb40 100644
+index 3b1ba77..68feb40 100644
 --- a/arch/x86/xen/time.c
 +++ b/arch/x86/xen/time.c
 @@ -201,8 +201,22 @@ static unsigned long xen_get_wallclock(void)
@@ -5340,7 +5340,19 @@
  static void xen_hvm_setup_cpu_clockevents(void)
  {
  	int cpu = smp_processor_id();
-@@ -505,4 +520,3 @@ __init void xen_hvm_init_time_ops(void)
+@@ -488,9 +503,8 @@ static void xen_hvm_setup_cpu_clockevents(void)
+ __init void xen_hvm_init_time_ops(void)
+ {
+ 	/* vector callback is needed otherwise we cannot receive interrupts
+-	 * on cpu > 0 and at this point we don't know how many cpus are
+-	 * available */
+-	if (!xen_have_vector_callback)
++	 * on cpu > 0 */
++	if (!xen_have_vector_callback && num_present_cpus() > 1)
+ 		return;
+ 	if (!xen_feature(XENFEAT_hvm_safe_pvclock)) {
+ 		printk(KERN_INFO "Xen doesn't support pvclock on HVM,"
+@@ -506,4 +520,3 @@ __init void xen_hvm_init_time_ops(void)
  	x86_platform.get_wallclock = xen_get_wallclock;
  	x86_platform.set_wallclock = xen_set_wallclock;
  }
@@ -26309,7 +26321,7 @@
   * @dev: xenbus device
   * @ring_mfn: mfn of ring to grant
 diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
-index f52baf3..3a83ba2 100644
+index 59857e8..3a83ba2 100644
 --- a/drivers/xen/xenbus/xenbus_probe.c
 +++ b/drivers/xen/xenbus/xenbus_probe.c
 @@ -49,6 +49,8 @@
@@ -26675,19 +26687,33 @@
  
  /* A flag to determine if xenstored is 'ready' (i.e. has started) */
  int xenstored_ready = 0;
-@@ -768,11 +662,6 @@ void xenbus_probe(struct work_struct *unused)
+@@ -752,10 +646,7 @@ int register_xenstore_notifier(struct notifier_block *nb)
  {
- 	BUG_ON((xenstored_ready <= 0));
+ 	int ret = 0;
+ 
+-	if (xenstored_ready > 0)
+-		ret = nb->notifier_call(nb, 0, NULL);
+-	else
+-		blocking_notifier_chain_register(&xenstore_chain, nb);
++	blocking_notifier_chain_register(&xenstore_chain, nb);
+ 
+ 	return ret;
+ }
+@@ -769,12 +660,7 @@ EXPORT_SYMBOL_GPL(unregister_xenstore_notifier);
  
+ void xenbus_probe(struct work_struct *unused)
+ {
+-	xenstored_ready = 1;
+-
 -	/* Enumerate devices in xenstore and watch for changes. */
 -	xenbus_probe_devices(&xenbus_frontend);
 -	register_xenbus_watch(&fe_watch);
 -	xenbus_backend_probe_and_watch();
--
++	BUG_ON((xenstored_ready <= 0));
+ 
  	/* Notify others that xenstore is up */
  	blocking_notifier_call_chain(&xenstore_chain, 0, NULL);
- }
-@@ -795,28 +684,45 @@ device_initcall(xenbus_probe_initcall);
+@@ -798,28 +684,45 @@ device_initcall(xenbus_probe_initcall);
  static int __init xenbus_init(void)
  {
  	int err = 0;
@@ -26744,15 +26770,15 @@
  		if (xen_hvm_domain()) {
  			uint64_t v = 0;
  			err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-@@ -833,7 +739,6 @@ static int __init xenbus_init(void)
+@@ -835,7 +738,6 @@ static int __init xenbus_init(void)
+ 			xen_store_evtchn = xen_start_info->store_evtchn;
  			xen_store_mfn = xen_start_info->store_mfn;
  			xen_store_interface = mfn_to_virt(xen_store_mfn);
+-			xenstored_ready = 1;
  		}
--		xenstored_ready = 1;
  	}
  
- 	/* Initialize the interface to xenstore. */
-@@ -841,7 +746,7 @@ static int __init xenbus_init(void)
+@@ -844,7 +746,7 @@ static int __init xenbus_init(void)
  	if (err) {
  		printk(KERN_WARNING
  		       "XENBUS: Error initializing xenstore comms: %i\n", err);
@@ -26761,7 +26787,7 @@
  	}
  
  #ifdef CONFIG_XEN_COMPAT_XENFS
-@@ -854,131 +759,13 @@ static int __init xenbus_init(void)
+@@ -857,131 +759,13 @@ static int __init xenbus_init(void)
  
  	return 0;
  

Added: dists/sid/linux-2.6/debian/patches/series/26
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/series/26	Fri Oct 15 15:31:54 2010	(r16449)
@@ -0,0 +1,3 @@
++ features/all/xen/pvhvm/0018-xen-do-not-set-xenstored_ready-before-xenbus_probe.patch
++ features/all/xen/pvhvm/0019-xen-do-not-initialize-PV-timers-on-HVM-if-xen_have.patch
+

Copied and modified: dists/sid/linux-2.6/debian/patches/series/26-extra (from r16448, dists/sid/linux-2.6/debian/patches/series/25-extra)
==============================================================================



More information about the Kernel-svn-changes mailing list