diff options
| author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-07-10 08:57:56 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-10 17:24:05 -0400 |
| commit | c99e6efe1ba04561e7d93a81f0be07e37427e835 (patch) | |
| tree | 8a1743463ef9676e68b9c3971f0bbeea04111bdd | |
| parent | 2a6f86bc5ed4af2ff04bc927eb77789c70e53a1e (diff) | |
sched: INIT_PREEMPT_COUNT
Pull the initial preempt_count value into a single
definition site.
Maintainers for: alpha, ia64 and m68k, please have a look,
your arch code is funny.
The header magic is a bit odd, but similar to the KERNEL_DS
one, CPP waits with expanding these macros until the
INIT_THREAD_INFO macro itself is expanded, which is in
arch/*/kernel/init_task.c where we've already included
sched.h so we're good.
Cc: tony.luck@intel.com
Cc: rth@twiddle.net
Cc: geert@linux-m68k.org
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
24 files changed, 29 insertions, 40 deletions
diff --git a/arch/alpha/include/asm/thread_info.h b/arch/alpha/include/asm/thread_info.h index d069526bd767..60c83abfde70 100644 --- a/arch/alpha/include/asm/thread_info.h +++ b/arch/alpha/include/asm/thread_info.h | |||
| @@ -37,6 +37,7 @@ struct thread_info { | |||
| 37 | .task = &tsk, \ | 37 | .task = &tsk, \ |
| 38 | .exec_domain = &default_exec_domain, \ | 38 | .exec_domain = &default_exec_domain, \ |
| 39 | .addr_limit = KERNEL_DS, \ | 39 | .addr_limit = KERNEL_DS, \ |
| 40 | .preempt_count = INIT_PREEMPT_COUNT, \ | ||
| 40 | .restart_block = { \ | 41 | .restart_block = { \ |
| 41 | .fn = do_no_restart_syscall, \ | 42 | .fn = do_no_restart_syscall, \ |
| 42 | }, \ | 43 | }, \ |
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h index 4f8848260ee2..73394e50cbca 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h | |||
| @@ -73,7 +73,7 @@ struct thread_info { | |||
| 73 | .task = &tsk, \ | 73 | .task = &tsk, \ |
| 74 | .exec_domain = &default_exec_domain, \ | 74 | .exec_domain = &default_exec_domain, \ |
| 75 | .flags = 0, \ | 75 | .flags = 0, \ |
| 76 | .preempt_count = 1, \ | 76 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 77 | .addr_limit = KERNEL_DS, \ | 77 | .addr_limit = KERNEL_DS, \ |
| 78 | .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ | 78 | .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \ |
| 79 | domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ | 79 | domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \ |
diff --git a/arch/avr32/include/asm/thread_info.h b/arch/avr32/include/asm/thread_info.h index 4442f8d2d423..fc42de5ca209 100644 --- a/arch/avr32/include/asm/thread_info.h +++ b/arch/avr32/include/asm/thread_info.h | |||
| @@ -40,7 +40,7 @@ struct thread_info { | |||
| 40 | .exec_domain = &default_exec_domain, \ | 40 | .exec_domain = &default_exec_domain, \ |
| 41 | .flags = 0, \ | 41 | .flags = 0, \ |
| 42 | .cpu = 0, \ | 42 | .cpu = 0, \ |
| 43 | .preempt_count = 1, \ | 43 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 44 | .restart_block = { \ | 44 | .restart_block = { \ |
| 45 | .fn = do_no_restart_syscall \ | 45 | .fn = do_no_restart_syscall \ |
| 46 | } \ | 46 | } \ |
diff --git a/arch/blackfin/include/asm/thread_info.h b/arch/blackfin/include/asm/thread_info.h index 2920087516f2..2bbfdd950afc 100644 --- a/arch/blackfin/include/asm/thread_info.h +++ b/arch/blackfin/include/asm/thread_info.h | |||
| @@ -77,7 +77,7 @@ struct thread_info { | |||
| 77 | .exec_domain = &default_exec_domain, \ | 77 | .exec_domain = &default_exec_domain, \ |
| 78 | .flags = 0, \ | 78 | .flags = 0, \ |
| 79 | .cpu = 0, \ | 79 | .cpu = 0, \ |
| 80 | .preempt_count = 1, \ | 80 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 81 | .restart_block = { \ | 81 | .restart_block = { \ |
| 82 | .fn = do_no_restart_syscall, \ | 82 | .fn = do_no_restart_syscall, \ |
| 83 | }, \ | 83 | }, \ |
diff --git a/arch/cris/include/asm/thread_info.h b/arch/cris/include/asm/thread_info.h index bc5b2935ca53..c3aade36c330 100644 --- a/arch/cris/include/asm/thread_info.h +++ b/arch/cris/include/asm/thread_info.h | |||
| @@ -50,8 +50,6 @@ struct thread_info { | |||
| 50 | 50 | ||
| 51 | /* | 51 | /* |
| 52 | * macros/functions for gaining access to the thread information structure | 52 | * macros/functions for gaining access to the thread information structure |
| 53 | * | ||
| 54 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 55 | */ | 53 | */ |
| 56 | #ifndef __ASSEMBLY__ | 54 | #ifndef __ASSEMBLY__ |
| 57 | #define INIT_THREAD_INFO(tsk) \ | 55 | #define INIT_THREAD_INFO(tsk) \ |
| @@ -60,7 +58,7 @@ struct thread_info { | |||
| 60 | .exec_domain = &default_exec_domain, \ | 58 | .exec_domain = &default_exec_domain, \ |
| 61 | .flags = 0, \ | 59 | .flags = 0, \ |
| 62 | .cpu = 0, \ | 60 | .cpu = 0, \ |
| 63 | .preempt_count = 1, \ | 61 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 64 | .addr_limit = KERNEL_DS, \ | 62 | .addr_limit = KERNEL_DS, \ |
| 65 | .restart_block = { \ | 63 | .restart_block = { \ |
| 66 | .fn = do_no_restart_syscall, \ | 64 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/frv/include/asm/thread_info.h b/arch/frv/include/asm/thread_info.h index e8a5ed7be021..e608e056bb53 100644 --- a/arch/frv/include/asm/thread_info.h +++ b/arch/frv/include/asm/thread_info.h | |||
| @@ -56,8 +56,6 @@ struct thread_info { | |||
| 56 | 56 | ||
| 57 | /* | 57 | /* |
| 58 | * macros/functions for gaining access to the thread information structure | 58 | * macros/functions for gaining access to the thread information structure |
| 59 | * | ||
| 60 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 61 | */ | 59 | */ |
| 62 | #ifndef __ASSEMBLY__ | 60 | #ifndef __ASSEMBLY__ |
| 63 | 61 | ||
| @@ -67,7 +65,7 @@ struct thread_info { | |||
| 67 | .exec_domain = &default_exec_domain, \ | 65 | .exec_domain = &default_exec_domain, \ |
| 68 | .flags = 0, \ | 66 | .flags = 0, \ |
| 69 | .cpu = 0, \ | 67 | .cpu = 0, \ |
| 70 | .preempt_count = 1, \ | 68 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 71 | .addr_limit = KERNEL_DS, \ | 69 | .addr_limit = KERNEL_DS, \ |
| 72 | .restart_block = { \ | 70 | .restart_block = { \ |
| 73 | .fn = do_no_restart_syscall, \ | 71 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/h8300/include/asm/thread_info.h b/arch/h8300/include/asm/thread_info.h index 700014d2155f..8bbc8b0ee45d 100644 --- a/arch/h8300/include/asm/thread_info.h +++ b/arch/h8300/include/asm/thread_info.h | |||
| @@ -36,7 +36,7 @@ struct thread_info { | |||
| 36 | .exec_domain = &default_exec_domain, \ | 36 | .exec_domain = &default_exec_domain, \ |
| 37 | .flags = 0, \ | 37 | .flags = 0, \ |
| 38 | .cpu = 0, \ | 38 | .cpu = 0, \ |
| 39 | .preempt_count = 1, \ | 39 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 40 | .restart_block = { \ | 40 | .restart_block = { \ |
| 41 | .fn = do_no_restart_syscall, \ | 41 | .fn = do_no_restart_syscall, \ |
| 42 | }, \ | 42 | }, \ |
diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/thread_info.h index ae6922626bf4..8ce2e388e37c 100644 --- a/arch/ia64/include/asm/thread_info.h +++ b/arch/ia64/include/asm/thread_info.h | |||
| @@ -48,7 +48,7 @@ struct thread_info { | |||
| 48 | .flags = 0, \ | 48 | .flags = 0, \ |
| 49 | .cpu = 0, \ | 49 | .cpu = 0, \ |
| 50 | .addr_limit = KERNEL_DS, \ | 50 | .addr_limit = KERNEL_DS, \ |
| 51 | .preempt_count = 0, \ | 51 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 52 | .restart_block = { \ | 52 | .restart_block = { \ |
| 53 | .fn = do_no_restart_syscall, \ | 53 | .fn = do_no_restart_syscall, \ |
| 54 | }, \ | 54 | }, \ |
diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h index 8589d462df27..07bb5bd00e2a 100644 --- a/arch/m32r/include/asm/thread_info.h +++ b/arch/m32r/include/asm/thread_info.h | |||
| @@ -57,8 +57,6 @@ struct thread_info { | |||
| 57 | 57 | ||
| 58 | /* | 58 | /* |
| 59 | * macros/functions for gaining access to the thread information structure | 59 | * macros/functions for gaining access to the thread information structure |
| 60 | * | ||
| 61 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 62 | */ | 60 | */ |
| 63 | #ifndef __ASSEMBLY__ | 61 | #ifndef __ASSEMBLY__ |
| 64 | 62 | ||
| @@ -68,7 +66,7 @@ struct thread_info { | |||
| 68 | .exec_domain = &default_exec_domain, \ | 66 | .exec_domain = &default_exec_domain, \ |
| 69 | .flags = 0, \ | 67 | .flags = 0, \ |
| 70 | .cpu = 0, \ | 68 | .cpu = 0, \ |
| 71 | .preempt_count = 1, \ | 69 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 72 | .addr_limit = KERNEL_DS, \ | 70 | .addr_limit = KERNEL_DS, \ |
| 73 | .restart_block = { \ | 71 | .restart_block = { \ |
| 74 | .fn = do_no_restart_syscall, \ | 72 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h index af0fda46e94b..6ea5c33b3c56 100644 --- a/arch/m68k/include/asm/thread_info_mm.h +++ b/arch/m68k/include/asm/thread_info_mm.h | |||
| @@ -19,6 +19,7 @@ struct thread_info { | |||
| 19 | { \ | 19 | { \ |
| 20 | .task = &tsk, \ | 20 | .task = &tsk, \ |
| 21 | .exec_domain = &default_exec_domain, \ | 21 | .exec_domain = &default_exec_domain, \ |
| 22 | .preempt_count = INIT_PREEMPT_COUNT, \ | ||
| 22 | .restart_block = { \ | 23 | .restart_block = { \ |
| 23 | .fn = do_no_restart_syscall, \ | 24 | .fn = do_no_restart_syscall, \ |
| 24 | }, \ | 25 | }, \ |
diff --git a/arch/m68k/include/asm/thread_info_no.h b/arch/m68k/include/asm/thread_info_no.h index 82529f424ea3..c2bde5e24b0b 100644 --- a/arch/m68k/include/asm/thread_info_no.h +++ b/arch/m68k/include/asm/thread_info_no.h | |||
| @@ -49,6 +49,7 @@ struct thread_info { | |||
| 49 | .exec_domain = &default_exec_domain, \ | 49 | .exec_domain = &default_exec_domain, \ |
| 50 | .flags = 0, \ | 50 | .flags = 0, \ |
| 51 | .cpu = 0, \ | 51 | .cpu = 0, \ |
| 52 | .preempt_count = INIT_PREEMPT_COUNT, \ | ||
| 52 | .restart_block = { \ | 53 | .restart_block = { \ |
| 53 | .fn = do_no_restart_syscall, \ | 54 | .fn = do_no_restart_syscall, \ |
| 54 | }, \ | 55 | }, \ |
diff --git a/arch/microblaze/include/asm/thread_info.h b/arch/microblaze/include/asm/thread_info.h index 7fac44498445..6e92885d381a 100644 --- a/arch/microblaze/include/asm/thread_info.h +++ b/arch/microblaze/include/asm/thread_info.h | |||
| @@ -75,8 +75,6 @@ struct thread_info { | |||
| 75 | 75 | ||
| 76 | /* | 76 | /* |
| 77 | * macros/functions for gaining access to the thread information structure | 77 | * macros/functions for gaining access to the thread information structure |
| 78 | * | ||
| 79 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 80 | */ | 78 | */ |
| 81 | #define INIT_THREAD_INFO(tsk) \ | 79 | #define INIT_THREAD_INFO(tsk) \ |
| 82 | { \ | 80 | { \ |
| @@ -84,7 +82,7 @@ struct thread_info { | |||
| 84 | .exec_domain = &default_exec_domain, \ | 82 | .exec_domain = &default_exec_domain, \ |
| 85 | .flags = 0, \ | 83 | .flags = 0, \ |
| 86 | .cpu = 0, \ | 84 | .cpu = 0, \ |
| 87 | .preempt_count = 1, \ | 85 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 88 | .addr_limit = KERNEL_DS, \ | 86 | .addr_limit = KERNEL_DS, \ |
| 89 | .restart_block = { \ | 87 | .restart_block = { \ |
| 90 | .fn = do_no_restart_syscall, \ | 88 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h index 143a48136a4b..f9df720d2e40 100644 --- a/arch/mips/include/asm/thread_info.h +++ b/arch/mips/include/asm/thread_info.h | |||
| @@ -39,8 +39,6 @@ struct thread_info { | |||
| 39 | 39 | ||
| 40 | /* | 40 | /* |
| 41 | * macros/functions for gaining access to the thread information structure | 41 | * macros/functions for gaining access to the thread information structure |
| 42 | * | ||
| 43 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 44 | */ | 42 | */ |
| 45 | #define INIT_THREAD_INFO(tsk) \ | 43 | #define INIT_THREAD_INFO(tsk) \ |
| 46 | { \ | 44 | { \ |
| @@ -48,7 +46,7 @@ struct thread_info { | |||
| 48 | .exec_domain = &default_exec_domain, \ | 46 | .exec_domain = &default_exec_domain, \ |
| 49 | .flags = _TIF_FIXADE, \ | 47 | .flags = _TIF_FIXADE, \ |
| 50 | .cpu = 0, \ | 48 | .cpu = 0, \ |
| 51 | .preempt_count = 1, \ | 49 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 52 | .addr_limit = KERNEL_DS, \ | 50 | .addr_limit = KERNEL_DS, \ |
| 53 | .restart_block = { \ | 51 | .restart_block = { \ |
| 54 | .fn = do_no_restart_syscall, \ | 52 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/mn10300/include/asm/thread_info.h b/arch/mn10300/include/asm/thread_info.h index 78a3881f3c12..58d64f8b2cc3 100644 --- a/arch/mn10300/include/asm/thread_info.h +++ b/arch/mn10300/include/asm/thread_info.h | |||
| @@ -65,8 +65,6 @@ struct thread_info { | |||
| 65 | 65 | ||
| 66 | /* | 66 | /* |
| 67 | * macros/functions for gaining access to the thread information structure | 67 | * macros/functions for gaining access to the thread information structure |
| 68 | * | ||
| 69 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 70 | */ | 68 | */ |
| 71 | #ifndef __ASSEMBLY__ | 69 | #ifndef __ASSEMBLY__ |
| 72 | 70 | ||
| @@ -76,7 +74,7 @@ struct thread_info { | |||
| 76 | .exec_domain = &default_exec_domain, \ | 74 | .exec_domain = &default_exec_domain, \ |
| 77 | .flags = 0, \ | 75 | .flags = 0, \ |
| 78 | .cpu = 0, \ | 76 | .cpu = 0, \ |
| 79 | .preempt_count = 1, \ | 77 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 80 | .addr_limit = KERNEL_DS, \ | 78 | .addr_limit = KERNEL_DS, \ |
| 81 | .restart_block = { \ | 79 | .restart_block = { \ |
| 82 | .fn = do_no_restart_syscall, \ | 80 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/parisc/include/asm/thread_info.h b/arch/parisc/include/asm/thread_info.h index 0407959da489..4ce0edfbe969 100644 --- a/arch/parisc/include/asm/thread_info.h +++ b/arch/parisc/include/asm/thread_info.h | |||
| @@ -23,7 +23,7 @@ struct thread_info { | |||
| 23 | .flags = 0, \ | 23 | .flags = 0, \ |
| 24 | .cpu = 0, \ | 24 | .cpu = 0, \ |
| 25 | .addr_limit = KERNEL_DS, \ | 25 | .addr_limit = KERNEL_DS, \ |
| 26 | .preempt_count = 1, \ | 26 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 27 | .restart_block = { \ | 27 | .restart_block = { \ |
| 28 | .fn = do_no_restart_syscall \ | 28 | .fn = do_no_restart_syscall \ |
| 29 | } \ | 29 | } \ |
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index 9aba5a38a7c4..c8b329255678 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h | |||
| @@ -46,15 +46,13 @@ struct thread_info { | |||
| 46 | 46 | ||
| 47 | /* | 47 | /* |
| 48 | * macros/functions for gaining access to the thread information structure | 48 | * macros/functions for gaining access to the thread information structure |
| 49 | * | ||
| 50 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 51 | */ | 49 | */ |
| 52 | #define INIT_THREAD_INFO(tsk) \ | 50 | #define INIT_THREAD_INFO(tsk) \ |
| 53 | { \ | 51 | { \ |
| 54 | .task = &tsk, \ | 52 | .task = &tsk, \ |
| 55 | .exec_domain = &default_exec_domain, \ | 53 | .exec_domain = &default_exec_domain, \ |
| 56 | .cpu = 0, \ | 54 | .cpu = 0, \ |
| 57 | .preempt_count = 1, \ | 55 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 58 | .restart_block = { \ | 56 | .restart_block = { \ |
| 59 | .fn = do_no_restart_syscall, \ | 57 | .fn = do_no_restart_syscall, \ |
| 60 | }, \ | 58 | }, \ |
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 925bcc649035..ba1cab9fc1f9 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
| @@ -61,7 +61,7 @@ struct thread_info { | |||
| 61 | .exec_domain = &default_exec_domain, \ | 61 | .exec_domain = &default_exec_domain, \ |
| 62 | .flags = 0, \ | 62 | .flags = 0, \ |
| 63 | .cpu = 0, \ | 63 | .cpu = 0, \ |
| 64 | .preempt_count = 1, \ | 64 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 65 | .restart_block = { \ | 65 | .restart_block = { \ |
| 66 | .fn = do_no_restart_syscall, \ | 66 | .fn = do_no_restart_syscall, \ |
| 67 | }, \ | 67 | }, \ |
diff --git a/arch/sh/include/asm/thread_info.h b/arch/sh/include/asm/thread_info.h index f09ac4806294..d570ac2e5cb9 100644 --- a/arch/sh/include/asm/thread_info.h +++ b/arch/sh/include/asm/thread_info.h | |||
| @@ -51,7 +51,7 @@ struct thread_info { | |||
| 51 | .exec_domain = &default_exec_domain, \ | 51 | .exec_domain = &default_exec_domain, \ |
| 52 | .flags = 0, \ | 52 | .flags = 0, \ |
| 53 | .cpu = 0, \ | 53 | .cpu = 0, \ |
| 54 | .preempt_count = 1, \ | 54 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 55 | .addr_limit = KERNEL_DS, \ | 55 | .addr_limit = KERNEL_DS, \ |
| 56 | .restart_block = { \ | 56 | .restart_block = { \ |
| 57 | .fn = do_no_restart_syscall, \ | 57 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h index 0f7b0e5fb1c7..844d73a0340c 100644 --- a/arch/sparc/include/asm/thread_info_32.h +++ b/arch/sparc/include/asm/thread_info_32.h | |||
| @@ -54,8 +54,6 @@ struct thread_info { | |||
| 54 | 54 | ||
| 55 | /* | 55 | /* |
| 56 | * macros/functions for gaining access to the thread information structure | 56 | * macros/functions for gaining access to the thread information structure |
| 57 | * | ||
| 58 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 59 | */ | 57 | */ |
| 60 | #define INIT_THREAD_INFO(tsk) \ | 58 | #define INIT_THREAD_INFO(tsk) \ |
| 61 | { \ | 59 | { \ |
| @@ -64,7 +62,7 @@ struct thread_info { | |||
| 64 | .exec_domain = &default_exec_domain, \ | 62 | .exec_domain = &default_exec_domain, \ |
| 65 | .flags = 0, \ | 63 | .flags = 0, \ |
| 66 | .cpu = 0, \ | 64 | .cpu = 0, \ |
| 67 | .preempt_count = 1, \ | 65 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 68 | .restart_block = { \ | 66 | .restart_block = { \ |
| 69 | .fn = do_no_restart_syscall, \ | 67 | .fn = do_no_restart_syscall, \ |
| 70 | }, \ | 68 | }, \ |
diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h index 65865726b283..1b45a7bbe407 100644 --- a/arch/sparc/include/asm/thread_info_64.h +++ b/arch/sparc/include/asm/thread_info_64.h | |||
| @@ -125,8 +125,6 @@ struct thread_info { | |||
| 125 | 125 | ||
| 126 | /* | 126 | /* |
| 127 | * macros/functions for gaining access to the thread information structure | 127 | * macros/functions for gaining access to the thread information structure |
| 128 | * | ||
| 129 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 130 | */ | 128 | */ |
| 131 | #ifndef __ASSEMBLY__ | 129 | #ifndef __ASSEMBLY__ |
| 132 | 130 | ||
| @@ -135,7 +133,7 @@ struct thread_info { | |||
| 135 | .task = &tsk, \ | 133 | .task = &tsk, \ |
| 136 | .flags = ((unsigned long)ASI_P) << TI_FLAG_CURRENT_DS_SHIFT, \ | 134 | .flags = ((unsigned long)ASI_P) << TI_FLAG_CURRENT_DS_SHIFT, \ |
| 137 | .exec_domain = &default_exec_domain, \ | 135 | .exec_domain = &default_exec_domain, \ |
| 138 | .preempt_count = 1, \ | 136 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 139 | .restart_block = { \ | 137 | .restart_block = { \ |
| 140 | .fn = do_no_restart_syscall, \ | 138 | .fn = do_no_restart_syscall, \ |
| 141 | }, \ | 139 | }, \ |
diff --git a/arch/um/include/asm/thread_info.h b/arch/um/include/asm/thread_info.h index 62274ab9471f..fd911f855367 100644 --- a/arch/um/include/asm/thread_info.h +++ b/arch/um/include/asm/thread_info.h | |||
| @@ -32,7 +32,7 @@ struct thread_info { | |||
| 32 | .exec_domain = &default_exec_domain, \ | 32 | .exec_domain = &default_exec_domain, \ |
| 33 | .flags = 0, \ | 33 | .flags = 0, \ |
| 34 | .cpu = 0, \ | 34 | .cpu = 0, \ |
| 35 | .preempt_count = 1, \ | 35 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 36 | .addr_limit = KERNEL_DS, \ | 36 | .addr_limit = KERNEL_DS, \ |
| 37 | .restart_block = { \ | 37 | .restart_block = { \ |
| 38 | .fn = do_no_restart_syscall, \ | 38 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index b0783520988b..fad7d40b75f8 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h | |||
| @@ -49,7 +49,7 @@ struct thread_info { | |||
| 49 | .exec_domain = &default_exec_domain, \ | 49 | .exec_domain = &default_exec_domain, \ |
| 50 | .flags = 0, \ | 50 | .flags = 0, \ |
| 51 | .cpu = 0, \ | 51 | .cpu = 0, \ |
| 52 | .preempt_count = 1, \ | 52 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 53 | .addr_limit = KERNEL_DS, \ | 53 | .addr_limit = KERNEL_DS, \ |
| 54 | .restart_block = { \ | 54 | .restart_block = { \ |
| 55 | .fn = do_no_restart_syscall, \ | 55 | .fn = do_no_restart_syscall, \ |
diff --git a/arch/xtensa/include/asm/thread_info.h b/arch/xtensa/include/asm/thread_info.h index 0f4fe1faf9ba..13165641cc51 100644 --- a/arch/xtensa/include/asm/thread_info.h +++ b/arch/xtensa/include/asm/thread_info.h | |||
| @@ -80,8 +80,6 @@ struct thread_info { | |||
| 80 | 80 | ||
| 81 | /* | 81 | /* |
| 82 | * macros/functions for gaining access to the thread information structure | 82 | * macros/functions for gaining access to the thread information structure |
| 83 | * | ||
| 84 | * preempt_count needs to be 1 initially, until the scheduler is functional. | ||
| 85 | */ | 83 | */ |
| 86 | 84 | ||
| 87 | #ifndef __ASSEMBLY__ | 85 | #ifndef __ASSEMBLY__ |
| @@ -92,7 +90,7 @@ struct thread_info { | |||
| 92 | .exec_domain = &default_exec_domain, \ | 90 | .exec_domain = &default_exec_domain, \ |
| 93 | .flags = 0, \ | 91 | .flags = 0, \ |
| 94 | .cpu = 0, \ | 92 | .cpu = 0, \ |
| 95 | .preempt_count = 1, \ | 93 | .preempt_count = INIT_PREEMPT_COUNT, \ |
| 96 | .addr_limit = KERNEL_DS, \ | 94 | .addr_limit = KERNEL_DS, \ |
| 97 | .restart_block = { \ | 95 | .restart_block = { \ |
| 98 | .fn = do_no_restart_syscall, \ | 96 | .fn = do_no_restart_syscall, \ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 0085d758d645..2a99f1c15cf8 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -498,6 +498,12 @@ struct task_cputime { | |||
| 498 | .sum_exec_runtime = 0, \ | 498 | .sum_exec_runtime = 0, \ |
| 499 | } | 499 | } |
| 500 | 500 | ||
| 501 | /* | ||
| 502 | * Disable preemption until the scheduler is running. | ||
| 503 | * Reset by start_kernel()->sched_init()->init_idle(). | ||
| 504 | */ | ||
| 505 | #define INIT_PREEMPT_COUNT (1) | ||
| 506 | |||
| 501 | /** | 507 | /** |
| 502 | * struct thread_group_cputimer - thread group interval timer counts | 508 | * struct thread_group_cputimer - thread group interval timer counts |
| 503 | * @cputime: thread group interval timers. | 509 | * @cputime: thread group interval timers. |
