Re: [PATCH v16 4/4] trace,x86: Add irq vector tracepoints

From: Steven Rostedt
Date: Wed Jun 19 2013 - 16:56:38 EST


The function tracer self test would crash hard after applying this
patch. I found the bug:



On Tue, 2013-06-18 at 15:01 -0400, Seiji Aguchi wrote:
> /*
> * the load_current_idt() is called with interrupt disabled by
> local_irq_save()
> * to avoid races. That way the IDT will always be set back to the
> expected
> @@ -442,6 +508,8 @@ static inline void load_current_idt(void)
> local_irq_save(flags);
> if (is_debug_idt_enabled())
> load_debug_idt();
> + if (is_trace_idt_enabled())
> + load_trace_idt();

This should be:

else if (is_trace_idt_enabled())

Otherwise, you just totally negated the previous if.

-- Steve

> else
> load_idt((const struct desc_ptr *)&idt_descr);
> local_irq_restore(flags);

--
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/