1. 17 Apr, 2008 19 commits
  2. 16 Apr, 2008 6 commits
  3. 15 Apr, 2008 2 commits
  4. 14 Apr, 2008 2 commits
  5. 13 Apr, 2008 3 commits
  6. 11 Apr, 2008 5 commits
    • J. Bruce Fields's avatar
      Spell out behavior of atomic_dec_and_lock() in kerneldoc · dc07e721
      J. Bruce Fields authored
      
      
      A little more detail here wouldn't hurt.
      Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      dc07e721
    • Heiko Carstens's avatar
      Fix "$(AS) -traditional" compile breakage caused by asmlinkage_protect · b0fac023
      Heiko Carstens authored
      git commit 54a01510
      
       ("asmlinkage_protect
      replaces prevent_tail_call") causes this build failure on s390:
      
          AS      arch/s390/kernel/entry64.o
        In file included from arch/s390/kernel/entry64.S:14:
        include/linux/linkage.h:34: error: syntax error in macro parameter list
        make[1]: *** [arch/s390/kernel/entry64.o] Error 1
        make: *** [arch/s390/kernel] Error 2
      
      and some other architectures.  The reason is that some architectures add
      the "-traditional" flag to the invocation of $(AS), which disables
      variadic macro argument support.
      
      So just surround the new define with an #ifndef __ASSEMBLY__ to prevent
      any side effects on asm code.
      
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b0fac023
    • Bjorn Helgaas's avatar
      pnp: increase number of devices supported per protocol · 544451a1
      Bjorn Helgaas authored
      
      
      Increase the PNP "number of devices" limit.  We currently use an unsigned
      char, which limits us to 256 devices per protocol.  This patch changes that to
      an unsigned int.
      
      Not all backends can take advantage of this: we limit ISAPNP to 10 devices in
      isapnp_cfg_begin(), and PNPBIOS is limited to 256 devices because the BIOS
      interfaces use a one-byte device node number.
      
      But there is no limit on the number of PNPACPI devices we may have.  Large HP
      Integrity machines have more than 256, which causes the current "unsigned char
      number" to wrap around.  This causes errors like this:
      
          pnp: PnP ACPI init
          kobject_add failed for 00:00 with -EEXIST, don't try to register things with the same name in the same directory.
      
          Call Trace:
           [<a000000100010720>] show_stack+0x40/0xa0
           [<a0000001000107b0>] dump_stack+0x30/0x60
           [<a0000001001dbdf0>] kobject_add+0x290/0x2c0
           [<a0000001002bfd40>] device_add+0x160/0x860
           [<a0000001002c0470>] device_register+0x30/0x60
           [<a00000010026ba70>] __pnp_add_device+0x130/0x180
           [<a00000010026bb70>] pnp_add_device+0xb0/0xe0
           [<a0000001007f2730>] pnpacpi_add_device+0x510/0x5a0
           [<a0000001007f2810>] pnpacpi_add_device_handler+0x50/0x80
      
      This patch increases the limit to fix this PNPACPI problem.  It should not
      have any adverse effect on ISAPNP or PNPBIOS because their limits are still
      enforced in the backends.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      544451a1
    • Linus Torvalds's avatar
      Add commentary about the new "asmlinkage_protect()" macro · d10d89ec
      Linus Torvalds authored
      
      
      It's really a pretty ugly thing to need, and some day it will hopefully
      be obviated by teaching gcc about the magic calling conventions for the
      low-level system call code, but in the meantime we can at least add big
      honking comments about why we need these insane and strange macros.
      
      I took my comments from my version of the macro, but I ended up deciding
      to just pick Roland's version of the actual code instead (with his
      prettier syntax that uses vararg macros).  Thus the previous two commits
      that actually implement it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d10d89ec
    • Roland McGrath's avatar
      asmlinkage_protect replaces prevent_tail_call · 54a01510
      Roland McGrath authored
      
      
      The prevent_tail_call() macro works around the problem of the compiler
      clobbering argument words on the stack, which for asmlinkage functions
      is the caller's (user's) struct pt_regs.  The tail/sibling-call
      optimization is not the only way that the compiler can decide to use
      stack argument words as scratch space, which we have to prevent.
      Other optimizations can do it too.
      
      Until we have new compiler support to make "asmlinkage" binding on the
      compiler's own use of the stack argument frame, we have work around all
      the manifestations of this issue that crop up.
      
      More cases seem to be prevented by also keeping the incoming argument
      variables live at the end of the function.  This makes their original
      stack slots attractive places to leave those variables, so the compiler
      tends not clobber them for something else.  It's still no guarantee, but
      it handles some observed cases that prevent_tail_call() did not.
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      54a01510
  7. 10 Apr, 2008 3 commits