1. 15 3月, 2007 8 次提交
  2. 14 3月, 2007 5 次提交
  3. 13 3月, 2007 21 次提交
  4. 12 3月, 2007 4 次提交
  5. 11 3月, 2007 1 次提交
  6. 10 3月, 2007 1 次提交
    • M
      [SPARC64]: Fix atomicity of TIF update in flush_thread() · c0a79b22
      Mathieu Desnoyers 提交于
      Fix atomicity of TIF update in flush_thread() for sparc64
      
      Fixes correctly the race by using *_ti_thread_flag.
      
      Race :
      
      parent process executing :
      sys_ptrace()
       (lock_kernel())
       (ptrace_get_task_struct(pid))
       arch_ptrace()
         ptrace_detach()
           ptrace_disable(child);
             clear_singlestep(child);
               clear_tsk_thread_flag(child, TIF_SINGLESTEP);
               (which clears the TIF_SINGLESTEP flag atomically from a different
                process)
       (put_task_struct(child))
       (unlock_kernel())
      
      And at the same time, in the child process :
      sys_execve()
       do_execve()
         search_binary_handler()
           load_elf_binary()
             flush_old_exec()
               flush_thread()
                 doing a non-atomic thread flag update
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c0a79b22