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 ec15bb12588f arch/i386/kernel/acpi/processor_extcntl_xen.c --- a/arch/i386/kernel/acpi/processor_extcntl_xen.c Sat Jul 26 19:53:41 2008 +0800 +++ b/arch/i386/kernel/acpi/processor_extcntl_xen.c Mon Jul 28 11:40:14 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->xen_processor_pmbits; + 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 ec15bb12588f include/xen/interface/xen.h --- a/include/xen/interface/xen.h Sat Jul 26 19:53:41 2008 +0800 +++ b/include/xen/interface/xen.h Mon Jul 28 11:40:14 2008 +0800 @@ -542,6 +542,7 @@ struct start_info { unsigned long mod_start; /* VIRTUAL address of pre-loaded module. */ unsigned long mod_len; /* Size (bytes) of pre-loaded module. */ int8_t cmd_line[MAX_GUEST_CMDLINE]; + unsigned int xen_processor_pmbits; /* cpu pm flags, XEN_PROCESSOR_PM_x */ }; typedef struct start_info start_info_t;