1. 26 4月, 2007 26 次提交
  2. 14 4月, 2007 2 次提交
  3. 13 4月, 2007 2 次提交
  4. 12 4月, 2007 1 次提交
    • D
      [SPARC64]: Fix SBUS IOMMU allocation code. · 2f3a2efd
      David S. Miller 提交于
      There are several IOMMU allocator bugs.  Instead of trying to fix this
      overly complicated code, just mirror the PCI IOMMU arena allocator
      which is very stable and well stress tested.
      
      I tried to make the code as identical as possible so we can switch
      sun4u PCI and SBUS over to a common piece of IOMMU code.  All that
      will be need are two callbacks, one to do a full IOMMU flush and one
      to do a streaming buffer flush.
      
      This patch gets rid of a lot of hangs and mysterious crashes on SBUS
      sparc64 systems, at least for me.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2f3a2efd
  5. 20 3月, 2007 1 次提交
    • D
      [SPARC64]: store-init needs trailing membar. · 24d559ca
      David S. Miller 提交于
      The manual says that it is required and we actually have crash reports
      where loads see stale data due to not having membars here.
      
      In one case the networking does:
      
      	memset(skb, 0, offsetof(struct sk_buff, truesize));
      
      and then some code later checks skb->nohdr for zero, but it's still
      the value that was there before the memset().
      
      Note that arch/sparc64/lib/xor.S already got this right.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      24d559ca
  6. 18 3月, 2007 1 次提交
  7. 17 3月, 2007 1 次提交
    • D
      [SPARC64]: Get DEBUG_PAGEALLOC working again. · d1acb421
      David S. Miller 提交于
      We have to make sure to use base-pagesize TLB entries even during the
      early transition period where we need TLB miss handling but don't have
      the kernel page tables setup yet for the linear region.
      
      Also, it is necessary therefore to not use the 4MB TSB for these
      translations, and instead use the normal kernel TSB.  This allows us
      to also get rid of the 4MB tsb for debug builds which shrinks the
      kernel a little bit.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d1acb421
  8. 13 3月, 2007 2 次提交
  9. 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
  10. 03 3月, 2007 3 次提交