Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5236eb96 authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

Merge remote-tracking branch 'trace/tip/x86/trace' into x86/trace

Fix from Steven Rostedt.
parents 33e5ff63 2b4bc789
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -497,21 +497,19 @@ static inline void load_trace_idt(void)
#endif

/*
 * the load_current_idt() is called with interrupt disabled by local_irq_save()
 * The load_current_idt() must be called with interrupts disabled
 * to avoid races. That way the IDT will always be set back to the expected
 * descriptor.
 * descriptor. It's also called when a CPU is being initialized, and
 * that doesn't need to disable interrupts, as nothing should be
 * bothering the CPU then.
 */
static inline void load_current_idt(void)
{
	unsigned long flags;

	local_irq_save(flags);
	if (is_debug_idt_enabled())
		load_debug_idt();
	else if (is_trace_idt_enabled())
		load_trace_idt();
	else
		load_idt((const struct desc_ptr *)&idt_descr);
	local_irq_restore(flags);
}
#endif /* _ASM_X86_DESC_H */
+4 −0
Original line number Diff line number Diff line
@@ -29,7 +29,11 @@ static void set_trace_idt_ctr(int val)

static void switch_idt(void *arg)
{
	unsigned long flags;

	local_irq_save(flags);
	load_current_idt();
	local_irq_restore(flags);
}

void trace_irq_vector_regfunc(void)