Messages in this thread |  | | | Date | Sun, 7 Sep 2008 09:55:17 +0200 | | From | "Bert Wesarg" <> | | Subject | Re: [RFC 11/13] genapic: reduce stack pressuge in io_apic.c step 3 target_cpus |
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));
> -#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
|  |