- powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y.patch removed from -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled
     powerpc: invalid size for swapper_pg_dir with CONFIG_PTE_64BIT=y
has been removed from the -mm tree.  Its filename was
     powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y.patch

This patch was dropped because it is obsolete

------------------------------------------------------
Subject: powerpc: invalid size for swapper_pg_dir with CONFIG_PTE_64BIT=y
From: Cedric Hombourger <chombourger@xxxxxxxxx>

The size of swapper_pg_dir depends on the size of the basic type of a PTE. 
Added a #define for the size of pte_basic_t as a power of two which is now
used to define PTE_SHIFT unconditionally as well as swapper_pg_dir in the
assembly head file.  Before this change, a kernel configured with
CONFIG_PTE_64BIT=y would very likely crash on a MPC8548CDS as the global
variable swapper_pg_dir (=init_mm.pgd) was 4k instead of 8k.

Signed-off-by: Cedric Hombourger <chombourger@xxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 arch/powerpc/kernel/head_fsl_booke.S |    2 +-
 include/asm-powerpc/page_32.h        |   18 +++++++++++++++---
 2 files changed, 16 insertions(+), 4 deletions(-)

diff -puN arch/powerpc/kernel/head_fsl_booke.S~powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y arch/powerpc/kernel/head_fsl_booke.S
--- a/arch/powerpc/kernel/head_fsl_booke.S~powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y
+++ a/arch/powerpc/kernel/head_fsl_booke.S
@@ -1035,7 +1035,7 @@ empty_zero_page:
 	.space	4096
 	.globl	swapper_pg_dir
 swapper_pg_dir:
-	.space	4096
+	.space	(1024 << PTE_BASIC_SIZE)
 
 /* Reserved 4k for the critical exception stack & 4k for the machine
  * check stack per CPU for kernel mode exceptions */
diff -puN include/asm-powerpc/page_32.h~powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y include/asm-powerpc/page_32.h
--- a/include/asm-powerpc/page_32.h~powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y
+++ a/include/asm-powerpc/page_32.h
@@ -10,17 +10,29 @@
 #define ARCH_KMALLOC_MINALIGN	L1_CACHE_BYTES
 #endif
 
+/*
+ * The size, as a power of two, of the basic type of a PTE.
+ * Used in the assembly head file to get the size of the
+ * swapper_pg_dir table right.
+ */
+#ifdef CONFIG_PTE_64BIT
+#define PTE_BASIC_SIZE	3
+#else
+#define PTE_BASIC_SIZE	2
+#endif
+
+#define PTE_SHIFT	(PAGE_SHIFT - PTE_BASIC_SIZE)
+
 #ifndef __ASSEMBLY__
 /*
  * The basic type of a PTE - 64 bits for those CPUs with > 32 bit
- * physical addressing.  For now this just the IBM PPC440.
+ * physical addressing.  This feature is available on the IBM PPC440
+ * as well as Freescale boards with an e500v2 core.
  */
 #ifdef CONFIG_PTE_64BIT
 typedef unsigned long long pte_basic_t;
-#define PTE_SHIFT	(PAGE_SHIFT - 3)	/* 512 ptes per page */
 #else
 typedef unsigned long pte_basic_t;
-#define PTE_SHIFT	(PAGE_SHIFT - 2)	/* 1024 ptes per page */
 #endif
 
 struct page;
_

Patches currently in -mm which might be from chombourger@xxxxxxxxx are

origin.patch
powerpc-invalid-size-for-swapper_pg_dir-with-config_pte_64bit=y.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux