SHA256
1
0
forked from pool/xen

- bnc#636231 - XEN: Unable to disconnect/remove CDROM drive from VM

xend-devid-or-name.patch

- Upstream patches from Jan
  22019-x86-cpuidle-online-check.patch
  22051-x86-forced-EOI.patch
  22067-x86-irq-domain.patch
  22068-vtd-irte-RH-bit.patch
  22071-ept-get-entry-lock.patch
  22084-x86-xsave-off.patch

- bnc#638465 - hypervisor panic in memory handling
  heaplock.patch

- Update to Xen 4.0.1.  This is a bug fix release.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=73
This commit is contained in:
Charles Arnold
2010-09-22 14:40:08 +00:00
committed by Git OBS Bridge
parent 54d3fda8bf
commit eeeeaf88a6
189 changed files with 1756 additions and 6759 deletions

View File

@@ -1,7 +1,9 @@
From: Juergen Gross <juergen.gross@ts.fujitsu.com>
--- a/xen/arch/x86/acpi/power.c
+++ b/xen/arch/x86/acpi/power.c
Index: xen-4.0.1-testing/xen/arch/x86/acpi/power.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/acpi/power.c
+++ xen-4.0.1-testing/xen/arch/x86/acpi/power.c
@@ -234,7 +234,7 @@ static int enter_state(u32 state)
return error;
}
@@ -20,9 +22,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
}
static int acpi_get_wake_status(void)
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1518,42 +1518,52 @@ void sync_vcpu_execstate(struct vcpu *v)
Index: xen-4.0.1-testing/xen/arch/x86/domain.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/domain.c
+++ xen-4.0.1-testing/xen/arch/x86/domain.c
@@ -1522,42 +1522,52 @@ void sync_vcpu_execstate(struct vcpu *v)
}
struct migrate_info {
@@ -92,7 +96,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
info = v->arch.continue_info;
if ( info == NULL )
@@ -1562,16 +1572,12 @@ int continue_hypercall_on_cpu(int cpu, l
@@ -1566,16 +1576,12 @@ int continue_hypercall_on_cpu(int cpu, l
if ( info == NULL )
return -ENOMEM;
@@ -113,7 +117,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
v->arch.schedule_tail = continue_hypercall_on_cpu_helper;
v->arch.continue_info = info;
@@ -1579,17 +1585,17 @@ int continue_hypercall_on_cpu(int cpu, l
@@ -1583,17 +1589,17 @@ int continue_hypercall_on_cpu(int cpu, l
else
{
BUG_ON(info->nest != 0);
@@ -135,8 +139,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
return 0;
}
--- a/xen/arch/x86/domain_build.c
+++ b/xen/arch/x86/domain_build.c
Index: xen-4.0.1-testing/xen/arch/x86/domain_build.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/domain_build.c
+++ xen-4.0.1-testing/xen/arch/x86/domain_build.c
@@ -9,6 +9,7 @@
#include <xen/lib.h>
#include <xen/ctype.h>
@@ -177,8 +183,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/* Set up CR3 value for write_ptbase */
if ( paging_mode_enabled(d) )
--- a/xen/arch/x86/microcode.c
+++ b/xen/arch/x86/microcode.c
Index: xen-4.0.1-testing/xen/arch/x86/microcode.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/microcode.c
+++ xen-4.0.1-testing/xen/arch/x86/microcode.c
@@ -114,7 +114,7 @@ static int microcode_update_cpu(const vo
return err;
}
@@ -206,9 +214,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
+ return continue_hypercall_on_cpu(info->cpu, NULL,
+ do_microcode_update, info);
}
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -242,7 +242,7 @@ void __init arch_init_memory(void)
Index: xen-4.0.1-testing/xen/arch/x86/mm.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/mm.c
+++ xen-4.0.1-testing/xen/arch/x86/mm.c
@@ -243,7 +243,7 @@ void __init arch_init_memory(void)
* Any Xen-heap pages that we will allow to be mapped will have
* their domain field set to dom_xen.
*/
@@ -217,7 +227,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
BUG_ON(dom_xen == NULL);
/*
@@ -250,14 +250,14 @@ void __init arch_init_memory(void)
@@ -251,14 +251,14 @@ void __init arch_init_memory(void)
* This domain owns I/O pages that are within the range of the page_info
* array. Mappings occur at the priv of the caller.
*/
@@ -234,8 +244,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
BUG_ON(dom_cow == NULL);
/* First 1MB of RAM is historically marked as I/O. */
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
Index: xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/platform_hypercall.c
+++ xen-4.0.1-testing/xen/arch/x86/platform_hypercall.c
@@ -19,6 +19,7 @@
#include <xen/iocap.h>
#include <xen/guest_access.h>
@@ -268,7 +280,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
cpu_frequency_change_helper,
NULL);
break;
@@ -403,7 +404,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
@@ -406,7 +407,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
g_info = &op->u.pcpu_info;
/* spin_trylock() avoids deadlock with stop_machine_run(). */
@@ -277,7 +289,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
{
ret = -EBUSY;
break;
@@ -426,7 +427,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
@@ -429,7 +430,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
g_info->max_present = last_cpu(cpu_present_map);
@@ -286,7 +298,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
ret = copy_to_guest(u_xenpf_op, op, 1) ? -EFAULT : 0;
}
@@ -467,7 +468,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
@@ -470,7 +471,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe
break;
}
ret = continue_hypercall_on_cpu(
@@ -295,8 +307,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
break;
}
break;
--- a/xen/arch/x86/setup.c
+++ b/xen/arch/x86/setup.c
Index: xen-4.0.1-testing/xen/arch/x86/setup.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/setup.c
+++ xen-4.0.1-testing/xen/arch/x86/setup.c
@@ -2,6 +2,7 @@
#include <xen/init.h>
#include <xen/lib.h>
@@ -314,7 +328,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( idle_domain == NULL )
BUG();
idle_domain->vcpu = idle_vcpu;
@@ -1097,8 +1098,13 @@ void __init __start_xen(unsigned long mb
@@ -1122,8 +1123,13 @@ void __init __start_xen(unsigned long mb
if ( !tboot_protect_mem_regions() )
panic("Could not protect TXT memory regions\n");
@@ -329,8 +343,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) )
panic("Error creating domain 0\n");
--- a/xen/arch/x86/smpboot.c
+++ b/xen/arch/x86/smpboot.c
Index: xen-4.0.1-testing/xen/arch/x86/smpboot.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/smpboot.c
+++ xen-4.0.1-testing/xen/arch/x86/smpboot.c
@@ -39,6 +39,7 @@
#include <xen/mm.h>
#include <xen/domain.h>
@@ -452,8 +468,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
cpufreq_add_cpu(cpu);
return 0;
}
--- a/xen/arch/x86/sysctl.c
+++ b/xen/arch/x86/sysctl.c
Index: xen-4.0.1-testing/xen/arch/x86/sysctl.c
===================================================================
--- xen-4.0.1-testing.orig/xen/arch/x86/sysctl.c
+++ xen-4.0.1-testing/xen/arch/x86/sysctl.c
@@ -29,7 +29,7 @@
#define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0)
@@ -472,8 +490,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
break;
case XEN_SYSCTL_CPU_HOTPLUG_STATUS:
ret = 0;
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
Index: xen-4.0.1-testing/xen/common/Makefile
===================================================================
--- xen-4.0.1-testing.orig/xen/common/Makefile
+++ xen-4.0.1-testing/xen/common/Makefile
@@ -1,5 +1,6 @@
obj-y += bitmap.o
obj-y += cpu.o
@@ -481,8 +501,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
obj-y += domctl.o
obj-y += domain.o
obj-y += event_channel.o
Index: xen-4.0.1-testing/xen/common/cpupool.c
===================================================================
--- /dev/null
+++ b/xen/common/cpupool.c
+++ xen-4.0.1-testing/xen/common/cpupool.c
@@ -0,0 +1,585 @@
+/******************************************************************************
+ * cpupool.c
@@ -1069,8 +1091,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
+ * indent-tabs-mode: nil
+ * End:
+ */
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
Index: xen-4.0.1-testing/xen/common/domain.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/domain.c
+++ xen-4.0.1-testing/xen/common/domain.c
@@ -209,7 +209,7 @@ static void __init parse_extra_guest_irq
custom_param("extra_guest_irqs", parse_extra_guest_irqs);
@@ -1080,7 +1104,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
{
struct domain *d, **pd;
enum { INIT_xsm = 1u<<0, INIT_rangeset = 1u<<1, INIT_evtchn = 1u<<2,
@@ -290,6 +290,9 @@ struct domain *domain_create(
@@ -292,6 +292,9 @@ struct domain *domain_create(
goto fail;
init_status |= INIT_arch;
@@ -1090,7 +1114,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( sched_init_domain(d) != 0 )
goto fail;
@@ -597,6 +600,8 @@ static void complete_domain_destroy(stru
@@ -603,6 +606,8 @@ static void complete_domain_destroy(stru
rangeset_domain_destroy(d);
@@ -1099,8 +1123,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
sched_destroy_domain(d);
/* Free page used by xen oprofile buffer. */
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
Index: xen-4.0.1-testing/xen/common/domctl.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/domctl.c
+++ xen-4.0.1-testing/xen/common/domctl.c
@@ -11,6 +11,7 @@
#include <xen/lib.h>
#include <xen/mm.h>
@@ -1109,7 +1135,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
#include <xen/domain.h>
#include <xen/event.h>
#include <xen/domain_page.h>
@@ -140,10 +141,12 @@ void getdomaininfo(struct domain *d, str
@@ -141,10 +142,12 @@ void getdomaininfo(struct domain *d, str
info->shared_info_frame = mfn_to_gmfn(d, __pa(d->shared_info)>>PAGE_SHIFT);
BUG_ON(SHARED_M2P(info->shared_info_frame));
@@ -1123,7 +1149,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
{
struct domain *d;
struct vcpu *v;
@@ -173,7 +176,7 @@ static unsigned int default_vcpu0_locati
@@ -174,7 +177,7 @@ static unsigned int default_vcpu0_locati
if ( cpus_weight(per_cpu(cpu_sibling_map, 0)) > 1 )
cpu = next_cpu(cpu, per_cpu(cpu_sibling_map, 0));
cpu_exclude_map = per_cpu(cpu_sibling_map, 0);
@@ -1132,7 +1158,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
{
if ( cpu_isset(i, cpu_exclude_map) )
continue;
@@ -388,6 +391,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
@@ -389,6 +392,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
domid_t dom;
static domid_t rover = 0;
unsigned int domcr_flags;
@@ -1140,7 +1166,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
ret = -EINVAL;
if ( supervisor_mode_kernel ||
@@ -431,7 +435,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
@@ -432,7 +436,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
domcr_flags |= DOMCRF_oos_off;
ret = -ENOMEM;
@@ -1149,7 +1175,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( d == NULL )
break;
@@ -450,6 +454,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
@@ -451,6 +455,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
{
struct domain *d;
unsigned int i, max = op->u.max_vcpus.max, cpu;
@@ -1157,7 +1183,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
ret = -ESRCH;
if ( (d = rcu_lock_domain_by_id(op->domain)) == NULL )
@@ -498,6 +503,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
@@ -499,6 +504,7 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
goto maxvcpu_out;
ret = -ENOMEM;
@@ -1165,7 +1191,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( max > d->max_vcpus )
{
struct vcpu **vcpus;
@@ -521,8 +527,8 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
@@ -522,8 +528,8 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
continue;
cpu = (i == 0) ?
@@ -1176,8 +1202,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
if ( alloc_vcpu(d, i, cpu) == NULL )
goto maxvcpu_out;
--- a/xen/common/kexec.c
+++ b/xen/common/kexec.c
Index: xen-4.0.1-testing/xen/common/kexec.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/kexec.c
+++ xen-4.0.1-testing/xen/common/kexec.c
@@ -235,7 +235,7 @@ void kexec_crash(void)
BUG();
}
@@ -1196,8 +1224,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
break;
case KEXEC_TYPE_CRASH:
kexec_crash(); /* Does not return */
--- a/xen/common/sched_credit.c
+++ b/xen/common/sched_credit.c
Index: xen-4.0.1-testing/xen/common/sched_credit.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/sched_credit.c
+++ xen-4.0.1-testing/xen/common/sched_credit.c
@@ -70,11 +70,15 @@
/*
* Useful macros
@@ -2086,7 +2116,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.destroy_vcpu = csched_vcpu_destroy,
.sleep = csched_vcpu_sleep,
@@ -1411,6 +1540,13 @@ const struct scheduler sched_credit_def
@@ -1411,6 +1540,13 @@ const struct scheduler sched_credit_def
.dump_cpu_state = csched_dump_pcpu,
.dump_settings = csched_dump,
.init = csched_init,
@@ -2100,8 +2130,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.tick_suspend = csched_tick_suspend,
.tick_resume = csched_tick_resume,
--- a/xen/common/sched_sedf.c
+++ b/xen/common/sched_sedf.c
Index: xen-4.0.1-testing/xen/common/sched_sedf.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/sched_sedf.c
+++ xen-4.0.1-testing/xen/common/sched_sedf.c
@@ -21,6 +21,9 @@
printk(_a ); \
} while ( 0 )
@@ -2367,7 +2399,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.name = "Simple EDF Scheduler",
.opt_name = "sedf",
.sched_id = XEN_SCHEDULER_SEDF,
@@ -1464,9 +1509,15 @@ const struct scheduler sched_sedf_def =
@@ -1464,9 +1509,15 @@ const struct scheduler sched_sedf_def =
.init_domain = sedf_init_domain,
.destroy_domain = sedf_destroy_domain,
@@ -2384,8 +2416,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
.do_schedule = sedf_do_schedule,
.pick_cpu = sedf_pick_cpu,
.dump_cpu_state = sedf_dump_cpu_state,
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
Index: xen-4.0.1-testing/xen/common/schedule.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/schedule.c
+++ xen-4.0.1-testing/xen/common/schedule.c
@@ -53,10 +53,11 @@ static void poll_timer_fn(void *data);
/* This is global for now so that private implementations can reach it */
@@ -2696,7 +2730,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/* Block the currently-executing domain until a pertinent event occurs. */
static long do_block(void)
{
@@ -762,7 +840,7 @@ long sched_adjust(struct domain *d, stru
@@ -783,7 +861,7 @@ long sched_adjust(struct domain *d, stru
struct vcpu *v;
long ret;
@@ -2705,7 +2739,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
((op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) &&
(op->cmd != XEN_DOMCTL_SCHEDOP_getinfo)) )
return -EINVAL;
@@ -789,7 +867,7 @@ long sched_adjust(struct domain *d, stru
@@ -810,7 +888,7 @@ long sched_adjust(struct domain *d, stru
if ( d == current->domain )
vcpu_schedule_lock_irq(current);
@@ -2714,7 +2748,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
TRACE_1D(TRC_SCHED_ADJDOM, d->domain_id);
if ( d == current->domain )
@@ -836,6 +914,7 @@ static void schedule(void)
@@ -857,6 +935,7 @@ static void schedule(void)
{
struct vcpu *prev = current, *next = NULL;
s_time_t now = NOW();
@@ -2722,7 +2756,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
struct schedule_data *sd;
struct task_slice next_slice;
@@ -851,7 +930,7 @@ static void schedule(void)
@@ -872,7 +951,7 @@ static void schedule(void)
stop_timer(&sd->s_timer);
/* get policy-specific decision on scheduling... */
@@ -2731,7 +2765,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
next = next_slice.task;
@@ -951,6 +1030,19 @@ static void poll_timer_fn(void *data)
@@ -978,6 +1057,19 @@ static void poll_timer_fn(void *data)
vcpu_unblock(v);
}
@@ -2751,7 +2785,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/* Initialise the data structures. */
void __init scheduler_init(void)
{
@@ -958,12 +1050,6 @@ void __init scheduler_init(void)
@@ -985,12 +1077,6 @@ void __init scheduler_init(void)
open_softirq(SCHEDULE_SOFTIRQ, schedule);
@@ -2764,7 +2798,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
for ( i = 0; schedulers[i] != NULL; i++ )
{
ops = *schedulers[i];
@@ -977,43 +1063,123 @@ void __init scheduler_init(void)
@@ -1004,43 +1090,123 @@ void __init scheduler_init(void)
ops = *schedulers[0];
}
@@ -2904,8 +2938,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
}
#ifdef CONFIG_COMPAT
--- a/xen/common/softirq.c
+++ b/xen/common/softirq.c
Index: xen-4.0.1-testing/xen/common/softirq.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/softirq.c
+++ xen-4.0.1-testing/xen/common/softirq.c
@@ -88,9 +88,11 @@ void raise_softirq(unsigned int nr)
}
@@ -2999,8 +3035,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
open_softirq(TASKLET_SOFTIRQ, tasklet_action);
}
--- a/xen/common/sysctl.c
+++ b/xen/common/sysctl.c
Index: xen-4.0.1-testing/xen/common/sysctl.c
===================================================================
--- xen-4.0.1-testing.orig/xen/common/sysctl.c
+++ xen-4.0.1-testing/xen/common/sysctl.c
@@ -314,6 +314,14 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysc
}
break;
@@ -3016,9 +3054,11 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
default:
ret = arch_do_sysctl(op, u_sysctl);
break;
--- a/xen/include/asm-x86/domain.h
+++ b/xen/include/asm-x86/domain.h
@@ -451,7 +451,8 @@ struct arch_vcpu
Index: xen-4.0.1-testing/xen/include/asm-x86/domain.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/asm-x86/domain.h
+++ xen-4.0.1-testing/xen/include/asm-x86/domain.h
@@ -458,7 +458,8 @@ struct arch_vcpu
#define hvm_svm hvm_vcpu.u.svm
/* Continue the current hypercall via func(data) on specified cpu. */
@@ -3028,8 +3068,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
void vcpu_show_execution_state(struct vcpu *);
void vcpu_show_registers(const struct vcpu *);
--- a/xen/include/asm-x86/smp.h
+++ b/xen/include/asm-x86/smp.h
Index: xen-4.0.1-testing/xen/include/asm-x86/smp.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/asm-x86/smp.h
+++ xen-4.0.1-testing/xen/include/asm-x86/smp.h
@@ -56,7 +56,6 @@ extern u32 cpu_2_logical_apicid[];
#define CPU_ONLINE 0x0002 /* CPU is up */
#define CPU_DEAD 0x0004 /* CPU is dead */
@@ -3038,8 +3080,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
#define cpu_is_offline(cpu) unlikely(!cpu_online(cpu))
extern int cpu_down(unsigned int cpu);
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
Index: xen-4.0.1-testing/xen/include/public/domctl.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/public/domctl.h
+++ xen-4.0.1-testing/xen/include/public/domctl.h
@@ -60,10 +60,10 @@ struct xen_domctl_createdomain {
/* Should domain memory integrity be verifed by tboot during Sx? */
#define _XEN_DOMCTL_CDF_s3_integrity 2
@@ -3068,8 +3112,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
struct xen_domctl {
uint32_t cmd;
#define XEN_DOMCTL_createdomain 1
--- a/xen/include/public/sysctl.h
+++ b/xen/include/public/sysctl.h
Index: xen-4.0.1-testing/xen/include/public/sysctl.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/public/sysctl.h
+++ xen-4.0.1-testing/xen/include/public/sysctl.h
@@ -491,6 +491,28 @@ struct xen_sysctl_lockprof_op {
typedef struct xen_sysctl_lockprof_op xen_sysctl_lockprof_op_t;
DEFINE_XEN_GUEST_HANDLE(xen_sysctl_lockprof_op_t);
@@ -3107,8 +3153,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
uint8_t pad[128];
} u;
};
--- a/xen/include/xen/sched-if.h
+++ b/xen/include/xen/sched-if.h
Index: xen-4.0.1-testing/xen/include/xen/sched-if.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/xen/sched-if.h
+++ xen-4.0.1-testing/xen/include/xen/sched-if.h
@@ -10,16 +10,29 @@
#include <xen/percpu.h>
@@ -3203,8 +3251,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
+struct scheduler *scheduler_get_by_id(unsigned int id);
+
#endif /* __XEN_SCHED_IF_H__ */
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
Index: xen-4.0.1-testing/xen/include/xen/sched.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/xen/sched.h
+++ xen-4.0.1-testing/xen/include/xen/sched.h
@@ -9,6 +9,7 @@
#include <xen/shared.h>
#include <public/xen.h>
@@ -3213,7 +3263,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
#include <public/vcpu.h>
#include <public/xsm/acm.h>
#include <xen/time.h>
@@ -132,8 +133,6 @@ struct vcpu
@@ -132,8 +133,6 @@ struct vcpu
bool_t defer_shutdown;
/* VCPU is paused following shutdown request (d->is_shutting_down)? */
bool_t paused_for_shutdown;
@@ -3222,7 +3272,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/*
* > 0: a single port is being polled;
@@ -211,6 +210,7 @@ struct domain
@@ -209,6 +208,7 @@ struct domain
/* Scheduling. */
void *sched_priv; /* scheduler-specific data */
@@ -3230,7 +3280,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
struct domain *next_in_list;
struct domain *next_in_hashbucket;
@@ -383,7 +383,7 @@ static inline struct domain *get_current
@@ -381,7 +381,7 @@ static inline struct domain *get_current
}
struct domain *domain_create(
@@ -3239,7 +3289,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
/* DOMCRF_hvm: Create an HVM domain, as opposed to a PV domain. */
#define _DOMCRF_hvm 0
#define DOMCRF_hvm (1U<<_DOMCRF_hvm)
@@ -471,6 +471,7 @@ int sched_init_vcpu(struct vcpu *v, uns
@@ -469,6 +469,7 @@ int sched_init_vcpu(struct vcpu *v, uns
void sched_destroy_vcpu(struct vcpu *v);
int sched_init_domain(struct domain *d);
void sched_destroy_domain(struct domain *d);
@@ -3247,7 +3297,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
long sched_adjust(struct domain *, struct xen_domctl_scheduler_op *);
int sched_id(void);
void sched_tick_suspend(void);
@@ -578,12 +579,14 @@ void domain_pause_by_systemcontroller(st
@@ -576,12 +577,14 @@ void domain_pause_by_systemcontroller(st
void domain_unpause_by_systemcontroller(struct domain *d);
void cpu_init(void);
@@ -3266,7 +3316,7 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
void vcpu_runstate_get(struct vcpu *v, struct vcpu_runstate_info *runstate);
uint64_t get_cpu_idle_time(unsigned int cpu);
@@ -606,6 +609,18 @@ extern enum cpufreq_controller {
@@ -604,6 +607,18 @@ extern enum cpufreq_controller {
FREQCTL_none, FREQCTL_dom0_kernel, FREQCTL_xen
} cpufreq_controller;
@@ -3285,8 +3335,10 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com>
#endif /* __SCHED_H__ */
/*
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
Index: xen-4.0.1-testing/xen/include/xen/softirq.h
===================================================================
--- xen-4.0.1-testing.orig/xen/include/xen/softirq.h
+++ xen-4.0.1-testing/xen/include/xen/softirq.h
@@ -58,6 +58,7 @@ struct tasklet
struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data }