PAGE_SIZE is not guaranteed to be equal to or less than 8 times the THREAD_SIZE.
E.g. architecture hexagon may have page size 1M and thread size 4096. This would lead to a division by zero. Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> --- kernel/fork.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index cf65139..71e2583 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -273,7 +273,8 @@ void __init fork_init(unsigned long mempages) * value: the thread structures can take up at most half * of memory. */ - max_threads = mempages / (8 * THREAD_SIZE / PAGE_SIZE); + max_threads = (u64) PAGE_SIZE * (u64) mempages + / (u64) THREAD_SIZE / 8UL; /* * we need to allow at least 20 threads to boot a system -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/