[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100422220249.GB15195@Krystal>
Date: Thu, 22 Apr 2010 18:02:49 -0400
From: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To: Nikola Ciprich <nikola.ciprich@...uxbox.cz>
Cc: Greg KH <gregkh@...e.de>, linux-kernel@...r.kernel.org,
stable@...nel.org, Greg KH <greg@...ah.com>,
Randy Dunlap <randy.dunlap@...cle.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Rusty Russell <rusty@...tcorp.com.au>,
Steven Rostedt <rostedt@...dmis.org>,
Eric Dumazet <dada1@...mosbay.com>,
Ingo Molnar <mingo@...e.hu>, Tejun Heo <tj@...nel.org>,
akpm@...ux-foundation.org, torvalds@...ux-foundation.org,
stable-review@...nel.org, alan@...rguk.ukuu.org.uk
Subject: Re: [Stable-review] [170/197] lockdep: fix incorrect percpu usage
* Nikola Ciprich (nikola.ciprich@...uxbox.cz) wrote:
> Hi,
> hmm,
> this one seems to break compilation for me:
> kernel/lockdep.c: In function ‘static_obj’:
> kernel/lockdep.c:595: error: invalid use of array with unspecified bounds
> kernel/lockdep.c:595: error: invalid use of array with unspecified bounds
> make[1]: *** [kernel/lockdep.o] Error 1
>
> I'm using gcc-4.1.2
> regards
> nik
>
Oh, you are right. I tweaked a few config options and got your error. Here is an
updated patch.
Greg, this v2 should replace the original patch you have. Sorry about the
trouble.
lockdep fix incorrect percpu usage (v2)
Should use per_cpu_ptr() to obfuscate the per cpu pointers (RELOC_HIDE is needed
for per cpu pointers).
Changelog since v1:
- Move PERCPU_ENOUGH_ROOM outside of per_cpu_ptr(), where it belongs.
git blame points to commit:
lockdep.c: commit 8e18257d29238311e82085152741f0c3aa18b74d
But it's really just moving the code around. But it's enough to say that the
problems appeared before Jul 19 01:48:54 2007, which brings us back to 2.6.23.
This patch applies to mainline as of 2.6.34-rc2. It also should be applied to
stable 2.6.23.x to 2.6.33.x (or whichever of these stable branches are still
maintained).
(based on 2.6.33.1, also applies to 2.6.34-rc2 -tip)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
CC: Randy Dunlap <randy.dunlap@...cle.com>
CC: Eric Dumazet <dada1@...mosbay.com>
CC: Rusty Russell <rusty@...tcorp.com.au>
CC: Peter Zijlstra <a.p.zijlstra@...llo.nl>
CC: Tejun Heo <tj@...nel.org>
CC: Ingo Molnar <mingo@...e.hu>
CC: Andrew Morton <akpm@...ux-foundation.org>
CC: Linus Torvalds <torvalds@...ux-foundation.org>
CC: Greg Kroah-Hartman <gregkh@...e.de>
CC: Steven Rostedt <rostedt@...dmis.org>
CC: stable <stable@...nel.org>
---
kernel/lockdep.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Index: linux-2.6-lttng/kernel/lockdep.c
===================================================================
--- linux-2.6-lttng.orig/kernel/lockdep.c 2010-04-22 17:51:28.000000000 -0400
+++ linux-2.6-lttng/kernel/lockdep.c 2010-04-22 17:55:02.000000000 -0400
@@ -600,9 +600,9 @@ static int static_obj(void *obj)
* percpu var?
*/
for_each_possible_cpu(i) {
- start = (unsigned long) &__per_cpu_start + per_cpu_offset(i);
- end = (unsigned long) &__per_cpu_start + PERCPU_ENOUGH_ROOM
- + per_cpu_offset(i);
+ start = (unsigned long) per_cpu_ptr(&__per_cpu_start, i);
+ end = (unsigned long) per_cpu_ptr(&__per_cpu_start, i)
+ + PERCPU_ENOUGH_ROOM;
if ((addr >= start) && (addr < end))
return 1;
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
Download attachment "signature.asc" of type "application/pgp-signature" (190 bytes)
Powered by blists - more mailing lists