From: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
---
arch/mips/Makefile | 6 ++----
include/asm-mips/page.h | 2 +-
include/asm-mips/pgtable-64.h | 2 +-
include/asm-mips/stackframe.h | 12 ++++++------
4 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 626771c..fa08d07 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -625,11 +625,9 @@ ifdef CONFIG_64BIT
endif
ifeq ("$(BUILD_ELF32)", "y")
- cflags-y += -msym32
- else
- cflags-y += -DCONFIG_BUILD_ELF64
+ cflags-y += -msym32 -DCONFIG_64BIT_BUILD_ELF32
endif
-endif # CONFIG_64BIT
+endif
AFLAGS += $(cflags-y)
CFLAGS += $(cflags-y)
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index d3fbd83..d37a24c 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -149,7 +149,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
/*
* __pa()/__va() should be used only during mem init.
*/
-#if defined(CONFIG_64BIT) && !defined(CONFIG_BUILD_ELF64)
+#ifdef CONFIG_64BIT_BUILD_ELF32
#define __pa_page_offset(x) ((unsigned long)(x) < CKSEG0 ? PAGE_OFFSET :
CKSEG0)
#else
#define __pa_page_offset(x) PAGE_OFFSET
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h
index a5b1871..55be7b5 100644
--- a/include/asm-mips/pgtable-64.h
+++ b/include/asm-mips/pgtable-64.h
@@ -104,7 +104,7 @@
#define VMALLOC_START MAP_BASE
#define VMALLOC_END \
(VMALLOC_START + PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE)
-#if defined(CONFIG_MODULES) && !defined(CONFIG_BUILD_ELF64) && \
+#if defined(CONFIG_MODULES) && defined(CONFIG_64BIT_BUILD_ELF32) && \
VMALLOC_START != CKSSEG
/* Load modules into 32bit-compatible segment. */
#define MODULE_START CKSSEG
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h
index 1fae5dc..917ffa5 100644
--- a/include/asm-mips/stackframe.h
+++ b/include/asm-mips/stackframe.h
@@ -70,14 +70,14 @@
#else
MFC0 k0, CP0_CONTEXT
#endif
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(CONFIG_64BIT_BUILD_ELF32)
+ lui k1, %hi(kernelsp)
+#else
lui k1, %highest(kernelsp)
daddiu k1, %higher(kernelsp)
dsll k1, 16
daddiu k1, %hi(kernelsp)
dsll k1, 16
-#else
- lui k1, %hi(kernelsp)
#endif
LONG_SRL k0, PTEBASE_SHIFT
LONG_ADDU k1, k0
@@ -95,14 +95,14 @@
.endm
#else
.macro get_saved_sp /* Uniprocessor variation */
-#if defined(CONFIG_BUILD_ELF64) || (defined(CONFIG_64BIT) && __GNUC__ < 4)
+#if defined(CONFIG_32BIT) || defined(CONFIG_64BIT_BUILD_ELF32)
+ lui k1, %hi(kernelsp)
+#else
lui k1, %highest(kernelsp)
daddiu k1, %higher(kernelsp)
dsll k1, k1, 16
daddiu k1, %hi(kernelsp)
dsll k1, k1, 16
-#else
- lui k1, %hi(kernelsp)
#endif
LONG_L k1, %lo(kernelsp)(k1)
.endm
--
1.4.4.3.ge6d4
|