[PATCH] Fix the conflicted for_each_cpu macro with 2.6.28-rc4

William Cohen wcohen@redhat.com
Mon Nov 17 15:56:00 GMT 2008


Wenji Huang wrote:
> This patch will change for_each_cpu macro definition to avoid
> name collusion in 2.6.28-rc4. See mainline commit:
> cb56d98e2a7530615899597551db685d68a2e852.
> 
> ---
>  runtime/counter.c          |    4 ++--
>  runtime/map-stat.c         |    4 ++--
>  runtime/map.c              |   14 +++++++-------
>  runtime/pmap-gen.c         |    6 +++---
>  runtime/runtime.h          |   10 ++++++++--
>  runtime/stat.c             |    6 +++---
>  runtime/transport/procfs.c |    6 +++---
>  7 files changed, 28 insertions(+), 22 deletions(-)

> --- a/runtime/runtime.h
> +++ b/runtime/runtime.h
> @@ -39,8 +39,14 @@
>  #define STP_OLD_TRANSPORT
>  #endif
> 
> -#ifndef for_each_cpu
> -#define for_each_cpu(cpu)  for_each_cpu_mask((cpu), cpu_possible_map)
> +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
> +#ifndef stp_for_each_cpu
> +#define stp_for_each_cpu(cpu)  for_each_cpu((cpu), cpu_possible_map)
> +#endif
> +#else
> +#ifndef stp_for_each_cpu
> +#define stp_for_each_cpu(cpu)  for_each_cpu_mask((cpu), cpu_possible_map)
> +#endif
>  #endif

I noticed this problem occurring with the i686 testing of the new systemtap rpm 
on f10. Looking through the git tree for the kernel I found when the change was 
checked in:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=15c8b6c1aaaf1c4edd67e2f02e4d8e1bd1a51c0d

It looks like this is older than a 2.6.28 change, May 9, 2008. This will also be 
in 2.6.27 kernels.

-Will



More information about the Systemtap mailing list