WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] linux/x86: don't build cstate.o and wakeup.o

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] linux/x86: don't build cstate.o and wakeup.o
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Thu, 22 Nov 2007 13:09:32 +0000
Delivery-date: Thu, 22 Nov 2007 05:08:46 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
The code in arch/i386/kernel/acpi/cstate.c is (at best) irrelevant for
VMs. The code in arch/{i386,x86_64}/kernel/acpi/wakeup.S is even
dangerous; while not being actively used, its inadvertant use would go
unnoticed.

As usual, written and tested against 2.6.23 and made apply against
2.6.18 without further testing.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: head-2007-10-26/arch/i386/kernel/acpi/Makefile
===================================================================
--- head-2007-10-26.orig/arch/i386/kernel/acpi/Makefile 2007-11-13 
09:29:24.000000000 +0100
+++ head-2007-10-26/arch/i386/kernel/acpi/Makefile      2007-11-13 
11:19:08.000000000 +0100
@@ -6,3 +6,4 @@ ifneq ($(CONFIG_ACPI_PROCESSOR),)
 obj-y                          += cstate.o processor.o
 endif
 
+disabled-obj-$(CONFIG_XEN)     := cstate.o wakeup.o
Index: sle10sp2-2007-11-14/arch/i386/kernel/acpi/sleep-xen.c
===================================================================
--- sle10sp2-2007-11-14.orig/arch/i386/kernel/acpi/sleep-xen.c  2007-11-19 
10:55:39.000000000 +0100
+++ sle10sp2-2007-11-14/arch/i386/kernel/acpi/sleep-xen.c       2007-11-16 
13:26:42.000000000 +0100
@@ -12,12 +12,14 @@
 
 #include <asm/smp.h>
 
+#ifndef CONFIG_ACPI_PV_SLEEP
 /* address in low memory of the wakeup routine. */
 unsigned long acpi_wakeup_address = 0;
 unsigned long acpi_video_flags;
 extern char wakeup_start, wakeup_end;
 
 extern unsigned long FASTCALL(acpi_copy_wakeup_routine(unsigned long));
