commit 1071ea6e68ead40df739b223e9013d99c23c19ab
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jan 15 15:29:14 2014 -0800

    Linux 3.10.27

commit 5ba4542368ccbbb717426505c0fb801233f9110a
Author: Paul Turner <pjt@google.com>
Date:   Wed Oct 16 11:16:27 2013 -0700

    sched: Guarantee new group-entities always have weight
    
    commit 0ac9b1c21874d2490331233b3242085f8151e166 upstream.
    
    Currently, group entity load-weights are initialized to zero. This
    admits some races with respect to the first time they are re-weighted in
    earlty use. ( Let g[x] denote the se for "g" on cpu "x". )
    
    Suppose that we have root->a and that a enters a throttled state,
    immediately followed by a[0]->t1 (the only task running on cpu[0])
    blocking:
    
      put_prev_task(group_cfs_rq(a[0]), t1)
      put_prev_entity(..., t1)
      check_cfs_rq_runtime(group_cfs_rq(a[0]))
      throttle_cfs_rq(group_cfs_rq(a[0]))
    
    Then, before unthrottling occurs, let a[0]->b[0]->t2 wake for the first
    time:
    
      enqueue_task_fair(rq[0], t2)
      enqueue_entity(group_cfs_rq(b[0]), t2)
      enqueue_entity_load_avg(group_cfs_rq(b[0]), t2)
      account_entity_enqueue(group_cfs_ra(b[0]), t2)
      update_cfs_shares(group_cfs_rq(b[0]))
      < skipped because b is part of a throttled hierarchy >
      enqueue_entity(group_cfs_rq(a[0]), b[0])
      ...
    
    We now have b[0] enqueued, yet group_cfs_rq(a[0])->load.weight == 0
    which violates invariants in several code-paths. Eliminate the
    possibility of this by initializing group entity weight.
    
    Signed-off-by: Paul Turner <pjt@google.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20131016181627.22647.47543.stgit@sword-of-the-dawn.mtv.corp.google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ca715c462018a8631240088dafa567bec6fe721
Author: Ben Segall <bsegall@google.com>
Date:   Wed Oct 16 11:16:22 2013 -0700

    sched: Fix hrtimer_cancel()/rq->lock deadlock
    
    commit 927b54fccbf04207ec92f669dce6806848cbec7d upstream.
    
    __start_cfs_bandwidth calls hrtimer_cancel while holding rq->lock,
    waiting for the hrtimer to finish. However, if sched_cfs_period_timer
    runs for another loop iteration, the hrtimer can attempt to take
    rq->lock, resulting in deadlock.
    
    Fix this by ensuring that cfs_b->timer_active is cleared only if the
    _latest_ call to do_sched_cfs_period_timer is returning as idle. Then
    __start_cfs_bandwidth can just call hrtimer_try_to_cancel and wait for
    that to succeed or timer_active == 1.
    
    Signed-off-by: Ben Segall <bsegall@google.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: pjt@google.com
    Link: http://lkml.kernel.org/r/20131016181622.22647.16643.stgit@sword-of-the-dawn.mtv.corp.google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 373e0a593bd15df79e47158bd4628eb133d4da7d
Author: Ben Segall <bsegall@google.com>
Date:   Wed Oct 16 11:16:17 2013 -0700

    sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
    
    commit db06e78cc13d70f10877e0557becc88ab3ad2be8 upstream.
    
    hrtimer_expires_remaining does not take internal hrtimer locks and thus
    must be guarded against concurrent __hrtimer_start_range_ns (but
    returning HRTIMER_RESTART is safe). Use cfs_b->lock to make it safe.
    
    Signed-off-by: Ben Segall <bsegall@google.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: pjt@google.com
    Link: http://lkml.kernel.org/r/20131016181617.22647.73829.stgit@sword-of-the-dawn.mtv.corp.google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d80092f8d9e0fc4aa2b6a7c8d2e4a7437899ca5
Author: Ben Segall <bsegall@google.com>
Date:   Wed Oct 16 11:16:12 2013 -0700

    sched: Fix race on toggling cfs_bandwidth_used
    
    commit 1ee14e6c8cddeeb8a490d7b54cd9016e4bb900b4 upstream.
    
    When we transition cfs_bandwidth_used to false, any currently
    throttled groups will incorrectly return false from cfs_rq_throttled.
    While tg_set_cfs_bandwidth will unthrottle them eventually, currently
    running code (including at least dequeue_task_fair and
    distribute_cfs_runtime) will cause errors.
    
    Fix this by turning off cfs_bandwidth_used only after unthrottling all
    cfs_rqs.
    
    Tested: toggle bandwidth back and forth on a loaded cgroup. Caused
    crashes in minutes without the patch, hasn't crashed with it.
    
    Signed-off-by: Ben Segall <bsegall@google.com>
    Signed-off-by: Peter Zijlstra <peterz@infradead.org>
    Cc: pjt@google.com
    Link: http://lkml.kernel.org/r/20131016181611.22647.80365.stgit@sword-of-the-dawn.mtv.corp.google.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Chris J Arges <chris.j.arges@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e23fe36a8cf5faa57d0c45868a3f7679c4f07cb0
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat Jan 11 19:15:52 2014 -0800

    x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround
    
    commit 26bef1318adc1b3a530ecc807ef99346db2aa8b0 upstream.
    
    Before we do an EMMS in the AMD FXSAVE information leak workaround we
    need to clear any pending exceptions, otherwise we trap with a
    floating-point exception inside this code.
    
    Reported-by: halfdog <me@halfdog.net>
    Tested-by: Borislav Petkov <bp@suse.de>
    Link: http://lkml.kernel.org/r/CA%2B55aFxQnY_PCG_n4=0w-VG=YLXL-yr7oMxyy0WU2gCBAf3ydg@mail.gmail.com
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b2252e993e29974eb0d017156db989173ec31aa
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Tue Dec 31 16:28:39 2013 +0100

    netfilter: nf_nat: fix access to uninitialized buffer in IRC NAT helper
    
    commit 2690d97ade05c5325cbf7c72b94b90d265659886 upstream.
    
    Commit 5901b6be885e attempted to introduce IPv6 support into
    IRC NAT helper. By doing so, the following code seemed to be removed
    by accident:
    
      ip = ntohl(exp->master->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip);
      sprintf(buffer, "%u %u", ip, port);
      pr_debug("nf_nat_irc: inserting '%s' == %pI4, port %u\n", buffer, &ip, port);
    
    This leads to the fact that buffer[] was left uninitialized and
    contained some stack value. When we call nf_nat_mangle_tcp_packet(),
    we call strlen(buffer) on excatly this uninitialized buffer. If we
    are unlucky and the skb has enough tailroom, we overwrite resp. leak
    contents with values that sit on our stack into the packet and send
    that out to the receiver.
    
    Since the rather informal DCC spec [1] does not seem to specify
    IPv6 support right now, we log such occurences so that admins can
    act accordingly, and drop the packet. I've looked into XChat source,
    and IPv6 is not supported there: addresses are in u32 and print
    via %u format string.
    
    Therefore, restore old behaviour as in IPv4, use snprintf(). The
    IRC helper does not support IPv6 by now. By this, we can safely use
    strlen(buffer) in nf_nat_mangle_tcp_packet() and prevent a buffer
    overflow. Also simplify some code as we now have ct variable anyway.
    
      [1] http://www.irchelp.org/irchelp/rfc/ctcpspec.html
    
    Fixes: 5901b6be885e ("netfilter: nf_nat: support IPv6 in IRC NAT helper")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Harald Welte <laforge@gnumonks.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af313b03198d1bbb13e83793416b229d6b1c810d
