[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.58.0709210824220.23295@gandalf.stny.rr.com>
Date: Fri, 21 Sep 2007 09:01:38 -0400 (EDT)
From: Steven Rostedt <rostedt@...dmis.org>
To: Peter Zijlstra <a.p.zijlstra@...llo.nl>
cc: "Paul E. McKenney" <paulmck@...ibm.com>,
LKML <linux-kernel@...r.kernel.org>, Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [RFC PATCH] Add CRC checksum for RCU lists
--
On Fri, 21 Sep 2007, Peter Zijlstra wrote:
> On Thu, 20 Sep 2007 14:34:11 -0400 Steven Rostedt <rostedt@...dmis.org>
> wrote:
>
>
> > +static inline void rcu_crc_check(struct rcu_head *head)
> > +{
> > + static int once;
> > + if (unlikely(head->crc != rcu_crc_calc(head)) && !once) {
> > + once++;
> > + printk("BUG: RCU check failed!");
> > + if (head->caller)
> > + printk(" (caller=%p)",
> > + head->caller);
>
> char sym[KSYM_SYMBOL_LEN];
> sprint_symbol(sym, head->caller);
> printk(" (caller: [<%p>] %s)", head->caller, sym);
>
Yes, good point!
Although I may do it this way:
printk(" (caller: [<%p>]", head->caller);
print_symbol(" %s)\n", (unsigned long)head->caller);
and eliminate the temp variable.
-- Steve
> > + printk("\n");
> > + printk(" CRC was %08lx, expected %08lx\n",
> > + head->crc, rcu_crc_calc(head));
> > + printk(" %p %p\n",
> > + head->next, head->func);
> > + dump_stack();
> > + }
> > +}
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists