1. 17 4月, 2008 23 次提交
  2. 16 4月, 2008 5 次提交
  3. 15 4月, 2008 1 次提交
  4. 14 4月, 2008 2 次提交
  5. 13 4月, 2008 3 次提交
  6. 12 4月, 2008 1 次提交
  7. 11 4月, 2008 5 次提交
    • H
      Fix "$(AS) -traditional" compile breakage caused by asmlinkage_protect · b0fac023
      Heiko Carstens 提交于
      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: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b0fac023
    • B
      pnp: increase number of devices supported per protocol · 544451a1
      Bjorn Helgaas 提交于
      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: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      544451a1
    • L
      Add commentary about the new "asmlinkage_protect()" macro · d10d89ec
      Linus Torvalds 提交于
      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: NLinus Torvalds <torvalds@linux-foundation.org>
      d10d89ec
    • R
      asmlinkage_protect replaces prevent_tail_call · 54a01510
      Roland McGrath 提交于
      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: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      54a01510
    • D
      FRV: Don't make smp_{r, w, }mb() interpolate MEMBAR when CONFIG_SMP=n [try #2] · f17520e1
      David Howells 提交于
      Don't make smp_{r,w,}mb() interpolate a MEMBAR instruction when CONFIG_SMP=n as
      SMP memory barries on UP systems should interpolate a compiler barrier only.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f17520e1