1. 19 Dec, 2006 4 commits
  2. 18 Dec, 2006 7 commits
  3. 17 Dec, 2006 17 commits
  4. 16 Dec, 2006 12 commits
    • 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
    • Alan's avatar
      [PATCH] pata_via: Cable detect error · 5c9a7611
      Alan authored
      The UDMA66 VIA hardware has no controller side cable detect bits we can
      use. This patch minimally fixes the problem by reporting unknown in this
      case and using drive side detection.
      
      The old drivers/ide code does some additional tricks but those aren't
      appropriate now we are in -rc.
      
      Without this update UDMA66 via controllers run slowly. They don't fail so
      it's a borderline call whether this is -rc material or not.
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      5c9a7611
    • Alan's avatar
      [PATCH] Fix help text for CONFIG_ATA_PIIX · 2bfc3611
      Alan authored
      > Thanks for clarifying Bill, and sorry Alan. ata_piix does indeed work
      > correctly. The help text is a bit confusing:
      >
      > config ATA_PIIX
      >         tristate "Intel PIIX/ICH SATA support"
      >         depends on PCI
      >         help
      >           This option enables support for ICH5/6/7/8 Serial ATA.
      >           If PATA support was enabled previously, this enables
      >           support for select Intel PIIX/ICH PATA host controllers.
      
      New help text
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      2bfc3611
    • Ira Snyder's avatar
      [PATCH] initializer entry defined twice in pata_rz1000 · 0457882f
      Ira Snyder authored
      This removes the extra definition of the .error_handler member
      in the pata_rz1000 driver.
      Signed-off-by: default avatarIra W. Snyder <kernel@irasnyder.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      0457882f
    • Akinobu Mita's avatar
      [PATCH] ata: fix platform_device_register_simple() error check · 9825d73c
      Akinobu Mita authored
      The return value of platform_device_register_simple() should be checked
      by IS_ERR().
      
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Acked-by: default avatarAlan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      9825d73c
    • Tejun Heo's avatar
      [PATCH] ahci: do not mangle saved HOST_CAP while resetting controller · 551c012d
      Tejun Heo authored
      Do not mangle with HOST_CAP while resetting controller.  The code is
      there for a historical reason.  The mangling breaks controller feature
      detection and 0 PORTS_IMPL workaround code.
      
      This problem was spotted by Manoj Kasichainula.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Manoj Kasichainula <manoj@io.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      551c012d
    • Tejun Heo's avatar
      [PATCH] libata: don't initialize sg in ata_exec_internal() if DMA_NONE (take #2) · 33480a0e
      Tejun Heo authored
      Calling sg_init_one() with NULL buf causes oops on certain
      configurations.  Don't initialize sg in ata_exec_internal() if
      DMA_NONE and make the function complain if @buf is NULL when dma_dir
      isn't DMA_NONE.  While at it, fix comment.
      
      The problem is discovered and initial patch was submitted by Arnd
      Bergmann.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Arnd Bergmann <arnd.bergmann@de.ibm.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      33480a0e
    • Jeff Garzik's avatar
      [libata] sata_svw: Disable ATAPI DMA on current boards (errata workaround) · c10340ac
      Jeff Garzik authored
      Current Broadcom/Serverworks SATA boards (including Apple K2 SATA)
      have problems with ATAPI DMA, so it is disabled.  ATAPI PIO, ATA PIO,
      and ATA DMA continue to work just fine.
      Acked-by: default avatarAnantha Subramanyam <ananth@broadcom.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      c10340ac
    • Jeff Garzik's avatar
      [libata] use kmap_atomic(KM_IRQ0) in SCSI simulator · da02d2a1
      Jeff Garzik authored
      We are inside spin_lock_irqsave().  quoth akpm's debug facility:
      
       [  231.948000] SCSI device sda: 195371568 512-byte hdwr sectors (100030 MB)
       [  232.232000] ata1.00: configured for UDMA/33
       [  232.404000] WARNING (1) at arch/i386/mm/highmem.c:47 kmap_atomic()
       [  232.404000]  [<c01162e6>] kmap_atomic+0xa9/0x1ab
       [  232.404000]  [<c0242c81>] ata_scsi_rbuf_get+0x1c/0x30
       [  232.404000]  [<c0242caf>] ata_scsi_rbuf_fill+0x1a/0x87
       [  232.404000]  [<c0243ab2>] ata_scsiop_mode_sense+0x0/0x309
       [  232.404000]  [<c01729d5>] end_bio_bh_io_sync+0x0/0x37
       [  232.404000]  [<c02311c6>] scsi_done+0x0/0x16
       [  232.404000]  [<c02311c6>] scsi_done+0x0/0x16
       [  232.404000]  [<c0242dcc>] ata_scsi_simulate+0xb0/0x13f
      [...]
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      da02d2a1
    • Tejun Heo's avatar
      [PATCH] ata_piix: use piix_host_stop() in ich_pata_ops · fae07dc3
      Tejun Heo authored
      piix_init_one() allocates host private data which should be freed by
      piix_host_stop().  ich_pata_ops wasn't converted to piix_host_stop()
      while merging, leaking 4 bytes on driver detach.  Fix it.
      
      This was spotted using Kmemleak by Catalin Marinas.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      fae07dc3