Author: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
Date:   Mon Sep 23 14:47:32 2013 +0200

    SCSI: sd: Reduce buffer size for vpd request
    
    commit af73623f5f10eb3832c87a169b28f7df040a875b upstream.
    
    Somehow older areca firmware versions have issues with
    scsi_get_vpd_page() and a large buffer, the firmware
    seems to crash and the scsi error-handler will start endless
    recovery retries.
    Limiting the buf-size to 64-bytes fixes this issue with older
    firmware versions (<1.49 for my controller).
    
    Fixes a regression with areca controllers and older firmware versions
    introduced by commit: 66c28f97120e8a621afd5aa7a31c4b85c547d33d
    
    Reported-by: Nix <nix@esperi.org.uk>
    Tested-by: Nix <nix@esperi.org.uk>
    Signed-off-by: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
    Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0ccf8a11507ae170d8db47babad5331a4cdb33f
Author: Dirk Brandewie <dirk.j.brandewie@intel.com>
Date:   Mon Jan 6 10:59:16 2014 -0800

    intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters.
    
    commit 6cbd7ee10e2842a3d1f9b60abede1c8f3d1f1130 upstream.
    
    KVM environments do not support APERF/MPERF MSRs. intel_pstate cannot
    operate without these registers.
    
    The previous validity checks in intel_pstate_msrs_not_valid() are
    insufficent in nested KVMs.
    
    References: https://bugzilla.redhat.com/show_bug.cgi?id=1046317
    Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b788c26a953d491617b05d1f4c63895524e7dab
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Mon Dec 16 21:39:50 2013 +0100

    mac80211: move "bufferable MMPDU" check to fix AP mode scan
    
    commit 277d916fc2e959c3f106904116bb4f7b1148d47a upstream.
    
    The check needs to apply to both multicast and unicast packets,
    otherwise probe requests on AP mode scans are sent through the multicast
    buffer queue, which adds long delays (often longer than the scanning
    interval).
    
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 290a699346ae6cc3e4ccfa7bdc1ee4445f6e020f
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Mon Jan 6 22:50:37 2014 +0800

    ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS
    
    commit a90b40385735af0d3031f98e97b439e8944a31b3 upstream.
    
    The AML method _BIX of NEC LZ750/LS returns a broken package which
    skips the first member "Revision" (ACPI 5.0, Table 10-234).
    
    Add a quirk for this machine to skip member "Revision" during parsing
    the package returned by _BIX.
    
    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=67351
    Reported-and-tested-by: Francisco Castro <fcr@adinet.com.uy>
    Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
    Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a771213d2f2e5f809a3234060ffa58c2b5d7a1b8
Author: Jiang Liu <jiang.liu@linux.intel.com>
Date:   Thu Dec 19 20:38:15 2013 +0800

    ACPI / TPM: fix memory leak when walking ACPI namespace
    
    commit df45c712d1f4ef37714245fb75de726f4ca2bf8d upstream.
    
    In function ppi_callback(), memory allocated by acpi_get_name() will get
    leaked when current device isn't the desired TPM device, so fix the
    memory leak.
    
    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 033795785f03230ca660a37a428db3ab096dd659
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Dec 2 12:20:36 2013 +0100

    mfd: rtsx_pcr: Disable interrupts before cancelling delayed works
    
    commit 73beb63d290f961c299526852884846b0d868840 upstream.
    
    This fixes a kernel panic when resuming from suspend to RAM.
    Without this fix an interrupt hits after the delayed work is canceled
    and thus requeues it. So we end up freeing an armed timer.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94f8884551dac1e358bc4a7a90d9442998261a3e
Author: Andrew Bresticker <abrestic@chromium.org>
Date:   Fri Nov 8 15:44:07 2013 +0530

    clk: exynos5250: fix sysmmu_mfc{l,r} gate clocks
    
    commit 97c3557c3e0413efb1f021f582d1459760e22727 upstream.
    
    The gate clocks for the MFC sysmmus appear to be flipped, i.e.
    GATE_IP_MFC[2] gates sysmmu_mfcl and GATE_IP_MFC[1] gates sysmmu_mfcr.
    Fix this so that the MFC will start up.
    
    Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
    Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
    Acked-by: Mike Turquette <mturquette@linaro.org>
    Signed-off-by: Tomasz Figa <t.figa@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e964763f1bed41305564d0656295639fcd7f7ed7
Author: Abhilash Kesavan <a.kesavan@samsung.com>
Date:   Wed Dec 11 17:27:05 2013 +0530

    clk: samsung: exynos5250: Add CLK_IGNORE_UNUSED flag for the sysreg clock
    
    commit 2feed5aecf5f367b92bd6b6e92afe9e3de466907 upstream.
    
    The sysreg (system register) generates control signals for various blocks
    like disp1blk, i2c, mipi, usb etc. However, it gets disabled as an unused
    clock at boot-up. This can lead to failures in operation of above blocks,
    because they can not be configured properly if this clock is disabled.
    
    Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
    Acked-by: Mike Turquette <mturquette@linaro.org>
    [t.figa: Updated patch description.]
    Signed-off-by: Tomasz Figa <t.figa@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3541ef9f6f33b137586b32d37b2a068e0160a82c
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Fri Nov 22 14:21:08 2013 +0900

    clk: samsung: exynos4: Correct SRC_MFC register
    
    commit 5fdd1b56be51b1ec4dbde5b213d649ac717442da upstream.
    
    The SRC_MFC register offset was incorrect, which could cause have caused
    wrong calculation of rate of sclk_mfc clock, that could in turn lead to
    incorrect operation of MFC. This patch corrects it.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Acked-by: Mike Turquette <mturquette@linaro.org>
    [t.figa: Updated patch description]
    Signed-off-by: Tomasz Figa <t.figa@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f783d8b1299501f0aa0586dbd4fa0460f5f33be0
Author: James Hogan <james.hogan@imgtec.com>
Date:   Mon Dec 16 10:41:38 2013 +0000

    clk: clk-divider: fix divisor > 255 bug
    
    commit 778037e1ccb75609846deca9e419449c1dc137fa upstream.
    
    Commit 6d9252bd9a4bb (clk: Add support for power of two type dividers)
    merged in v3.6 added the _get_val function to convert a divisor value to
    a register field value depending on the flags. However it used the type
    u8 for the div field, causing divisors larger than 255 to be masked
    and the resultant clock rate to be too high.
    
    E.g. in my case an 11bit divider was supposed to divide 24.576 MHz down
    to 32.768KHz. The divisor was correctly calculated as 750 (0x2ee). This
    was masked to 238 (0xee) resulting in a frequency of 103.26KHz.
    
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Rajendra Nayak <rnayak@ti.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Signed-off-by: Mike Turquette <mturquette@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e3eb1670fb74dd18a294990c52ff2f3f2e29824
Author: Simon Guinot <sguinot@lacie.com>
Date:   Mon Dec 23 13:24:35 2013 +0100

    ahci: add PCI ID for Marvell 88SE9170 SATA controller
    
    commit e098f5cbe9d410e7878b50f524dce36cc83ec40e upstream.
    
    This patch adds support for the PCI ID provided by the Marvell 88SE9170
    SATA controller.
    
    Signed-off-by: Simon Guinot <sguinot@lacie.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2c62ec3b445d55819b7d96c3d45af97b0678af0
