Move xen-pm options from dom0 cmdline option to start info. Thus to avoid xen-pm being manually enforced by end user in dom0 cmdline but without enabling them in xen. signed-off-by: Wei Gang diff -r 1102cbef43fd arch/i386/kernel/acpi/processor_extcntl_xen.c --- a/arch/i386/kernel/acpi/processor_extcntl_xen.c Mon Jul 28 12:57:09 2008 +0800 +++ b/arch/i386/kernel/acpi/processor_extcntl_xen.c Mon Jul 28 16:34:35 2008 +0800 @@ -33,13 +33,6 @@ #include static int xen_processor_pmbits; -static int __init set_xen_processor_pmbits(char *str) -{ - get_option(&str, &xen_processor_pmbits); - - return 1; -} -__setup("xen_processor_pmbits=", set_xen_processor_pmbits); static int xen_cx_notifier(struct acpi_processor *pr, int action) { @@ -222,6 +215,8 @@ static struct processor_extcntl_ops xen_ void arch_acpi_processor_init_extcntl(const struct processor_extcntl_ops **ops) { + xen_processor_pmbits = (xen_start_info->flags & SIF_PM_MASK) >> 8; + if (xen_processor_pmbits & XEN_PROCESSOR_PM_CX) xen_extcntl_ops.pm_ops[PM_TYPE_IDLE] = xen_cx_notifier; if (xen_processor_pmbits & XEN_PROCESSOR_PM_PX) diff -r 1102cbef43fd include/xen/interface/xen.h --- a/include/xen/interface/xen.h Mon Jul 28 12:57:09 2008 +0800 +++ b/include/xen/interface/xen.h Mon Jul 28 16:34:35 2008 +0800 @@ -554,6 +554,7 @@ typedef struct start_info start_info_t; /* These flags are passed in the 'flags' field of start_info_t. */ #define SIF_PRIVILEGED (1<<0) /* Is the domain privileged? */ #define SIF_INITDOMAIN (1<<1) /* Is this the initial control domain? */ +#define SIF_PM_MASK (0xFF<<8) /* reserve 1 byte for xen-pm options */ typedef struct dom0_vga_console_info { uint8_t video_type; /* DOM0_VGA_CONSOLE_??? */