• Al Viro's avatar
    [PATCH] missing helper - task_stack_page() · 9fc65876
    Al Viro authored
    Patchset annotates arch/* uses of ->thread_info.  Ones that really are about
    access of thread_info of given process are simply switched to
    task_thread_info(task); ones that deal with access to objects on stack are
    switched to new helper - task_stack_page().  A _lot_ of the latter are
    actually open-coded instances of "find where pt_regs are"; those are
    consolidated into task_pt_regs(task) (many architectures actually have such
    helper already).
    
    Note that these annotations are not mandatory - any code not converted to
    these helpers still works.  However, they clean up a lot of places and have
    actually caught a number of bugs, so converting out of tree ports would be a
    good idea...
    
    As an example of breakage caught by that stuff, see i386 pt_regs mess - we
    used to have it open-coded in a bunch of places and when back in April Stas
    had fixed a bug in copy_thread(), the rest had been left out of sync.  That
    required two followup patches (the latest - just before 2.6.15) _and_ still
    had left /proc/*/stat eip field broken.  Try ps -eo eip on i386 and watch the
    junk...
    
    This patch:
    
    new helper - task_stack_page(task).  Returns pointer to the memory object
    containing task stack; usually thread_info of task sits in the beginning
    of that object.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    9fc65876
thread_info.h 1.97 KB