1. 17 10月, 2007 1 次提交
  2. 31 7月, 2007 1 次提交
  3. 09 5月, 2007 1 次提交
  4. 12 10月, 2006 1 次提交
  5. 02 10月, 2006 2 次提交
    • A
      [PATCH] provide kernel_execve on all architectures · fe74290d
      Arnd Bergmann 提交于
      This adds the new kernel_execve function on all architectures that were using
      _syscall3() to implement execve.
      
      The implementation uses code from the _syscall3 macros provided in the
      unistd.h header file.  I don't have cross-compilers for any of these
      architectures, so the patch is untested with the exception of i386.
      
      Most architectures can probably implement this in a nicer way in assembly or
      by combining it with the sys_execve implementation itself, but this should do
      it for now.
      
      [bunk@stusta.de: m68knommu build fix]
      [markh@osdl.org: build fix]
      [bero@arklinux.org: build fix]
      [ralf@linux-mips.org: mips fix]
      [schwidefsky@de.ibm.com: s390 fix]
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ian Molton <spyro@f2s.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Hirokazu Takata <takata.hirokazu@renesas.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
      Cc: Richard Curnow <rc@rc0.org.uk>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NBernhard Rosenkraenzer <bero@arklinux.org>
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fe74290d
    • S
      [PATCH] namespaces: utsname: switch to using uts namespaces · e9ff3990
      Serge E. Hallyn 提交于
      Replace references to system_utsname to the per-process uts namespace
      where appropriate.  This includes things like uname.
      
      Changes: Per Eric Biederman's comments, use the per-process uts namespace
      	for ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c
      
      [jdike@addtoit.com: UML fix]
      [clg@fr.ibm.com: cleanup]
      [akpm@osdl.org: build fix]
      Signed-off-by: NSerge E. Hallyn <serue@us.ibm.com>
      Cc: Kirill Korotaev <dev@openvz.org>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Herbert Poetzl <herbert@13thfloor.at>
      Cc: Andrey Savochkin <saw@sw.ru>
      Signed-off-by: NCedric Le Goater <clg@fr.ibm.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e9ff3990
  6. 01 7月, 2006 1 次提交
  7. 21 2月, 2006 1 次提交
    • H
      [PATCH] m32r: update sys_tas() routine · cf535ea5
      Hirokazu Takata 提交于
      This patch updates and fixes sys_tas() routine for m32r.
      
      In the previous implementation, a lockup rarely caused at sys_tas()
      routine in SMP environment.
      
      > > The problem is that touching *addr will generate an oops if that page isn't
      > > paged in.  If we convert it to use get_user() then that's an improvement,
      > > but we must not run get_user() under spinlock or local_irq_disable().
      
      I rewrote sys_tas() routine by using "lock -> unlock" instructions, and
      utilizing the m32r's interrupt handling characteristics; the m32r processor
      can accept interrupts only at the 32-bit instruction boundary.  So, the
      "unlock" instruction can be executed continuously after the "lock"
      instruction execution without any interruptions.
      
      In addition, to solve such a page_fault problem, I use a fixup code like
      get_user().
      
      And, as for the kernel lockup problem, we found that a calling
      do_page_fault() routine with disabling interrupts might cause a lockup at
      flush_tlb_others(), because we checked a completion of IPI handler's
      operations in a spin-locked critical section.
      
      Therefore, by using "lock -> unlock" code, we can implement the sys_tas()
      rouitine without disabling interrupts explicitly, then no lockups would
      happen at flush_tlb_others(), I hope.
      
      Compile check and some working test in SMP environment have done.
      Signed-off-by: NHirokazu Takata <takata@linux-m32r.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cf535ea5
  8. 29 11月, 2005 1 次提交
    • H
      [PATCH] m32r: Fix sys_tas() syscall · 91f4ab05
      Hirokazu Takata 提交于
      This patch fixes a deadlock problem of the m32r SMP kernel.
      
      In the m32r kernel, sys_tas() system call is provided as a test-and-set
      function for userspace, for backward compatibility.
      
      In some multi-threading application program, deadlocks were rarely caused
      at sys_tas() funcion.  Such a deadlock was caused due to a collision of
      __pthread_lock() and __pthread_unlock() operations.
      
      The "tas" syscall is repeatedly called by pthread_mutex_lock() to get a
      lock, while a lock variable's value is not 0.  On the other hand,
      pthead_mutex_unlock() sets the lock variable to 0 for unlocking.
      
      In the previous implementation of sys_tas() routine, there was a
      possibility that a unlock operation was ignored in the following case:
      
      - Assume a lock variable (*addr) was equal to 1 before sys_tas() execution.
      - __pthread_unlock() operation is executed by the other processor
        and the lock variable (*addr) is set to 0, between a read operation
        ("oldval = *addr;") and the following write operation ("*addr = 1;")
        during a execution of sys_tas().
      
      In this case, the following write operation ("*addr = 1;") overwrites the
      __pthread_unlock() result, and sys_tas() fails to get a lock in the next
      turn and after that.
      
      According to the attatched patch, sys_tas() returns 0 value in the next
      turn and deadlocks never happen.
      Signed-off-by: NHitoshi Yamamoto <Yamamoto.Hitoshi@ap.MitsubishiElectric.co.jp>
      Signed-off-by: NHirokazu Takata <takata@linux-m32r.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      91f4ab05
  9. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4