• Heinrich Schuchardt's avatar
    kernel/fork.c: new function for max_threads · ff691f6e
    Heinrich Schuchardt authored
    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 in the calculation of max_threads.
    
    With this patch the buggy code is moved to a separate function
    set_max_threads.  The error is not fixed.
    
    After fixing the problem in a separate patch the new function can be
    reused to adjust max_threads after adding or removing memory.
    
    Argument mempages of function fork_init() is removed as totalram_pages is
    an exported symbol.
    
    The creation of separate patches for refactoring to a new function and for
    fixing the logic was suggested by Ingo Molnar.
    Signed-off-by: default avatarHeinrich Schuchardt <xypron.glpk@gmx.de>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ff691f6e
fork.c 47.8 KB