+#endif
 
 /**
  * acpi_save_state_mem - save kernel state
@@ -54,6 +56,7 @@ void acpi_restore_state_mem(void)
  */
 void __init acpi_reserve_bootmem(void)
 {
+#ifndef CONFIG_ACPI_PV_SLEEP
        if ((&wakeup_end - &wakeup_start) > PAGE_SIZE) {
                printk(KERN_ERR
                       "ACPI: Wakeup code way too big, S3 disabled.\n");
@@ -63,8 +66,10 @@ void __init acpi_reserve_bootmem(void)
        acpi_wakeup_address = (unsigned long)alloc_bootmem_low(PAGE_SIZE);
        if (!acpi_wakeup_address)
                printk(KERN_ERR "ACPI: Cannot allocate lowmem, S3 disabled.\n");
+#endif
 }
 
+#ifndef CONFIG_ACPI_PV_SLEEP
 static int __init acpi_sleep_setup(char *str)
 {
        while ((str != NULL) && (*str != '\0')) {
@@ -106,7 +111,7 @@ static int __init acpisleep_dmi_init(voi
 
 core_initcall(acpisleep_dmi_init);
 
-#ifdef CONFIG_ACPI_PV_SLEEP
+#else /* CONFIG_ACPI_PV_SLEEP */
 #include <asm/hypervisor.h>
 #include <xen/interface/platform.h>
 int acpi_notify_hypervisor_state(u8 sleep_state,
Index: head-2007-10-26/arch/x86_64/kernel/acpi/Makefile
===================================================================
--- head-2007-10-26.orig/arch/x86_64/kernel/acpi/Makefile       2007-11-13 
09:29:24.000000000 +0100
+++ head-2007-10-26/arch/x86_64/kernel/acpi/Makefile    2007-11-13 
11:19:08.000000000 +0100
@@ -5,4 +5,7 @@ obj-$(CONFIG_ACPI_SLEEP)        += sleep.o wake
 ifneq ($(CONFIG_ACPI_PROCESSOR),)
 obj-y                  += processor.o
 processor-y            := ../../../i386/kernel/acpi/processor.o 
../../../i386/kernel/acpi/cstate.o
+processor-$(CONFIG_XEN)        := ../../../i386/kernel/acpi/processor.o
 endif
+
+disabled-obj-$(CONFIG_XEN) := wakeup.o
Index: sle10sp2-2007-11-14/arch/x86_64/kernel/acpi/sleep-xen.c
===================================================================
--- sle10sp2-2007-11-14.orig/arch/x86_64/kernel/acpi/sleep-xen.c        
2007-08-06 15:10:49.000000000 +0200
+++ sle10sp2-2007-11-14/arch/x86_64/kernel/acpi/sleep-xen.c     2007-11-16 
13:30:38.000000000 +0100
@@ -53,6 +53,7 @@
 
 #ifdef CONFIG_ACPI_SLEEP
 
+#ifndef CONFIG_ACPI_PV_SLEEP
 /* address in low memory of the wakeup routine. */
 unsigned long acpi_wakeup_address = 0;
 unsigned long acpi_video_flags;
@@ -70,6 +71,7 @@ static void init_low_mapping(void)
        WARN_ON(num_online_cpus() != 1);
        local_flush_tlb();
 }
+#endif
 
 /**
  * acpi_save_state_mem - save kernel state
@@ -110,12 +112,15 @@ void acpi_restore_state_mem(void)
  */
 void __init acpi_reserve_bootmem(void)
 {
+#ifndef CONFIG_ACPI_PV_SLEEP
        acpi_wakeup_address = (unsigned long)alloc_bootmem_low(PAGE_SIZE);
        if ((&wakeup_end - &wakeup_start) > PAGE_SIZE)
                printk(KERN_CRIT
                       "ACPI: Wakeup code way too big, will crash on attempt to 
suspend\n");
+#endif
 }
 
+#ifndef CONFIG_ACPI_PV_SLEEP
 static int __init acpi_sleep_setup(char *str)
 {
        while ((str != NULL) && (*str != '\0')) {
@@ -133,7 +138,7 @@ static int __init acpi_sleep_setup(char 
 
 __setup("acpi_sleep=", acpi_sleep_setup);
 
-#ifdef CONFIG_ACPI_PV_SLEEP
+#else /* CONFIG_ACPI_PV_SLEEP */
 #include <asm/hypervisor.h>
 #include <xen/interface/platform.h>
 int acpi_notify_hypervisor_state(u8 sleep_state,
Index: head-2007-10-26/include/asm-i386/acpi.h
===================================================================
--- head-2007-10-26.orig/include/asm-i386/acpi.h        2007-10-15 
16:36:04.000000000 +0200
+++ head-2007-10-26/include/asm-i386/acpi.h     2007-11-13 11:19:08.000000000 
+0100
@@ -185,7 +185,9 @@ static inline void disable_acpi(void) { 
 
 extern u8 x86_acpiid_to_apicid[];
 
+#ifndef CONFIG_XEN
 #define ARCH_HAS_POWER_INIT    1
+#endif
 
 #endif /*__KERNEL__*/
 
Index: head-2007-10-26/include/asm-x86_64/acpi.h
===================================================================
--- head-2007-10-26.orig/include/asm-x86_64/acpi.h      2007-10-15 
16:44:51.000000000 +0200
+++ head-2007-10-26/include/asm-x86_64/acpi.h   2007-11-13 11:19:08.000000000 
+0100
@@ -166,7 +166,9 @@ extern int acpi_scan_nodes(unsigned long
 
 extern u8 x86_acpiid_to_apicid[];
 
+#ifndef CONFIG_XEN
 #define ARCH_HAS_POWER_INIT 1
+#endif
 
 extern int acpi_skip_timer_override;
 
Index: sle10sp2-2007-11-14/kernel/sysctl.c
===================================================================
--- sle10sp2-2007-11-14.orig/kernel/sysctl.c    2007-11-20 08:46:16.000000000 
+0100
+++ sle10sp2-2007-11-14/kernel/sysctl.c 2007-11-19 18:01:23.000000000 +0100
@@ -661,7 +661,7 @@ static ctl_table kern_table[] = {
                .proc_handler   = &proc_dointvec,
        },
 #endif
-#ifdef CONFIG_ACPI_SLEEP
+#if defined(CONFIG_ACPI_SLEEP) && !defined(CONFIG_ACPI_PV_SLEEP)
        {
                .ctl_name       = KERN_ACPI_VIDEO_FLAGS,
                .procname       = "acpi_video_flags",



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] linux/x86: don't build cstate.o and wakeup.o, Jan Beulich <=