13 Feb, 2014

1 commit

  • When mkfs issues a full device discard and the device only
    supports discards of a smallish size, we can loop in
    blkdev_issue_discard() for a long time. If preempt isn't enabled,
    this can turn into a softlock situation and the kernel will
    start complaining.

    Add an explicit cond_resched() at the end of the loop to avoid
    that.

    Cc: stable@kernel.org
    Signed-off-by: Jens Axboe

    Jens Axboe
     

12 Feb, 2014

3 commits

  • Initialize persistent_purge_work work_struct on xen_blkif_alloc (and
    remove the previous initialization done in purge_persistent_gnt). This
    prevents flush_work from complaining even if purge_persistent_gnt has
    not been used.

    Signed-off-by: Roger Pau Monné
    Reviewed-by: David Vrabel
    Tested-by: Sander Eikelenboom
    Signed-off-by: Jens Axboe

    Roger Pau Monne
     
  • Make sure we have a proper pairing between starting and requeueing
    requests. Move the dma drain and REQ_END setup into blk_mq_start_request,
    and make sure blk_mq_requeue_request properly undoes them, giving us
    a pair of function to prepare and unprepare a request without leaving
    side effects.

    Together this ensures we always clean up properly after
    BLK_MQ_RQ_QUEUE_BUSY returns from ->queue_rq.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • rq->errors never has been part of the communication protocol between drivers
    and the block stack and most drivers will not have initialized it.

    Return -EIO to upper layers when the driver returns BLK_MQ_RQ_QUEUE_ERROR
    unconditionally. If a driver want to return a different error it can easily
    do so by returning success after calling blk_mq_end_io itself.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

11 Feb, 2014

7 commits

  • Immutable biovecs changed the way bio segments are treated in such a way that
    bio_for_each_segment() cannot now do what we want for discard/write same bios,
    since bi_size means something completely different for them.

    Fortunately discard and write same bios never have more than a single biovec, so
    bio_for_each_segment() is unnecessary and not terribly meaningful for them, but
    we still have to special case them in a few places.

    Signed-off-by: Kent Overstreet
    Tested-by: Richard W.M. Jones
    Signed-off-by: Jens Axboe

    Kent Overstreet
     
  • …/git/xen/tip into for-linus

    Konrad writes:

    Please git pull the following branch:

    git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip.git stable/for-jens-3.14

    which is based off v3.13-rc6. If you would like me to rebase it on
    a different branch/tag I would be more than happy to do so.

    The patches are all bug-fixes and hopefully can go in 3.14.

    They deal with xen-blkback shutdown and cause memory leaks
    as well as shutdown races. They should go to stable tree and if you
    are OK with I will ask them to backport those fixes.

    There is also a fix to xen-blkfront to deal with unexpected state
    transition. And lastly a fix to the header where it was using the
    __aligned__ unnecessarily.

    Jens Axboe
     
  • cppcheck detected following format string mismatch.
    [blk-mq-tag.c:201]: (warning) %u in format string (no. 1) requires
    'unsigned int' but the argument type is 'int'.

    Change "cpu" from int to unsigned int, because the cpu
    never become minus value.

    Signed-off-by: Masanari Iida
    Signed-off-by: Jens Axboe

    Masanari Iida
     
  • Witch to using a preallocated flush_rq for blk-mq similar to what's done
    with the old request path. This allows us to set up the request properly
    with a tag from the actually allowed range and ->rq_disk as needed by
    some drivers. To make life easier we also switch to dynamic allocation
    of ->flush_rq for the old path.

    This effectively reverts most of

    "blk-mq: fix for flush deadlock"

    and

    "blk-mq: Don't reserve a tag for flush request"

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Use the block layer helpers for CPU-local completions instead of
    reimplementing them locally.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Make sure to complete requests on the submitting CPU. Previously this
    was done in blk_mq_end_io, but the responsibility shifted to the drivers.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Rework I/O completions to work more like the old code path. blk_mq_end_io
    now stays out of the business of deferring completions to others CPUs
    and calling blk_mark_rq_complete. The latter is very important to allow
    completing requests that have timed out and thus are already marked completed,
    the former allows using the IPI callout even for driver specific completions
    instead of having to reimplement them.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

10 Feb, 2014

2 commits

  • Add prototype declaration to header file include/linux/bio.h because it
    is used by more than one file.

    This eliminates the following warning in bio-integrity.c:
    fs/bio-integrity.c:214:14: warning: no previous prototype for ‘bio_integrity_tag_size’ [-Wmissing-prototypes]

    Signed-off-by: Rashika Kheria
    Reviewed-by: Josh Triplett
    Signed-off-by: Jens Axboe

    Rashika Kheria
     
  • Mark functions as static in bio-integrity.c because it is not used
    outside this file.

    This eliminates the following warnings in bio-integrity.c:
    fs/bio-integrity.c:224:5: warning: no previous prototype for ‘bio_integrity_tag’ [-Wmissing-prototypes]

    Signed-off-by: Rashika Kheria
    Reviewed-by: Josh Triplett
    Signed-off-by: Jens Axboe

    Rashika Kheria
     

08 Feb, 2014

13 commits

  • The completion queue is implemented using lockless list.

    The llist_add is adds the events to the list head which is a push operation.
    The processing of the completion elements is done by disconnecting all the
    pushed elements and iterating over the disconnected list. The problem is
    that the processing is done in reverse order w.r.t order of the insertion
    i.e. LIFO processing. By reversing the disconnected list which is done in
    linear time the desired FIFO processing is achieved.

    Signed-off-by: Shlomo Pongratz
    Signed-off-by: Jens Axboe

    Shlomo Pongratz
     
  • Immutable biovecs changed the way biovecs are interpreted - drivers no
    longer use bi_vcnt, they have to go by bi_iter.bi_size (to allow for
    using part of an existing segment without modifying it).

    This breaks with discards and write_same bios, since for those bi_size
    has nothing to do with segments in the biovec. So for now, we need a
    fairly gross hack - we fortunately know that there will never be more
    than one segment for the entire request, so we can special case
    discard/write_same.

    Signed-off-by: Kent Overstreet
    Tested-by: Hugh Dickins
    Signed-off-by: Jens Axboe

    Kent Overstreet
     
  • Commit 9f060e2231ca changed the way we handle allocations for the
    integrity vectors. When the vectors are inline there is no associated
    slab and consequently bvec_nr_vecs() returns 0. Ensure that we check
    against BIP_INLINE_VECS in that case.

    Reported-by: David Milburn
    Tested-by: David Milburn
    Cc: stable@vger.kernel.org # v3.10+
    Signed-off-by: Martin K. Petersen
    Signed-off-by: Jens Axboe

    Martin K. Petersen
     
  • This patch adds the missing bio_integrity_enabled() +
    bio_integrity_prep() setup into blk_mq_make_request()
    in order to use DIF protection with scsi-mq.

    Cc: Martin K. Petersen
    Signed-off-by: Nicholas Bellinger
    Signed-off-by: Jens Axboe

    Nicholas Bellinger
     
  • To behave the same way as the old request path.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Make blk-mq handle the dma_drain_size field the same way as the old request
    path.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • __blk_put_request needs to call into the blk-mq code just like
    blk_put_request. As we don't have the queue lock in this case both
    end up calling the same function.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • This is neede for proper SG_IO operation as well as various uses of
    blk_execute_rq from the SCSI midlayer.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Backend drivers shouldn't transistion to CLOSED unless the frontend is
    CLOSED. If a backend does transition to CLOSED too soon then the
    frontend may not see the CLOSING state and will not properly shutdown.

    So, treat an unexpected backend CLOSED state the same as CLOSING.

    Signed-off-by: David Vrabel
    Acked-by: Konrad Rzeszutek Wilk
    Cc: stable@vger.kernel.org
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel
     
  • This was wrongly introduced in commit 402b27f9, the only difference
    between blkif_request_segment_aligned and blkif_request_segment is
    that the former has a named padding, while both share the same
    memory layout.

    Also correct a few minor glitches in the description, including for it
    to no longer assume PAGE_SIZE == 4096.

    Signed-off-by: Roger Pau Monné
    [Description fix by Jan Beulich]
    Signed-off-by: Jan Beulich
    Reported-by: Jan Beulich
    Cc: Konrad Rzeszutek Wilk
    Cc: David Vrabel
    Cc: Boris Ostrovsky
    Tested-by: Matt Rushton
    Cc: Matt Wilson
    Signed-off-by: Konrad Rzeszutek Wilk

    Roger Pau Monne
     
  • Introduce a new variable to keep track of the number of in-flight
    requests. We need to make sure that when xen_blkif_put is called the
    request has already been freed and we can safely free xen_blkif, which
    was not the case before.

    Signed-off-by: Roger Pau Monné
    Cc: Konrad Rzeszutek Wilk
    Cc: David Vrabel
    Reviewed-by: Boris Ostrovsky
    Tested-by: Matt Rushton
    Reviewed-by: Matt Rushton
    Cc: Matt Wilson
    Cc: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Roger Pau Monne
     
  • I've at least identified two possible memory leaks in blkback, both
    related to the shutdown path of a VBD:

    - blkback doesn't wait for any pending purge work to finish before
    cleaning the list of free_pages. The purge work will call
    put_free_pages and thus we might end up with pages being added to
    the free_pages list after we have emptied it. Fix this by making
    sure there's no pending purge work before exiting
    xen_blkif_schedule, and moving the free_page cleanup code to
    xen_blkif_free.
    - blkback doesn't wait for pending requests to end before cleaning
    persistent grants and the list of free_pages. Again this can add
    pages to the free_pages list or persistent grants to the
    persistent_gnts red-black tree. Fixed by moving the persistent
    grants and free_pages cleanup code to xen_blkif_free.

    Also, add some checks in xen_blkif_free to make sure we are cleaning
    everything.

    Signed-off-by: Roger Pau Monné
    Cc: Konrad Rzeszutek Wilk
    Reviewed-by: David Vrabel
    Cc: Boris Ostrovsky
    Tested-by: Matt Rushton
    Reviewed-by: Matt Rushton
    Cc: Matt Wilson
    Cc: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Roger Pau Monne
     
  • Currently shrink_free_pagepool() is called before the pages used for
    persistent grants are released via free_persistent_gnts(). This
    results in a memory leak when a VBD that uses persistent grants is
    torn down.

    Cc: Konrad Rzeszutek Wilk
    Cc: "Roger Pau Monné"
    Cc: Ian Campbell
    Reviewed-by: David Vrabel
    Cc: linux-kernel@vger.kernel.org
    Cc: xen-devel@lists.xen.org
    Cc: Anthony Liguori
    Signed-off-by: Matt Rushton
    Signed-off-by: Matt Wilson
    Signed-off-by: Konrad Rzeszutek Wilk

    Matt Rushton
     

31 Jan, 2014

9 commits

  • Jens Axboe
     
  • request_queue bypassing is used to suppress higher-level function of a
    request_queue so that they can be switched, reconfigured and shut
    down. A request_queue does the followings while bypassing.

    * bypasses elevator and io_cq association and queues requests directly
    to the FIFO dispatch queue.

    * bypasses block cgroup request_list lookup and always uses the root
    request_list.

    Once confirmed to be bypassing, specific elevator and block cgroup
    policy implementations can assume that nothing is in flight for them
    and perform various operations which would be dangerous otherwise.

    Such confirmation is acheived by short-circuiting all new requests
    directly to the dispatch queue and waiting for all the requests which
    were issued before to finish. Unfortunately, while the request
    allocating and draining sides were properly handled, we forgot to
    actually plug the request dispatch path. Even after bypassing mode is
    confirmed, if the attached driver tries to fetch a request and the
    dispatch queue is empty, __elv_next_request() would invoke the current
    elevator's elevator_dispatch_fn() callback. As all in-flight requests
    were drained, the elevator wouldn't contain any request but once
    bypass is confirmed we don't even know whether the elevator is even
    there. It might be in the process of being switched and half torn
    down.

    Frank Mayhar reports that this actually happened while switching
    elevators, leading to an oops.

    Let's fix it by making __elv_next_request() avoid invoking the
    elevator_dispatch_fn() callback if the queue is bypassing. It already
    avoids invoking the callback if the queue is dying. As a dying queue
    is guaranteed to be bypassing, we can simply replace blk_queue_dying()
    check with blk_queue_bypass().

    Reported-by: Frank Mayhar
    References: http://lkml.kernel.org/g/1390319905.20232.38.camel@bobble.lax.corp.google.com
    Cc: stable@vger.kernel.org
    Tested-by: Frank Mayhar

    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • Reserving a tag (request) for flush to avoid dead lock is a overkill. A
    tag is valuable resource. We can track the number of flush requests and
    disallow having too many pending flush requests allocated. With this
    patch, blk_mq_alloc_request_pinned() could do a busy nop (but not a dead
    loop) if too many pending requests are allocated and new flush request
    is allocated. But this should not be a problem, too many pending flush
    requests are very rare case.

    I verified this can fix the deadlock caused by too many pending flush
    requests.

    Signed-off-by: Shaohua Li
    Signed-off-by: Jens Axboe

    Shaohua Li
     
  • steal_tags only happens when free tags is more than half of the total
    tags. This is too strict and can cause live lock. I found that if one
    cpu has free tags, but other cpu can't steal (thread is bound to
    specific cpus), threads which want to allocate tags are always
    sleeping. I found this when I run next patch, but this could happen
    without it I think.

    I did performance test too with null_blk. Two cases (each cpu has enough
    percpu tags, or total tags are limited), no performance changes were
    observed.

    Signed-off-by: Shaohua Li
    Signed-off-by: Jens Axboe

    Shaohua Li
     
  • Pull block IO driver changes from Jens Axboe:

    - bcache update from Kent Overstreet.

    - two bcache fixes from Nicholas Swenson.

    - cciss pci init error fix from Andrew.

    - underflow fix in the parallel IDE pg_write code from Dan Carpenter.
    I'm sure the 1 (or 0) users of that are now happy.

    - two PCI related fixes for sx8 from Jingoo Han.

    - floppy init fix for first block read from Jiri Kosina.

    - pktcdvd error return miss fix from Julia Lawall.

    - removal of IRQF_SHARED from the SEGA Dreamcast CD-ROM code from
    Michael Opdenacker.

    - comment typo fix for the loop driver from Olaf Hering.

    - potential oops fix for null_blk from Raghavendra K T.

    - two fixes from Sam Bradshaw (Micron) for the mtip32xx driver, fixing
    an OOM problem and a problem with handling security locked conditions

    * 'for-3.14/drivers' of git://git.kernel.dk/linux-block: (47 commits)
    mg_disk: Spelling s/finised/finished/
    null_blk: Null pointer deference problem in alloc_page_buffers
    mtip32xx: Correctly handle security locked condition
    mtip32xx: Make SGL container per-command to eliminate high order dma allocation
    drivers/block/loop.c: fix comment typo in loop_config_discard
    drivers/block/cciss.c:cciss_init_one(): use proper errnos
    drivers/block/paride/pg.c: underflow bug in pg_write()
    drivers/block/sx8.c: remove unnecessary pci_set_drvdata()
    drivers/block/sx8.c: use module_pci_driver()
    floppy: bail out in open() if drive is not responding to block0 read
    bcache: Fix auxiliary search trees for key size > cacheline size
    bcache: Don't return -EINTR when insert finished
    bcache: Improve bucket_prio() calculation
    bcache: Add bch_bkey_equal_header()
    bcache: update bch_bkey_try_merge
    bcache: Move insert_fixup() to btree_keys_ops
    bcache: Convert sorting to btree_keys
    bcache: Convert debug code to btree_keys
    bcache: Convert btree_iter to struct btree_keys
    bcache: Refactor bset_tree sysfs stats
    ...

    Linus Torvalds
     
  • Pull core block IO changes from Jens Axboe:
    "The major piece in here is the immutable bio_ve series from Kent, the
    rest is fairly minor. It was supposed to go in last round, but
    various issues pushed it to this release instead. The pull request
    contains:

    - Various smaller blk-mq fixes from different folks. Nothing major
    here, just minor fixes and cleanups.

    - Fix for a memory leak in the error path in the block ioctl code
    from Christian Engelmayer.

    - Header export fix from CaiZhiyong.

    - Finally the immutable biovec changes from Kent Overstreet. This
    enables some nice future work on making arbitrarily sized bios
    possible, and splitting more efficient. Related fixes to immutable
    bio_vecs:

    - dm-cache immutable fixup from Mike Snitzer.
    - btrfs immutable fixup from Muthu Kumar.

    - bio-integrity fix from Nic Bellinger, which is also going to stable"

    * 'for-3.14/core' of git://git.kernel.dk/linux-block: (44 commits)
    xtensa: fixup simdisk driver to work with immutable bio_vecs
    block/blk-mq-cpu.c: use hotcpu_notifier()
    blk-mq: for_each_* macro correctness
    block: Fix memory leak in rw_copy_check_uvector() handling
    bio-integrity: Fix bio_integrity_verify segment start bug
    block: remove unrelated header files and export symbol
    blk-mq: uses page->list incorrectly
    blk-mq: use __smp_call_function_single directly
    btrfs: fix missing increment of bi_remaining
    Revert "block: Warn and free bio if bi_end_io is not set"
    block: Warn and free bio if bi_end_io is not set
    blk-mq: fix initializing request's start time
    block: blk-mq: don't export blk_mq_free_queue()
    block: blk-mq: make blk_sync_queue support mq
    block: blk-mq: support draining mq queue
    dm cache: increment bi_remaining when bi_end_io is restored
    block: fixup for generic bio chaining
    block: Really silence spurious compiler warnings
    block: Silence spurious compiler warnings
    block: Kill bio_pair_split()
    ...

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    - Handle some loose ends from the vfs read delegation support.
    (For example nfsd can stop breaking leases on its own in a
    fewer places where it can now depend on the vfs to.)
    - Make life a little easier for NFSv4-only configurations
    (thanks to Kinglong Mee).
    - Fix some gss-proxy problems (thanks Jeff Layton).
    - miscellaneous bug fixes and cleanup

    * 'for-3.14' of git://linux-nfs.org/~bfields/linux: (38 commits)
    nfsd: consider CLAIM_FH when handing out delegation
    nfsd4: fix delegation-unlink/rename race
    nfsd4: delay setting current_fh in open
    nfsd4: minor nfs4_setlease cleanup
    gss_krb5: use lcm from kernel lib
    nfsd4: decrease nfsd4_encode_fattr stack usage
    nfsd: fix encode_entryplus_baggage stack usage
    nfsd4: simplify xdr encoding of nfsv4 names
    nfsd4: encode_rdattr_error cleanup
    nfsd4: nfsd4_encode_fattr cleanup
    minor svcauth_gss.c cleanup
    nfsd4: better VERIFY comment
    nfsd4: break only delegations when appropriate
    NFSD: Fix a memory leak in nfsd4_create_session
    sunrpc: get rid of use_gssp_lock
    sunrpc: fix potential race between setting use_gss_proxy and the upcall rpc_clnt
    sunrpc: don't wait for write before allowing reads from use-gss-proxy file
    nfsd: get rid of unused function definition
    Define op_iattr for nfsd4_open instead using macro
    NFSD: fix compile warning without CONFIG_NFSD_V3
    ...

    Linus Torvalds
     
  • Fix

    drivers/char/ipmi/ipmi_si_intf.c: In function 'ipmi_parisc_probe':
    drivers/char/ipmi/ipmi_si_intf.c:2752:2: error: 'rv' undeclared (first use in this function)
    drivers/char/ipmi/ipmi_si_intf.c:2752:2: note: each undeclared identifier is reported only once for each function it appears in

    Introduced by commit d02b3709ff8e ("ipmi: Cleanup error return")

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Corey Minyard
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Chris Mason reported a NULL pointer derefernence in generic_getxattr()
    that was due to sb->s_xattr being NULL.

    The reason is that the nfs #ifdef's for ACL support were misplaced, and
    the nfs3 inode operations had the xattr operation pointers set up, even
    though xattrs were not actually supported. As a result, the xattr code
    was being called without the infrastructure having been set up.

    Move the #ifdef's appropriately.

    Reported-and-tested-by: Chris Mason
    Acked-by: Al Viro viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

30 Jan, 2014

5 commits

  • Pull drm updates from Dave Airlie:
    "Been a bit busy, first week of kids school, and waiting on other trees
    to go in before I could send this, so its a bit later than I'd
    normally like.

    Highlights:
    - core:
    timestamp fixes, lots of misc cleanups
    - new drivers:
    bochs virtual vga
    - vmwgfx:
    major overhaul for their nextgen virt gpu.
    - i915:
    runtime D3 on HSW, watermark fixes, power well work, fbc fixes,
    bdw is no longer prelim.
    - nouveau:
    gk110/208 acceleration, more pm groundwork, old overlay support
    - radeon:
    dpm rework and clockgating for CIK, pci config reset, big endian
    fixes
    - tegra:
    panel support and DSI support, build as module, prime.
    - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:
    fixes
    - msm:
    hdmi support for mdp5"

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (595 commits)
    drm/nouveau: resume display if any later suspend bits fail
    drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
    drm/nouveau: implement hooks for needed for drm vblank timestamping support
    drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
    drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
    drm/radeon/dce8: workaround for atom BlankCrtc table
    drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
    drm/radeon: set si_notify_smc_display_change properly
    drm/radeon: fix DAC interrupt handling on DCE5+
    drm/radeon: clean up active vram sizing
    drm/radeon: skip async dma init on r6xx
    drm/radeon/runpm: don't runtime suspend non-PX cards
    drm/radeon: add ring to fence trace functions
    drm/radeon: add missing trace point
    drm/radeon: fix VMID use tracking
    drm: ast,cirrus,mgag200: use drm_can_sleep
    drm/gma500: Lock struct_mutex around cursor updates
    drm/i915: Fix the offset issue for the stolen GEM objects
    DRM: armada: fix missing DRM_KMS_FB_HELPER select
    drm/i915: Decouple GPU error reporting from ring initialisation
    ...

    Linus Torvalds
     
  • Pull slave-dma updates from Vinod Koul:
    - new driver for BCM2835 used in R-pi
    - new driver for MOXA ART
    - dma_get_any_slave_channel API for DT based systems
    - minor fixes and updates spread acrooss driver

    [ The fsl-ssi dual fifo mode support addition clashed badly with the
    other changes to fsl-ssi that came in through the sound merge. I did
    a very rough cut at fixing up the conflict, but Nicolin Chen (author
    of both sides) will need to verify and check things ]

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (36 commits)
    dmaengine: mmp_pdma: fix mismerge
    dma: pl08x: Export pl08x_filter_id
    acpi-dma: align documentation with kernel-doc format
    dma: fix vchan_cookie_complete() debug print
    DMA: dmatest: extend the "device" module parameter to 32 characters
    drivers/dma: fix error return code
    dma: omap: Set debug level to debugging messages
    dmaengine: fix kernel-doc style typos for few comments
    dma: tegra: add support for Tegra148/124
    dma: dw: use %pad instead of casting dma_addr_t
    dma: dw: join split up messages
    dma: dw: fix style of multiline comment
    dmaengine: k3dma: fix sparse warnings
    dma: pl330: Use dma_get_slave_channel() in the of xlate callback
    dma: pl330: Differentiate between submitted and issued descriptors
    dmaengine: sirf: Add device_slave_caps interface
    DMA: Freescale: change BWC from 256 bytes to 1024 bytes
    dmaengine: Add MOXA ART DMA engine driver
    dmaengine: Add DMA_PRIVATE to BCM2835 driver
    dma: imx-sdma: Assign a default script number for ROM firmware cases
    ...

    Linus Torvalds
     
  • Pull chrome platform cleanups and improvements from Olof Johansson:
    - Use deferred probing on Chrome OS platforms for the i2c device
    registration. This fixes a long-standing race of initialization of
    touchpad/screen on Chromebooks.
    - Added in platform device registration for pstore console on supported
    hardware
    - Misc smaller fixes (__initdata, module exit cleanup, etc)

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
    platform/chrome: unregister platform driver/device when module exit
    platform/chrome: Make i2c_adapter_names static
    platform/chrome: chromeos_laptop - fix incorrect placement of __initdata tag
    platform/chrome: chromeos_laptop - Use deferred probing
    platform/chrome: chromeos_laptop - Restructure device associations
    platform/chrome: Add pstore platform_device

    Linus Torvalds
     
  • Pull IOMMU Updates from Joerg Roedel:
    "A few patches have been queued up for this merge window:

    - improvements for the ARM-SMMU driver (IOMMU_EXEC support, IOMMU
    group support)
    - updates and fixes for the shmobile IOMMU driver
    - various fixes to generic IOMMU code and the Intel IOMMU driver
    - some cleanups in IOMMU drivers (dev_is_pci() usage)"

    * tag 'iommu-updates-v3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (36 commits)
    iommu/vt-d: Fix signedness bug in alloc_irte()
    iommu/vt-d: free all resources if failed to initialize DMARs
    iommu/vt-d, trivial: clean sparse warnings
    iommu/vt-d: fix wrong return value of dmar_table_init()
    iommu/vt-d: release invalidation queue when destroying IOMMU unit
    iommu/vt-d: fix access after free issue in function free_dmar_iommu()
    iommu/vt-d: keep shared resources when failed to initialize iommu devices
    iommu/vt-d: fix invalid memory access when freeing DMAR irq
    iommu/vt-d, trivial: simplify code with existing macros
    iommu/vt-d, trivial: use defined macro instead of hardcoding
    iommu/vt-d: mark internal functions as static
    iommu/vt-d, trivial: clean up unused code
    iommu/vt-d, trivial: check suitable flag in function detect_intel_iommu()
    iommu/vt-d, trivial: print correct domain id of static identity domain
    iommu/vt-d, trivial: refine support of 64bit guest address
    iommu/vt-d: fix resource leakage on error recovery path in iommu_init_domains()
    iommu/vt-d: fix a race window in allocating domain ID for virtual machines
    iommu/vt-d: fix PCI device reference leakage on error recovery path
    drm/msm: Fix link error with !MSM_IOMMU
    iommu/vt-d: use dedicated bitmap to track remapping entry allocation status
    ...

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:
    - new driver for bcm281xx watchdog device
    - new driver for gpio based watchdog devices
    - remove DEFINE_PCI_DEVICE_TABLE macro for watchdog device drivers
    - conversion of davinci_wdt and mpc8xxx_wdt to watchdog core
    - improvements on davinci_wdt, at91/dt, at91sam9_wdt and s3c2410_wdt
    - Auto-detect IO address and expand supported chips on w836* super-I/O
    chipsets
    - core: Make dt "timeout-sec" property work on drivers w/out min/max
    - fix Kconfig dependencies
    - sirf: Remove redundant of_match_ptr helper
    - mach-moxart: add restart handler
    - hpwdt patch to display better panic information
    - imx2_wdt: disable watchdog timer during low power mode

    * git://www.linux-watchdog.org/linux-watchdog: (31 commits)
    watchdog: w83627hf_wdt: Reset watchdog trigger during initialization
    watchdog: w83627hf: Add support for W83697HF and W83697UG
    watchdog: w83627hf: Auto-detect IO address and supported chips
    watchdog: at91sam9_wdt: increase security margin on watchdog counter reset
    watchdog: at91sam9_wdt: avoid spurious watchdog reset during init
    watchdog: at91sam9_wdt: fix secs_to_ticks
    ARM: at91/dt: add watchdog properties to kizbox board
    ARM: at91/dt: add sam9 watchdog default options to SoCs
    watchdog: at91sam9_wdt: update device tree doc
    watchdog: at91sam9_wdt: better watchdog support
    watchdog: sp805_wdt depends also on ARM64
    watchdog: mach-moxart: add restart handler
    watchdog: mpc8xxx_wdt convert to watchdog core
    watchdog: sirf: Remove redundant of_match_ptr helper
    watchdog: hpwdt patch to display informative string
    watchdog: dw_wdt: remove build dependencies
    watchdog: imx2_wdt: disable watchdog timer during low power mode
    watchdog: s3c2410_wdt: Report when the watchdog reset the system
    watchdog: s3c2410_wdt: use syscon regmap interface to configure pmu register
    watchdog: s3c2410_wdt: Handle rounding a little better for timeout
    ...

    Linus Torvalds