فهرست منبع

Blackfin arch: use PAGE_SIZE when doing aligns rather than hardcoded values

Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Mike Frysinger 18 سال پیش
والد
کامیت
520473b077
2فایلهای تغییر یافته به همراه11 افزوده شده و 5 حذف شده
  1. 7 5
      arch/blackfin/kernel/vmlinux.lds.S
  2. 4 0
      include/asm-blackfin/page.h

+ 7 - 5
arch/blackfin/kernel/vmlinux.lds.S

@@ -31,6 +31,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/mem_map.h>
+#include <asm/page.h>
 
 OUTPUT_FORMAT("elf32-bfin")
 ENTRY(__start)
@@ -63,8 +64,8 @@ SECTIONS
 
 	.data :
 	{
+		. = ALIGN(PAGE_SIZE);
 		__sdata = .;
-		. = ALIGN(0x2000);
 		*(.data.init_task)
 		DATA_DATA
 		CONSTRUCTORS
@@ -72,14 +73,14 @@ SECTIONS
 		. = ALIGN(32);
 		*(.data.cacheline_aligned)
 
-		. = ALIGN(0x2000);
+		. = ALIGN(PAGE_SIZE);
 		__edata = .;
 	}
 
+	. = ALIGN(PAGE_SIZE);
 	___init_begin = .;
 	.init :
 	{
-		. = ALIGN(4096);
 		__sinittext = .;
 		*(.init.text)
 		__einittext = .;
@@ -152,9 +153,10 @@ SECTIONS
 		__ebss_b_l1 = .;
 	}
 
-	___init_end = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1);
+	. = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1);
+	___init_end = ALIGN(PAGE_SIZE);
 
-	.bss LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1) :
+	.bss ___init_end :
 	{
 		. = ALIGN(4);
 		___bss_start = .;

+ 4 - 0
include/asm-blackfin/page.h

@@ -4,7 +4,11 @@
 /* PAGE_SHIFT determines the page size */
 
 #define PAGE_SHIFT	12
+#ifdef __ASSEMBLY__
+#define PAGE_SIZE	(1 << PAGE_SHIFT)
+#else
 #define PAGE_SIZE	(1UL << PAGE_SHIFT)
+#endif
 #define PAGE_MASK	(~(PAGE_SIZE-1))
 
 #ifdef __KERNEL__