diff options
author | Richard Braun <rbraun@sceen.net> | 2018-01-29 00:52:40 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2018-01-29 01:12:05 +0100 |
commit | bc6e853d4b27055056eebfd871aaf0fc60405b0f (patch) | |
tree | 9860d545d88a627fcea3309efea89cb27779aaf9 /kern/thread.c | |
parent | 3ec2193d8538beec5d961d11d67f568d8d3f6cd8 (diff) |
Fix undefined behavior in conditional macro replacement
See C11 6.10.3 ยง11 :
If there are sequences of preprocessing tokens within the list of
arguments that would otherwise act as preprocessing directives,
the behavior is undefined.
Diffstat (limited to 'kern/thread.c')
-rw-r--r-- | kern/thread.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/kern/thread.c b/kern/thread.c index 601cc3fe..330b5375 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -2310,6 +2310,15 @@ thread_setup(void) return 0; } +#ifdef CONFIG_THREAD_STACK_GUARD +#define THREAD_STACK_GUARD_INIT_OP_DEPS \ + INIT_OP_DEP(vm_kmem_setup, true), \ + INIT_OP_DEP(vm_map_setup, true), \ + INIT_OP_DEP(vm_page_setup, true), +#else /* CONFIG_THREAD_STACK_GUARD */ +#define THREAD_STACK_GUARD_INIT_OP_DEPS +#endif /* CONFIG_THREAD_STACK_GUARD */ + INIT_OP_DEFINE(thread_setup, INIT_OP_DEP(cpumap_setup, true), INIT_OP_DEP(kmem_setup, true), @@ -2318,12 +2327,8 @@ INIT_OP_DEFINE(thread_setup, INIT_OP_DEP(task_setup, true), INIT_OP_DEP(thread_bootstrap, true), INIT_OP_DEP(turnstile_setup, true), -#ifdef CONFIG_THREAD_STACK_GUARD - INIT_OP_DEP(vm_kmem_setup, true), - INIT_OP_DEP(vm_map_setup, true), - INIT_OP_DEP(vm_page_setup, true), -#endif - ); + THREAD_STACK_GUARD_INIT_OP_DEPS +); void __init thread_ap_setup(void) |