diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-30 08:40:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-30 08:40:09 -0500 |
commit | dd430ca20c40ecccd6954a7efd13d4398f507728 (patch) | |
tree | b65089436d17b2bcc6054ede2e335a821b50007f /include/asm-x86/thread_info_64.h | |
parent | 60e233172eabdd1f831bd48631b9626ce2279d9b (diff) | |
parent | afadcd788f37bfa62d92662e54a720c26c91becf (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
* git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (890 commits)
x86: fix nodemap_size according to nodeid bits
x86: fix overlap between pagetable with bss section
x86: add PCI IDs to k8topology_64.c
x86: fix early_ioremap pagetable ops
x86: use the same pgd_list for PAE and 64-bit
x86: defer cr3 reload when doing pud_clear()
x86: early boot debugging via FireWire (ohci1394_dma=early)
x86: don't special-case pmd allocations as much
x86: shrink some ifdefs in fault.c
x86: ignore spurious faults
x86: remove nx_enabled from fault.c
x86: unify fault_32|64.c
x86: unify fault_32|64.c with ifdefs
x86: unify fault_32|64.c by ifdef'd function bodies
x86: arch/x86/mm/init_32.c printk fixes
x86: arch/x86/mm/init_32.c cleanup
x86: arch/x86/mm/init_64.c printk fixes
x86: unify ioremap
x86: fixes some bugs about EFI memory map handling
x86: use reboot_type on EFI 32
...
Diffstat (limited to 'include/asm-x86/thread_info_64.h')
-rw-r--r-- | include/asm-x86/thread_info_64.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/include/asm-x86/thread_info_64.h b/include/asm-x86/thread_info_64.h index 7f6ee68f0002..9b531ea015a8 100644 --- a/include/asm-x86/thread_info_64.h +++ b/include/asm-x86/thread_info_64.h | |||
@@ -21,7 +21,7 @@ | |||
21 | #ifndef __ASSEMBLY__ | 21 | #ifndef __ASSEMBLY__ |
22 | struct task_struct; | 22 | struct task_struct; |
23 | struct exec_domain; | 23 | struct exec_domain; |
24 | #include <asm/mmsegment.h> | 24 | #include <asm/processor.h> |
25 | 25 | ||
26 | struct thread_info { | 26 | struct thread_info { |
27 | struct task_struct *task; /* main task structure */ | 27 | struct task_struct *task; /* main task structure */ |
@@ -33,6 +33,9 @@ struct thread_info { | |||
33 | 33 | ||
34 | mm_segment_t addr_limit; | 34 | mm_segment_t addr_limit; |
35 | struct restart_block restart_block; | 35 | struct restart_block restart_block; |
36 | #ifdef CONFIG_IA32_EMULATION | ||
37 | void __user *sysenter_return; | ||
38 | #endif | ||
36 | }; | 39 | }; |
37 | #endif | 40 | #endif |
38 | 41 | ||
@@ -74,20 +77,14 @@ static inline struct thread_info *stack_thread_info(void) | |||
74 | 77 | ||
75 | /* thread information allocation */ | 78 | /* thread information allocation */ |
76 | #ifdef CONFIG_DEBUG_STACK_USAGE | 79 | #ifdef CONFIG_DEBUG_STACK_USAGE |
77 | #define alloc_thread_info(tsk) \ | 80 | #define THREAD_FLAGS (GFP_KERNEL | __GFP_ZERO) |
78 | ({ \ | ||
79 | struct thread_info *ret; \ | ||
80 | \ | ||
81 | ret = ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)); \ | ||
82 | if (ret) \ | ||
83 | memset(ret, 0, THREAD_SIZE); \ | ||
84 | ret; \ | ||
85 | }) | ||
86 | #else | 81 | #else |
87 | #define alloc_thread_info(tsk) \ | 82 | #define THREAD_FLAGS GFP_KERNEL |
88 | ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)) | ||
89 | #endif | 83 | #endif |
90 | 84 | ||
85 | #define alloc_thread_info(tsk) \ | ||
86 | ((struct thread_info *) __get_free_pages(THREAD_FLAGS, THREAD_ORDER)) | ||
87 | |||
91 | #define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER) | 88 | #define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER) |
92 | 89 | ||
93 | #else /* !__ASSEMBLY__ */ | 90 | #else /* !__ASSEMBLY__ */ |
@@ -124,6 +121,10 @@ static inline struct thread_info *stack_thread_info(void) | |||
124 | #define TIF_DEBUG 21 /* uses debug registers */ | 121 | #define TIF_DEBUG 21 /* uses debug registers */ |
125 | #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ | 122 | #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ |
126 | #define TIF_FREEZE 23 /* is freezing for suspend */ | 123 | #define TIF_FREEZE 23 /* is freezing for suspend */ |
124 | #define TIF_FORCED_TF 24 /* true if TF in eflags artificially */ | ||
125 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ | ||
126 | #define TIF_DS_AREA_MSR 25 /* uses thread_struct.ds_area_msr */ | ||
127 | #define TIF_BTS_TRACE_TS 26 /* record scheduling event timestamps */ | ||
127 | 128 | ||
128 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 129 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
129 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | 130 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
@@ -141,6 +142,10 @@ static inline struct thread_info *stack_thread_info(void) | |||
141 | #define _TIF_DEBUG (1<<TIF_DEBUG) | 142 | #define _TIF_DEBUG (1<<TIF_DEBUG) |
142 | #define _TIF_IO_BITMAP (1<<TIF_IO_BITMAP) | 143 | #define _TIF_IO_BITMAP (1<<TIF_IO_BITMAP) |
143 | #define _TIF_FREEZE (1<<TIF_FREEZE) | 144 | #define _TIF_FREEZE (1<<TIF_FREEZE) |
145 | #define _TIF_FORCED_TF (1<<TIF_FORCED_TF) | ||
146 | #define _TIF_DEBUGCTLMSR (1<<TIF_DEBUGCTLMSR) | ||
147 | #define _TIF_DS_AREA_MSR (1<<TIF_DS_AREA_MSR) | ||
148 | #define _TIF_BTS_TRACE_TS (1<<TIF_BTS_TRACE_TS) | ||
144 | 149 | ||
145 | /* work to do on interrupt/exception return */ | 150 | /* work to do on interrupt/exception return */ |
146 | #define _TIF_WORK_MASK \ | 151 | #define _TIF_WORK_MASK \ |
@@ -152,7 +157,10 @@ static inline struct thread_info *stack_thread_info(void) | |||
152 | (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) | 157 | (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED) |
153 | 158 | ||
154 | /* flags to check in __switch_to() */ | 159 | /* flags to check in __switch_to() */ |
155 | #define _TIF_WORK_CTXSW (_TIF_DEBUG|_TIF_IO_BITMAP) | 160 | #define _TIF_WORK_CTXSW \ |
161 | (_TIF_IO_BITMAP|_TIF_DEBUGCTLMSR|_TIF_DS_AREA_MSR|_TIF_BTS_TRACE_TS) | ||
162 | #define _TIF_WORK_CTXSW_PREV _TIF_WORK_CTXSW | ||
163 | #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW|_TIF_DEBUG) | ||
156 | 164 | ||
157 | #define PREEMPT_ACTIVE 0x10000000 | 165 | #define PREEMPT_ACTIVE 0x10000000 |
158 | 166 | ||