[PATCH 1/2] kernel:fork: fix dependency of hardirqs_enabled and softirqs_enabled

Previous thread: Re: [PATCH v3] firmware_class: fix memory leak - free allocated pages by Pavan Savoy on Tuesday, May 4, 2010 - 8:52 am. (1 message)

Next thread: [PATCH 2/2] lockdep: allow user to disable CONFIG_TRACE_IRQFLAGS by tom.leiming on Tuesday, May 4, 2010 - 9:02 am. (3 messages)
From: tom.leiming
Date: Tuesday, May 4, 2010 - 9:01 am

From: Ming Lei <tom.leiming@gmail.com>

The defination of hardirqs_enabled and softirqs_enabled in task_struct
depends on CONFIG_TRACE_IRQFLAGS instead of CONFIG_PROVE_LOCKING.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
---
 kernel/fork.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/fork.c b/kernel/fork.c
index 44b0791..038a8fd 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1004,7 +1004,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 
 	rt_mutex_init_task(p);
 
-#ifdef CONFIG_PROVE_LOCKING
+#ifdef CONFIG_TRACE_IRQFLAGS
 	DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
 	DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
 #endif
-- 
1.6.2.5

--

From: tip-bot for Ming Lei
Date: Tuesday, May 4, 2010 - 10:04 am

Commit-ID:  9ca79f1559dc54268bdf129c0b2a1e2bcebeb0d5
Gitweb:     http://git.kernel.org/tip/9ca79f1559dc54268bdf129c0b2a1e2bcebeb0d5
Author:     Ming Lei <tom.leiming@gmail.com>
AuthorDate: Wed, 5 May 2010 00:01:12 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Tue, 4 May 2010 18:33:20 +0200

lockdep, fork: Fix dependency of hardirqs_enabled and softirqs_enabled

The defination of hardirqs_enabled and softirqs_enabled in
task_struct depends on CONFIG_TRACE_IRQFLAGS instead of
CONFIG_PROVE_LOCKING.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <1272988872-2347-1-git-send-email-tom.leiming@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 kernel/fork.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/fork.c b/kernel/fork.c
index 44b0791..038a8fd 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1004,7 +1004,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
 
 	rt_mutex_init_task(p);
 
-#ifdef CONFIG_PROVE_LOCKING
+#ifdef CONFIG_TRACE_IRQFLAGS
 	DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
 	DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
 #endif
--

From: Ingo Molnar
Date: Tuesday, May 4, 2010 - 10:08 am

this looks wrong - and it also causes this warning during bootup, with certain 
configs:

ftrace: allocating 24861 entries in 98 pages
------------[ cut here ]------------
WARNING: at kernel/fork.c:1008 copy_process+0x217/0x112c()
Hardware name: System Product Name
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.34-rc6-tip-01171-gd3c6011-dirty #3116
Call Trace:
 [<ffffffff81039739>] warn_slowpath_common+0x7c/0x94
 [<ffffffff81039765>] warn_slowpath_null+0x14/0x16
 [<ffffffff81037dc5>] copy_process+0x217/0x112c
 [<ffffffff8100386c>] ? call_softirq+0x1c/0x28
 [<ffffffff8109e10a>] ? __alloc_pages_nodemask+0x112/0x5fc
 [<ffffffff81038e2c>] do_fork+0x152/0x2d1
 [<ffffffff815d3074>] ? trace_hardirqs_on_thunk+0x3a/0x3c
 [<ffffffff815d3729>] ? restore_args+0x0/0x30
 [<ffffffff81008ec1>] kernel_thread+0x70/0x72
 [<ffffffff8199e546>] ? kernel_init+0x0/0x1f5
 [<ffffffff81003770>] ? kernel_thread_helper+0x0/0x10
 [<ffffffff8104e14c>] ? rcu_scheduler_starting+0x38/0x5c
 [<ffffffff815a503d>] rest_init+0x21/0x80
 [<ffffffff8199ed21>] start_kernel+0x3b8/0x3c3
 [<ffffffff8199e2a3>] x86_64_start_reservations+0xb3/0xb7
 [<ffffffff8199e38b>] x86_64_start_kernel+0xe4/0xeb
---[ end trace 4eaa2a86a8e2da22 ]---
Setting APIC routing to flat

	Ingo
--

Previous thread: Re: [PATCH v3] firmware_class: fix memory leak - free allocated pages by Pavan Savoy on Tuesday, May 4, 2010 - 8:52 am. (1 message)

Next thread: [PATCH 2/2] lockdep: allow user to disable CONFIG_TRACE_IRQFLAGS by tom.leiming on Tuesday, May 4, 2010 - 9:02 am. (3 messages)