From 5e0b10db70b9320933fef37f05587398c83c1eea Mon Sep 17 00:00:00 2001 From: fincs Date: Tue, 14 Nov 2017 01:14:36 +0100 Subject: [PATCH] Page-align stack size in threadCreate --- nx/source/kernel/thread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nx/source/kernel/thread.c b/nx/source/kernel/thread.c index 5fa94e60..d99bc366 100644 --- a/nx/source/kernel/thread.c +++ b/nx/source/kernel/thread.c @@ -8,6 +8,7 @@ extern const u8 __tdata_lma_end[]; extern u8 __tls_start[]; extern u8 __tls_end[]; +// Thread creation args; keep this struct's size 16-byte aligned typedef struct { Thread* t; ThreadFunc entry; @@ -34,7 +35,7 @@ Result threadCreate( Thread* t, ThreadFunc entry, void* arg, size_t stack_sz, int prio, int cpuid) { - stack_sz = (stack_sz+0xF) &~ 0xF; + stack_sz = (stack_sz+0xFFF) &~ 0xFFF; Result rc = 0; size_t reent_sz = (sizeof(struct _reent)+0xF) &~ 0xF;