All of lore.kernel.org
 help / color / mirror / Atom feed
From: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
To: benh@kernel.crashing.org, mpe@ellerman.id.au
Cc: anton@samba.org, paulus@samba.org, npiggin@gmail.com,
	linuxppc-dev@lists.ozlabs.org,
	Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Subject: [PATCH v4 02/12] powerpc: move set_soft_enabled() and rename
Date: Mon, 19 Dec 2016 13:36:58 +0530	[thread overview]
Message-ID: <1482134828-18811-3-git-send-email-maddy@linux.vnet.ibm.com> (raw)
In-Reply-To: <1482134828-18811-1-git-send-email-maddy@linux.vnet.ibm.com>

Move set_soft_enabled() from powerpc/kernel/irq.c to
asm/hw_irq.c, to force updates to paca-soft_enabled
done via these access function. Add "memory" clobber
to hint compiler since paca->soft_enabled memory is the target
here

Renaming it as soft_enabled_set() will make
namespaces works better as prefix than a postfix
when new soft_enabled manipulation functions introduced.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
---
 arch/powerpc/include/asm/hw_irq.h | 15 +++++++++++++++
 arch/powerpc/kernel/irq.c         | 12 +++---------
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/include/asm/hw_irq.h b/arch/powerpc/include/asm/hw_irq.h
index 05b81bca15e9..ab1e6da7825c 100644
--- a/arch/powerpc/include/asm/hw_irq.h
+++ b/arch/powerpc/include/asm/hw_irq.h
@@ -47,6 +47,21 @@ extern void unknown_exception(struct pt_regs *regs);
 #ifdef CONFIG_PPC64
 #include <asm/paca.h>
 
+/*
+ *TODO:
+ * Currently none of the soft_eanbled modification helpers have clobbers
+ * for modifying the r13->soft_enabled memory itself. Secondly they only
+ * include "memory" clobber as a hint. Ideally, if all the accesses to
+ * soft_enabled go via these helpers, we could avoid the "memory" clobber.
+ * Former could be taken care by having location in the constraints.
+ */
+static inline notrace void soft_enabled_set(unsigned long enable)
+{
+	__asm__ __volatile__("stb %0,%1(13)"
+	: : "r" (enable), "i" (offsetof(struct paca_struct, soft_enabled))
+	: "memory");
+}
+
 static inline unsigned long arch_local_save_flags(void)
 {
 	unsigned long flags;
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index c6f1e13ff441..204fa51cdc9e 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -108,12 +108,6 @@ static inline notrace unsigned long get_irq_happened(void)
 	return happened;
 }
 
-static inline notrace void set_soft_enabled(unsigned long enable)
-{
-	__asm__ __volatile__("stb %0,%1(13)"
-	: : "r" (enable), "i" (offsetof(struct paca_struct, soft_enabled)));
-}
-
 static inline notrace int decrementer_check_overflow(void)
 {
  	u64 now = get_tb_or_rtc();
@@ -213,7 +207,7 @@ notrace void arch_local_irq_restore(unsigned long en)
 	unsigned int replay;
 
 	/* Write the new soft-enabled value */
-	set_soft_enabled(en);
+	soft_enabled_set(en);
 	if (en == IRQ_DISABLE_MASK_LINUX)
 		return;
 	/*
@@ -259,7 +253,7 @@ notrace void arch_local_irq_restore(unsigned long en)
 	}
 #endif /* CONFIG_TRACE_IRQFLAGS */
 
-	set_soft_enabled(IRQ_DISABLE_MASK_LINUX);
+	soft_enabled_set(IRQ_DISABLE_MASK_LINUX);
 
 	/*
 	 * Check if anything needs to be re-emitted. We haven't
@@ -269,7 +263,7 @@ notrace void arch_local_irq_restore(unsigned long en)
 	replay = __check_irq_replay();
 
 	/* We can soft-enable now */
-	set_soft_enabled(IRQ_DISABLE_MASK_NONE);
+	soft_enabled_set(IRQ_DISABLE_MASK_NONE);
 
 	/*
 	 * And replay if we have to. This will return with interrupts
-- 
2.7.4

  parent reply	other threads:[~2016-12-19  8:07 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-19  8:06 [PATCH v4 00/12]powerpc: "paca->soft_enabled" based local atomic operation implementation Madhavan Srinivasan
2016-12-19  8:06 ` [PATCH v4 01/12] powerpc: Add #defs for paca->soft_enabled flags Madhavan Srinivasan
2016-12-20  7:31   ` Balbir Singh
2016-12-21  3:22     ` Madhavan Srinivasan
2016-12-19  8:06 ` Madhavan Srinivasan [this message]
2016-12-20  9:03   ` [PATCH v4 02/12] powerpc: move set_soft_enabled() and rename Balbir Singh
2016-12-20  9:32     ` Benjamin Herrenschmidt
2016-12-20 13:58       ` Balbir Singh
2016-12-21  3:32     ` Madhavan Srinivasan
2016-12-19  8:06 ` [PATCH v4 03/12] powerpc: Use soft_enabled_set api to update paca->soft_enabled Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 04/12] powerpc: Add soft_enabled manipulation functions Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 05/12] powerpc: reverse the soft_enable logic Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 06/12] powerpc: Avoid using EXCEPTION_PROLOG_1 macro in MASKABLE_* Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 07/12] powerpc: Add support to take additional parameter in MASKABLE_* macro Madhavan Srinivasan
2016-12-20  2:36   ` Nicholas Piggin
2016-12-21  6:14     ` Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 08/12] powerpc: Add support to mask perf interrupts and replay them Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 09/12] powerpc:Add new kconfig IRQ_DEBUG_SUPPORT Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 10/12] powerpc: Add new set of soft_enabled_ functions Madhavan Srinivasan
2016-12-20  2:42   ` Nicholas Piggin
2016-12-19  8:07 ` [PATCH v4 11/12] powerpc: rewrite local_t using soft_irq Madhavan Srinivasan
2016-12-19  8:07 ` [PATCH v4 12/12] powerpc: Rename soft_enabled to soft_disabled_mask Madhavan Srinivasan
2016-12-20  2:58   ` Nicholas Piggin
2017-01-04  9:33     ` Madhavan Srinivasan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1482134828-18811-3-git-send-email-maddy@linux.vnet.ibm.com \
    --to=maddy@linux.vnet.ibm.com \
    --cc=anton@samba.org \
    --cc=benh@kernel.crashing.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.