Thread (10 messages) flat view 10 messages, 3 authors, 2021-12-21

Re: [PATCH v3 5/6] powerpc/64/interrupt: reduce expensive debug tests

From: Christophe Leroy <hidden>
Date: 2021-09-23 05:13:45


Le 22/09/2021 à 16:54, Nicholas Piggin a écrit :
quoted hunk ↗ jump to hunk
Move the assertions requiring restart table searches under
CONFIG_PPC_IRQ_SOFT_MASK_DEBUG.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
  arch/powerpc/include/asm/interrupt.h | 14 ++++++++++----
  1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/arch/powerpc/include/asm/interrupt.h b/arch/powerpc/include/asm/interrupt.h
index e178d143671a..0e84e99af37b 100644
--- a/arch/powerpc/include/asm/interrupt.h
+++ b/arch/powerpc/include/asm/interrupt.h
@@ -97,6 +97,11 @@ static inline void srr_regs_clobbered(void)
  	local_paca->hsrr_valid = 0;
  }
  #else
+static inline unsigned long search_kernel_restart_table(unsigned long addr)
+{
+	return 0;
+}
+
Not sure you need that. Moving the 64s prototype out of the #ifdef would 
do it as well.

quoted hunk ↗ jump to hunk
  static inline bool is_implicit_soft_masked(struct pt_regs *regs)
  {
  	return false;
@@ -190,13 +195,14 @@ static inline void interrupt_enter_prepare(struct pt_regs *regs, struct interrup
  		 */
  		if (TRAP(regs) != INTERRUPT_PROGRAM) {
  			CT_WARN_ON(ct_state() != CONTEXT_KERNEL);
-			BUG_ON(is_implicit_soft_masked(regs));
+			if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
+				BUG_ON(is_implicit_soft_masked(regs));
  		}
-#ifdef CONFIG_PPC_BOOK3S
+
  		/* Move this under a debugging check */
-		if (arch_irq_disabled_regs(regs))
+		if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG) &&
+				arch_irq_disabled_regs(regs))
  			BUG_ON(search_kernel_restart_table(regs->nip));
-#endif
  	}
  	if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
  		BUG_ON(!arch_irq_disabled_regs(regs) && !(regs->msr & MSR_EE));
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help