19 Dec, 2006

5 commits


18 Dec, 2006

16 commits


17 Dec, 2006

5 commits

  • Hugh Dickins correctly points out that mincore() is actually _supposed_
    to fail on an unmapped hole in the user address space, rather than
    return valid ("empty") information about the hole. This just simplifies
    the problem further (I had been misled by our previous confusing and
    complicated way of doing mincore()).

    Also, in the unlikely situation that we can't allocate a temporary
    kernel buffer, we should actually return EAGAIN, not ENOMEM, to keep the
    "unmapped hole" and "allocation failure" error cases separate.

    Finally, add a comment about our stupid historical lack of support for
    anonymous mappings. I'll fix that if somebody reminds me after 2.6.20
    is out.

    Acked-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * '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

    Linus Torvalds
     
  • * '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

    Linus Torvalds
     
  • 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 4594bf159f1962cec3b727954b7c598b07e2e737) 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
    Cc: David Howells
    Cc: David Miller
    Cc: Matthew Wilcox
    Cc: Linux Arch Maintainers
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • 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
    Cc: Marcel Holtmann
    Cc: Hugh Dickins
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

16 Dec, 2006

14 commits

  • 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: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan
     
  • > 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: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan
     
  • This removes the extra definition of the .error_handler member
    in the pata_rz1000 driver.

    Signed-off-by: Ira W. Snyder
    Cc: Jeff Garzik
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Ira Snyder
     
  • The return value of platform_device_register_simple() should be checked
    by IS_ERR().

    Cc: Jeff Garzik
    Acked-by: Alan Cox
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Akinobu Mita
     
  • 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: Tejun Heo
    Cc: Manoj Kasichainula
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • 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: Tejun Heo
    Cc: Arnd Bergmann
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • 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: Anantha Subramanyam
    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • 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] [] kmap_atomic+0xa9/0x1ab
    [ 232.404000] [] ata_scsi_rbuf_get+0x1c/0x30
    [ 232.404000] [] ata_scsi_rbuf_fill+0x1a/0x87
    [ 232.404000] [] ata_scsiop_mode_sense+0x0/0x309
    [ 232.404000] [] end_bio_bh_io_sync+0x0/0x37
    [ 232.404000] [] scsi_done+0x0/0x16
    [ 232.404000] [] scsi_done+0x0/0x16
    [ 232.404000] [] ata_scsi_simulate+0xb0/0x13f
    [...]

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • 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: Tejun Heo
    Cc: Catalin Marinas
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • This updated patch adds the Intel ICH9 IDE mode SATA controller DID's.

    Signed-off-by: Jason Gaston
    Acked-by: Tejun Heo
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Jason Gaston
     
  • mthca_device_mutex() can be initialized automatically with
    DEFINE_MUTEX() rather than explicitly calling mutex_init(). This
    saves a bit of text and shrinks the source by a line, so we may as
    well do it....

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Add module parameters that enable settting some of the HCA
    profile values, such as the number of QPs, CQs, etc.

    Signed-off-by: Leonid Arsh
    Signed-off-by: Moni Shoua
    Signed-off-by: Roland Dreier

    Leonid Arsh
     
  • Nobody uses it, but it was still wrong. Using the macro argument name
    'work' meant that when we used 'work' as a member name, that would also
    get replaced by the macro argument.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • struct srp_device.fmr_page_mask was unsigned long, which means that
    the top part of addresses above 4G was being chopped off on 32-bit
    architectures. Of course nothing good happens when data from SRP
    targets is DMAed to the wrong place.

    Fix this by changing fmr_page_mask to u64, to match the addresses
    actually used by IB devices.

    Thanks to Brian Cain and David McMillen
    for help diagnosing the bug and testing
    the fix.

    Signed-off-by: Roland Dreier

    Roland Dreier