Author: John David Anglin <dave.anglin@bell.net>
Date:   Sun Jan 5 21:25:00 2014 -0500

    parisc: Ensure full cache coherency for kmap/kunmap
    
    commit f8dae00684d678afa13041ef170cecfd1297ed40 upstream.
    
    Helge Deller noted a few weeks ago problems with the AIO support on
    parisc. This change is the result of numerous iterations on how best to
    deal with this problem.
    
    The solution adopted here is to provide full cache coherency in a
    uniform manner on all parisc systems. This involves calling
    flush_dcache_page() on kmap operations and flush_kernel_dcache_page() on
    kunmap operations. As a result, the copy_user_page() and
    clear_user_page() functions can be removed and the overall code is
    simpler.
    
    The change ensures that both userspace and kernel aliases to a mapped
    page are invalidated and flushed. This is necessary for the correct
    operation of PA8800 and PA8900 based systems which do not support
    inequivalent aliases.
    
    With this change, I have observed no cache related issues on c8000 and
    rp3440. It is now possible for example to do kernel builds with "-j64"
    on four way systems.
    
    On systems using XFS file systems, the patch recently posted by Mikulas
    Patocka to "fix crash using XFS on loopback" is needed to avoid a hang
    caused by an uninitialized lock passed to flush_dcache_page() in the
    page struct.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e45410185006f748b0d48292550cfad2e37f47a5
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sun Jan 5 20:07:02 2014 -0500

    drm/nouveau/bios: make jump conditional
    
    commit 6d60792ec059d9f2139828f9f017679abb81aa73 upstream.
    
    This fixes a hang in VBIOS scripts of the form "condition; jump".
    The jump used to always be executed, while now it will only be
    executed if the condition is true.
    
    See https://bugs.freedesktop.org/show_bug.cgi?id=72943
    
    Reported-by: Darcy Brás da Silva <dardevelin@cidadecool.com>
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b251b2f4a378b977f7d203e6a269b2fe28af3330
Author: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Date:   Mon Dec 16 19:16:09 2013 +0100

    ARM: shmobile: mackerel: Fix coherent DMA mask
    
    commit b6328a6b7ba57fc84c38248f6f0e387e1170f1a8 upstream.
    
    Commit 4dcfa60071b3d23f0181f27d8519f12e37cefbb9 ("ARM: DMA-API: better
    handing of DMA masks for coherent allocations") added an additional
    check to the coherent DMA mask that results in an error when the mask is
    larger than what dma_addr_t can address.
    
    Set the LCDC coherent DMA mask to DMA_BIT_MASK(32) instead of ~0 to fix
    the problem.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 642e26154d7d6dc384149e0a8f1141b1fa1e6f94
Author: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Date:   Mon Dec 16 19:16:07 2013 +0100

    ARM: shmobile: armadillo: Fix coherent DMA mask
    
    commit dcd740b645003b866d7eb30d13d34d0729cce9db upstream.
    
    Commit 4dcfa60071b3d23f0181f27d8519f12e37cefbb9 ("ARM: DMA-API: better
    handing of DMA masks for coherent allocations") added an additional
    check to the coherent DMA mask that results in an error when the mask is
    larger than what dma_addr_t can address.
    
    Set the LCDC coherent DMA mask to DMA_BIT_MASK(32) instead of ~0 to fix
    the problem.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a713b10e08e6d9214d506a55c39b9546b8a0840b
Author: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Date:   Mon Dec 16 19:16:08 2013 +0100

    ARM: shmobile: kzm9g: Fix coherent DMA mask
    
    commit 4f387323853c495ac589210832fad4503f75a0e7 upstream.
    
    Commit 4dcfa60071b3d23f0181f27d8519f12e37cefbb9 ("ARM: DMA-API: better
    handing of DMA masks for coherent allocations") added an additional
    check to the coherent DMA mask that results in an error when the mask is
    larger than what dma_addr_t can address.
    
    Set the LCDC coherent DMA mask to DMA_BIT_MASK(32) instead of ~0 to fix
    the problem.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2a9f5890cf777ed26a1d3f693f79992671662a6
Author: Abhilash Kesavan <a.kesavan@samsung.com>
Date:   Thu Dec 12 08:32:02 2013 +0530

    ARM: dts: exynos5250: Fix MDMA0 clock number
    
    commit 8777539479abd7b3efeb691685415dc2b057d0e0 upstream.
    
    Due to incorrect clock specified in MDMA0 node, using MDMA0 controller
    could cause system failures, due to wrong clock being controlled. This
    patch fixes this by specifying correct clock.
    
    Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
    Acked-by: Mike Turquette <mturquette@linaro.org>
    [t.figa: Corrected commit message and description.]
    Signed-off-by: Tomasz Figa <t.figa@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 167ce5e7b14e282c645ed8b78971420958cd5665
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Fri Jan 3 15:01:39 2014 +0000

    ARM: fix "bad mode in ... handler" message for undefined instructions
    
    commit 29c350bf28da333e41e30497b649fe335712a2ab upstream.
    
    The array was missing the final entry for the undefined instruction
    exception handler; this commit adds it.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4adf2b4bd303e73dfc13c3428383a8dba129fdb5
Author: Russell King <rmk+kernel@arm.linux.org.uk>
Date:   Sun Dec 29 12:39:50 2013 +0000

    ARM: fix footbridge clockevent device
    
    commit 4ff859fe1dc0da0f87bbdfff78f527898878fa4a upstream.
    
    The clockevents code was being told that the footbridge clock event
    device ticks at 16x the rate which it actually does.  This leads to
    timekeeping problems since it allows the clocksource to wrap before
    the kernel notices.  Fix this by using the correct clock.
    
    Fixes: 4e8d76373c9fd ("ARM: footbridge: convert to clockevents/clocksource")
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e42fa04afb0dae65292683a5dcad85572ab7553
Author: Simon Horman <horms@verge.net.au>
Date:   Sun May 19 15:46:49 2013 +0000

    net: Loosen constraints for recalculating checksum in skb_segment()
    
    [ Upstream commit 1cdbcb7957cf9e5f841dbcde9b38fd18a804208b ]
    
    This is a generic solution to resolve a specific problem that I have observed.
    
    If the encapsulation of an skb changes then ability to offload checksums
    may also change. In particular it may be necessary to perform checksumming
    in software.
    
    An example of such a case is where a non-GRE packet is received but
    is to be encapsulated and transmitted as GRE.
    
    Another example relates to my proposed support for for packets
    that are non-MPLS when received but MPLS when transmitted.
    
    The cost of this change is that the value of the csum variable may be
    checked when it previously was not. In the case where the csum variable is
    true this is pure overhead. In the case where the csum variable is false it
    leads to software checksumming, which I believe also leads to correct
    checksums in transmitted packets for the cases described above.
    
    Further analysis:
    
    This patch relies on the return value of can_checksum_protocol()
    being correct and in turn the return value of skb_network_protocol(),
    used to provide the protocol parameter of can_checksum_protocol(),
    being correct. It also relies on the features passed to skb_segment()
    and in turn to can_checksum_protocol() being correct.
    
    I believe that this problem has not been observed for VLANs because it
    appears that almost all drivers, the exception being xgbe, set
    vlan_features such that that the checksum offload support for VLAN packets
    is greater than or equal to that of non-VLAN packets.
    
    I wonder if the code in xgbe may be an oversight and the hardware does
    support checksumming of VLAN packets.  If so it may be worth updating the
    vlan_features of the driver as this patch will force such checksums to be
    performed in software rather than hardware.
    
    Signed-off-by: Simon Horman <horms@verge.net.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfe2d46afe3448ca78e251ff56ff9c6dd565076b
Author: Curt Brune <curt@cumulusnetworks.com>
Date:   Mon Jan 6 11:00:32 2014 -0800

    bridge: use spin_lock_bh() in br_multicast_set_hash_max
    
    [ Upstream commit fe0d692bbc645786bce1a98439e548ae619269f5 ]
    
    br_multicast_set_hash_max() is called from process context in
    net/bridge/br_sysfs_br.c by the sysfs store_hash_max() function.
    
    br_multicast_set_hash_max() calls spin_lock(&br->multicast_lock),
    which can deadlock the CPU if a softirq that also tries to take the
    same lock interrupts br_multicast_set_hash_max() while the lock is
    held .  This can happen quite easily when any of the bridge multicast
    timers expire, which try to take the same lock.
    
    The fix here is to use spin_lock_bh(), preventing other softirqs from
    executing on this CPU.
    
    Steps to reproduce:
    
    1. Create a bridge with several interfaces (I used 4).
    2. Set the "multicast query interval" to a low number, like 2.
    3. Enable the bridge as a multicast querier.
    4. Repeatedly set the bridge hash_max parameter via sysfs.
    
      # brctl addbr br0
      # brctl addif br0 eth1 eth2 eth3 eth4
      # brctl setmcqi br0 2
      # brctl setmcquerier br0 1
    
      # while true ; do echo 4096 > /sys/class/net/br0/bridge/hash_max; done
    
    Signed-off-by: Curt Brune <curt@cumulusnetworks.com>
    Signed-off-by: Scott Feldman <sfeldma@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50ba56ca77a62c3bc36ba9bde7bffecc63c30477
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Jan 2 19:50:52 2014 -0500

    netpoll: Fix missing TXQ unlock and and OOPS.
    
    [ Upstream commit aca5f58f9ba803ec8c2e6bcf890db17589e8dfcc ]
    
    The VLAN tag handling code in netpoll_send_skb_on_dev() has two problems.
    
    1) It exits without unlocking the TXQ.
    
    2) It then tries to queue a NULL skb to npinfo->txq.
    
    Reported-by: Ahmed Tamrawi <atamrawi@iastate.edu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7c28ed53545ee8972baf31c89a4e801be228e99
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Mon Dec 30 23:40:50 2013 +0100

    net: llc: fix use after free in llc_ui_recvmsg
    
    [ Upstream commit 4d231b76eef6c4a6bd9c96769e191517765942cb ]
    
    While commit 30a584d944fb fixes datagram interface in LLC, a use
    after free bug has been introduced for SOCK_STREAM sockets that do
    not make use of MSG_PEEK.
    
    The flow is as follow ...
    
      if (!(flags & MSG_PEEK)) {
        ...
        sk_eat_skb(sk, skb, false);
        ...
      }
      ...
      if (used + offset < skb->len)
        continue;
    
    ... where sk_eat_skb() calls __kfree_skb(). Therefore, cache
    original length and work on skb_len to check partial reads.
    
    Fixes: 30a584d944fb ("[LLX]: SOCK_DGRAM interface fixes")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Stephen Hemminger <stephen@networkplumber.org>
    Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a0827c4051600d836b16ed9cb6caf78b26573bc
Author: Jason Wang <jasowang@redhat.com>
Date:   Mon Dec 30 11:34:40 2013 +0800

    virtio-net: fix refill races during restore
    
    [ Upstream commit 6cd4ce0099da7702f885b6fa9ebb49e3831d90b4 ]
    
    During restoring, try_fill_recv() was called with neither napi lock nor napi
    disabled. This can lead two try_fill_recv() was called in the same time. Fix
    this by refilling before trying to enable napi.
    
    Fixes 0741bcb5584f9e2390ae6261573c4de8314999f2
    (virtio: net: Add freeze, restore handlers to support S4).
    
    Cc: Amit Shah <amit.shah@redhat.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcd8e312578603626f0d78084d7ec2e444489aa4
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu Dec 26 15:32:55 2013 +0200

    virtio_net: don't leak memory or block when too many frags
    
    We leak an skb when there are too many frags,
    we also stop processing the packet in the middle,
    the result is almost sure to be loss of networking.
    
    Reported-by: Michael Dalton <mwdalton@google.com>
    Acked-by: Michael Dalton <mwdalton@google.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59d2a52eb56dcdaec3c81c456bf408cbab13bde6
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu Dec 26 15:32:51 2013 +0200

    virtio-net: make all RX paths handle errors consistently
    
    receive mergeable now handles errors internally.
    Do same for big and small packet paths, otherwise
    the logic is too hard to follow.
    
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: David S. Miller <davem@davemloft.net>
    Acked-by: Michael Dalton <mwdalton@google.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    (cherry picked from commit f121159d72091f25afb22007c833e60a6845e912)
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e32904ec6251df8e552074c9eb068606955d894c
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu Dec 26 15:32:47 2013 +0200

    virtio_net: fix error handling for mergeable buffers
    
    Eric Dumazet noticed that if we encounter an error
    when processing a mergeable buffer, we don't
    dequeue all of the buffers from this packet,
    the result is almost sure to be loss of networking.
    
    Fix this issue.
    
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Michael Dalton <mwdalton@google.com>
    Acked-by: Michael Dalton <mwdalton@google.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    (cherry picked from commit 8fc3b9e9a229778e5af3aa453c44f1a3857ba769)
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c726095ec74daabd48a9a4ed48d46304601017b4
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Dec 31 16:23:35 2013 -0500

    vlan: Fix header ops passthru when doing TX VLAN offload.
    
    [ Upstream commit 2205369a314e12fcec4781cc73ac9c08fc2b47de ]
    
    When the vlan code detects that the real device can do TX VLAN offloads
    in hardware, it tries to arrange for the real device's header_ops to
    be invoked directly.
    
    But it does so illegally, by simply hooking the real device's
    header_ops up to the VLAN device.
    
    This doesn't work because we will end up invoking a set of header_ops
    routines which expect a device type which matches the real device, but
    will see a VLAN device instead.
    
    Fix this by providing a pass-thru set of header_ops which will arrange
    to pass the proper real device instead.
    
    To facilitate this add a dev_rebuild_header().  There are
    implementations which provide a ->cache and ->create but not a
    ->rebuild (f.e. PLIP).  So we need a helper function just like
    dev_hard_header() to avoid crashes.
    
    Use this helper in the one existing place where the
    header_ops->rebuild was being invoked, the neighbour code.
    
    With lots of help from Florian Westphal.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05df3bfbc832046a774fce22654cc55260cd1583
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Dec 23 00:32:31 2013 +0100

    net: rose: restore old recvmsg behavior
    
    [ Upstream commit f81152e35001e91997ec74a7b4e040e6ab0acccf ]
    
    recvmsg handler in net/rose/af_rose.c performs size-check ->msg_namelen.
    
    After commit f3d3342602f8bcbf37d7c46641cb9bca7618eb1c
    (net: rework recvmsg handler msg_name and msg_namelen logic), we now
    always take the else branch due to namelen being initialized to 0.
    
    Digging in netdev-vger-cvs git repo shows that msg_namelen was
    initialized with a fixed-size since at least 1995, so the else branch
    was never taken.
    
    Compile tested only.
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b99874ddd5197368486a48d62916a1bd33b0fc6
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Wed Dec 18 23:49:42 2013 -0500

    rds: prevent dereference of a NULL device
    
    [ Upstream commit c2349758acf1874e4c2b93fe41d072336f1a31d0 ]
    
    Binding might result in a NULL device, which is dereferenced
    causing this BUG:
    
    [ 1317.260548] BUG: unable to handle kernel NULL pointer dereference at 000000000000097
    4
    [ 1317.261847] IP: [<ffffffff84225f52>] rds_ib_laddr_check+0x82/0x110
    [ 1317.263315] PGD 418bcb067 PUD 3ceb21067 PMD 0
    [ 1317.263502] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    [ 1317.264179] Dumping ftrace buffer:
    [ 1317.264774]    (ftrace buffer empty)
    [ 1317.265220] Modules linked in:
    [ 1317.265824] CPU: 4 PID: 836 Comm: trinity-child46 Tainted: G        W    3.13.0-rc4-
    next-20131218-sasha-00013-g2cebb9b-dirty #4159
    [ 1317.267415] task: ffff8803ddf33000 ti: ffff8803cd31a000 task.ti: ffff8803cd31a000
    [ 1317.268399] RIP: 0010:[<ffffffff84225f52>]  [<ffffffff84225f52>] rds_ib_laddr_check+
    0x82/0x110
    [ 1317.269670] RSP: 0000:ffff8803cd31bdf8  EFLAGS: 00010246
    [ 1317.270230] RAX: 0000000000000000 RBX: ffff88020b0dd388 RCX: 0000000000000000
    [ 1317.270230] RDX: ffffffff8439822e RSI: 00000000000c000a RDI: 0000000000000286
    [ 1317.270230] RBP: ffff8803cd31be38 R08: 0000000000000000 R09: 0000000000000000
    [ 1317.270230] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
    [ 1317.270230] R13: 0000000054086700 R14: 0000000000a25de0 R15: 0000000000000031
    [ 1317.270230] FS:  00007ff40251d700(0000) GS:ffff88022e200000(0000) knlGS:000000000000
    0000
    [ 1317.270230] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 1317.270230] CR2: 0000000000000974 CR3: 00000003cd478000 CR4: 00000000000006e0
    [ 1317.270230] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 1317.270230] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000090602
    [ 1317.270230] Stack:
    [ 1317.270230]  0000000054086700 5408670000a25de0 5408670000000002 0000000000000000
    [ 1317.270230]  ffffffff84223542 00000000ea54c767 0000000000000000 ffffffff86d26160
    [ 1317.270230]  ffff8803cd31be68 ffffffff84223556 ffff8803cd31beb8 ffff8800c6765280
    [ 1317.270230] Call Trace:
    [ 1317.270230]  [<ffffffff84223542>] ? rds_trans_get_preferred+0x42/0xa0
    [ 1317.270230]  [<ffffffff84223556>] rds_trans_get_preferred+0x56/0xa0
    [ 1317.270230]  [<ffffffff8421c9c3>] rds_bind+0x73/0xf0
    [ 1317.270230]  [<ffffffff83e4ce62>] SYSC_bind+0x92/0xf0
    [ 1317.270230]  [<ffffffff812493f8>] ? context_tracking_user_exit+0xb8/0x1d0
    [ 1317.270230]  [<ffffffff8119313d>] ? trace_hardirqs_on+0xd/0x10
    [ 1317.270230]  [<ffffffff8107a852>] ? syscall_trace_enter+0x32/0x290
    [ 1317.270230]  [<ffffffff83e4cece>] SyS_bind+0xe/0x10
    [ 1317.270230]  [<ffffffff843a6ad0>] tracesys+0xdd/0xe2
    [ 1317.270230] Code: 00 8b 45 cc 48 8d 75 d0 48 c7 45 d8 00 00 00 00 66 c7 45 d0 02 00
    89 45 d4 48 89 df e8 78 49 76 ff 41 89 c4 85 c0 75 0c 48 8b 03 <80> b8 74 09 00 00 01 7
    4 06 41 bc 9d ff ff ff f6 05 2a b6 c2 02
    [ 1317.270230] RIP  [<ffffffff84225f52>] rds_ib_laddr_check+0x82/0x110
    [ 1317.270230]  RSP <ffff8803cd31bdf8>
    [ 1317.270230] CR2: 0000000000000974
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 717e66b3375ed5ea69e8cea4352aeacc64007499
Author: Li RongQing <roy.qing.li@gmail.com>
Date:   Thu Dec 19 12:40:26 2013 +0800

    ipv6: always set the new created dst's from in ip6_rt_copy
    
    [ Upstream commit 24f5b855e17df7e355eacd6c4a12cc4d6a6c9ff0 ]
    
    ip6_rt_copy only sets dst.from if ort has flag RTF_ADDRCONF and RTF_DEFAULT.
    but the prefix routes which did get installed by hand locally can have an
    expiration, and no any flag combination which can ensure a potential from
    does never expire, so we should always set the new created dst's from.
    
    This also fixes the new created dst is always expired since the ort, which
    is created by RA, maybe has RTF_EXPIRES and RTF_ADDRCONF, but no RTF_DEFAULT.
    
    Suggested-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    CC: Gao feng <gaofeng@cn.fujitsu.com>
    Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf3daa7cbcf9ac14a7549239d7ff3464138a79c8
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Dec 19 10:53:02 2013 -0800

    net: fec: fix potential use after free
    
    [ Upstream commit 7a2a84518cfb263d2c4171b3d63671f88316adb2 ]
    
    skb_tx_timestamp(skb) should be called _before_ TX completion
    has a chance to trigger, otherwise it is too late and we access
    freed memory.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Fixes: de5fb0a05348 ("net: fec: put tx to napi poll function to fix dead lock")
    Cc: Frank Li <Frank.Li@freescale.com>
    Cc: Richard Cochran <richardcochran@gmail.com>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Acked-by: Frank Li <Frank.Li@freescale.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f3843be6e6d1fcc5bcdad42b569a5d4797d9d1f
