xen/24970-x86-cpuidle-deny-port-access.patch
Charles Arnold 57123e612c - bnc#753165 - xen/scripts/network-bridge wont create bridge
bridge-bonding.diff

- Upstream patches from Jan
  24950-gnttab-copy-mapped.patch
  24970-x86-cpuidle-deny-port-access.patch
  24996-x86-cpuidle-array-overrun.patch
  25041-tapdisk2-create-init-name.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=176
2012-03-21 20:38:02 +00:00

33 lines
1.0 KiB
Diff

# HG changeset patch
# User Jan Beulich <jbeulich@suse.com>
# Date 1331048501 -3600
# Node ID 33980e36597b9f780ef515210863034b5e3080bf
# Parent fb70e48ee3c2ea7060a97d9ddaa6dfc864f1efc0
x86/cpuidle: deny access to the I/O port used for EM_SYSIO
Nothing, not even Dom0, should fiddle with this.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -44,6 +44,7 @@
#include <xen/sched-if.h>
#include <asm/cache.h>
#include <asm/io.h>
+#include <asm/iocap.h>
#include <asm/hpet.h>
#include <asm/processor.h>
#include <xen/pmstat.h>
@@ -885,6 +886,9 @@ static void set_cx(
cx->entry_method = ACPI_CSTATE_EM_HALT;
break;
case ACPI_ADR_SPACE_SYSTEM_IO:
+ if ( ioports_deny_access(dom0, cx->address, cx->address) )
+ printk(XENLOG_WARNING "Could not deny access to port %04x\n",
+ cx->address);
cx->entry_method = ACPI_CSTATE_EM_SYSIO;
break;
default: