01 Nov, 2011

8 commits

  • The basic idea behind cross memory attach is to allow MPI programs doing
    intra-node communication to do a single copy of the message rather than a
    double copy of the message via shared memory.

    The following patch attempts to achieve this by allowing a destination
    process, given an address and size from a source process, to copy memory
    directly from the source process into its own address space via a system
    call. There is also a symmetrical ability to copy from the current
    process's address space into a destination process's address space.

    - Use of /proc/pid/mem has been considered, but there are issues with
    using it:
    - Does not allow for specifying iovecs for both src and dest, assuming
    preadv or pwritev was implemented either the area read from or
    written to would need to be contiguous.
    - Currently mem_read allows only processes who are currently
    ptrace'ing the target and are still able to ptrace the target to read
    from the target. This check could possibly be moved to the open call,
    but its not clear exactly what race this restriction is stopping
    (reason appears to have been lost)
    - Having to send the fd of /proc/self/mem via SCM_RIGHTS on unix
    domain socket is a bit ugly from a userspace point of view,
    especially when you may have hundreds if not (eventually) thousands
    of processes that all need to do this with each other
    - Doesn't allow for some future use of the interface we would like to
    consider adding in the future (see below)
    - Interestingly reading from /proc/pid/mem currently actually
    involves two copies! (But this could be fixed pretty easily)

    As mentioned previously use of vmsplice instead was considered, but has
    problems. Since you need the reader and writer working co-operatively if
    the pipe is not drained then you block. Which requires some wrapping to
    do non blocking on the send side or polling on the receive. In all to all
    communication it requires ordering otherwise you can deadlock. And in the
    example of many MPI tasks writing to one MPI task vmsplice serialises the
    copying.

    There are some cases of MPI collectives where even a single copy interface
    does not get us the performance gain we could. For example in an
    MPI_Reduce rather than copy the data from the source we would like to
    instead use it directly in a mathops (say the reduce is doing a sum) as
    this would save us doing a copy. We don't need to keep a copy of the data
    from the source. I haven't implemented this, but I think this interface
    could in the future do all this through the use of the flags - eg could
    specify the math operation and type and the kernel rather than just
    copying the data would apply the specified operation between the source
    and destination and store it in the destination.

    Although we don't have a "second user" of the interface (though I've had
    some nibbles from people who may be interested in using it for intra
    process messaging which is not MPI). This interface is something which
    hardware vendors are already doing for their custom drivers to implement
    fast local communication. And so in addition to this being useful for
    OpenMPI it would mean the driver maintainers don't have to fix things up
    when the mm changes.

    There was some discussion about how much faster a true zero copy would
    go. Here's a link back to the email with some testing I did on that:

    http://marc.info/?l=linux-mm&m=130105930902915&w=2

    There is a basic man page for the proposed interface here:

    http://ozlabs.org/~cyeoh/cma/process_vm_readv.txt

    This has been implemented for x86 and powerpc, other architecture should
    mainly (I think) just need to add syscall numbers for the process_vm_readv
    and process_vm_writev. There are 32 bit compatibility versions for
    64-bit kernels.

    For arch maintainers there are some simple tests to be able to quickly
    verify that the syscalls are working correctly here:

    http://ozlabs.org/~cyeoh/cma/cma-test-20110718.tgz

    Signed-off-by: Chris Yeoh
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Arnd Bergmann
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: David Howells
    Cc: James Morris
    Cc:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christopher Yeoh
     
  • Fix the wrong use of schedule_hrtimeout_range_clock() in wq_sleep(),
    although it is harmless for the syscall mq_timed* now. It was introduced
    by 9ca7d8e ("mqueue: Convert message queue timeout to use hrtimers").

    Signed-off-by: Wanlong Gao
    Cc: Carsten Emde
    Cc: Thomas Gleixner
    Cc: Manfred Spraul
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wanlong Gao
     
  • The display of the "huge" tag was accidentally removed in 29ea2f698 ("mm:
    use walk_page_range() instead of custom page table walking code").

    Reported-by: Stephen Hemminger
    Tested-by: Stephen Hemminger
    Reviewed-by: Stephen Wilson
    Cc: KOSAKI Motohiro
    Cc: Hugh Dickins
    Acked-by: David Rientjes
    Cc: Lee Schermerhorn
    Cc: Alexey Dobriyan
    Cc: Christoph Lameter
    Cc:
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • x86_64 allnoconfig:

    In file included from arch/x86/kernel/pci-dma.c:3:
    include/linux/dmar.h:248: warning: 'struct acpi_dmar_header' declared inside parameter list
    include/linux/dmar.h:248: warning: its scope is only this definition or declaration, which is probably not what you want

    Cc: Suresh Siddha
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Commit 5fd75a7850b5 (dma-mapping: remove unnecessary sync_single_range_*
    in dma_map_ops) unified not only the dma_map_ops but also the
    corresponding debug_dma_sync_* calls. This led to spurious WARN()ings
    like the following because the DMA debug code was no longer able to detect
    the DMA buffer base address without the separate offset parameter:

    WARNING: at lib/dma-debug.c:911 check_sync+0xce/0x446()
    firewire_ohci 0000:04:00.0: DMA-API: device driver tries to sync DMA memory it has not allocated [device address=0x00000000cedaa400] [size=1024 bytes]
    Call Trace: ...
    [] check_sync+0xce/0x446
    [] debug_dma_sync_single_for_device+0x39/0x3b
    [] ohci_queue_iso+0x4f3/0x77d [firewire_ohci]
    ...

    To fix this, unshare the sync_single_* and sync_single_range_*
    implementations so that we are able to call the correct debug_dma_sync_*
    functions.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Clemens Ladisch
    Cc: FUJITA Tomonori
    Cc: Konrad Rzeszutek Wilk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Clemens Ladisch
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)
    vlan: allow nested vlan_do_receive()
    ipv6: fix route lookup in addrconf_prefix_rcv()
    bonding: eliminate bond_close race conditions
    qlcnic: fix beacon and LED test.
    qlcnic: Updated License file
    qlcnic: updated reset sequence
    qlcnic: reset loopback mode if promiscous mode setting fails.
    qlcnic: skip IDC ack check in fw reset path.
    i825xx: Fix incorrect dependency for BVME6000_NET
    ipv6: fix route error binding peer in func icmp6_dst_alloc
    ipv6: fix error propagation in ip6_ufo_append_data()
    stmmac: update normal descriptor structure (v2)
    stmmac: fix NULL pointer dereference in capabilities fixup (v2)
    stmmac: fix a bug while checking the HW cap reg (v2)
    be2net: Changing MAC Address of a VF was broken.
    be2net: Refactored be_cmds.c file.
    bnx2x: update driver version to 1.70.30-0
    bnx2x: use FW 7.0.29.0
    bnx2x: Enable changing speed when port type is PORT_DA
    bnx2x: Fix 54618se LED behavior
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Fix masking and shifting in VIS fpcmp emulation.
    sparc32: Correct the return value of memcpy.
    sparc32: Remove uses of %g7 in memcpy implementation.
    sparc32: Remove non-kernel code from memcpy implementation.

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md:
    md/raid10: Fix bug when activating a hot-spare.

    Linus Torvalds
     

31 Oct, 2011

7 commits

  • Signed-off-by: David S. Miller

    David S. Miller
     
  • This is a fairly serious bug in RAID10.

    When a RAID10 array is degraded and a hot-spare is activated, the
    spare does not take up the empty slot, but rather replaces the first
    working device.
    This is likely to make the array non-functional. It would normally
    be possible to recover the data, but that would need care and is not
    guaranteed.

    This bug was introduced in commit
    2bb77736ae5dca0a189829fbb7379d43364a9dac
    which first appeared in 3.1.

    Cc: stable@kernel.org
    Signed-off-by: NeilBrown

    NeilBrown
     
  • * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c: Functions for byte-swapped smbus_write/read_word_data
    i2c-algo-pca: Return standard fault codes
    i2c-algo-bit: Return standard fault codes
    i2c-algo-bit: Be verbose on bus testing failure
    i2c-algo-bit: Let user test buses without failing
    i2c/scx200_acb: Fix section mismatch warning in scx200_pci_drv
    i2c: I2C_ELEKTOR should depend on HAS_IOPORT

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (33 commits)
    iommu/core: Remove global iommu_ops and register_iommu
    iommu/msm: Use bus_set_iommu instead of register_iommu
    iommu/omap: Use bus_set_iommu instead of register_iommu
    iommu/vt-d: Use bus_set_iommu instead of register_iommu
    iommu/amd: Use bus_set_iommu instead of register_iommu
    iommu/core: Use bus->iommu_ops in the iommu-api
    iommu/core: Convert iommu_found to iommu_present
    iommu/core: Add bus_type parameter to iommu_domain_alloc
    Driver core: Add iommu_ops to bus_type
    iommu/core: Define iommu_ops and register_iommu only with CONFIG_IOMMU_API
    iommu/amd: Fix wrong shift direction
    iommu/omap: always provide iommu debug code
    iommu/core: let drivers know if an iommu fault handler isn't installed
    iommu/core: export iommu_set_fault_handler()
    iommu/omap: Fix build error with !IOMMU_SUPPORT
    iommu/omap: Migrate to the generic fault report mechanism
    iommu/core: Add fault reporting mechanism
    iommu/core: Use PAGE_SIZE instead of hard-coded value
    iommu/core: use the existing IS_ALIGNED macro
    iommu/msm: ->unmap() should return order of unmapped page
    ...

    Fixup trivial conflicts in drivers/iommu/Makefile: "move omap iommu to
    dedicated iommu folder" vs "Rename the DMAR and INTR_REMAP config
    options" just happened to touch lines next to each other.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    amd64_edac: Cleanup return type of amd64_determine_edac_cap()
    amd64_edac: Add a fix for Erratum 505
    EDAC, MCE, AMD: Simplify NB MCE decoder interface
    EDAC, MCE, AMD: Drop local coreid reporting
    EDAC, MCE, AMD: Print valid addr when reporting an error
    EDAC, MCE, AMD: Print CPU number when reporting the error

    Linus Torvalds
     
  • * 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (75 commits)
    KVM: SVM: Keep intercepting task switching with NPT enabled
    KVM: s390: implement sigp external call
    KVM: s390: fix register setting
    KVM: s390: fix return value of kvm_arch_init_vm
    KVM: s390: check cpu_id prior to using it
    KVM: emulate lapic tsc deadline timer for guest
    x86: TSC deadline definitions
    KVM: Fix simultaneous NMIs
    KVM: x86 emulator: convert push %sreg/pop %sreg to direct decode
    KVM: x86 emulator: switch lds/les/lss/lfs/lgs to direct decode
    KVM: x86 emulator: streamline decode of segment registers
    KVM: x86 emulator: simplify OpMem64 decode
    KVM: x86 emulator: switch src decode to decode_operand()
    KVM: x86 emulator: qualify OpReg inhibit_byte_regs hack
    KVM: x86 emulator: switch OpImmUByte decode to decode_imm()
    KVM: x86 emulator: free up some flag bits near src, dst
    KVM: x86 emulator: switch src2 to generic decode_operand()
    KVM: x86 emulator: expand decode flags to 64 bits
    KVM: x86 emulator: split dst decode to a generic decode_operand()
    KVM: x86 emulator: move memop, memopp into emulation context
    ...

    Linus Torvalds
     
  • * 'fbdev-next' of git://github.com/schandinat/linux-2.6: (270 commits)
    video: platinumfb: Add __devexit_p at necessary place
    drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data
    drivers/video: fsl-diu-fb: merge diu_hw into fsl_diu_data
    drivers/video: fsl-diu-fb: only DIU modes 0 and 1 are supported
    drivers/video: fsl-diu-fb: remove unused panel operating mode support
    drivers/video: fsl-diu-fb: use an enum for the AOI index
    drivers/video: fsl-diu-fb: add several new video modes
    drivers/video: fsl-diu-fb: remove broken screen blanking support
    drivers/video: fsl-diu-fb: move some definitions out of the header file
    drivers/video: fsl-diu-fb: fix some ioctls
    video: da8xx-fb: Increased resolution configuration of revised LCDC IP
    OMAPDSS: picodlp: add missing #include
    fb: fix au1100fb bitrot.
    mx3fb: fix NULL pointer dereference in screen blanking.
    video: irq: Remove IRQF_DISABLED
    smscufx: change edid data to u8 instead of char
    OMAPDSS: DISPC: zorder support for DSS overlays
    OMAPDSS: DISPC: VIDEO3 pipeline support
    OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting
    video/omap: fix build dependencies
    ...

    Fix up conflicts in:
    - drivers/staging/xgifb/XGI_main_26.c
    Changes to XGIfb_pan_var()
    - drivers/video/omap/{lcd_apollon.c,lcd_ldp.c,lcd_overo.c}
    Removed (or in the case of apollon.c, merged into the generic
    DSS panel in drivers/video/omap2/displays/panel-generic-dpi.c)

    Linus Torvalds
     

