Commit bf2b3008 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Thomas Gleixner
Browse files

x86/entry: Rename trace_hardirqs_off_prepare()



The typical pattern for trace_hardirqs_off_prepare() is:

  ENTRY
    lockdep_hardirqs_off(); // because hardware
    ... do entry magic
    instrumentation_begin();
    trace_hardirqs_off_prepare();
    ... do actual work
    trace_hardirqs_on_prepare();
    lockdep_hardirqs_on_prepare();
    instrumentation_end();
    ... do exit magic
    lockdep_hardirqs_on();

which shows that it's named wrong, rename it to
trace_hardirqs_off_finish(), as it concludes the hardirq_off transition.

Also, given that the above is the only correct order, make the traditional
all-in-one trace_hardirqs_off() follow suit.

Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200529213321.415774872@infradead.org

parent 59bc300b
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ static noinstr void enter_from_user_mode(void)

	instrumentation_begin();
	CT_WARN_ON(state != CONTEXT_USER);
	trace_hardirqs_off_prepare();
	trace_hardirqs_off_finish();
	instrumentation_end();
}
#else
@@ -73,7 +73,7 @@ static __always_inline void enter_from_user_mode(void)
{
	lockdep_hardirqs_off(CALLER_ADDR0);
	instrumentation_begin();
	trace_hardirqs_off_prepare();
	trace_hardirqs_off_finish();
	instrumentation_end();
}
#endif
@@ -569,7 +569,7 @@ bool noinstr idtentry_enter_cond_rcu(struct pt_regs *regs)
		lockdep_hardirqs_off(CALLER_ADDR0);
		rcu_irq_enter();
		instrumentation_begin();
		trace_hardirqs_off_prepare();
		trace_hardirqs_off_finish();
		instrumentation_end();

		return true;
+1 −1
Original line number Diff line number Diff line
@@ -1922,7 +1922,7 @@ static __always_inline void exc_machine_check_kernel(struct pt_regs *regs)
	 * that out because it's an indirect call. Annotate it.
	 */
	instrumentation_begin();
	trace_hardirqs_off_prepare();
	trace_hardirqs_off_finish();
	machine_check_vector(regs);
	if (regs->flags & X86_EFLAGS_IF)
		trace_hardirqs_on_prepare();
+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ static noinstr void default_do_nmi(struct pt_regs *regs)
	__this_cpu_write(last_nmi_rip, regs->ip);

	instrumentation_begin();
	trace_hardirqs_off_prepare();
	trace_hardirqs_off_finish();

	handled = nmi_handle(NMI_LOCAL, regs);
	__this_cpu_add(nmi_stats.normal, handled);
+2 −2
Original line number Diff line number Diff line
@@ -634,7 +634,7 @@ DEFINE_IDTENTRY_RAW(exc_int3)
	} else {
		nmi_enter();
		instrumentation_begin();
		trace_hardirqs_off_prepare();
		trace_hardirqs_off_finish();
		if (!do_int3(regs))
			die("int3", regs, 0);
		if (regs->flags & X86_EFLAGS_IF)
@@ -833,7 +833,7 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs,
{
	nmi_enter();
	instrumentation_begin();
	trace_hardirqs_off_prepare();
	trace_hardirqs_off_finish();
	instrumentation_end();

	/*
+2 −2
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@

#ifdef CONFIG_TRACE_IRQFLAGS
  extern void trace_hardirqs_on_prepare(void);
  extern void trace_hardirqs_off_prepare(void);
  extern void trace_hardirqs_off_finish(void);
  extern void trace_hardirqs_on(void);
  extern void trace_hardirqs_off(void);
# define lockdep_hardirq_context(p)	((p)->hardirq_context)
@@ -101,7 +101,7 @@ do { \

#else
# define trace_hardirqs_on_prepare()		do { } while (0)
# define trace_hardirqs_off_prepare()		do { } while (0)
# define trace_hardirqs_off_finish()		do { } while (0)
# define trace_hardirqs_on()		do { } while (0)
# define trace_hardirqs_off()		do { } while (0)
# define lockdep_hardirq_context(p)	0
Loading