Re: [RFC PATCH] Add CRC checksum for RCU lists

From: Steven Rostedt
Date: Fri Sep 21 2007 - 09:02:44 EST



--
On Fri, 21 Sep 2007, Peter Zijlstra wrote:

> On Thu, 20 Sep 2007 14:34:11 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/