--- linux-2.5.74-mm3/arch/i386/kernel/apm.c.orig Wed Jul 9 10:25:46 2003 +++ linux-2.5.74-mm3/arch/i386/kernel/apm.c Wed Jul 9 10:40:42 2003 @@ -508,13 +508,12 @@ #ifdef CONFIG_SMP -static cpumask_t apm_save_cpus(void) +static inline void apm_save_cpus(cpumask_t *mask) { - cpumask_t x = current->cpus_allowed; + *mask = current->cpus_allowed; /* Some bioses don't like being called from CPU != 0 */ set_cpus_allowed(current, cpumask_of_cpu(0)); BUG_ON(smp_processor_id() != 0); - return x; } static inline void apm_restore_cpus(cpumask_t mask) @@ -528,7 +527,7 @@ * No CPU lockdown needed on a uniprocessor */ -#define apm_save_cpus() 0 +#define apm_save_cpus(x) (void)(x) #define apm_restore_cpus(x) (void)(x) #endif @@ -597,7 +596,7 @@ int cpu; struct desc_struct save_desc_40; - cpus = apm_save_cpus(); + apm_save_cpus(&cpus); cpu = get_cpu(); save_desc_40 = cpu_gdt_table[cpu][0x40 / 8]; @@ -640,7 +639,7 @@ struct desc_struct save_desc_40; - cpus = apm_save_cpus(); + apm_save_cpus(&cpus); cpu = get_cpu(); save_desc_40 = cpu_gdt_table[cpu][0x40 / 8]; @@ -918,7 +917,8 @@ #endif if (apm_info.realmode_power_off) { - (void)apm_save_cpus(); + cpumask_t dummy; + apm_save_cpus(&dummy); machine_real_restart(po_bios_call, sizeof(po_bios_call)); } else