linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3 v3] powerpc/32: Always order writes to halves of 64-bit PTEs
@ 2009-08-17 23:00 Paul Mackerras
  2009-08-17 23:00 ` [PATCH 2/3 v3] powerpc: Allow perf_counters to access user memory at interrupt time Paul Mackerras
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Paul Mackerras @ 2009-08-17 23:00 UTC (permalink / raw)
  To: linuxppc-dev

On 32-bit systems with 64-bit PTEs, the PTEs have to be written in two
32-bit halves.  On SMP we write the higher-order half and then the
lower-order half, with a write barrier between the two halves, but on
UP there was no particular ordering of the writes to the two halves.

This extends the ordering that we already do on SMP to the UP case as
well.  The reason is that with the perf_counter subsystem potentially
accessing user memory at interrupt time to get stack traces, we have
to be careful not to create an incorrect but apparently valid PTE even
on UP.

Signed-off-by: Paul Mackerras <paulus@samba.org>
---
 arch/powerpc/include/asm/pgtable.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
index eb17da7..2a5da06 100644
--- a/arch/powerpc/include/asm/pgtable.h
+++ b/arch/powerpc/include/asm/pgtable.h
@@ -104,8 +104,8 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
 	else
 		pte_update(ptep, ~_PAGE_HASHPTE, pte_val(pte));
 
-#elif defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT) && defined(CONFIG_SMP)
-	/* Second case is 32-bit with 64-bit PTE in SMP mode. In this case, we
+#elif defined(CONFIG_PPC32) && defined(CONFIG_PTE_64BIT)
+	/* Second case is 32-bit with 64-bit PTE.  In this case, we
 	 * can just store as long as we do the two halves in the right order
 	 * with a barrier in between. This is possible because we take care,
 	 * in the hash code, to pre-invalidate if the PTE was already hashed,
@@ -140,7 +140,7 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
 
 #else
 	/* Anything else just stores the PTE normally. That covers all 64-bit
-	 * cases, and 32-bit non-hash with 64-bit PTEs in UP mode
+	 * cases, and 32-bit non-hash with 32-bit PTEs.
 	 */
 	*ptep = pte;
 #endif
-- 
1.6.0.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread
* NAND ECC Error with wrong SMC ording bug
@ 2009-09-22 21:20 Sean MacLennan
  2009-09-23  5:12 ` Stefan Roese
  0 siblings, 1 reply; 21+ messages in thread
From: Sean MacLennan @ 2009-09-22 21:20 UTC (permalink / raw)
  To: linuxppc-dev

What is the status of this bug?

Cheers,
   Sean

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2009-09-23  5:12 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-17 23:00 [PATCH 1/3 v3] powerpc/32: Always order writes to halves of 64-bit PTEs Paul Mackerras
2009-08-17 23:00 ` [PATCH 2/3 v3] powerpc: Allow perf_counters to access user memory at interrupt time Paul Mackerras
2009-08-18  4:24   ` Benjamin Herrenschmidt
2009-08-17 23:01 ` [PATCH 3/3 v3] perf_counter: powerpc: Add callchain support Paul Mackerras
2009-08-18  4:23   ` Benjamin Herrenschmidt
2009-08-18  0:00 ` [PATCH 1/3 v3] powerpc/32: Always order writes to halves of 64-bit PTEs Kumar Gala
2009-08-18  0:14   ` Paul Mackerras
2009-08-18  4:24 ` Benjamin Herrenschmidt
2009-08-19 23:16   ` NAND ECC Error with wrong SMC ording bug Feng Kan
2009-08-20  4:38     ` Sean MacLennan
2009-08-20  5:01       ` [U-Boot] " Stefan Roese
2009-08-20 19:36         ` Sean MacLennan
2009-08-20 22:56           ` Victor Gallardo
2009-08-21  5:17           ` vimal singh
2009-08-21  6:26             ` Sean MacLennan
2009-08-21  6:27             ` Stefan Roese
2009-08-21  6:30             ` Victor Gallardo
2009-08-20 23:42         ` Feng Kan
2009-08-21  7:59           ` Stefan Roese
  -- strict thread matches above, loose matches on Subject: below --
2009-09-22 21:20 Sean MacLennan
2009-09-23  5:12 ` Stefan Roese

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).