1. 18 Dec, 2006 26 commits
  2. 17 Dec, 2006 10 commits
  3. 16 Dec, 2006 4 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband · c7ef259b
      Linus Torvalds authored
      * 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
        IB/mthca: Use DEFINE_MUTEX() instead of mutex_init()
        IB/mthca: Add HCA profile module parameters
        IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G
        IB: Fix ib_dma_alloc_coherent() wrapper
      c7ef259b
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev · 99f5e971
      Linus Torvalds authored
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [PATCH] pata_via: Cable detect error
        [PATCH] Fix help text for CONFIG_ATA_PIIX
        [PATCH] initializer entry defined twice in pata_rz1000
        [PATCH] ata: fix platform_device_register_simple() error check
        [PATCH] ahci: do not mangle saved HOST_CAP while resetting controller
        [PATCH] libata: don't initialize sg in ata_exec_internal() if DMA_NONE (take #2)
        [libata] sata_svw: Disable ATAPI DMA on current boards (errata workaround)
        [libata] use kmap_atomic(KM_IRQ0) in SCSI simulator
        [PATCH] ata_piix: use piix_host_stop() in ich_pata_ops
        [PATCH] ata_piix: IDE mode SATA patch for Intel ICH9
      99f5e971
    • Linus Torvalds's avatar
      Make workqueue bit operations work on "atomic_long_t" · a08727ba
      Linus Torvalds authored
      On architectures where the atomicity of the bit operations is handled by
      external means (ie a separate spinlock to protect concurrent accesses),
      just doing a direct assignment on the workqueue data field (as done by
      commit 4594bf15) can cause the
      assignment to be lost due to lack of serialization with the bitops on
      the same word.
      
      So we need to serialize the assignment with the locks on those
      architectures (notably older ARM chips, PA-RISC and sparc32).
      
      So rather than using an "unsigned long", let's use "atomic_long_t",
      which already has a safe assignment operation (atomic_long_set()) on
      such architectures.
      
      This requires that the atomic operations use the same atomicity locks as
      the bit operations do, but that is largely the case anyway.  Sparc32
      will probably need fixing.
      
      Architectures (including modern ARM with LL/SC) that implement sane
      atomic operations for SMP won't see any of this matter.
      
      Cc: Russell King <rmk+lkml@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: David Miller <davem@davemloft.com>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Linux Arch Maintainers <linux-arch@vger.kernel.org>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a08727ba
    • Linus Torvalds's avatar
      Fix incorrect user space access locking in mincore() · 2f77d107
      Linus Torvalds authored
      Doug Chapman noticed that mincore() will doa "copy_to_user()" of the
      result while holding the mmap semaphore for reading, which is a big
      no-no.  While a recursive read-lock on a semaphore in the case of a page
      fault happens to work, we don't actually allow them due to deadlock
      schenarios with writers due to fairness issues.
      
      Doug and Marcel sent in a patch to fix it, but I decided to just rewrite
      the mess instead - not just fixing the locking problem, but making the
      code smaller and (imho) much easier to understand.
      
      Cc: Doug Chapman <dchapman@redhat.com>
      Cc: Marcel Holtmann <holtmann@redhat.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Andrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      2f77d107