Re: [PATCH 1/1] cpumask: Change cpumask_of_cpu to use cpumask_of_cpu_map- build breakage

From: Tim Bird
Date: Wed Jul 30 2008 - 18:01:35 EST


Mike Travis wrote:
> There was a later update that fixed this. You should have the following
> in include/linux/cpumask.h particularly line 291.
>
>
> e56b3bc7 (Linus Torvalds 2008-07-28 11:32:33 -0700 285) /*
> e56b3bc7 (Linus Torvalds 2008-07-28 11:32:33 -0700 286) * In cases where we take the address of the cpumask immediately,
> e56b3bc7 (Linus Torvalds 2008-07-28 11:32:33 -0700 287) * gcc optimizes it out (it's a constant) and there's no huge stack
> e56b3bc7 (Linus Torvalds 2008-07-28 11:32:33 -0700 288) * variable created:
> e56b3bc7 (Linus Torvalds 2008-07-28 11:32:33 -0700 289) */
> 1eddd657 (Stephen Rothwell 2008-07-29 16:07:37 +1000 290) #define cpumask_of_cpu(cpu) (*get_cpu_mask(cpu))
> ^1da177e (Linus Torvalds 2005-04-16 15:20:36 -0700 291)
>
> If 1eddd657 is there, would you send the config?

I was working out of a linux-2.6.27-rc1.tar.bz2 I got off of kernel.org,
so my working tree doesn't have the commit information.


However, comparing my source with the source above shows a difference.
In a Linus' 2.6 tree I downloaded outside my firewall, I have the following:
3dd730f2 (Stephen Rothwell 2008-07-29 16:07:37 +1000 290)#define cpumask_of_cpu(cpu) (*get_cpu_mask(cpu))

It doesn't appear to have the change you mention. But 3dd730f2 looks
promising:
commit 3dd730f2b49f101b90d283c3efc4e6cd826dd8f6
Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Tue Jul 29 16:07:37 2008 +1000

cpumask: statement expressions confuse some versions of gcc

when you take the address of the result. Noticed on a sparc64 compile
using a version 3.4.5 cross compiler.

kernel/time/tick-common.c: In function `tick_check_new_device':
kernel/time/tick-common.c:210: error: invalid lvalue in unary `&'
...

Just make it a regular expression.

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Acked-by: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>

This looks like it's only 4 hours old. I'll give this a spin.

I don't see 1eddd657 anywhere in the commit log for cpumask.h
Is it in linux-next?

Thanks,
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/