1. 02 Aug, 2012 3 commits
    • Ben Hutchings's avatar
      tcp: Apply device TSO segment limit earlier · 1485348d
      Ben Hutchings authored
      Cache the device gso_max_segs in sock::sk_gso_max_segs and use it to
      limit the size of TSO skbs.  This avoids the need to fall back to
      software GSO for local TCP senders.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1485348d
    • Ben Hutchings's avatar
      sfc: Fix maximum number of TSO segments and minimum TX queue size · 7e6d06f0
      Ben Hutchings authored
      Currently an skb requiring TSO may not fit within a minimum-size TX
      queue.  The TX queue selected for the skb may stall and trigger the TX
      watchdog repeatedly (since the problem skb will be retried after the
      TX reset).  This issue is designated as CVE-2012-3412.
      
      Set the maximum number of TSO segments for our devices to 100.  This
      should make no difference to behaviour unless the actual MSS is less
      than about 700.  Increase the minimum TX queue size accordingly to
      allow for 2 worst-case skbs, so that there will definitely be space
      to add an skb after we wake a queue.
      
      To avoid invalidating existing configurations, change
      efx_ethtool_set_ringparam() to fix up values that are too small rather
      than returning -EINVAL.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7e6d06f0
    • Ben Hutchings's avatar
      net: Allow driver to limit number of GSO segments per skb · 30b678d8
      Ben Hutchings authored
      A peer (or local user) may cause TCP to use a nominal MSS of as little
      as 88 (actual MSS of 76 with timestamps).  Given that we have a
      sufficiently prodigious local sender and the peer ACKs quickly enough,
      it is nevertheless possible to grow the window for such a connection
      to the point that we will try to send just under 64K at once.  This
      results in a single skb that expands to 861 segments.
      
      In some drivers with TSO support, such an skb will require hundreds of
      DMA descriptors; a substantial fraction of a TX ring or even more than
      a full ring.  The TX queue selected for the skb may stall and trigger
      the TX watchdog repeatedly (since the problem skb will be retried
      after the TX reset).  This particularly affects sfc, for which the
      issue is designated as CVE-2012-3412.
      
      Therefore:
      1. Add the field net_device::gso_max_segs holding the device-specific
         limit.
      2. In netif_skb_features(), if the number of segments is too high then
         mask out GSO features to force fall back to software GSO.
      Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      30b678d8
  2. 01 Aug, 2012 37 commits
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 1a9b4993
      Linus Torvalds authored
      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
      1a9b4993
    • Linus Torvalds's avatar
      Merge branch 'for-linus-3.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 1871e845
      Linus Torvalds authored
      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
      1871e845
    • Linus Torvalds's avatar
      Merge branch 'dmaengine' of git://git.linaro.org/people/rmk/linux-arm · a6dc7725
      Linus Torvalds authored
      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
        ...
      a6dc7725
    • Linus Torvalds's avatar
      Merge branch 'audit' of git://git.linaro.org/people/rmk/linux-arm · 02a6ec6a
      Linus Torvalds authored
      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""
      02a6ec6a
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 9a2533c3
      Linus Torvalds authored
      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
      9a2533c3
    • Richard Weinberger's avatar
      um: Add arch/x86/um to MAINTAINERS · b070989a
      Richard Weinberger authored
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      b070989a
    • Martin Pärtel's avatar
      um: pass siginfo to guest process · d3c1cfcd
      Martin Pärtel authored
      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: default avatarMartin Pärtel <martin.partel@gmail.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      d3c1cfcd
    • Martin Pärtel's avatar
      um: fix ubd_file_size for read-only files · d4afcba9
      Martin Pärtel authored
      Made ubd_file_size not request write access. Fixes use of read-only images.
      Signed-off-by: default avatarMartin Pärtel <martin.partel@gmail.com>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      d4afcba9
    • Al Viro's avatar
      um: pull interrupt_end() into userspace() · b8a42095
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      b8a42095
    • Al Viro's avatar
      um: split syscall_trace(), pass pt_regs to it · 1bfa2317
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      [richard@nod.at: Fixed some minor build issues]
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      1bfa2317
    • Al Viro's avatar
    • Linus Torvalds's avatar
      Merge tag 'fbdev-updates-for-3.6' of git://github.com/schandinat/linux-2.6 · d4fdc325
      Linus Torvalds authored
      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
        ...
      d4fdc325
    • Linus Torvalds's avatar
      Merge tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 9a51cf28
      Linus Torvalds authored
      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
      9a51cf28
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · a0e881b7
      Linus Torvalds authored
      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
        ...
      a0e881b7
    • Ralf Baechle's avatar
      MIPS: Loongson 2: Sort out clock managment. · 95cf1468
      Ralf Baechle authored
      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: default avatarRalf Baechle <ralf@linux-mips.org>
      95cf1468
    • Linus Torvalds's avatar
      Merge branch 'for-3.6/drivers' of git://git.kernel.dk/linux-block · eff0d13f
      Linus Torvalds authored
      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
      eff0d13f
    • Linus Torvalds's avatar
      Merge branch 'for-3.6/core' of git://git.kernel.dk/linux-block · 8cf1a3fc
      Linus Torvalds authored
      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
      8cf1a3fc
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://neil.brown.name/md · fcff06c4
      Linus Torvalds authored
      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
      fcff06c4
    • J. Bruce Fields's avatar
      locks: remove unused lm_release_private · 068535f1
      J. Bruce Fields authored
      In commit 3b6e2723 ("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: default avatarJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      068535f1
    • Yoichi Yuasa's avatar
      MIPS: Loongson 1: more clk support and add select HAVE_CLK · 4b00951f
      Yoichi Yuasa authored
      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: default avatarYoichi Yuasa <yuasa@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Reviewed-by: default avatarJohn Crispin <blogic@openwrt.org>
      Acked-by: default avatarKelvin Cheung <keguang.zhang@gmail.com>
      Patchwork: https://patchwork.linux-mips.org/patch/4143/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      4b00951f
    • Yoichi Yuasa's avatar
      MIPS: txx9: Fix redefinition of clk_* by adding select HAVE_CLK · 47cd7343
      Yoichi Yuasa authored
      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: default avatarYoichi Yuasa <yuasa@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Reviewed-by: default avatarJohn Crispin <blogic@openwrt.org>
      Patchwork: https://patchwork.linux-mips.org/patch/4142/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      47cd7343
    • Yoichi Yuasa's avatar
      MIPS: BCM63xx: Fix redefinition of clk_* by adding select HAVE_CLK · 3e82eeeb
      Yoichi Yuasa authored
      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: default avatarYoichi Yuasa <yuasa@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Reviewed-by: default avatarJohn Crispin <blogic@openwrt.org>
      Patchwork: https://patchwork.linux-mips.org/patch/4141/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      3e82eeeb
    • Yoichi Yuasa's avatar
      MIPS: AR7: Fix redefinition of clk_* by adding select HAVE_CLK · 8551fb64
      Yoichi Yuasa authored
      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: default avatarYoichi Yuasa <yuasa@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Reviewed-by: default avatarJohn Crispin <blogic@openwrt.org>
      Acked-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Patchwork: https://patchwork.linux-mips.org/patch/4140/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      8551fb64
    • John Crispin's avatar
      MIPS: Lantiq: Platform specific CLK fixup · b902d9a9
      John Crispin authored
      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: default avatarJohn Crispin <blogic@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4117/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      b902d9a9
    • John Crispin's avatar
      MIPS: Lantiq: Add device_tree_init function · a9188bc1
      John Crispin authored
      Add a lantiq specific version of device_tree_init. The generic MIPS version
      was removed by.
      
      commit 594e966bc412d64eec9282d28ce511bdd62fea39
      Author: David Daney <david.daney@cavium.com>
      Date:   Thu Jul 5 18:12:38 2012 +0200
      
      MIPS: Prune some target specific code out of prom.c
      Signed-off-by: default avatarJohn Crispin <blogic@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4116/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a9188bc1
    • John Crispin's avatar
      MIPS: Lantiq: Fix interface clock and PCI control register offset · e29b72f5
      John Crispin authored
      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: default avatarJohn Crispin <blogic@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4113/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e29b72f5
    • Al Viro's avatar
      delousing target_core_file a bit · dbc6e022
      Al Viro authored
      * 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: default avatarAl Viro <viro@zeniv.linux.org.uk>
      dbc6e022
    • Jonathan Brassow's avatar
      DM RAID: Add support for MD RAID10 · 63f33b8d
      Jonathan Brassow authored
      Support the MD RAID10 personality through dm-raid.c
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      63f33b8d
    • NeilBrown's avatar
      Merge commit 'c039c332' into md · bb181e2e
      NeilBrown authored
      Pull in pre-requisites for adding raid10 support to dm-raid.
      bb181e2e
    • Yuanhan Liu's avatar
      block: remove dead func declaration · 80799fbb
      Yuanhan Liu authored
      __generic_unplug_device() function is removed with commit
      7eaceacc, which forgot to
      remove the declaration at meantime. Here remove it.
      Signed-off-by: default avatarYuanhan Liu <yuanhan.liu@linux.intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      80799fbb
    • Vivek Goyal's avatar
      block: add partition resize function to blkpg ioctl · c83f6bf9
      Vivek Goyal authored
      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: default avatarVivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarPhillip Susi <psusi@ubuntu.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      c83f6bf9
    • Olof Johansson's avatar
      block: uninitialized ioc->nr_tasks triggers WARN_ON · 4638a83e
      Olof Johansson authored
      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]  [<ffffffff8107ce8a>] warn_slowpath_common+0x7a/0xb0
      [   10.886912]  [<ffffffff8107ced5>] warn_slowpath_null+0x15/0x20
      [   10.886913]  [<ffffffff8107c088>] copy_process+0x1488/0x1560
      [   10.886914]  [<ffffffff8107c244>] do_fork+0xb4/0x340
      [   10.886918]  [<ffffffff8108effa>] ? recalc_sigpending+0x1a/0x50
      [   10.886919]  [<ffffffff8108f6b2>] ? __set_task_blocked+0x32/0x80
      [   10.886920]  [<ffffffff81091afa>] ? __set_current_blocked+0x3a/0x60
      [   10.886923]  [<ffffffff81051db3>] sys_clone+0x23/0x30
      [   10.886925]  [<ffffffff8179bd73>] stub_clone+0x13/0x20
      [   10.886927]  [<ffffffff8179baa2>] ? 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 f6e8d01b
      Author: Tejun Heo <tj@kernel.org>
      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: default avatarTejun Heo <tj@kernel.org>
          Cc: Vivek Goyal <vgoyal@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      
      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: default avatarOlof Johansson <olof@lixom.net>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4638a83e
    • Mike Snitzer's avatar
      block: do not artificially constrain max_sectors for stacking drivers · fe86cdce
      Mike Snitzer authored
      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: default avatarVijay Chauhan <vijay.chauhan@netapp.com>
      Tested-by: default avatarVijay Chauhan <vijay.chauhan@netapp.com>
      Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fe86cdce
    • Daniel Mack's avatar
      ALSA: snd-usb: fix clock source validity index · aff252a8
      Daniel Mack authored
      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: default avatarDaniel Mack <zonque@gmail.com>
      Reported-by: default avatarAndreas Koch <andreas@akdesigninc.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      aff252a8
    • Linus Torvalds's avatar
      Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6 · 2d534926
      Linus Torvalds authored
      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
      2d534926
    • Linus Torvalds's avatar
      Merge branch 'akpm' (Andrew's patch-bomb) · ac694dbd
      Linus Torvalds authored
      Merge Andrew's second set of patches:
       - MM
       - a few random fixes
       - a couple of RTC leftovers
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (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
        ...
      ac694dbd
    • Linus Torvalds's avatar
      Merge tag 'vfio-for-v3.6' of git://github.com/awilliam/linux-vfio · a40a1d3d
      Linus Torvalds authored
      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
      a40a1d3d