From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Helsley Subject: [RFC][PATCH 08/10] Task watchers v2 Register lockdep task watcher Date: Thu, 28 Sep 2006 19:02:40 -0700 Message-ID: <20060929021301.675685000@us.ibm.com> References: <20060929020232.756637000@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline; filename=task-watchers-register-lockdep List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: lse-tech-bounces@lists.sourceforge.net Errors-To: lse-tech-bounces@lists.sourceforge.net To: Linux-Kernel Cc: Chandra S Seetharaman , John T Kohl , Jes Sorensen , Paul Jackson , linux-audit@redhat.com, Al Viro , LSE-Tech , Steve Grubb , Christoph Hellwig List-Id: linux-audit@redhat.com Register a task watcher for lockdep instead of hooking into copy_process(). Signed-off-by: Matt Helsley --- kernel/fork.c | 5 ----- kernel/lockdep.c | 9 +++++++++ 2 files changed, 9 insertions(+), 5 deletions(-) Index: linux-2.6.18-mm1/kernel/fork.c =================================================================== --- linux-2.6.18-mm1.orig/kernel/fork.c +++ linux-2.6.18-mm1/kernel/fork.c @@ -1058,15 +1058,10 @@ static struct task_struct *copy_process( p->tgid = current->tgid; retval = notify_task_watchers(WATCH_TASK_INIT, clone_flags, p); if (retval < 0) goto bad_fork_cleanup_delays_binfmt; -#ifdef CONFIG_LOCKDEP - p->lockdep_depth = 0; /* no locks held yet */ - p->curr_chain_key = 0; - p->lockdep_recursion = 0; -#endif rt_mutex_init_task(p); #ifdef CONFIG_DEBUG_MUTEXES p->blocked_on = NULL; /* not blocked yet */ Index: linux-2.6.18-mm1/kernel/lockdep.c =================================================================== --- linux-2.6.18-mm1.orig/kernel/lockdep.c +++ linux-2.6.18-mm1/kernel/lockdep.c @@ -2555,10 +2555,19 @@ void __init lockdep_init(void) INIT_LIST_HEAD(chainhash_table + i); lockdep_initialized = 1; } +static int init_task_lockdep(unsigned long clone_flags, struct task_struct *p) +{ + p->lockdep_depth = 0; /* no locks held yet */ + p->curr_chain_key = 0; + p->lockdep_recursion = 0; + return 0; +} +task_watcher_func(init, init_task_lockdep); + void __init lockdep_info(void) { printk("Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar\n"); printk("... MAX_LOCKDEP_SUBCLASSES: %lu\n", MAX_LOCKDEP_SUBCLASSES); -- ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV