17 Dec, 2006

4 commits

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

26 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
     
  • The ib_dma_alloc_coherent() wrapper uses a u64* for the dma_handle
    parameter, unlike dma_alloc_coherent, which uses dma_addr_t*. This
    means that we need a temporary variable to handle the case when
    ib_dma_alloc_coherent() just falls through directly to
    dma_alloc_coherent() on architectures where sizeof u64 != sizeof
    dma_addr_t.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] cio: css_register_subchannel race.
    [S390] Save prefix register for dump on panic
    [S390] Fix reboot hang
    [S390] Fix reboot hang on LPARs
    [S390] sclp_cpi module license.
    [S390] zcrypt: module unload fixes.
    [S390] Hipersocket multicast queue: make sure outbound handler is called
    [S390] hypfs fixes
    [S390] update default configuration

    Linus Torvalds
     
  • It has caused more problems than it ever really solved, and is
    apparently not getting cleaned up and fixed. We can put it back when
    it's stable and isn't likely to make warning or bug events worse.

    In the meantime, enable frame pointers for more readable stack traces.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Asynchronous probe can release memory of a subchannel before
    css_get_ssd_info is called. To fix this call css_get_ssd_info
    before registering with driver core.

    Signed-off-by: Stefan Bader
    Signed-off-by: Martin Schwidefsky

    Stefan Bader
     
  • The dump tools expect that the saved prefix register points to the
    lowcore of the dump cpu. Since we set the prefix register to 0 during
    reipl/dump, we have to save the original prefix register. Before we
    start the dump program, we copy the original prefix register to the
    designated location in the lowcore.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • We use printks after shutting down all other cpus. This is not allowed
    and can lead to deadlocks. Therefore the printks have to be removed.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • Reboot hangs on LPARs without diag308 support. The reason for this is,
    that before the reboot is done, the channel subsystem is shut down.
    During the reset on each possible subchannel a "store subchannel" is
    done. This operation can end in a program check interruption, if the
    specified subchannel set is not implemented by the hardware. During
    the reset, currently we do not have a program check handler, which
    leads to the described kernel bug. We install now a new program check
    handler for the reboot code to fix this problem.

    Signed-off-by: Michael Holzheu
    Signed-off-by: Martin Schwidefsky

    Michael Holzheu
     
  • sclp_cpi is GPL. Make the module not taint the kernel

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • Add code to reset all queues for a domain and add missing tasklet_kill
    call to ap bus module exit code.

    Signed-off-by: Ralph Wuerthner
    Signed-off-by: Martin Schwidefsky

    Ralph Wuerthner
     
  • A HiperSocket multicast queue works asynchronously. When sending
    buffers, the buffer state change from PRIMED to EMPTY may happen
    delayed. Reschedule the checking for changes in the outbound queue,
    if there are still PRIMED buffers.

    Signed-off-by: Ursula Braun
    Signed-off-by: Martin Schwidefsky

    Ursula Braun
     
  • Correct typo to make hypfs work on systems that support only diag204
    subcode 4 and fix error handling in hypfs_diag_init.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Martin Schwidefsky

    Christian Borntraeger
     
  • Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     

14 Dec, 2006

10 commits