1 Index: arch/blackfin/kernel/vmlinux.lds.S
2 ===================================================================
3 --- arch/blackfin/kernel/vmlinux.lds.S (revision 3447)
4 +++ arch/blackfin/kernel/vmlinux.lds.S (working copy)
7 #include <asm-generic/vmlinux.lds.h>
8 #include <asm/mem_map.h>
10 +#include <asm/thread_info.h>
12 OUTPUT_FORMAT("elf32-bfin")
19 + . = ALIGN(THREAD_SIZE);
25 *(.data.cacheline_aligned)
28 + . = ALIGN(THREAD_SIZE);
36 + . = ALIGN(PAGE_SIZE);
40 Index: include/asm-blackfin/thread_info.h
41 ===================================================================
42 --- include/asm-blackfin/thread_info.h (revision 3447)
43 +++ include/asm-blackfin/thread_info.h (working copy)
46 #define ALIGN_PAGE_MASK 0xffffe000
49 + * Size of kernel stack for each process. This must be a power of 2...
51 +#define THREAD_SIZE 8192 /* 2 pages */
55 typedef unsigned long mm_segment_t;
57 #define init_thread_info (init_thread_union.thread_info)
58 #define init_stack (init_thread_union.stack)
61 - * Size of kernel stack for each process. This must be a power of 2...
63 -#define THREAD_SIZE 8192 /* 2 pages */
65 /* How to get the thread information struct from C */
67 static inline struct thread_info *current_thread_info(void)
69 struct thread_info *ti;
70 __asm__("%0 = sp;": "=&d"(ti):
72 - return (struct thread_info *)((long)ti & ~8191UL);
73 + return (struct thread_info *)((long)ti & ~((long)THREAD_SIZE-1));
76 /* thread information allocation */