diff options
Diffstat (limited to 'arch/tile')
-rw-r--r-- | arch/tile/include/asm/sections.h | 3 | ||||
-rw-r--r-- | arch/tile/kernel/vmlinux.lds.S | 2 | ||||
-rw-r--r-- | arch/tile/mm/init.c | 12 |
3 files changed, 6 insertions, 11 deletions
diff --git a/arch/tile/include/asm/sections.h b/arch/tile/include/asm/sections.h index 5d5d3b739a6b..86a746243dc8 100644 --- a/arch/tile/include/asm/sections.h +++ b/arch/tile/include/asm/sections.h | |||
@@ -19,9 +19,6 @@ | |||
19 | 19 | ||
20 | #include <asm-generic/sections.h> | 20 | #include <asm-generic/sections.h> |
21 | 21 | ||
22 | /* Text and data are at different areas in the kernel VA space. */ | ||
23 | extern char _sinitdata[], _einitdata[]; | ||
24 | |||
25 | /* Write-once data is writable only till the end of initialization. */ | 22 | /* Write-once data is writable only till the end of initialization. */ |
26 | extern char __w1data_begin[], __w1data_end[]; | 23 | extern char __w1data_begin[], __w1data_end[]; |
27 | 24 | ||
diff --git a/arch/tile/kernel/vmlinux.lds.S b/arch/tile/kernel/vmlinux.lds.S index f1819423ffc9..0e059a0101ea 100644 --- a/arch/tile/kernel/vmlinux.lds.S +++ b/arch/tile/kernel/vmlinux.lds.S | |||
@@ -66,11 +66,9 @@ SECTIONS | |||
66 | 66 | ||
67 | . = ALIGN(PAGE_SIZE); | 67 | . = ALIGN(PAGE_SIZE); |
68 | __init_begin = .; | 68 | __init_begin = .; |
69 | VMLINUX_SYMBOL(_sinitdata) = .; | ||
70 | INIT_DATA_SECTION(16) :data =0 | 69 | INIT_DATA_SECTION(16) :data =0 |
71 | PERCPU_SECTION(L2_CACHE_BYTES) | 70 | PERCPU_SECTION(L2_CACHE_BYTES) |
72 | . = ALIGN(PAGE_SIZE); | 71 | . = ALIGN(PAGE_SIZE); |
73 | VMLINUX_SYMBOL(_einitdata) = .; | ||
74 | __init_end = .; | 72 | __init_end = .; |
75 | 73 | ||
76 | _sdata = .; /* Start of data section */ | 74 | _sdata = .; /* Start of data section */ |
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c index bfb3127b4df9..a092e393bd20 100644 --- a/arch/tile/mm/init.c +++ b/arch/tile/mm/init.c | |||
@@ -254,8 +254,8 @@ static pgprot_t __init init_pgprot(ulong address) | |||
254 | * Everything else that isn't data or bss is heap, so mark it | 254 | * Everything else that isn't data or bss is heap, so mark it |
255 | * with the initial heap home (hash-for-home, or this cpu). This | 255 | * with the initial heap home (hash-for-home, or this cpu). This |
256 | * includes any addresses after the loaded image and any address before | 256 | * includes any addresses after the loaded image and any address before |
257 | * _einitdata, since we already captured the case of text before | 257 | * __init_end, since we already captured the case of text before |
258 | * _sinittext, and __pa(einittext) is approximately __pa(sinitdata). | 258 | * _sinittext, and __pa(einittext) is approximately __pa(__init_begin). |
259 | * | 259 | * |
260 | * All the LOWMEM pages that we mark this way will get their | 260 | * All the LOWMEM pages that we mark this way will get their |
261 | * struct page homecache properly marked later, in set_page_homes(). | 261 | * struct page homecache properly marked later, in set_page_homes(). |
@@ -263,7 +263,7 @@ static pgprot_t __init init_pgprot(ulong address) | |||
263 | * homes, but with a zero free_time we don't have to actually | 263 | * homes, but with a zero free_time we don't have to actually |
264 | * do a flush action the first time we use them, either. | 264 | * do a flush action the first time we use them, either. |
265 | */ | 265 | */ |
266 | if (address >= (ulong) _end || address < (ulong) _einitdata) | 266 | if (address >= (ulong) _end || address < (ulong) __init_end) |
267 | return construct_pgprot(PAGE_KERNEL, initial_heap_home()); | 267 | return construct_pgprot(PAGE_KERNEL, initial_heap_home()); |
268 | 268 | ||
269 | /* Use hash-for-home if requested for data/bss. */ | 269 | /* Use hash-for-home if requested for data/bss. */ |
@@ -632,7 +632,7 @@ int devmem_is_allowed(unsigned long pagenr) | |||
632 | { | 632 | { |
633 | return pagenr < kaddr_to_pfn(_end) && | 633 | return pagenr < kaddr_to_pfn(_end) && |
634 | !(pagenr >= kaddr_to_pfn(&init_thread_union) || | 634 | !(pagenr >= kaddr_to_pfn(&init_thread_union) || |
635 | pagenr < kaddr_to_pfn(_einitdata)) && | 635 | pagenr < kaddr_to_pfn(__init_end)) && |
636 | !(pagenr >= kaddr_to_pfn(_sinittext) || | 636 | !(pagenr >= kaddr_to_pfn(_sinittext) || |
637 | pagenr <= kaddr_to_pfn(_einittext-1)); | 637 | pagenr <= kaddr_to_pfn(_einittext-1)); |
638 | } | 638 | } |
@@ -975,8 +975,8 @@ void free_initmem(void) | |||
975 | 975 | ||
976 | /* Free the data pages that we won't use again after init. */ | 976 | /* Free the data pages that we won't use again after init. */ |
977 | free_init_pages("unused kernel data", | 977 | free_init_pages("unused kernel data", |
978 | (unsigned long)_sinitdata, | 978 | (unsigned long)__init_begin, |
979 | (unsigned long)_einitdata); | 979 | (unsigned long)__init_end); |
980 | 980 | ||
981 | /* | 981 | /* |
982 | * Free the pages mapped from 0xc0000000 that correspond to code | 982 | * Free the pages mapped from 0xc0000000 that correspond to code |