Author: Salva Peiró <speiro@ai2.upv.es>
Date:   Tue Dec 17 10:06:30 2013 +0100

    hamradio/yam: fix info leak in ioctl
    
    [ Upstream commit 8e3fbf870481eb53b2d3a322d1fc395ad8b367ed ]
    
    The yam_ioctl() code fails to initialise the cmd field
    of the struct yamdrv_ioctl_cfg. Add an explicit memset(0)
    before filling the structure to avoid the 4-byte info leak.
    
    Signed-off-by: Salva Peiró <speiro@ai2.upv.es>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2173ca37c090930f51f701fdd963b63fe2502789
Author: Wenliang Fan <fanwlexca@gmail.com>
Date:   Tue Dec 17 11:25:28 2013 +0800

    drivers/net/hamradio: Integer overflow in hdlcdrv_ioctl()
    
    [ Upstream commit e9db5c21d3646a6454fcd04938dd215ac3ab620a ]
    
    The local variable 'bi' comes from userspace. If userspace passed a
    large number to 'bi.data.calibrate', there would be an integer overflow
    in the following line:
    	s->hdlctx.calibrate = bi.data.calibrate * s->par.bitrate / 16;
    
    Signed-off-by: Wenliang Fan <fanwlexca@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit def8361a33908749838138125db0828420546815
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Tue Dec 17 00:38:39 2013 +0100

    net: inet_diag: zero out uninitialized idiag_{src,dst} fields
    
    [ Upstream commit b1aac815c0891fe4a55a6b0b715910142227700f ]
    
    Jakub reported while working with nlmon netlink sniffer that parts of
    the inet_diag_sockid are not initialized when r->idiag_family != AF_INET6.
    That is, fields of r->id.idiag_src[1 ... 3], r->id.idiag_dst[1 ... 3].
    
    In fact, it seems that we can leak 6 * sizeof(u32) byte of kernel [slab]
    memory through this. At least, in udp_dump_one(), we allocate a skb in ...
    
      rep = nlmsg_new(sizeof(struct inet_diag_msg) + ..., GFP_KERNEL);
    
    ... and then pass that to inet_sk_diag_fill() that puts the whole struct
    inet_diag_msg into the skb, where we only fill out r->id.idiag_src[0],
    r->id.idiag_dst[0] and leave the rest untouched:
    
      r->id.idiag_src[0] = inet->inet_rcv_saddr;
      r->id.idiag_dst[0] = inet->inet_daddr;
    
    struct inet_diag_msg embeds struct inet_diag_sockid that is correctly /
    fully filled out in IPv6 case, but for IPv4 not.
    
    So just zero them out by using plain memset (for this little amount of
    bytes it's probably not worth the extra check for idiag_family == AF_INET).
    
    Similarly, fix also other places where we fill that out.
    
    Reported-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85e963b89ad0727eca17bf0ac65a1cbf110b1bb6
Author: Timo Teräs <timo.teras@iki.fi>
Date:   Mon Dec 16 11:02:09 2013 +0200

    ip_gre: fix msg_name parsing for recvfrom/recvmsg
    
    [ Upstream commit 0e3da5bb8da45890b1dc413404e0f978ab71173e ]
    
    ipgre_header_parse() needs to parse the tunnel's ip header and it
    uses mac_header to locate the iphdr. This got broken when gre tunneling
    was refactored as mac_header is no longer updated to point to iphdr.
    Introduce skb_pop_mac_header() helper to do the mac_header assignment
    and use it in ipgre_rcv() to fix msg_name parsing.
    
    Bug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)
    
    Cc: Pravin B Shelar <pshelar@nicira.com>
    Signed-off-by: Timo Teräs <timo.teras@iki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57bc52eb25cff3ddd096598bf40e9be7673eb83a
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Fri Dec 13 10:54:22 2013 -0500

    net: unix: allow bind to fail on mutex lock
    
    [ Upstream commit 37ab4fa7844a044dc21fde45e2a0fc2f3c3b6490 ]
    
    This is similar to the set_peek_off patch where calling bind while the
    socket is stuck in unix_dgram_recvmsg() will block and cause a hung task
    spew after a while.
    
    This is also the last place that did a straightforward mutex_lock(), so
    there shouldn't be any more of these patches.
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 36ffb5708649eb5215c14548d692406bc287cb24
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Fri Dec 13 15:12:27 2013 +0100

    ipv6: fix illegal mac_header comparison on 32bit
    
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02cbaec37a24f39e83b51a519147f79921299e24
Author: Jason Wang <jasowang@redhat.com>
Date:   Fri Dec 13 17:21:27 2013 +0800

    netvsc: don't flush peers notifying work during setting mtu
    
    [ Upstream commit 50dc875f2e6e2e04aed3b3033eb0ac99192d6d02 ]
    
    There's a possible deadlock if we flush the peers notifying work during setting
    mtu:
    
    [   22.991149] ======================================================
    [   22.991173] [ INFO: possible circular locking dependency detected ]
    [   22.991198] 3.10.0-54.0.1.el7.x86_64.debug #1 Not tainted
    [   22.991219] -------------------------------------------------------
    [   22.991243] ip/974 is trying to acquire lock:
    [   22.991261]  ((&(&net_device_ctx->dwork)->work)){+.+.+.}, at: [<ffffffff8108af95>] flush_work+0x5/0x2e0
    [   22.991307]
    but task is already holding lock:
    [   22.991330]  (rtnl_mutex){+.+.+.}, at: [<ffffffff81539deb>] rtnetlink_rcv+0x1b/0x40
    [   22.991367]
    which lock already depends on the new lock.
    
    [   22.991398]
    the existing dependency chain (in reverse order) is:
    [   22.991426]
    -> #1 (rtnl_mutex){+.+.+.}:
    [   22.991449]        [<ffffffff810dfdd9>] __lock_acquire+0xb19/0x1260
    [   22.991477]        [<ffffffff810e0d12>] lock_acquire+0xa2/0x1f0
    [   22.991501]        [<ffffffff81673659>] mutex_lock_nested+0x89/0x4f0
    [   22.991529]        [<ffffffff815392b7>] rtnl_lock+0x17/0x20
    [   22.991552]        [<ffffffff815230b2>] netdev_notify_peers+0x12/0x30
    [   22.991579]        [<ffffffffa0340212>] netvsc_send_garp+0x22/0x30 [hv_netvsc]
    [   22.991610]        [<ffffffff8108d251>] process_one_work+0x211/0x6e0
    [   22.991637]        [<ffffffff8108d83b>] worker_thread+0x11b/0x3a0
    [   22.991663]        [<ffffffff81095e5d>] kthread+0xed/0x100
    [   22.991686]        [<ffffffff81681c6c>] ret_from_fork+0x7c/0xb0
    [   22.991715]
    -> #0 ((&(&net_device_ctx->dwork)->work)){+.+.+.}:
    [   22.991715]        [<ffffffff810de817>] check_prevs_add+0x967/0x970
    [   22.991715]        [<ffffffff810dfdd9>] __lock_acquire+0xb19/0x1260
    [   22.991715]        [<ffffffff810e0d12>] lock_acquire+0xa2/0x1f0
    [   22.991715]        [<ffffffff8108afde>] flush_work+0x4e/0x2e0
    [   22.991715]        [<ffffffff8108e1b5>] __cancel_work_timer+0x95/0x130
    [   22.991715]        [<ffffffff8108e303>] cancel_delayed_work_sync+0x13/0x20
    [   22.991715]        [<ffffffffa03404e4>] netvsc_change_mtu+0x84/0x200 [hv_netvsc]
    [   22.991715]        [<ffffffff815233d4>] dev_set_mtu+0x34/0x80
    [   22.991715]        [<ffffffff8153bc2a>] do_setlink+0x23a/0xa00
    [   22.991715]        [<ffffffff8153d054>] rtnl_newlink+0x394/0x5e0
    [   22.991715]        [<ffffffff81539eac>] rtnetlink_rcv_msg+0x9c/0x260
    [   22.991715]        [<ffffffff8155cdd9>] netlink_rcv_skb+0xa9/0xc0
    [   22.991715]        [<ffffffff81539dfa>] rtnetlink_rcv+0x2a/0x40
    [   22.991715]        [<ffffffff8155c41d>] netlink_unicast+0xdd/0x190
    [   22.991715]        [<ffffffff8155c807>] netlink_sendmsg+0x337/0x750
    [   22.991715]        [<ffffffff8150d219>] sock_sendmsg+0x99/0xd0
    [   22.991715]        [<ffffffff8150d63e>] ___sys_sendmsg+0x39e/0x3b0
    [   22.991715]        [<ffffffff8150eba2>] __sys_sendmsg+0x42/0x80
    [   22.991715]        [<ffffffff8150ebf2>] SyS_sendmsg+0x12/0x20
    [   22.991715]        [<ffffffff81681d19>] system_call_fastpath+0x16/0x1b
    
    This is because we hold the rtnl_lock() before ndo_change_mtu() and try to flush
    the work in netvsc_change_mtu(), in the mean time, netdev_notify_peers() may be
    called from worker and also trying to hold the rtnl_lock. This will lead the
    flush won't succeed forever. Solve this by not canceling and flushing the work,
    this is safe because the transmission done by NETDEV_NOTIFY_PEERS was
    synchronized with the netif_tx_disable() called by netvsc_change_mtu().
    
    Reported-by: Yaju Cao <yacao@redhat.com>
    Tested-by: Yaju Cao <yacao@redhat.com>
    Cc: K. Y. Srinivasan <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa57cd8a526cb76ae372f0963339883f8e9f69bb
Author: Nat Gurumoorthy <natg@google.com>
Date:   Mon Dec 9 10:43:21 2013 -0800

    tg3: Initialize REG_BASE_ADDR at PCI config offset 120 to 0
    
    [ Upstream commit 388d3335575f4c056dcf7138a30f1454e2145cd8 ]
    
    The new tg3 driver leaves REG_BASE_ADDR (PCI config offset 120)
    uninitialized. From power on reset this register may have garbage in it. The
    Register Base Address register defines the device local address of a
    register. The data pointed to by this location is read or written using
    the Register Data register (PCI config offset 128). When REG_BASE_ADDR has
    garbage any read or write of Register Data Register (PCI 128) will cause the
    PCI bus to lock up. The TCO watchdog will fire and bring down the system.
    
    Signed-off-by: Nat Gurumoorthy <natg@google.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d90d9ff6cac64e701f27291ecef12fdc48606bb6
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Sat Dec 7 17:26:27 2013 -0500

    net: unix: allow set_peek_off to fail
    
    [ Upstream commit 12663bfc97c8b3fdb292428105dd92d563164050 ]
    
    unix_dgram_recvmsg() will hold the readlock of the socket until recv
    is complete.
    
    In the same time, we may try to setsockopt(SO_PEEK_OFF) which will hang until
    unix_dgram_recvmsg() will complete (which can take a while) without allowing
    us to break out of it, triggering a hung task spew.
    
    Instead, allow set_peek_off to fail, this way userspace will not hang.
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Acked-by: Pavel Emelyanov <xemul@parallels.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90af0bf9303883865a8626f23b4b0ed60d4d10dc
Author: Changli Gao <xiaosuo@gmail.com>
Date:   Sun Dec 8 09:36:56 2013 -0500

    net: drop_monitor: fix the value of maxattr
    
    [ Upstream commit d323e92cc3f4edd943610557c9ea1bb4bb5056e8 ]
    
    maxattr in genl_family should be used to save the max attribute
    type, but not the max command type. Drop monitor doesn't support
    any attributes, so we should leave it as zero.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e28c2d64f8b676b7defe6a3f25aa80269aa49c7e
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Sat Dec 7 03:33:45 2013 +0100

    ipv6: don't count addrconf generated routes against gc limit
    
    [ Upstream commit a3300ef4bbb1f1e33ff0400e1e6cf7733d988f4f ]
    
    Brett Ciphery reported that new ipv6 addresses failed to get installed
    because the addrconf generated dsts where counted against the dst gc
    limit. We don't need to count those routes like we currently don't count
    administratively added routes.
    
    Because the max_addresses check enforces a limit on unbounded address
    generation first in case someone plays with router advertisments, we
    are still safe here.
    
    Reported-by: Brett Ciphery <brett.ciphery@windriver.com>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3ac8a134305ed1522d8987e62249a85efb09c98
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Fri Dec 6 11:36:15 2013 +0100

    packet: fix send path when running with proto == 0
    
    [ Upstream commit 66e56cd46b93ef407c60adcac62cf33b06119d50 ]
    
    Commit e40526cb20b5 introduced a cached dev pointer, that gets
    hooked into register_prot_hook(), __unregister_prot_hook() to
    update the device used for the send path.
    
    We need to fix this up, as otherwise this will not work with
    sockets created with protocol = 0, plus with sll_protocol = 0
    passed via sockaddr_ll when doing the bind.
    
    So instead, assign the pointer directly. The compiler can inline
    these helper functions automagically.
    
    While at it, also assume the cached dev fast-path as likely(),
    and document this variant of socket creation as it seems it is
    not widely used (seems not even the author of TX_RING was aware
    of that in his reference example [1]). Tested with reproducer
    from e40526cb20b5.
    
     [1] http://wiki.ipxwarzone.com/index.php5?title=Linux_packet_mmap#Example
    
    Fixes: e40526cb20b5 ("packet: fix use after free race in send path when dev is released")
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Tested-by: Salam Noureddine <noureddine@aristanetworks.com>
    Tested-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ea85d9e4113ba0b2d67d762a29c809df948426a
Author: Andrey Vagin <avagin@openvz.org>
Date:   Thu Dec 5 18:36:21 2013 +0400

    virtio: delete napi structures from netdev before releasing memory
    
    [ Upstream commit d4fb84eefe5164f6a6ea51d0a9e26280c661a0dd ]
    
    free_netdev calls netif_napi_del too, but it's too late, because napi
    structures are placed on vi->rq. netif_napi_add() is called from
    virtnet_alloc_queues.
    
    general protection fault: 0000 [#1] SMP
    Dumping ftrace buffer:
       (ftrace buffer empty)
    Modules linked in: ip6table_filter ip6_tables iptable_filter ip_tables virtio_balloon pcspkr virtio_net(-) i2c_pii
    CPU: 1 PID: 347 Comm: rmmod Not tainted 3.13.0-rc2+ #171
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    task: ffff8800b779c420 ti: ffff8800379e0000 task.ti: ffff8800379e0000
    RIP: 0010:[<ffffffff81322e19>]  [<ffffffff81322e19>] __list_del_entry+0x29/0xd0
    RSP: 0018:ffff8800379e1dd0  EFLAGS: 00010a83
    RAX: 6b6b6b6b6b6b6b6b RBX: ffff8800379c2fd0 RCX: dead000000200200
    RDX: 6b6b6b6b6b6b6b6b RSI: 0000000000000001 RDI: ffff8800379c2fd0
    RBP: ffff8800379e1dd0 R08: 0000000000000001 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000001 R12: ffff8800379c2f90
    R13: ffff880037839160 R14: 0000000000000000 R15: 00000000013352f0
    FS:  00007f1400e34740(0000) GS:ffff8800bfb00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00007f464124c763 CR3: 00000000b68cf000 CR4: 00000000000006e0
    Stack:
     ffff8800379e1df0 ffffffff8155beab 6b6b6b6b6b6b6b2b ffff8800378391c0
     ffff8800379e1e18 ffffffff8156499b ffff880037839be0 ffff880037839d20
     ffff88003779d3f0 ffff8800379e1e38 ffffffffa003477c ffff88003779d388
    Call Trace:
     [<ffffffff8155beab>] netif_napi_del+0x1b/0x80
     [<ffffffff8156499b>] free_netdev+0x8b/0x110
     [<ffffffffa003477c>] virtnet_remove+0x7c/0x90 [virtio_net]
     [<ffffffff813ae323>] virtio_dev_remove+0x23/0x80
     [<ffffffff813f62ef>] __device_release_driver+0x7f/0xf0
     [<ffffffff813f6ca0>] driver_detach+0xc0/0xd0
     [<ffffffff813f5f28>] bus_remove_driver+0x58/0xd0
     [<ffffffff813f72ec>] driver_unregister+0x2c/0x50
     [<ffffffff813ae65e>] unregister_virtio_driver+0xe/0x10
     [<ffffffffa0036942>] virtio_net_driver_exit+0x10/0x6ce [virtio_net]
     [<ffffffff810d7cf2>] SyS_delete_module+0x172/0x220
     [<ffffffff810a732d>] ? trace_hardirqs_on+0xd/0x10
     [<ffffffff810f5d4c>] ? __audit_syscall_entry+0x9c/0xf0
     [<ffffffff81677f69>] system_call_fastpath+0x16/0x1b
    Code: 00 00 55 48 8b 17 48 b9 00 01 10 00 00 00 ad de 48 8b 47 08 48 89 e5 48 39 ca 74 29 48 b9 00 02 20 00 00 00
    RIP  [<ffffffff81322e19>] __list_del_entry+0x29/0xd0
     RSP <ffff8800379e1dd0>
    ---[ end trace d5931cd3f87c9763 ]---
    
    Fixes: 986a4f4d452d (virtio_net: multiqueue support)
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Signed-off-by: Andrey Vagin <avagin@openvz.org>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da47609f56067ea8515e79af821190a4b8bd6e6d
Author: Jason Wang <jasowang@redhat.com>
Date:   Wed Dec 11 13:08:34 2013 +0800

    macvtap: signal truncated packets
    
    [ Upstream commit ce232ce01d61b184202bb185103d119820e1260c ]
    
    macvtap_put_user() never return a value grater than iov length, this in fact
    bypasses the truncated checking in macvtap_recvmsg(). Fix this by always
    returning the size of packet plus the possible vlan header to let the trunca
    checking work.
    
    Cc: Vlad Yasevich <vyasevich@gmail.com>
    Cc: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfc2ba016161cc523ed6ea9262651b34070b8fff
Author: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Date:   Fri Dec 6 14:16:51 2013 +0800

    tun: update file current position
    
    [ Upstream commit d0b7da8afa079ffe018ab3e92879b7138977fc8f ]
    
    Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1cef3c9843709fd913021679c3bf711c8301627
Author: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Date:   Fri Dec 6 14:16:50 2013 +0800

    macvtap: update file current position
    
    [ Upstream commit e6ebc7f16ca1434a334647aa56399c546be4e64b ]
    
    Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5938ed90c0087020ba5c27d57b87174afde6907a
Author: Vlad Yasevich <vyasevic@redhat.com>
Date:   Tue Nov 26 12:37:12 2013 -0500

    macvtap: Do not double-count received packets
    
    [ Upstream commit 006da7b07bc4d3a7ffabad17cf639eec6849c9dc ]
    
    Currently macvlan will count received packets after calling each
    vlans receive handler.   Macvtap attempts to count the packet
    yet again when the user reads the packet from the tap socket.
    This code doesn't do this consistently either.  Remove the
    counting from macvtap and let only macvlan count received
    packets.
    
    Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb309e485a2c7e5c354ed0c3ed24a0714643e6bd
Author: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
Date:   Mon Dec 2 15:41:39 2013 -0800

    rds: prevent BUG_ON triggered on congestion update to loopback
    
    [ Upstream commit 18fc25c94eadc52a42c025125af24657a93638c0 ]
    
    After congestion update on a local connection, when rds_ib_xmit returns
    less bytes than that are there in the message, rds_send_xmit calls
    back rds_ib_xmit with an offset that causes BUG_ON(off & RDS_FRAG_SIZE)
    to trigger.
    
    For a 4Kb PAGE_SIZE rds_ib_xmit returns min(8240,4096)=4096 when actually
    the message contains 8240 bytes. rds_send_xmit thinks there is more to send
    and calls rds_ib_xmit again with a data offset "off" of 4096-48(rds header)
    =4048 bytes thus hitting the BUG_ON(off & RDS_FRAG_SIZE) [RDS_FRAG_SIZE=4k].
    
    The commit 6094628bfd94323fc1cea05ec2c6affd98c18f7f
    "rds: prevent BUG_ON triggering on congestion map updates" introduced
    this regression. That change was addressing the triggering of a different
    BUG_ON in rds_send_xmit() on PowerPC architecture with 64Kbytes PAGE_SIZE:
     	BUG_ON(ret != 0 &&
        		 conn->c_xmit_sg == rm->data.op_nents);
    This was the sequence it was going through:
    (rds_ib_xmit)
    /* Do not send cong updates to IB loopback */
    if (conn->c_loopback
       && rm->m_inc.i_hdr.h_flags & RDS_FLAG_CONG_BITMAP) {
      	rds_cong_map_updated(conn->c_fcong, ~(u64) 0);
        	return sizeof(struct rds_header) + RDS_CONG_MAP_BYTES;
    }
    rds_ib_xmit returns 8240
    rds_send_xmit:
      c_xmit_data_off = 0 + 8240 - 48 (rds header accounted only the first time)
       		 = 8192
      c_xmit_data_off < 65536 (sg->length), so calls rds_ib_xmit again
    rds_ib_xmit returns 8240
    rds_send_xmit:
      c_xmit_data_off = 8192 + 8240 = 16432, calls rds_ib_xmit again
      and so on (c_xmit_data_off 24672,32912,41152,49392,57632)
    rds_ib_xmit returns 8240
    On this iteration this sequence causes the BUG_ON in rds_send_xmit:
        while (ret) {
        	tmp = min_t(int, ret, sg->length - conn->c_xmit_data_off);
        	[tmp = 65536 - 57632 = 7904]
        	conn->c_xmit_data_off += tmp;
        	[c_xmit_data_off = 57632 + 7904 = 65536]
        	ret -= tmp;
        	[ret = 8240 - 7904 = 336]
        	if (conn->c_xmit_data_off == sg->length) {
        		conn->c_xmit_data_off = 0;
        		sg++;
        		conn->c_xmit_sg++;
        		BUG_ON(ret != 0 &&
        			conn->c_xmit_sg == rm->data.op_nents);
        		[c_xmit_sg = 1, rm->data.op_nents = 1]
    
    What the current fix does:
    Since the congestion update over loopback is not actually transmitted
    as a message, all that rds_ib_xmit needs to do is let the caller think
    the full message has been transmitted and not return partial bytes.
    It will return 8240 (RDS_CONG_MAP_BYTES+48) when PAGE_SIZE is 4Kb.
    And 64Kb+48 when page size is 64Kb.
    
    Reported-by: Josh Hunt <joshhunt00@gmail.com>
    Tested-by: Honggang Li <honli@redhat.com>
    Acked-by: Bang Nguyen <bang.nguyen@oracle.com>
    Signed-off-by: Venkat Venkatsubra <venkat.x.venkatsubra@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 908e2eb543cf0c2e88d93cfd1ce9b83b2e951aa5
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Dec 2 08:51:13 2013 -0800

    net: do not pretend FRAGLIST support
    
    [ Upstream commit 28e24c62ab3062e965ef1b3bcc244d50aee7fa85 ]
    
    Few network drivers really supports frag_list : virtual drivers.
    
    Some drivers wrongly advertise NETIF_F_FRAGLIST feature.
    
    If skb with a frag_list is given to them, packet on the wire will be
    corrupt.
    
    Remove this flag, as core networking stack will make sure to
    provide packets that can be sent without corruption.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
    Cc: Anirudha Sarangi <anirudh@xilinx.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5af58eb0bf051ad897859a0599ee6c6c9f199c10
Author: Kamala R <kamala@aristanetworks.com>
Date:   Mon Dec 2 19:55:21 2013 +0530

    IPv6: Fixed support for blackhole and prohibit routes
    
    [ Upstream commit 7150aede5dd241539686e17d9592f5ebd28a2cda ]
    
    The behaviour of blackhole and prohibit routes has been corrected by setting
    the input and output pointers of the dst variable appropriately. For
    blackhole routes, they are set to dst_discard and to ip6_pkt_discard and
    ip6_pkt_discard_out respectively for prohibit routes.
    
    ipv6: ip6_pkt_prohibit(_out) should not depend on
    CONFIG_IPV6_MULTIPLE_TABLES
    
    We need ip6_pkt_prohibit(_out) available without
    CONFIG_IPV6_MULTIPLE_TABLES
    
    Signed-off-by: Kamala R <kamala@aristanetworks.com>
    Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ac8471394930cd333a54373e4351131f85f80100
Author: Nestor Lopez Casado <nlopezcasad@logitech.com>
Date:   Thu Jul 18 06:21:30 2013 -0700

    HID: Revert "Revert "HID: Fix logitech-dj: missing Unifying device issue""
    
    commit c63e0e370028d7e4033bd40165f18499872b5183 upstream.
    
    This reverts commit 8af6c08830b1ae114d1a8b548b1f8b056e068887.
    
    This patch re-adds the workaround introduced by 596264082f10dd4
    which was reverted by 8af6c08830b1ae114.
    
    The original patch 596264 was needed to overcome a situation where
    the hid-core would drop incoming reports while probe() was being
    executed.
    
    This issue was solved by c849a6143bec520af which added
    hid_device_io_start() and hid_device_io_stop() that enable a specific
    hid driver to opt-in for input reports while its probe() is being
    executed.
    
    Commit a9dd22b730857347 modified hid-logitech-dj so as to use the
    functionality added to hid-core. Having done that, workaround 596264
    was no longer necessary and was reverted by 8af6c08.
    
    We now encounter a different problem that ends up 'again' thwarting
    the Unifying receiver enumeration. The problem is time and usb controller
    dependent. Ocasionally the reports sent to the usb receiver to start
    the paired devices enumeration fail with -EPIPE and the receiver never
    gets to enumerate the paired devices.
    
    With dcd9006b1b053c7b1c the problem was "hidden" as the call to the usb
    driver became asynchronous and none was catching the error from the
    failing URB.
    
    As the root cause for this failing SET_REPORT is not understood yet,
    -possibly a race on the usb controller drivers or a problem with the
    Unifying receiver- reintroducing this workaround solves the problem.
    
    Overall what this workaround does is: If an input report from an
    unknown device is received, then a (re)enumeration is performed.
    
    related bug:
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1194649
    
    Signed-off-by: Nestor Lopez Casado <nlopezcasad@logitech.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42ddc36a02c01afb397e60489223cc3d82e6942d
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Wed Apr 17 23:40:57 2013 -0700

    gpio-rcar: R-Car GPIO IRQ share interrupt
    
    commit c234962b808f289237a40e4ce5fc1c8066d1c9d0 upstream.
    
    R-Car H1 or Gen2 GPIO interrupts are assigned per each GPIO domain,
    but, Gen1 E1/M1 GPIO interrupts are shared for all GPIO domain.
    gpio-rcar driver needs IRQF_SHARED flags for these.
    This patch was tested on Bock-W board
    
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc77a313b995bdd4c8806593326ffea8d01ec7bc
Author: Magnus Damm <damm@opensource.se>
Date:   Wed Sep 18 15:01:16 2013 -0500

    clocksource: em_sti: Set cpu_possible_mask to fix SMP broadcast
    
    commit 2199a5574b6d94b9ca26c6345356f45ec60fef8b upstream.
    
    Update the STI driver by setting cpu_possible_mask to make EMEV2
    SMP work as expected together with the ARM broadcast timer.
    
    This breakage was introduced by:
    
    f7db706 ARM: 7674/1: smp: Avoid dummy clockevent being preferred over real hardware clock-event
    
    Without this fix SMP operation is broken on EMEV2 since no
    broadcast timer interrupts trigger on the secondary CPU cores.
    
    Signed-off-by: Magnus Damm <damm@opensource.se>
    Tested-by: Simon Horman <horms+renesas@verge.net.au>
    Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b212be3528e64ff306f7477628cc042e448742c5
Author: Axel Lin <axel.lin@ingics.com>
Date:   Mon May 6 17:03:32 2013 +0800

    irqchip: renesas-irqc: Fix irqc_probe error handling
    
    commit dfaf820a13ec160f06556e08dab423818ba87f14 upstream.
    
    The code in goto err3 path is wrong because it will call fee_irq() with k == 0,
    which means it does free_irq(p->irq[-1].requested_irq, &p->irq[-1]);
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>