public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] kernel/fork.c: avoid division by zero
@ 2015-02-16 18:00 Heinrich Schuchardt
  2015-02-16 18:45 ` Heinrich Schuchardt
  2015-02-17  7:56 ` Vladimir Davydov
  0 siblings, 2 replies; 5+ messages in thread
From: Heinrich Schuchardt @ 2015-02-16 18:00 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Kirill A. Shutemov, Oleg Nesterov, Peter Zijlstra, Ingo Molnar,
	Vladimir Davydov, Thomas Gleixner, David Rientjes, Kees Cook,
	Aaron Tomlin, linux-kernel, Heinrich Schuchardt

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.glpk@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


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-02-17  9:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-16 18:00 [PATCH 1/1] kernel/fork.c: avoid division by zero Heinrich Schuchardt
2015-02-16 18:45 ` Heinrich Schuchardt
2015-02-16 18:49   ` Guenter Roeck
2015-02-17  7:56 ` Vladimir Davydov
2015-02-17  9:14   ` Heinrich Schuchardt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox