02 Aug, 2012

20 commits

  • The current firmware version used by the device driver
    is 7.12.0

    Cc: Paul Gortmaker
    Cc: Ben Hutchings
    Cc: James Bottomley
    Cc: Dan Williams
    Cc: Divy Le Ray
    Cc: netdev@vger.kernel.org
    Signed-off-by: Tim Gardner

    Tim Gardner
     
  • Pull MIPS updates from Ralf Baechle:
    "The lion share of this pull request are fixes for clk-related breakage
    caused by other changes during this merge window. For some platforms
    the fix was as simple as selecting HAVE_CLK, for others like the
    Loongson 2 significant restructuring was required.

    The remainder are changes required to get the Lantiq code to work
    again."

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Loongson 2: Sort out clock managment.
    MIPS: Loongson 1: more clk support and add select HAVE_CLK
    MIPS: txx9: Fix redefinition of clk_* by adding select HAVE_CLK
    MIPS: BCM63xx: Fix redefinition of clk_* by adding select HAVE_CLK
    MIPS: AR7: Fix redefinition of clk_* by adding select HAVE_CLK
    MIPS: Lantiq: Platform specific CLK fixup
    MIPS: Lantiq: Add device_tree_init function
    MIPS: Lantiq: Fix interface clock and PCI control register offset

    Linus Torvalds
     
  • Pull UML fixes from Richard Weinberger:
    "This patch set contains mostly fixes and cleanups. The UML tty driver
    uses now tty_port and is no longer broken like hell :-)"

    * 'for-linus-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
    um: Add arch/x86/um to MAINTAINERS
    um: pass siginfo to guest process
    um: fix ubd_file_size for read-only files
    um: pull interrupt_end() into userspace()
    um: split syscall_trace(), pass pt_regs to it
    um: switch UPT_SET_RETURN_VALUE and regs_return_value to pt_regs
    um: set BLK_CGROUP=y in defconfig
    um: remove count_lock
    um: fully use tty_port
    um: Remove dead code
    um: remove line_ioctl()
    TTY: um/line, use tty from tty_port
    TTY: um/line, add tty_port

    Linus Torvalds
     
  • Pull ARM DMA engine updates from Russell King:
    "This looks scary at first glance, but what it is is:
    - a rework of the sa11x0 DMA engine driver merged during the previous
    cycle, to extract a common set of helper functions for DMA engine
    implementations.
    - conversion of amba-pl08x.c to use these helper functions.
    - addition of OMAP DMA engine driver (using these helper functions),
    and conversion of some of the OMAP DMA users to use DMA engine.

    Nothing in the helper functions is ARM specific, so I hope that other
    implementations can consolidate some of their code by making use of
    these helpers.

    This has been sitting in linux-next most of the merge cycle, and has
    been tested by several OMAP folk. I've tested it on sa11x0 platforms,
    and given it my best shot on my broken platforms which have the
    amba-pl08x controller.

    The last point is the addition to feature-removal-schedule.txt, which
    will have a merge conflict. Between myself and TI, we're planning to
    remove the old TI DMA implementation next year."

    Fix up trivial add/add conflicts in Documentation/feature-removal-schedule.txt
    and drivers/dma/{Kconfig,Makefile}

    * 'dmaengine' of git://git.linaro.org/people/rmk/linux-arm: (53 commits)
    ARM: 7481/1: OMAP2+: omap2plus_defconfig: enable OMAP DMA engine
    ARM: 7464/1: mmc: omap_hsmmc: ensure probe returns error if DMA channel request fails
    Add feature removal of old OMAP private DMA implementation
    mtd: omap2: remove private DMA API implementation
    mtd: omap2: add DMA engine support
    spi: omap2-mcspi: remove private DMA API implementation
    spi: omap2-mcspi: add DMA engine support
    ARM: omap: remove mmc platform data dma_mask and initialization
    mmc: omap: remove private DMA API implementation
    mmc: omap: add DMA engine support
    mmc: omap_hsmmc: remove private DMA API implementation
    mmc: omap_hsmmc: add DMA engine support
    dmaengine: omap: add support for cyclic DMA
    dmaengine: omap: add support for setting fi
    dmaengine: omap: add support for returning residue in tx_state method
    dmaengine: add OMAP DMA engine driver
    dmaengine: sa11x0-dma: add cyclic DMA support
    dmaengine: sa11x0-dma: fix DMA residue support
    dmaengine: PL08x: ensure all descriptors are freed when channel is released
    dmaengine: PL08x: get rid of write only pool_ctr and free_txd locking
    ...

    Linus Torvalds
     
  • Pull ARM audit/signal updates from Russell King:
    "ARM audit/signal handling updates from Al and Will. This improves on
    the work Viro did last merge window, and sorts out some of the issues
    found with that work."

    * 'audit' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7475/1: sys_trace: allow all syscall arguments to be updated via ptrace
    ARM: 7474/1: get rid of TIF_SYSCALL_RESTARTSYS
    ARM: 7473/1: deal with handlerless restarts without leaving the kernel
    ARM: 7472/1: pull all work_pending logics into C function
    ARM: 7471/1: Revert "7442/1: Revert "remove unused restart trampoline""
    ARM: 7470/1: Revert "7443/1: Revert "new way of handling ERESTART_RESTARTBLOCK""

    Linus Torvalds
     
  • Pull ARM fixes from Russell King:
    "This fixes various issues found during July"

    * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
    ARM: 7479/1: mm: avoid NULL dereference when flushing gate_vma with VIVT caches
    ARM: Fix undefined instruction exception handling
    ARM: 7480/1: only call smp_send_stop() on SMP
    ARM: 7478/1: errata: extend workaround for erratum #720789
    ARM: 7477/1: vfp: Always save VFP state in vfp_pm_suspend on UP
    ARM: 7476/1: vfp: only clear vfp state for current cpu in vfp_pm_suspend
    ARM: 7468/1: ftrace: Trace function entry before updating index
    ARM: 7467/1: mutex: use generic xchg-based implementation for ARMv6+
    ARM: 7466/1: disable interrupt before spinning endlessly
    ARM: 7465/1: Handle >4GB memory sizes in device tree and mem=size@start option

    Linus Torvalds
     
  • Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • UML guest processes now get correct siginfo_t for SIGTRAP, SIGFPE,
    SIGILL and SIGBUS. Specifically, si_addr and si_code are now correct
    where previously they were si_addr = NULL and si_code = 128.

    Signed-off-by: Martin Pärtel
    Signed-off-by: Richard Weinberger

    Martin Pärtel
     
  • Made ubd_file_size not request write access. Fixes use of read-only images.

    Signed-off-by: Martin Pärtel
    Signed-off-by: Richard Weinberger

    Martin Pärtel
     
  • Signed-off-by: Al Viro
    Signed-off-by: Richard Weinberger

    Al Viro
     
  • Signed-off-by: Al Viro
    [richard@nod.at: Fixed some minor build issues]
    Signed-off-by: Richard Weinberger

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Richard Weinberger

    Al Viro
     
  • Pull fbdev updates from Florian Tobias Schandinat:
    - large updates for OMAP
    - support for LCD3 overlay manager (omap5)
    - omapdss output cleanup
    - removal of passive matrix LCD support as there are no drivers for
    such panels for DSS or DSS2 and nobody complained (cleanup)
    - large updates for SH Mobile
    - overlay support
    - separating MERAM (cache) from framebuffer driver
    - some updates for Exynos and da8xx-fb
    - various other small patches

    * tag 'fbdev-updates-for-3.6' of git://github.com/schandinat/linux-2.6: (78 commits)
    da8xx-fb: fix compile issue due to missing include
    fbdev: Make pixel_to_pat() failure mode more friendly
    da8xx-fb: do not turn ON LCD backlight unless LCDC is enabled
    fbdev: sh_mobile_lcdc: Fix vertical panning step
    video: exynos mipi dsi: Fix mipi dsi regulators handling issue
    video: da8xx-fb: do clock reset of revision 2 LCDC before enabling
    arm: da850: configure LCDC fifo threshold
    video: da8xx-fb: configure FIFO threshold to reduce underflow errors
    video: da8xx-fb: fix flicker due to 1 frame delay in updated frame
    video: da8xx-fb rev2: fix disabling of palette completion interrupt
    da8xx-fb: add missing FB_BLANK operations
    video: exynos_dp: use usleep_range instead of delay
    video: exynos_dp: check the only INTERLANE_ALIGN_DONE bit during Link Training
    fb: epson1355fb: Fix section mismatch
    video: exynos_dp: fix wrong DPCD address during Link Training
    video/smscufx: fix line counting in fb_write
    aty128fb: Fix coding style issues
    fbdev: sh_mobile_lcdc: Fix pan offset computation in YUV mode
    fbdev: sh_mobile_lcdc: Fix overlay registers update during pan operation
    fbdev: sh_mobile_lcdc: Support horizontal panning
    ...

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "A collection of small fixes that have been found recently. Most of
    the commits are regression fixes in HD-audio and some other random
    drivers."

    * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: snd-usb: fix clock source validity index
    ALSA: hda - Fix mute-LED GPIO initialization for IDT codecs
    ALSA: hda - Add descriptions for missing IDT 92HD83x models
    ALSA: hda - Fix polarity of mute LED on HP Mini 210
    ALSA: es1688 - freeup resources on init failure
    ALSA: hda - Workaround for silent output on VAIO Z with ALC889
    ALSA: hda - Fix WARNING from HDMI/DP parser
    ALSA: hda - Detach from converter at closing in patch_hdmi.c
    ALSA: hda - Fix mute-LED GPIO setup for HP Mini 210
    ALSA: mpu401: Fix missing initialization of irq field
    ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecs

    Linus Torvalds
     
  • Pull second vfs pile from Al Viro:
    "The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the
    deadlock reproduced by xfstests 068), symlink and hardlink restriction
    patches, plus assorted cleanups and fixes.

    Note that another fsfreeze deadlock (emergency thaw one) is *not*
    dealt with - the series by Fernando conflicts a lot with Jan's, breaks
    userland ABI (FIFREEZE semantics gets changed) and trades the deadlock
    for massive vfsmount leak; this is going to be handled next cycle.
    There probably will be another pull request, but that stuff won't be
    in it."

    Fix up trivial conflicts due to unrelated changes next to each other in
    drivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)
    delousing target_core_file a bit
    Documentation: Correct s_umount state for freeze_fs/unfreeze_fs
    fs: Remove old freezing mechanism
    ext2: Implement freezing
    btrfs: Convert to new freezing mechanism
    nilfs2: Convert to new freezing mechanism
    ntfs: Convert to new freezing mechanism
    fuse: Convert to new freezing mechanism
    gfs2: Convert to new freezing mechanism
    ocfs2: Convert to new freezing mechanism
    xfs: Convert to new freezing code
    ext4: Convert to new freezing mechanism
    fs: Protect write paths by sb_start_write - sb_end_write
    fs: Skip atime update on frozen filesystem
    fs: Add freezing handling to mnt_want_write() / mnt_drop_write()
    fs: Improve filesystem freezing handling
    switch the protection of percpu_counter list to spinlock
    nfsd: Push mnt_want_write() outside of i_mutex
    btrfs: Push mnt_want_write() outside of i_mutex
    fat: Push mnt_want_write() outside of i_mutex
    ...

    Linus Torvalds
     
  • For unexplainable reasons the Loongson 2 clock API was implemented in a
    module so fixing this involved shifting large amounts of code around.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Pull block driver changes from Jens Axboe:

    - Making the plugging support for drivers a bit more sane from Neil.
    This supersedes the plugging change from Shaohua as well.

    - The usual round of drbd updates.

    - Using a tail add instead of a head add in the request completion for
    ndb, making us find the most completed request more quickly.

    - A few floppy changes, getting rid of a duplicated flag and also
    running the floppy init async (since it takes forever in boot terms)
    from Andi.

    * 'for-3.6/drivers' of git://git.kernel.dk/linux-block:
    floppy: remove duplicated flag FD_RAW_NEED_DISK
    blk: pass from_schedule to non-request unplug functions.
    block: stack unplug
    blk: centralize non-request unplug handling.
    md: remove plug_cnt feature of plugging.
    block/nbd: micro-optimization in nbd request completion
    drbd: announce FLUSH/FUA capability to upper layers
    drbd: fix max_bio_size to be unsigned
    drbd: flush drbd work queue before invalidate/invalidate remote
    drbd: fix potential access after free
    drbd: call local-io-error handler early
    drbd: do not reset rs_pending_cnt too early
    drbd: reset congestion information before reporting it in /proc/drbd
    drbd: report congestion if we are waiting for some userland callback
    drbd: differentiate between normal and forced detach
    drbd: cleanup, remove two unused global flags
    floppy: Run floppy initialization asynchronous

    Linus Torvalds
     
  • Pull core block IO bits from Jens Axboe:
    "The most complicated part if this is the request allocation rework by
    Tejun, which has been queued up for a long time and has been in
    for-next ditto as well.

    There are a few commits from yesterday and today, mostly trivial and
    obvious fixes. So I'm pretty confident that it is sound. It's also
    smaller than usual."

    * 'for-3.6/core' of git://git.kernel.dk/linux-block:
    block: remove dead func declaration
    block: add partition resize function to blkpg ioctl
    block: uninitialized ioc->nr_tasks triggers WARN_ON
    block: do not artificially constrain max_sectors for stacking drivers
    blkcg: implement per-blkg request allocation
    block: prepare for multiple request_lists
    block: add q->nr_rqs[] and move q->rq.elvpriv to q->nr_rqs_elvpriv
    blkcg: inline bio_blkcg() and friends
    block: allocate io_context upfront
    block: refactor get_request[_wait]()
    block: drop custom queue draining used by scsi_transport_{iscsi|fc}
    mempool: add @gfp_mask to mempool_create_node()
    blkcg: make root blkcg allocation use %GFP_KERNEL
    blkcg: __blkg_lookup_create() doesn't need radix preload

    Linus Torvalds
     
  • Pull md updates from NeilBrown.

    * 'for-next' of git://neil.brown.name/md:
    DM RAID: Add support for MD RAID10
    md/RAID1: Add missing case for attempting to repair known bad blocks.
    md/raid5: For odirect-write performance, do not set STRIPE_PREREAD_ACTIVE.
    md/raid1: don't abort a resync on the first badblock.
    md: remove duplicated test on ->openers when calling do_md_stop()
    raid5: Add R5_ReadNoMerge flag which prevent bio from merging at block layer
    md/raid1: prevent merging too large request
    md/raid1: read balance chooses idlest disk for SSD
    md/raid1: make sequential read detection per disk based
    MD RAID10: Export md_raid10_congested
    MD: Move macros from raid1*.h to raid1*.c
    MD RAID1: rename mirror_info structure
    MD RAID10: rename mirror_info structure
    MD RAID10: Fix compiler warning.
    raid5: add a per-stripe lock
    raid5: remove unnecessary bitmap write optimization
    raid5: lockless access raid5 overrided bi_phys_segments
    raid5: reduce chance release_stripe() taking device_lock

    Linus Torvalds
     
  • In commit 3b6e2723f32d ("locks: prevent side-effects of
    locks_release_private before file_lock is initialized") we removed the
    last user of lm_release_private without removing the field itself.

    Signed-off-by: J. Bruce Fields
    Signed-off-by: Linus Torvalds

    J. Bruce Fields
     

01 Aug, 2012

20 commits

  • This fixes a redefinition of clk_*:

    arch/mips/loongson1/common/clock.c:23:13: error: redefinition of 'clk_get'
    include/linux/clk.h:281:27: note: previous definition of 'clk_get' was here
    arch/mips/loongson1/common/clock.c:41:15: error: redefinition of 'clk_get_rate'
    include/linux/clk.h:302:29: note: previous definition of 'clk_get_rate' was here
    make[3]: *** [arch/mips/loongson1/common/clock.o] Error 1

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Reviewed-by: John Crispin
    Acked-by: Kelvin Cheung
    Patchwork: https://patchwork.linux-mips.org/patch/4143/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • arch/mips/txx9/generic/setup.c:87:13: error: redefinition of 'clk_get'
    include/linux/clk.h:281:27: note: previous definition of 'clk_get' was here
    arch/mips/txx9/generic/setup.c:97:5: error: redefinition of 'clk_enable'
    include/linux/clk.h:295:19: note: previous definition of 'clk_enable' was here
    arch/mips/txx9/generic/setup.c:103:6: error: redefinition of 'clk_disable'
    include/linux/clk.h:300:20: note: previous definition of 'clk_disable' was here
    arch/mips/txx9/generic/setup.c:108:15: error: redefinition of 'clk_get_rate'
    include/linux/clk.h:302:29: note: previous definition of 'clk_get_rate' was here
    arch/mips/txx9/generic/setup.c:114:6: error: redefinition of 'clk_put'
    include/linux/clk.h:291:20: note: previous definition of 'clk_put' was here
    make[3]: *** [arch/mips/txx9/generic/setup.o] Error 1

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Reviewed-by: John Crispin
    Patchwork: https://patchwork.linux-mips.org/patch/4142/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • arch/mips/bcm63xx/clk.c:249:5: error: redefinition of 'clk_enable'
    include/linux/clk.h:295:19: note: previous definition of 'clk_enable' was here
    arch/mips/bcm63xx/clk.c:259:6: error: redefinition of 'clk_disable'
    include/linux/clk.h:300:20: note: previous definition of 'clk_disable' was here
    arch/mips/bcm63xx/clk.c:268:15: error: redefinition of 'clk_get_rate'
    include/linux/clk.h:302:29: note: previous definition of 'clk_get_rate' was here
    arch/mips/bcm63xx/clk.c:275:13: error: redefinition of 'clk_get'
    include/linux/clk.h:281:27: note: previous definition of 'clk_get' was here
    arch/mips/bcm63xx/clk.c:302:6: error: redefinition of 'clk_put'
    include/linux/clk.h:291:20: note: previous definition of 'clk_put' was here
    make[2]: *** [arch/mips/bcm63xx/clk.o] Error 1

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Reviewed-by: John Crispin
    Patchwork: https://patchwork.linux-mips.org/patch/4141/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • arch/mips/ar7/clock.c:420:5: error: redefinition of 'clk_enable'
    include/linux/clk.h:295:19: note: previous definition of 'clk_enable' was here
    arch/mips/ar7/clock.c:426:6: error: redefinition of 'clk_disable'
    include/linux/clk.h:300:20: note: previous definition of 'clk_disable' was here
    arch/mips/ar7/clock.c:431:15: error: redefinition of 'clk_get_rate'
    include/linux/clk.h:302:29: note: previous definition of 'clk_get_rate' was here
    arch/mips/ar7/clock.c:437:13: error: redefinition of 'clk_get'
    include/linux/clk.h:281:27: note: previous definition of 'clk_get' was here
    arch/mips/ar7/clock.c:454:6: error: redefinition of 'clk_put'
    include/linux/clk.h:291:20: note: previous definition of 'clk_put' was here
    make[2]: *** [arch/mips/ar7/clock.o] Error 1

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Reviewed-by: John Crispin
    Acked-by: Florian Fainelli
    Patchwork: https://patchwork.linux-mips.org/patch/4140/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • As we use CLKDEV_LOOKUP but dont have support for COMMON_CLK yet, we need to
    provide our own version of of_clk_get_from_provider().

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/4117/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • Add a lantiq specific version of device_tree_init. The generic MIPS version
    was removed by.

    commit 594e966bc412d64eec9282d28ce511bdd62fea39
    Author: David Daney
    Date: Thu Jul 5 18:12:38 2012 +0200

    MIPS: Prune some target specific code out of prom.c

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/4116/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • The XRX200 based SoC have a different register offset for the interface
    clock and PCI control registers. This patch detects the SoC and sets the
    register offset at runtime. This make PCI work on the VR9 SoC.

    Signed-off-by: John Crispin
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/4113/
    Signed-off-by: Ralf Baechle

    John Crispin
     
  • * set_fs(KERNEL_DS) + getname() is probably the weirdest implementation
    of strdup() I've seen. Especially since they don't to copy it at all...
    * filp_open() never returns NULL; it's ERR_PTR(-E...) on failure.
    * file->f_dentry is never going to be NULL, TYVM.
    * match_strdup() + snprintf() + kfree() is a bloody weird way to spell
    match_strlcpy().

    Pox on cargo-cult programmers...

    Signed-off-by: Al Viro

    Al Viro
     
  • Support the MD RAID10 personality through dm-raid.c

    Signed-off-by: Jonathan Brassow
    Signed-off-by: NeilBrown

    Jonathan Brassow
     
  • Pull in pre-requisites for adding raid10 support to dm-raid.

    NeilBrown
     
  • __generic_unplug_device() function is removed with commit
    7eaceaccab5f40bbfda044629a6298616aeaed50, which forgot to
    remove the declaration at meantime. Here remove it.

    Signed-off-by: Yuanhan Liu
    Signed-off-by: Jens Axboe

    Yuanhan Liu
     
  • Add a new operation code (BLKPG_RESIZE_PARTITION) to the BLKPG ioctl that
    allows altering the size of an existing partition, even if it is currently
    in use.

    This patch converts hd_struct->nr_sects into sequence counter because
    One might extend a partition while IO is happening to it and update of
    nr_sects can be non-atomic on 32bit machines with 64bit sector_t. This
    can lead to issues like reading inconsistent size of a partition. Sequence
    counter have been used so that readers don't have to take bdev mutex lock
    as we call sector_in_part() very frequently.

    Now all the access to hd_struct->nr_sects should happen using sequence
    counter read/update helper functions part_nr_sects_read/part_nr_sects_write.
    There is one exception though, set_capacity()/get_capacity(). I think
    theoritically race should exist there too but this patch does not
    modify set_capacity()/get_capacity() due to sheer number of call sites
    and I am afraid that change might break something. I have left that as a
    TODO item. We can handle it later if need be. This patch does not introduce
    any new races as such w.r.t set_capacity()/get_capacity().

    v2: Add CONFIG_LBDAF test to UP preempt case as suggested by Phillip.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Phillip Susi
    Signed-off-by: Jens Axboe

    Vivek Goyal
     
  • Hi,

    I'm using the old-fashioned 'dump' backup tool, and I noticed that it spews the
    below warning as of 3.5-rc1 and later (3.4 is fine):

    [ 10.886893] ------------[ cut here ]------------
    [ 10.886904] WARNING: at include/linux/iocontext.h:140 copy_process+0x1488/0x1560()
    [ 10.886905] Hardware name: Bochs
    [ 10.886906] Modules linked in:
    [ 10.886908] Pid: 2430, comm: dump Not tainted 3.5.0-rc7+ #27
    [ 10.886908] Call Trace:
    [ 10.886911] [] warn_slowpath_common+0x7a/0xb0
    [ 10.886912] [] warn_slowpath_null+0x15/0x20
    [ 10.886913] [] copy_process+0x1488/0x1560
    [ 10.886914] [] do_fork+0xb4/0x340
    [ 10.886918] [] ? recalc_sigpending+0x1a/0x50
    [ 10.886919] [] ? __set_task_blocked+0x32/0x80
    [ 10.886920] [] ? __set_current_blocked+0x3a/0x60
    [ 10.886923] [] sys_clone+0x23/0x30
    [ 10.886925] [] stub_clone+0x13/0x20
    [ 10.886927] [] ? system_call_fastpath+0x16/0x1b
    [ 10.886928] ---[ end trace 32a14af7ee6a590b ]---

    Reproducing is easy, I can hit it on a KVM system with a very basic
    config (x86_64 make defconfig + enable the drivers needed). To hit it,
    just install dump (on debian/ubuntu, not sure what the package might be
    called on Fedora), and:

    dump -o -f /tmp/foo /

    You'll see the warning in dmesg once it forks off the I/O process and
    starts dumping filesystem contents.

    I bisected it down to the following commit:

    commit f6e8d01bee036460e03bd4f6a79d014f98ba712e
    Author: Tejun Heo
    Date: Mon Mar 5 13:15:26 2012 -0800

    block: add io_context->active_ref

    Currently ioc->nr_tasks is used to decide two things - whether an ioc
    is done issuing IOs and whether it's shared by multiple tasks. This
    patch separate out the first into ioc->active_ref, which is acquired
    and released using {get|put}_io_context_active() respectively.

    This will be used to associate bio's with a given task. This patch
    doesn't introduce any visible behavior change.

    Signed-off-by: Tejun Heo
    Cc: Vivek Goyal
    Signed-off-by: Jens Axboe

    It seems like the init of ioc->nr_tasks was removed in that patch,
    so it starts out at 0 instead of 1.

    Tejun, is the right thing here to add back the init, or should something else
    be done?

    The below patch removes the warning, but I haven't done any more extensive
    testing on it.

    Signed-off-by: Olof Johansson
    Acked-by: Tejun Heo
    Cc: stable@kernel.org
    Signed-off-by: Jens Axboe

    Olof Johansson
     
  • blk_set_stacking_limits is intended to allow stacking drivers to build
    up the limits of the stacked device based on the underlying devices'
    limits. But defaulting 'max_sectors' to BLK_DEF_MAX_SECTORS (1024)
    doesn't allow the stacking driver to inherit a max_sectors larger than
    1024 -- due to blk_stack_limits' use of min_not_zero.

    It is now clear that this artificial limit is getting in the way so
    change blk_set_stacking_limits's max_sectors to UINT_MAX (which allows
    stacking drivers like dm-multipath to inherit 'max_sectors' from the
    underlying paths).

    Reported-by: Vijay Chauhan
    Tested-by: Vijay Chauhan
    Signed-off-by: Mike Snitzer
    Signed-off-by: Jens Axboe

    Mike Snitzer
     
  • uac_clock_source_is_valid() uses the control selector value to access
    the bmControls bitmap of the clock source unit. This is wrong, as
    control selector values start from 1, while the bitmap uses all
    available bits.

    In other words, "Clock Validity Control" is stored in D3..2, not D5..4
    of the clock selector unit's bmControls.

    Signed-off-by: Daniel Mack
    Reported-by: Andreas Koch
    Cc: stable@kernel.org
    Signed-off-by: Takashi Iwai

    Daniel Mack
     
  • Pull irqdomain changes from Grant Likely:
    "Round of refactoring and enhancements to irq_domain infrastructure.
    This series starts the process of simplifying irqdomain. The ultimate
    goal is to merge LEGACY, LINEAR and TREE mappings into a single
    system, but had to back off from that after some last minute bugs.
    Instead it mainly reorganizes the code and ensures that the reverse
    map gets populated when the irq is mapped instead of the first time it
    is looked up.

    Merging of the irq_domain types is deferred to v3.7

    In other news, this series adds helpers for creating static mappings
    on a linear or tree mapping."

    * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    irqdomain: Improve diagnostics when a domain mapping fails
    irqdomain: eliminate slow-path revmap lookups
    irqdomain: Fix irq_create_direct_mapping() to test irq_domain type.
    irqdomain: Eliminate dedicated radix lookup functions
    irqdomain: Support for static IRQ mapping and association.
    irqdomain: Always update revmap when setting up a virq
    irqdomain: Split disassociating code into separate function
    irq_domain: correct a minor wrong comment for linear revmap
    irq_domain: Standardise legacy/linear domain selection
    irqdomain: Make ops->map hook optional
    irqdomain: Remove unnecessary test for IRQ_DOMAIN_MAP_LEGACY
    irqdomain: Simple NUMA awareness.
    devicetree: add helper inline for retrieving a node's full name

    Linus Torvalds
     
  • Merge Andrew's second set of patches:
    - MM
    - a few random fixes
    - a couple of RTC leftovers

    * emailed patches from Andrew Morton : (120 commits)
    rtc/rtc-88pm80x: remove unneed devm_kfree
    rtc/rtc-88pm80x: assign ret only when rtc_register_driver fails
    mm: hugetlbfs: close race during teardown of hugetlbfs shared page tables
    tmpfs: distribute interleave better across nodes
    mm: remove redundant initialization
    mm: warn if pg_data_t isn't initialized with zero
    mips: zero out pg_data_t when it's allocated
    memcg: gix memory accounting scalability in shrink_page_list
    mm/sparse: remove index_init_lock
    mm/sparse: more checks on mem_section number
    mm/sparse: optimize sparse_index_alloc
    memcg: add mem_cgroup_from_css() helper
    memcg: further prevent OOM with too many dirty pages
    memcg: prevent OOM with too many dirty pages
    mm: mmu_notifier: fix freed page still mapped in secondary MMU
    mm: memcg: only check anon swapin page charges for swap cache
    mm: memcg: only check swap cache pages for repeated charging
    mm: memcg: split swapin charge function into private and public part
    mm: memcg: remove needless !mm fixup to init_mm when charging
    mm: memcg: remove unneeded shmem charge type
    ...

    Linus Torvalds
     
  • Pull VFIO core from Alex Williamson:
    "This series includes the VFIO userspace driver interface for the 3.6
    kernel merge window. This driver is intended to provide a secure
    interface for device access using IOMMU protection for applications
    like assignment of physical devices to virtual machines.

    Qemu will be the first user of this interface, enabling assignment of
    PCI devices to Qemu guests. This interface is intended to eventually
    replace the x86-specific assignment mechanism currently available in
    KVM.

    This interface has the advantage of being more secure, by working with
    IOMMU groups to ensure device isolation and providing it's own
    filtered resource access mechanism, and also more flexible, in not
    being x86 or KVM specific (extensions to enable POWER are already
    working).

    This driver is originally the work of Tom Lyon, but has since been
    handed over to me and gone through a complete overhaul thanks to the
    input from David Gibson, Ben Herrenschmidt, Chris Wright, Joerg
    Roedel, and others. This driver has been available in linux-next for
    the last month."

    Paul Mackerras says:
    "I would be glad to see it go in since we want to use it with KVM on
    PowerPC. If possible we'd like the PowerPC bits for it to go in as
    well."

    * tag 'vfio-for-v3.6' of git://github.com/awilliam/linux-vfio:
    vfio: Add PCI device driver
    vfio: Type1 IOMMU implementation
    vfio: Add documentation
    vfio: VFIO core

    Linus Torvalds
     
  • Pull random subsystem patches from Ted Ts'o:
    "This patch series contains a major revamp of how we collect entropy
    from interrupts for /dev/random and /dev/urandom.

    The goal is to addresses weaknesses discussed in the paper "Mining
    your Ps and Qs: Detection of Widespread Weak Keys in Network Devices",
    by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J. Alex Halderman,
    which will be published in the Proceedings of the 21st Usenix Security
    Symposium, August 2012. (See https://factorable.net for more
    information and an extended version of the paper.)"

    Fix up trivial conflicts due to nearby changes in
    drivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}

    * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)
    random: mix in architectural randomness in extract_buf()
    dmi: Feed DMI table to /dev/random driver
    random: Add comment to random_initialize()
    random: final removal of IRQF_SAMPLE_RANDOM
    um: remove IRQF_SAMPLE_RANDOM which is now a no-op
    sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op
    [ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op
    board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op
    isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op
    pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
    omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
    goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out
    uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op
    drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op
    xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op
    n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op
    pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op
    i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op
    input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op
    mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op
    ...

    Linus Torvalds
     
  • Pull final RDMA changes from Roland Dreier:
    - Fix IPoIB to stop using unsafe linkage between networking neighbour
    layer and private path database.
    - Small fixes for bugs found by Fengguang Wu's automated builds.

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IPoIB: Use a private hash table for path lookup in xmit path
    IB/qib: Fix size of cc_supported_table_entries
    RDMA/ucma: Convert open-coded equivalent to memdup_user()
    RDMA/ocrdma: Fix check of GSI CQs
    RDMA/cma: Use PTR_RET rather than if (IS_ERR(...)) + PTR_ERR

    Linus Torvalds