1. 22 Oct, 2010 36 commits
    • Linus Torvalds's avatar
      Merge branch 'vfs' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl · 79f14b7c
      Linus Torvalds authored
      * 'vfs' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl: (30 commits)
        BKL: remove BKL from freevxfs
        BKL: remove BKL from qnx4
        autofs4: Only declare function when CONFIG_COMPAT is defined
        autofs: Only declare function when CONFIG_COMPAT is defined
        ncpfs: Lock socket in ncpfs while setting its callbacks
        fs/locks.c: prepare for BKL removal
        BKL: Remove BKL from ncpfs
        BKL: Remove BKL from OCFS2
        BKL: Remove BKL from squashfs
        BKL: Remove BKL from jffs2
        BKL: Remove BKL from ecryptfs
        BKL: Remove BKL from afs
        BKL: Remove BKL from USB gadgetfs
        BKL: Remove BKL from autofs4
        BKL: Remove BKL from isofs
        BKL: Remove BKL from fat
        BKL: Remove BKL from ext2 filesystem
        BKL: Remove BKL from do_new_mount()
        BKL: Remove BKL from cgroup
        BKL: Remove BKL from NTFS
        ...
      79f14b7c
    • Linus Torvalds's avatar
      Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl · c37927d4
      Linus Torvalds authored
      * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
        block: autoconvert trivial BKL users to private mutex
        drivers: autoconvert trivial BKL users to private mutex
        ipmi: autoconvert trivial BKL users to private mutex
        mac: autoconvert trivial BKL users to private mutex
        mtd: autoconvert trivial BKL users to private mutex
        scsi: autoconvert trivial BKL users to private mutex
      
      Fix up trivial conflicts (due to addition of private mutex right next to
      deletion of a version string) in drivers/char/pcmcia/cm40[04]0_cs.c
      c37927d4
    • Linus Torvalds's avatar
      Merge branch 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl · 5704e44d
      Linus Torvalds authored
      * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
        BKL: introduce CONFIG_BKL.
        dabusb: remove the BKL
        sunrpc: remove the big kernel lock
        init/main.c: remove BKL notations
        blktrace: remove the big kernel lock
        rtmutex-tester: make it build without BKL
        dvb-core: kill the big kernel lock
        dvb/bt8xx: kill the big kernel lock
        tlclk: remove big kernel lock
        fix rawctl compat ioctls breakage on amd64 and itanic
        uml: kill big kernel lock
        parisc: remove big kernel lock
        cris: autoconvert trivial BKL users
        alpha: kill big kernel lock
        isapnp: BKL removal
        s390/block: kill the big kernel lock
        hpet: kill BKL, add compat_ioctl
      5704e44d
    • Linus Torvalds's avatar
      Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 91151240
      Linus Torvalds authored
      * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, 32-bit: Align percpu area and irq stacks to THREAD_SIZE
        x86: Move alloc_desk_mask variables inside ifdef
        x86-32: Align IRQ stacks properly
        x86: Remove CONFIG_4KSTACKS
        x86: Always use irq stacks
      
      Fixed up trivial conflicts in include/linux/{irq.h, percpu-defs.h}
      91151240
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of... · 211baf4f
      Linus Torvalds authored
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Hpet: Avoid the comparator readback penalty
      211baf4f
    • Alan Cox's avatar
      bluetooth: Fix missing NULL check · c19483cc
      Alan Cox authored
      Fortunately this is only exploitable on very unusual hardware.
      
      [Reported a while ago but nothing happened so just fixing it]
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c19483cc
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · d4429f60
      Linus Torvalds authored
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits)
        powerpc/44x: Update ppc44x_defconfig
        powerpc/watchdog: Make default timeout for Book-E watchdog a Kconfig option
        fsl_rio: Add comments for sRIO registers.
        powerpc/fsl-booke: Add e55xx (64-bit) smp defconfig
        powerpc/fsl-booke: Add p5020 DS board support
        powerpc/fsl-booke64: Use TLB CAMs to cover linear mapping on FSL 64-bit chips
        powerpc/fsl-booke: Add support for FSL Arch v1.0 MMU in setup_page_sizes
        powerpc/fsl-booke: Add support for FSL 64-bit e5500 core
        powerpc/85xx: add cache-sram support
        powerpc/85xx: add ngPIXIS FPGA device tree node to the P1022DS board
        powerpc: Fix compile error with paca code on ppc64e
        powerpc/fsl-booke: Add p3041 DS board support
        oprofile/fsl emb: Don't set MSR[PMM] until after clearing the interrupt.
        powerpc/fsl-booke: Add PCI device ids for P2040/P3041/P5010/P5020 QoirQ chips
        powerpc/mpc8xxx_gpio: Add support for 'qoriq-gpio' controllers
        powerpc/fsl_booke: Add support to boot from core other than 0
        powerpc/p1022: Add probing for individual DMA channels
        powerpc/fsl_soc: Search all global-utilities nodes for rstccr
        powerpc: Fix invalid page flags in create TLB CAM path for PTE_64BIT
        powerpc/mpc83xx: Support for MPC8308 P1M board
        ...
      
      Fix up conflict with the generic irq_work changes in arch/powerpc/kernel/time.c
      d4429f60
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · e10117d3
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: (26 commits)
        include/linux/libata.h: fix typo
        pata_bf54x: fix return type of bfin_set_devctl
        Drivers: ata: Makefile: replace the use of <module>-objs with <module>-y
        libahci: fix result_tf handling after an ATA PIO data-in command
        pata_sl82c105: implement sff_irq_check() method
        pata_sil680: implement sff_irq_check() method
        pata_pdc202xx_old: implement sff_irq_check() method
        pata_cmd640: implement sff_irq_check() method
        ata_piix: Add device ID for ICH4-L
        pata_sil680: make sil680_sff_exec_command() 'static'
        ata: Intel IDE-R support
        libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds
        libata: Signal that our SATL supports WRITE SAME(16) with UNMAP
        ata_piix: remove SIDPR locking
        libata: implement cross-port EH exclusion
        libata: add @ap to ata_wait_register() and introduce ata_msleep()
        ata_piix: implement LPM support
        libata: implement LPM support for port multipliers
        libata: reimplement link power management
        libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global
        ...
      e10117d3
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 · f3270b16
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (48 commits)
        ocfs2: Avoid to evaluate xattr block flags again.
        ocfs2/cluster: Release debugfs file elapsed_time_in_ms
        ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes.
        Initialize max_slots early
        When I tried to compile I got the following warning: fs/ocfs2/slot_map.c: In function ‘ocfs2_init_slot_info’: fs/ocfs2/slot_map.c:360: warning: ‘bytes’ may be used uninitialized in this function fs/ocfs2/slot_map.c:360: note: ‘bytes’ was declared here Compiler: gcc version 4.4.3 (GCC) on Mandriva I'm not sure why this warning occurs, I think compiler don't know that variable "bytes" is initialized when it is sent by reference to ocfs2_slot_map_physical_size and it throws that ugly warning. However, a simple initialization of "bytes" variable with 0 will fix it.
        ocfs2: validate bg_free_bits_count after update
        ocfs2/cluster: Bump up dlm protocol to version 1.1
        ocfs2/cluster: Show per region heartbeat elapsed time
        ocfs2/cluster: Add mlogs for heartbeat up/down events
        ocfs2/cluster: Create debugfs dir/files for each region
        ocfs2/cluster: Create debugfs files for live, quorum and failed region bitmaps
        ocfs2/cluster: Maintain bitmap of failed regions
        ocfs2/cluster: Maintain bitmap of quorum regions
        ocfs2/cluster: Track bitmap of live heartbeat regions
        ocfs2/cluster: Track number of global heartbeat regions
        ocfs2/cluster: Maintain live node bitmap per heartbeat region
        ocfs2/cluster: Reorganize o2hb debugfs init
        ocfs2/cluster: Check slots for unconfigured live nodes
        ocfs2/cluster: Print messages when adding/removing nodes
        ocfs2/cluster: Print messages when adding/removing heartbeat regions
        ...
      f3270b16
    • Linus Torvalds's avatar
      Merge branch 'core-memblock-for-linus' of... · 3044100e
      Linus Torvalds authored
      Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits)
        x86-64: Only set max_pfn_mapped to 512 MiB if we enter via head_64.S
        xen: Cope with unmapped pages when initializing kernel pagetable
        memblock, bootmem: Round pfn properly for memory and reserved regions
        memblock: Annotate memblock functions with __init_memblock
        memblock: Allow memblock_init to be called early
        memblock/arm: Fix memblock_region_is_memory() typo
        x86, memblock: Remove __memblock_x86_find_in_range_size()
        memblock: Fix wraparound in find_region()
        x86-32, memblock: Make add_highpages honor early reserved ranges
        x86, memblock: Fix crashkernel allocation
        arm, memblock: Fix the sparsemem build
        memblock: Fix section mismatch warnings
        powerpc, memblock: Fix memblock API change fallout
        memblock, microblaze: Fix memblock API change fallout
        x86: Remove old bootmem code
        x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve
        x86: Remove not used early_res code
        x86, memblock: Replace e820_/_early string with memblock_
        x86: Use memblock to replace early_res
        x86, memblock: Use memblock_debug to control debug message print out
        ...
      
      Fix up trivial conflicts in arch/x86/kernel/setup.c and kernel/Makefile
      3044100e
    • Andrea Gelmini's avatar
      89692c03
    • Mike Frysinger's avatar
      pata_bf54x: fix return type of bfin_set_devctl · c0695733
      Mike Frysinger authored
      The new devctl func added for us to the driver has the wrong return
      type.  Which is to say there shouldn't be any.  This fixes compile
      time warnings as there shouldn't be any runtime difference.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      c0695733
    • Tracey Dent's avatar
      Drivers: ata: Makefile: replace the use of <module>-objs with <module>-y · 4b1be934
      Tracey Dent authored
      Changed <module>-objs to <module>-y in Makefile.
      Signed-off-by: default avatarTracey Dent <tdent48227@gmail.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      4b1be934
    • Tejun Heo's avatar
      libahci: fix result_tf handling after an ATA PIO data-in command · 6ad60195
      Tejun Heo authored
      ATA devices don't send D2H Reg FIS after an successful ATA PIO data-in
      command.  The host is supposed to take the TF and E_Status of the
      preceding PIO Setup FIS.  Update ahci_qc_fill_rtf() such that it takes
      TF + E_Status from PIO Setup FIS after a successful ATA PIO data-in
      command.
      
      Without this patch, result_tf for such a command is filled with the
      content of the previous D2H Reg FIS which belongs to a previous
      command, which can make the command incorrectly seen as failed.
      
      * Patch updated to grab the whole TF + E_Status from PIO Setup FIS
        instead of just E_Status as suggested by Robert Hancock.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Reported-by: default avatarMark Lord <kernel@teksavvy.com>
      Cc: Robert Hancock <hancockrwd@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      6ad60195
    • Sergei Shtylyov's avatar
    • Sergei Shtylyov's avatar
    • Sergei Shtylyov's avatar
    • Sergei Shtylyov's avatar
    • Ben Hutchings's avatar
      ata_piix: Add device ID for ICH4-L · 4bb969db
      Ben Hutchings authored
      ICH4-L is a variant of ICH4 lacking USB2 functionality and with some
      different device IDs.
      
      It is documented in Intel specification update 290745-025, currently
      at <http://www.intel.com/assets/pdf/specupdate/290745.pdf>, and is
      included in the device ID table for piix.
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      4bb969db
    • Sergei Shtylyov's avatar
      pata_sil680: make sil680_sff_exec_command() 'static' · ada5b12e
      Sergei Shtylyov authored
      ... since, of course, it's not used outside this driver.
      Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      ada5b12e
    • Alan Cox's avatar
      ata: Intel IDE-R support · 60039a52
      Alan Cox authored
      Intel IDE-R devices are part of the Intel AMT management setup. They don't
      have any special configuration registers or settings so the ata_generic
      driver will support them fully.
      
      Rather than add a huge table of IDs for each chipset and keep sending in
      new ones this patch autodetects them.
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      60039a52
    • Richard Kennedy's avatar
      libata: reorder ata_queued_cmd to remove alignment padding on 64 bit builds · b34e9042
      Richard Kennedy authored
      Reorder structure ata_queued_cmd to remove 8 bytes of alignment padding
      on 64 bit builds & therefore reduce the size of structure ata_port by
      256 bytes.
      
      Overall this will have little impact, other than reducing the amount of
      memory that is cleared when allocating ata_ports.
      Signed-off-by: default avatarRichard Kennedy <richard@rsk.demon.co.uk>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      b34e9042
    • Martin K. Petersen's avatar
      libata: Signal that our SATL supports WRITE SAME(16) with UNMAP · 02e0a604
      Martin K. Petersen authored
      Until now identifying that a device supports WRITE SAME(16) with the
      UNMAP bit set has been black magic.  Implement support for the SBC-3
      Thin Provisioning VPD page and set the TPWS bit.
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      02e0a604
    • Tejun Heo's avatar
      ata_piix: remove SIDPR locking · 9950110c
      Tejun Heo authored
      Now that libata provides proper cross-port EH exclusion.  The SIDPR
      locking added by commit 213373cf (ata_piix: fix locking around SIDPR
      access) is no longer necessary.  Remove it.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      9950110c
    • Tejun Heo's avatar
      libata: implement cross-port EH exclusion · c0c362b6
      Tejun Heo authored
      In libata, the non-EH code paths should always take and release
      ap->lock explicitly when accessing hardware or shared data structures.
      However, once EH is active, it's assumed that the port is owned by EH
      and EH methods don't explicitly take ap->lock unless race from irq
      handler or other code paths are expected.  However, libata EH didn't
      guarantee exclusion among EHs for ports of the same host.  IOW,
      multiple EHs may execute in parallel on multiple ports of the same
      controller.
      
      In many cases, especially in SATA, the ports are completely
      independent of each other and this doesn't cause problems; however,
      there are cases where different ports share the same resource, which
      lead to obscure timing related bugs such as the one fixed by commit
      213373cf (ata_piix: fix locking around SIDPR access).
      
      This patch implements exclusion among EHs of the same host.  When EH
      begins, it acquires per-host EH ownership by calling ata_eh_acquire().
      When EH finishes, the ownership is released by calling
      ata_eh_release().  EH ownership is also released whenever the EH
      thread goes to sleep from ata_msleep() or explicitly and reacquired
      after waking up.
      
      This ensures that while EH is actively accessing the hardware, it has
      exclusive access to it while allowing EHs to interleave and progress
      in parallel as they hit waiting stages, which dominate the time spent
      in EH.  This achieves cross-port EH exclusion without pervasive and
      fragile changes while still allowing parallel EH for the most part.
      
      This was first reported by yuanding02@gmail.com more than three years
      ago in the following bugzilla.  :-)
      
        https://bugzilla.kernel.org/show_bug.cgi?id=8223Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Reported-by: yuanding02@gmail.com
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      c0c362b6
    • Tejun Heo's avatar
      libata: add @ap to ata_wait_register() and introduce ata_msleep() · 97750ceb
      Tejun Heo authored
      Add optional @ap argument to ata_wait_register() and replace msleep()
      calls with ata_msleep() which take optional @ap in addition to the
      duration.  These will be used to implement EH exclusion.
      
      This patch doesn't cause any behavior difference.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      97750ceb
    • Tejun Heo's avatar
      ata_piix: implement LPM support · a97c4006
      Tejun Heo authored
      Now that DIPM can be used independently from HIPM, ata_piix can
      support LPM too.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      a97c4006
    • Tejun Heo's avatar
      libata: implement LPM support for port multipliers · 6c8ea89c
      Tejun Heo authored
      Port multipliers can do DIPM on fan-out links fine.  Implement support
      for it.  Tested w/ SIMG 57xx and marvell PMPs.  Both the host and
      fan-out links enter power save modes nicely.
      
      SIMG 37xx and 47xx report link offline on SStatus causing EH to detach
      the devices.  Blacklisted.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      6c8ea89c
    • Tejun Heo's avatar
      libata: reimplement link power management · 6b7ae954
      Tejun Heo authored
      The current LPM implementation has the following issues.
      
      * Operation order isn't well thought-out.  e.g. HIPM should be
        configured after IPM in SControl is properly configured.  Not the
        other way around.
      
      * Suspend/resume paths call ata_lpm_enable/disable() which must only
        be called from EH context directly.  Also, ata_lpm_enable/disable()
        were called whether LPM was in use or not.
      
      * Implementation is per-port when it should be per-link.  As a result,
        it can't be used for controllers with slave links or PMP.
      
      * LPM state isn't managed consistently.  After a link reset for
        whatever reason including suspend/resume the actual LPM state would
        be reset leaving ap->lpm_policy inconsistent.
      
      * Generic/driver-specific logic boundary isn't clear.  Currently,
        libahci has to mangle stuff which libata EH proper should be
        handling.  This makes the implementation unnecessarily complex and
        fragile.
      
      * Tied to ALPM.  Doesn't consider DIPM only cases and doesn't check
        whether the device allows HIPM.
      
      * Error handling isn't implemented.
      
      Given the extent of mismatch with the rest of libata, I don't think
      trying to fix it piecewise makes much sense.  This patch reimplements
      LPM support.
      
      * The new implementation is per-link.  The target policy is still
        port-wide (ap->target_lpm_policy) but all the mechanisms and states
        are per-link and integrate well with the rest of link abstraction
        and can work with slave and PMP links.
      
      * Core EH has proper control of LPM state.  LPM state is reconfigured
        when and only when reconfiguration is necessary.  It makes sure that
        LPM state is reset when probing for new device on the link.
        Controller agnostic logic is now implemented in libata EH proper and
        driver implementation only has to deal with controller specifics.
      
      * Proper error handling.  LPM config failure is attributed to the
        device on the link and LPM is disabled for the link if it fails
        repeatedly.
      
      * ops->enable/disable_pm() are replaced with single ops->set_lpm()
        which takes @policy and @hints.  This simplifies driver specific
        implementation.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      6b7ae954
    • Tejun Heo's avatar
      libata: implement sata_link_scr_lpm() and make ata_dev_set_feature() global · 1152b261
      Tejun Heo authored
      Link power management is about to be reimplemented.  Prepare for it.
      
      * Implement sata_link_scr_lpm().
      
      * Drop static from ata_dev_set_feature() and make it available to
        other libata files.
      
      * Trivial whitespace adjustments.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      1152b261
    • Tejun Heo's avatar
      libata: clean up lpm related symbols and sysfs show/store functions · c93b263e
      Tejun Heo authored
      Link power management related symbols are in confusing state w/ mixed
      usages of lpm, ipm and pm.  This patch cleans up lpm related symbols
      and sysfs show/store functions as follows.
      
      * lpm states - NOT_AVAILABLE, MIN_POWER, MAX_PERFORMANCE and
        MEDIUM_POWER are renamed to ATA_LPM_UNKNOWN and
        ATA_LPM_{MIN|MAX|MED}_POWER.
      
      * Pre/postfixes are unified to lpm.
      
      * sysfs show/store functions for link_power_management_policy were
        curiously named get/put and unnecessarily complex.  Renamed to
        show/store and simplified.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      c93b263e
    • Luck, Tony's avatar
      [libata] Fix section mismatch: ata_sff_exit · c43d559f
      Luck, Tony authored
      This build error showed up in linux-next tag next-20100820 for ia64:
      
      WARNING: vmlinux.o(.init.text+0x4a952): Section mismatch in reference from the function ata_init() to the function .exit.text:ata_sff_exit()
      The function __init ata_init() references
      a function __exit ata_sff_exit().
      This is often seen when error handling in the init function
      uses functionality in the exit path.
      The fix is often to remove the __exit annotation of
      ata_sff_exit() so it may be used outside an exit section.
      
      Sure enough, dropping the __exit fixes the problem.
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      c43d559f
    • Jeff Garzik's avatar
      6a2148c6
    • Grant Grundler's avatar
      [libata] support for > 512 byte sectors (e.g. 4K Native) · 295124dc
      Grant Grundler authored
      This change enables my x86 machine to recognize and talk to a
      "Native 4K" SATA device.
      
      When I started working on this, I didn't know Matthew Wilcox had
      posted a similar patch 2 years ago:
        http://git.kernel.org/?p=linux/kernel/git/willy/ata.git;a=shortlog;h=refs/heads/ata-large-sectors
      
      Gwendal Grignou pointed me at the the above code and small portions of
      this patch include Matthew's work. That's why Mathew is first on the
      "Signed-off-by:". I've NOT included his use of a bitmap to determine
      512 vs Native for ATA command block size - just used a simple table.
      And bugs are almost certainly mine.
      
      Lastly, the patch has been tested with a native 4K 'Engineering
      Sample' drive provided by Hitachi GST.
      Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
      Signed-off-by: default avatarGrant Grundler <grundler@google.com>
      Reviewed-by: default avatarGwendal Grignou <gwendal@google.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      295124dc
    • Tejun Heo's avatar
      libata: always use ata_qc_complete_multiple() for NCQ command completions · 1aadf5c3
      Tejun Heo authored
      Currently, sata_fsl, mv and nv call ata_qc_complete() multiple times
      from their interrupt handlers to indicate completion of NCQ commands.
      This limits the visibility the libata core layer has into how commands
      are being executed and completed, which is necessary to support IRQ
      expecting in generic way.  libata already has an interface to complete
      multiple commands at once - ata_qc_complete_multiple() which ahci and
      sata_sil24 already use.
      
      This patch updates the three drivers to use ata_qc_complete_multiple()
      too and updates comments on ata_qc_complete[_multiple]() regarding
      their usages with NCQ completions.  This change not only provides
      better visibility into command execution to the core layer but also
      simplifies low level drivers.
      
      * sata_fsl: It already builds done_mask.  Conversion is straight
        forward.
      
      * sata_mv: mv_process_crpb_response() no longer checks for illegal
        completions, it just returns whether the tag is completed or not.
        mv_process_crpb_entries() builds done_mask from it and passes it to
        ata_qc_complete_multiple() which will check for illegal completions.
      
      * sata_nv adma: Similar to sata_mv.  nv_adma_check_cpb() now just
        returns the tag status and nv_adma_interrupt() builds done_mask from
        it and passes it to ata_qc_complete_multiple().
      
      * sata_nv swncq: It already builds done_mask.  Drop unnecessary
        illegal transition checks and call ata_qc_complete_multiple().
      
      In the long run, it might be a good idea to make ata_qc_complete()
      whine if called when multiple NCQ commands are in flight.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Ashish Kalra <ashish.kalra@freescale.com>
      Cc: Saeed Bishara <saeed@marvell.com>
      Cc: Mark Lord <liml@rtr.ca>
      Cc: Robert Hancock <hancockr@shaw.ca>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      1aadf5c3
    • Gwendal Grignou's avatar
      [libata] Add ATA transport class · d9027470
      Gwendal Grignou authored
      This is a scheleton for libata transport class.
      All information is read only, exporting information from libata:
      - ata_port class: one per ATA port
      - ata_link class: one per ATA port or 15 for SATA Port Multiplier
      - ata_device class: up to 2 for PATA link, usually one for SATA.
      Signed-off-by: default avatarGwendal Grignou <gwendal@google.com>
      Reviewed-by: default avatarGrant Grundler <grundler@google.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      d9027470
  2. 21 Oct, 2010 4 commits
    • Linus Torvalds's avatar
      Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm · b5153163
      Linus Torvalds authored
      * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (278 commits)
        arm: remove machine_desc.io_pg_offst and .phys_io
        arm: use addruart macro to establish debug mappings
        arm: return both physical and virtual addresses from addruart
        arm/debug: consolidate addruart macros for CONFIG_DEBUG_ICEDCC
        ARM: make struct machine_desc definition coherent with its comment
        eukrea_mbimxsd-baseboard: Pass the correct GPIO to gpio_free
        cpuimx27: fix compile when ULPI is selected
        mach-pcm037_eet: fix compile errors
        Fixing ethernet driver compilation error for i.MX31 ADS board
        cpuimx51: update board support
        mx5: add cpuimx51sd module and its baseboard
        iomux-mx51: fix GPIO_1_xx 's IOMUX configuration
        imx-esdhc: update devices registration
        mx51: add resources for SD/MMC on i.MX51
        iomux-mx51: fix SD1 and SD2's iomux configuration
        clock-mx51: rename CLOCK1 to CLOCK_CCGR for better readability
        clock-mx51: factorize clk_set_parent and clk_get_rate
        eukrea_mbimxsd: add support for DVI displays
        cpuimx25 & cpuimx35: fix OTG port registration in host mode
        i.MX31 and i.MX35 : fix errate TLSbo65953 and ENGcm09472
        ...
      b5153163
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 · a8cbf225
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6: (26 commits)
        PM / Wakeup: Show wakeup sources statistics in debugfs
        PM: Introduce library for device-specific OPPs (v7)
        PM: Add sysfs attr for rechecking dev hash from PM trace
        PM: Lock PM device list mutex in show_dev_hash()
        PM / Runtime: Remove idle notification after failing suspend
        PM / Hibernate: Modify signature used to mark swap
        PM / Runtime: Reduce code duplication in core helper functions
        PM: Allow wakeup events to abort freezing of tasks
        PM: runtime: add missed pm_request_autosuspend
        PM / Hibernate: Make some boot messages look less scary
        PM / Runtime: Implement autosuspend support
        PM / Runtime: Add no_callbacks flag
        PM / Runtime: Combine runtime PM entry points
        PM / Runtime: Merge synchronous and async runtime routines
        PM / Runtime: Replace boolean arguments with bitflags
        PM / Runtime: Move code in drivers/base/power/runtime.c
        sysfs: Add sysfs_merge_group() and sysfs_unmerge_group()
        PM: Fix potential issue with failing asynchronous suspend
        PM / Wakeup: Introduce wakeup source objects and event statistics (v3)
        PM: Fix signed/unsigned warning in dpm_show_time()
        ...
      a8cbf225
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags · e36f561a
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-irqflags:
        Fix IRQ flag handling naming
        MIPS: Add missing #inclusions of <linux/irq.h>
        smc91x: Add missing #inclusion of <linux/irq.h>
        Drop a couple of unnecessary asm/system.h inclusions
        SH: Add missing consts to sys_execve() declaration
        Blackfin: Rename IRQ flags handling functions
        Blackfin: Add missing dep to asm/irqflags.h
        Blackfin: Rename DES PC2() symbol to avoid collision
        Blackfin: Split the BF532 BFIN_*_FIO_FLAG() functions to their own header
        Blackfin: Split PLL code from mach-specific cdef headers
      e36f561a
    • Linus Torvalds's avatar
      Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6 · 70ada779
      Linus Torvalds authored
      * 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (53 commits)
        spi/omap2_mcspi: Verify TX reg is empty after TX only xfer with DMA
        spi/omap2_mcspi: disable channel after TX_ONLY transfer in PIO mode
        spi/bfin_spi: namespace local structs
        spi/bfin_spi: init early
        spi/bfin_spi: check per-transfer bits_per_word
        spi/bfin_spi: warn when CS is driven by hardware (CPHA=0)
        spi/bfin_spi: cs should be always low when a new transfer begins
        spi/bfin_spi: fix typo in comment
        spi/bfin_spi: reject unsupported SPI modes
        spi/bfin_spi: use dma_disable_irq_nosync() in irq handler
        spi/bfin_spi: combine duplicate SPI_CTL read/write logic
        spi/bfin_spi: reset ctl_reg bits when setup is run again on a device
        spi/bfin_spi: push all size checks into the transfer function
        spi/bfin_spi: use nosync when disabling the IRQ from the IRQ handler
        spi/bfin_spi: sync hardware state before reprogramming everything
        spi/bfin_spi: save/restore state when suspending/resuming
        spi/bfin_spi: redo GPIO CS handling
        Blackfin: SPI: expand SPI bitmasks
        spi/bfin_spi: use the SPI namespaced bit names
        spi/bfin_spi: drop extra memory we don't need
        ...
      70ada779