aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/acpi
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-03-06 16:41:41 +0100
committerJan Beulich <jbeulich@suse.com>2012-03-06 16:41:41 +0100
commit111e9b24138cf3e1b19ee2ee95774f6f3811de75 (patch)
tree7df970c3062822fdeae017cc026a32549052cbc8 /xen/arch/x86/acpi
parentccee30d1b03707c38df5d17243025438fdc3ca21 (diff)
downloadxen-111e9b24138cf3e1b19ee2ee95774f6f3811de75.tar.gz
xen-111e9b24138cf3e1b19ee2ee95774f6f3811de75.tar.bz2
xen-111e9b24138cf3e1b19ee2ee95774f6f3811de75.zip
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>
Diffstat (limited to 'xen/arch/x86/acpi')
-rw-r--r--xen/arch/x86/acpi/cpu_idle.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c
index bc824e88c0..a675867f24 100644
--- a/xen/arch/x86/acpi/cpu_idle.c
+++ b/xen/arch/x86/acpi/cpu_idle.c
@@ -45,6 +45,7 @@
#include <xen/irq.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>
@@ -907,6 +908,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: