Re: [stable] [PATCH] modules fix incorrect percpu usage

Previous thread: [PATCH 0/2] [GIT PULL][v2.6.34] tracing: fixes by Steven Rostedt on Monday, March 29, 2010 - 7:58 pm. (3 messages)

Next thread: [PATCH] lockdep fix incorrect percpu usage by Mathieu Desnoyers on Monday, March 29, 2010 - 8:34 pm. (9 messages)
From: Mathieu Desnoyers
Date: Monday, March 29, 2010 - 8:32 pm

Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed
for per cpu pointers).

Introduced by commit:

module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3

This patch should be queued for the stable branch, for kernels 2.6.29.x to
2.6.33.x.
(tested on 2.6.33.1 x86_64)

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Randy Dunlap <randy.dunlap@oracle.com>
CC: Eric Dumazet <dada1@cosmosbay.com>
CC: Rusty Russell <rusty@rustcorp.com.au>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Tejun Heo <tj@kernel.org>
CC: Ingo Molnar <mingo@elte.hu>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Greg Kroah-Hartman <gregkh@suse.de>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: stable <stable@kernel.org>
---
 kernel/module.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6-lttng/kernel/module.c
===================================================================
--- linux-2.6-lttng.orig/kernel/module.c	2010-03-29 23:47:05.000000000 -0400
+++ linux-2.6-lttng/kernel/module.c	2010-03-29 23:47:27.000000000 -0400
@@ -412,7 +412,7 @@ static void percpu_modcopy(void *pcpudes
 	int cpu;
 
 	for_each_possible_cpu(cpu)
-		memcpy(pcpudest + per_cpu_offset(cpu), from, size);
+		memcpy(per_cpu_ptr(pcpudest, cpu), from, size);
 }
 
 #else /* ... !CONFIG_SMP */

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
--

From: Mathieu Desnoyers
Date: Monday, March 29, 2010 - 8:36 pm

It's actually needed for mainline too (2.6.34-rc2).

Thanks,


-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
--

From: Steven Rostedt
Date: Tuesday, March 30, 2010 - 6:20 am

Then all you need to do is submit it for mainline with a 
"Cc: stable@kernel.org" as you did below. It will then automatically be
added to the stable queue when Linus pulls it.


--

From: Mathieu Desnoyers
Date: Tuesday, March 30, 2010 - 6:50 am

OK, thanks for the info.


-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
--

From: Greg KH
Date: Monday, April 19, 2010 - 11:28 am

And I need to wait until it goes into Linus's tree before it can be
applied to the stable tree.  This hasn't happened yet, right?

thanks,

greg k-h
--

From: Mathieu Desnoyers
Date: Tuesday, April 20, 2010 - 7:34 am

Same here, for module.c fix. Feel free to choose between this fix or the
corresponding refactoring from Tejun.


modules fix incorrect percpu usage

Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed
for per cpu pointers).

Introduced by commit:

module.c: commit 6b588c18f8dacfa6d7957c33c5ff832096e752d3

This patch should be queued for the stable branch, for kernels 2.6.29.x to
2.6.33.x.  (tested on 2.6.33.1 x86_64)

Mainline does not need this fix, as commit
259354deaaf03d49a02dbb9975d6ec2a54675672 fixed the problem by refactoring.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Randy Dunlap <randy.dunlap@oracle.com>
CC: Eric Dumazet <dada1@cosmosbay.com>
CC: Rusty Russell <rusty@rustcorp.com.au>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Tejun Heo <tj@kernel.org>
CC: Ingo Molnar <mingo@elte.hu>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Greg Kroah-Hartman <gregkh@suse.de>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: stable <stable@kernel.org>
---
 kernel/module.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux.trees.git/kernel/module.c
===================================================================
--- linux.trees.git.orig/kernel/module.c	2010-03-27 11:27:23.000000000 -0400
+++ linux.trees.git/kernel/module.c	2010-03-30 09:48:41.000000000 -0400
@@ -405,7 +405,7 @@ static void percpu_modcopy(void *pcpudes
 	int cpu;
 
 	for_each_possible_cpu(cpu)
-		memcpy(pcpudest + per_cpu_offset(cpu), from, size);
+		memcpy(per_cpu_ptr(pcpudest, cpu), from, size);
 }
 
 #else /* ... !CONFIG_SMP */


-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
--

From: Greg KH
Date: Wednesday, April 21, 2010 - 3:39 pm

Thanks, I took this one.

greg k-h
--

From: Tejun Heo
Date: Wednesday, April 21, 2010 - 3:51 am

Hello,


Please take this one for -stable.  I don't think the percpu
refactoring is worthwhile to backport to -stable.  It only affects
debug feature and the worst outcome is spurious warning messages.

Thanks.

-- 
tejun
--

Previous thread: [PATCH 0/2] [GIT PULL][v2.6.34] tracing: fixes by Steven Rostedt on Monday, March 29, 2010 - 7:58 pm. (3 messages)

Next thread: [PATCH] lockdep fix incorrect percpu usage by Mathieu Desnoyers on Monday, March 29, 2010 - 8:34 pm. (9 messages)