30 Oct, 2011

21 commits

  • Reimplemented at least 17 times discounting error mangling cases
    where it could be used.

    Signed-off-by: Jonathan Cameron
    Signed-off-by: Jean Delvare

    Jonathan Cameron
     
  • Adjust i2c-algo-pca to return fault codes compliant with
    Documentation/i2c/fault-codes, rather than the undocumented and
    vague -EREMOTEIO.

    Signed-off-by: Jean Delvare
    Cc: Wolfram Sang

    Jean Delvare
     
  • Adjust i2c-algo-bit to return fault codes compliant with
    Documentation/i2c/fault-codes, rather than the undocumented and
    vague -EREMOTEIO.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • If bus testing fails due to the bus being seen as busy, it might be
    helpful for developers to know which line is unexpectedly low.

    Signed-off-by: Jean Delvare
    Reviewed-by: Alex Deucher

    Jean Delvare
     
  • Always failing to register I2C buses when the line testing fails is a
    little harsh. While such a failure is definitely a bug in the driver
    that exposes the affected I2C bus, things may still work fine if the
    missing initialization steps are done later, before the I2C bus is
    used. So it seems a better debugging tool to just report the test
    failure by default. I introduce bit_test=2 if anyone really misses the
    original behavior of bit_test=1.

    Signed-off-by: Jean Delvare
    Reviewed-by: Alex Deucher

    Jean Delvare
     
  • WARNING: drivers/i2c/busses/built-in.o(.data+0x47c8): Section mismatch in reference from the variable scx200_pci_drv to the function .devinit.text:scx200_probe()
    The variable scx200_pci_drv references
    the function __devinit scx200_probe()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console

    Signed-off-by: Harvey Yang
    Signed-off-by: Jean Delvare

    Harvey Yang
     
  • On m68k, I get:

    drivers/i2c/busses/i2c-elektor.c: In function ‘pcf_isa_init’:
    drivers/i2c/busses/i2c-elektor.c:153: error: implicit declaration of function ‘ioport_map’
    drivers/i2c/busses/i2c-elektor.c:153: warning: assignment makes pointer from integer without a cast
    drivers/i2c/busses/i2c-elektor.c: In function ‘elektor_probe’:
    drivers/i2c/busses/i2c-elektor.c:287: error: implicit declaration of function ‘ioport_unmap’

    Since commit 82ed223c264def2b15ee4bec2e8c3048092ceb5f ("iomap: make IOPORT/PCI
    mapping functions conditional"), ioport_map() is only available on platforms
    that set HAS_IOPORT.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jean Delvare

    Geert Uytterhoeven
     
  • AMD processors apparently have a bug in the hardware task switching
    support when NPT is enabled. If the task switch triggers a NPF, we can
    get wrong EXITINTINFO along with that fault. On resume, spurious
    exceptions may then be injected into the guest.

    We were able to reproduce this bug when our guest triggered #SS and the
    handler were supposed to run over a separate task with not yet touched
    stack pages.

    Work around the issue by continuing to emulate task switches even in
    NPT mode.

    Signed-off-by: Jan Kiszka
    Signed-off-by: Marcelo Tosatti

    Jan Kiszka
     
  • Implement sigp external call, which might be required for guests that
    issue an external call instead of an emergency signal for IPI.

    This fixes an issue with "KVM: unknown SIGP: 0x02" when booting
    such an SMP guest.

    Signed-off-by: Christian Ehrhardt
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Marcelo Tosatti

    Christian Ehrhardt
     
  • KVM common code does vcpu_load prior to calling our arch ioctls and
    vcpu_put after we're done here. Via the kvm_arch_vcpu_load/put
    callbacks we do load the fpu and access register state into the
    processor, which saves us moving the state on every SIE exit the
    kernel handles. However this breaks register setting from userspace,
    because of the following sequence:
    1a. vcpu load stores userspace register content
    1b. vcpu load loads guest register content
    2. kvm_arch_vcpu_ioctl_set_fpu/sregs updates saved guest register content
    3a. vcpu put stores the guest registers and overwrites the new content
    3b. vcpu put loads the userspace register set again

    This patch loads the new guest register state into the cpu, so that the correct
    (new) set of guest registers will be stored in step 3a.

    Signed-off-by: Carsten Otte
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Marcelo Tosatti

    Carsten Otte
     
  • This patch fixes the return value of kvm_arch_init_vm in case a memory
    allocation goes wrong.

    Signed-off-by: Carsten Otte
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Marcelo Tosatti

    Carsten Otte
     
  • We use the cpu id provided by userspace as array index here. Thus we
    clearly need to check it first. Ooops.

    CC:
    Signed-off-by: Carsten Otte
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Marcelo Tosatti

    Carsten Otte
     
  • commit 2425717b27eb (net: allow vlan traffic to be received under bond)
    broke ARP processing on vlan on top of bonding.

    +-------+
    eth0 --| bond0 |---bond0.103
    eth1 --| |
    +-------+

    52870.115435: skb_gro_reset_offset
    Reviewed-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The route lookup to find a previously auto-configured route for a prefixes used
    to use rt6_lookup(), with the prefix from the RA used as an address. However,
    that kind of lookup ignores routing tables, the prefix length and route flags,
    so when there were other matching routes, even in different tables and/or with
    a different prefix length, the wrong route would be manipulated.

    Now, a new function "addrconf_get_prefix_route()" is used for the route lookup,
    which searches in RT6_TABLE_PREFIX and takes the prefix-length and route flags
    into account.

    Signed-off-by: Andreas Hofmeister
    Signed-off-by: David S. Miller

    Andreas Hofmeister
     
  • This patch resolves two sets of race conditions.

    Mitsuo Hayasaka reported the
    first, as follows:

    The bond_close() calls cancel_delayed_work() to cancel delayed works.
    It, however, cannot cancel works that were already queued in workqueue.
    The bond_open() initializes work->data, and proccess_one_work() refers
    get_work_cwq(work)->wq->flags. The get_work_cwq() returns NULL when
    work->data has been initialized. Thus, a panic occurs.

    He included a patch that converted the cancel_delayed_work calls
    in bond_close to flush_delayed_work_sync, which eliminated the above
    problem.

    His patch is incorporated, at least in principle, into this
    patch. In this patch, we use cancel_delayed_work_sync in place of
    flush_delayed_work_sync, and also convert bond_uninit in addition to
    bond_close.

    This conversion to _sync, however, opens new races between
    bond_close and three periodically executing workqueue functions:
    bond_mii_monitor, bond_alb_monitor and bond_activebackup_arp_mon.

    The race occurs because bond_close and bond_uninit are always
    called with RTNL held, and these workqueue functions may acquire RTNL to
    perform failover-related activities. If bond_close or bond_uninit is
    waiting in cancel_delayed_work_sync, deadlock occurs.

    These deadlocks are resolved by having the workqueue functions
    acquire RTNL conditionally. If the rtnl_trylock() fails, the functions
    reschedule and return immediately. For the cases that are attempting to
    perform link failover, a delay of 1 is used; for the other cases, the
    normal interval is used (as those activities are not as time critical).

    Additionally, the bond_mii_monitor function now stores the delay
    in a variable (mimicing the structure of activebackup_arp_mon).

    Lastly, all of the above renders the kill_timers sentinel moot,
    and therefore it has been removed.

    Tested-by: Mitsuo Hayasaka
    Signed-off-by: Jay Vosburgh
    Signed-off-by: David S. Miller

    Jay Vosburgh
     
  • o Updated version number to 5.0.25

    o Do not hold onto RESETTING_BIT for entire duration of LED/ beacon test.
    Instead, just checking for RESETTING_BIT not set before sending config_led
    command down to card.

    o Take rtnl_lock instead of RESETTING_BIT for beacon test while sending
    config_led command down to make sure interface cannot be brought up/ down.

    o Allocate and free resources if interface is down before
    sending the config_led command. This is to make sure config_led
    command sending doesn't fail.

    o Clear QLCNIC_LED_ENABLE bit if beacon/ LED test fails to start.

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • Updated qlcnic's license file.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • Signed-off-by: Sony Chacko
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sony Chacko
     
  • If promiscous mode setting fails, reset loopback mode setting in firmware.

    Signed-off-by: Sucheta Chakraborty
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sucheta Chakraborty
     
  • In fw reset path, we should consider any change in device state as an
    ack from the other driver. When that happens, we don't have to wait for
    an explicit ack.

    Signed-off-by: Sritej Velaga
    Signed-off-by: Anirban Chakraborty
    Signed-off-by: David S. Miller

    Sritej Velaga
     
  • David S. Miller
     

29 Oct, 2011

4 commits

  • * git://github.com/rustyrussell/linux:
    lguest: move process freezing before pending signals check
    lguest: don't allow KVM-detection cpuid.
    lguest: Allow running under paravirt-enabled KVM.

    Linus Torvalds
     
  • * 'devicetree/merge' of git://git.secretlab.ca/git/linux-2.6:
    ARM: mark empty gpio.h files empty
    gpio: Fix ARM versatile-express build failure
    of: include errno.h

    Linus Torvalds
     
  • * 'spi/next' of git://git.secretlab.ca/git/linux-2.6:
    drivercore: Add helper macro for platform_driver boilerplate
    spi: irq: Remove IRQF_DISABLED
    OMAP: SPI: Fix the trying to free nonexistent resource error
    spi/spi-ep93xx: add module.h include
    spi/tegra: fix compilation error in spi-tegra.c
    spi: spi-dw: fix all sparse warnings
    spi/spi-pl022: Call pl022_dma_remove(pl022) only if enable_dma is true
    spi/spi-pl022: calculate_effective_freq() must set rate t allocate more sg than required.
    spi/spi-pl022: Use GFP_ATOMIC for allocation from tasklet
    spi/spi-pl022: Resolve formatting issues

    Linus Torvalds
     
  • * 'gpio/next' of git://git.secretlab.ca/git/linux-2.6:
    h8300: Move gpio.h to gpio-internal.h
    gpio: pl061: add DT binding support
    gpio: fix build error in include/asm-generic/gpio.h
    gpiolib: Ensure struct gpio is always defined
    irq: Add EXPORT_SYMBOL_GPL to function of irq generic-chip
    gpio-ml-ioh: Use NUMA_NO_NODE not GFP_KERNEL
    gpio-pch: Use NUMA_NO_NODE not GFP_KERNEL
    gpio: langwell: ensure alternate function is cleared
    gpio-pch: Support interrupt function
    gpio-pch: Save register value in suspend()
    gpio-pch: modify gpio_nums and mask
    gpio-pch: support ML7223 IOH n-Bus
    gpio-pch: add spinlock in suspend/resume processing
    gpio-pch: Delete invalid "restore" code in suspend()
    gpio-ml-ioh: Fix suspend/resume issue
    gpio-ml-ioh: Support interrupt function
    gpio-ml-ioh: Delete unnecessary code
    gpio/mxc: add chained_irq_enter/exit() to mx3_gpio_irq_handler()
    gpio/nomadik: use genirq core to track enablement
    gpio/nomadik: disable clocks when unused

    Linus Torvalds