• J
    [PATCH] uml: stack usage reduction · 75e29b18
    Jeff Dike 提交于
    The KSTK_* macros used an inordinate amount of stack.  In order to overcome
    an impedance mismatch between their interface, which just returns a single
    register value, and the interface of get_thread_regs, which took a full
    pt_regs, the implementation created an on-stack pt_regs, filled it in, and
    returned one field.  do_task_stat calls KSTK_* twice, resulting in two
    local pt_regs, blowing out the stack.
    
    This patch changes the interface (and name) of get_thread_regs to just
    return a single register from a jmp_buf.
    
    The include of archsetjmp.h" in registers.h to get the definition of
    jmp_buf exposed a bogus include of <setjmp.h> in start_up.c.  <setjmp.h>
    shouldn't be used anywhere any more since UML uses the klibc
    setjmp/longjmp.
    Signed-off-by: NJeff Dike <jdike@addtoit.com>
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    75e29b18
start_up.c 14.8 KB