Messages in this thread | | | Date | Mon, 08 Sep 2008 08:29:46 -0700 | From | Mike Travis <> | Subject | Re: [RFC 11/13] genapic: reduce stack pressuge in io_apic.c step 3 target_cpus |
| |
Bert Wesarg wrote: > On Sun, Sep 7, 2008 at 01:50, Mike Travis <travis@sgi.com> wrote: >> * Step 3 "target_cpus" of cleaning up io_apic.c modifies the TARGET_CPUS >> interface to pass a pointer to the returned mask for arch X86_64, >> removing yet another "cpumask_t variable on the stack". >> >> target_cpus = TARGET_CPUS; >> >> becomes: >> >> TARGET_CPUS(target_cpus); >> >> For x86_32 this is expanded to: >> >> target_cpus = (genapic->target_cpus()); >> >> For x86_64 this is expanded to: >> >> target_cpus = (genapic->target_cpus)(&(target_cpus)); > But its expended to: > (genapic->target_cpus)(&(target_cpus));
Umm, right, my cut and paste error...
Thanks, Mike > >> -#define TARGET_CPUS (genapic->target_cpus()) >> +#define TARGET_CPUS(retval) (genapic->target_cpus)(&(retval)) > > >> +#ifdef CONFIG_X86_64 >> +#define TARGET_CPUS(retval) (genapic->target_cpus)(&(retval)) >> +#else >> +#define TARGET_CPUS(retval) retval = (genapic->target_cpus()) >> +#endif > > Bert
| |