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

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

Reply via email to