commit 4e77f7f1261f65cff06918bc5e66d02a418fc842
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Nov 4 04:31:29 2013 -0800

    Linux 3.10.18

commit adc6b15872611b75ae523d6784074d2ed84b1c4e
Author: Enrico Mioso <mrkiko.rs@gmail.com>
Date:   Tue Oct 15 15:06:47 2013 +0200

    usb: serial: option: blacklist Olivetti Olicard200
    
    commit fd8573f5828873343903215f203f14dc82de397c upstream.
    
    Interface 6 of this device speaks QMI as per tests done by us.
    Credits go to Antonella for providing the hardware.
    
    Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
    Signed-off-by: Antonella Pellizzari <anto.pellizzari83@gmail.com>
    Tested-by: Dan Williams <dcbw@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 961e551e0f2e2acf2adc7465544ef25c5852a0ac
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Oct 5 18:14:18 2013 -0700

    USB: serial: option: add support for Inovia SEW858 device
    
    commit f4c19b8e165cff1a6607c21f8809441d61cab7ec upstream.
    
    This patch adds the device id for the Inovia SEW858 device to the option driver.
    
    Reported-by: Pavel Parkhomenko <ra85551@gmail.com>
    Tested-by: Pavel Parkhomenko <ra85551@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e81e74f12005c5303cc26558b1b5c4294a0be4e0
Author: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Date:   Tue Oct 8 20:03:37 2013 +0100

    USB: serial: ti_usb_3410_5052: add Abbott strip port ID to combined table as well.
    
    commit c9d09dc7ad106492c17c587b6eeb99fe3f43e522 upstream.
    
    Without this change, the USB cable for Freestyle Option and compatible
    glucometers will not be detected by the driver.
    
    Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfddde1b4056f5b7d0d365606000df3442b82cd0
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Mon Oct 14 23:21:15 2013 +0200

    serial: vt8500: add missing braces
    
    commit d969de8d83401683420638c8107dcfedb2146f37 upstream.
    
    Due to missing braces on an if statement, in presence of a device_node a
    port was always assigned -1, regardless of any alias entries in the
    device tree. Conversely, if device_node was NULL, an unitialized port
    ended up being used.
    
    This patch adds the missing braces, fixing the issues.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Tony Prisk <linux@prisktech.co.nz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit add8ec07b2a000af11be64a89b99afc8c90797e5
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Oct 11 14:47:05 2013 +0200

    wireless: radiotap: fix parsing buffer overrun
    
    commit f5563318ff1bde15b10e736e97ffce13be08bc1a upstream.
    
    When parsing an invalid radiotap header, the parser can overrun
    the buffer that is passed in because it doesn't correctly check
     1) the minimum radiotap header size
     2) the space for extended bitmaps
    
    The first issue doesn't affect any in-kernel user as they all
    check the minimum size before calling the radiotap function.
    The second issue could potentially affect the kernel if an skb
    is passed in that consists only of the radiotap header with a
    lot of extended bitmaps that extend past the SKB. In that case
    a read-only buffer overrun by at most 4 bytes is possible.
    
    Fix this by adding the appropriate checks to the parser.
    
    Reported-by: Evan Huus <eapache@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71c908a0e5c0bbc2e8ad5f9578b9529a1e6ec8aa
Author: Fengguang Wu <fengguang.wu@intel.com>
Date:   Wed Oct 16 13:47:03 2013 -0700

    writeback: fix negative bdi max pause
    
    commit e3b6c655b91e01a1dade056cfa358581b47a5351 upstream.
    
    Toralf runs trinity on UML/i386.  After some time it hangs and the last
    message line is
    
    	BUG: soft lockup - CPU#0 stuck for 22s! [trinity-child0:1521]
    
    It's found that pages_dirtied becomes very large.  More than 1000000000
    pages in this case:
    
    	period = HZ * pages_dirtied / task_ratelimit;
    	BUG_ON(pages_dirtied > 2000000000);
    	BUG_ON(pages_dirtied > 1000000000);      <---------
    
    UML debug printf shows that we got negative pause here:
    
    	ick: pause : -984
    	ick: pages_dirtied : 0
    	ick: task_ratelimit: 0
    
    	 pause:
    	+       if (pause < 0)  {
    	+               extern int printf(char *, ...);
    	+               printf("ick : pause : %li\n", pause);
    	+               printf("ick: pages_dirtied : %lu\n", pages_dirtied);
    	+               printf("ick: task_ratelimit: %lu\n", task_ratelimit);
    	+               BUG_ON(1);
    	+       }
    	        trace_balance_dirty_pages(bdi,
    
    Since pause is bounded by [min_pause, max_pause] where min_pause is also
    bounded by max_pause.  It's suspected and demonstrated that the
    max_pause calculation goes wrong:
    
    	ick: pause : -717
    	ick: min_pause : -177
    	ick: max_pause : -717
    	ick: pages_dirtied : 14
    	ick: task_ratelimit: 0
    
    The problem lies in the two "long = unsigned long" assignments in
    bdi_max_pause() which might go negative if the highest bit is 1, and the
    min_t(long, ...) check failed to protect it falling under 0.  Fix all of
    them by using "unsigned long" throughout the function.
    
    Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
    Reported-by: Toralf Förster <toralf.foerster@gmx.de>
    Tested-by: Toralf Förster <toralf.foerster@gmx.de>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c4bd2b14d14f524c51839c64aa3f79a81622562
Author: David Henningsson <david.henningsson@canonical.com>
Date:   Mon Oct 14 10:16:22 2013 +0200

    ALSA: hda - Fix inverted internal mic not indicated on some machines
    
    commit ccb041571b73888785ef7828a276e380125891a4 upstream.
    
    The create_bind_cap_vol_ctl does not create any control indicating
    that an inverted dmic is present. Therefore, create multiple
    capture volumes in this scenario, so we always have some indication
    that the internal mic is inverted.
    
    This happens on the Lenovo Ideapad U310 as well as the Lenovo Yoga 13
    (both are based on the CX20590 codec), but the fix is generic and
    could be needed for other codecs/machines too.
    
    Thanks to Szymon Acedański for the pointer and a draft patch.
    
    BugLink: https://bugs.launchpad.net/bugs/1239392
    BugLink: https://bugs.launchpad.net/bugs/1227491
    Reported-by: Szymon Acedański <accek@mimuw.edu.pl>
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f931f65de9d04daf024eeb4dd6a8fe93b7a8e91
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Oct 14 16:02:15 2013 +0200

    ALSA: us122l: Fix pcm_usb_stream mmapping regression
    
    commit ac536a848a1643e4b87e8fbd376a63091afc2ccc upstream.
    
    The pcm_usb_stream plugin requires the mremap explicitly for the read
    buffer, as it expands itself once after reading the required size.
    But the commit [314e51b9: mm: kill vma flag VM_RESERVED and
    mm->reserved_vm counter] converted blindly to a combination of
    VM_DONTEXPAND | VM_DONTDUMP like other normal drivers, and this
    resulted in the failure of mremap().
    
    For fixing this regression, we need to remove VM_DONTEXPAND for the
    read-buffer mmap.
    
    Reported-and-tested-by: James Miller <jamesstewartmiller@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ed008638ee15991b79d8867d382e141fee89a69
Author: Hugh Dickins <hughd@google.com>
Date:   Wed Oct 16 13:47:08 2013 -0700

    mm: fix BUG in __split_huge_page_pmd
    
    commit 750e8165f5e87b6a142be953640eabb13a9d350a upstream.
    
    Occasionally we hit the BUG_ON(pmd_trans_huge(*pmd)) at the end of
    __split_huge_page_pmd(): seen when doing madvise(,,MADV_DONTNEED).
    
    It's invalid: we don't always have down_write of mmap_sem there: a racing
    do_huge_pmd_wp_page() might have copied-on-write to another huge page
    before our split_huge_page() got the anon_vma lock.
    
    Forget the BUG_ON, just go back and try again if this happens.
    
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: David Rientjes <rientjes@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe0051d83cb951fbeab6712633ca2e31de22ee11
Author: James Ralston <james.d.ralston@intel.com>
Date:   Tue Sep 24 16:47:55 2013 -0700

    i2c: ismt: initialize DMA buffer
    
    commit bf4169100c909667ede6af67668b3ecce6928343 upstream.
    
    This patch adds code to initialize the DMA buffer to compensate for
    possible hardware data corruption.
    
    Signed-off-by: James Ralston <james.d.ralston@intel.com>
    [wsa: changed to use 'sizeof']
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Cc: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d99b6dd66b5778d92fc411b48037084528e1ae2
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Oct 16 03:17:47 2013 +0100

    dm snapshot: fix data corruption
    
    commit e9c6a182649f4259db704ae15a91ac820e63b0ca upstream.
    
    This patch fixes a particular type of data corruption that has been
    encountered when loading a snapshot's metadata from disk.
    
    When we allocate a new chunk in persistent_prepare, we increment
    ps->next_free and we make sure that it doesn't point to a metadata area
    by further incrementing it if necessary.
    
    When we load metadata from disk on device activation, ps->next_free is
    positioned after the last used data chunk. However, if this last used
    data chunk is followed by a metadata area, ps->next_free is positioned
    erroneously to the metadata area. A newly-allocated chunk is placed at
    the same location as the metadata area, resulting in data or metadata
    corruption.
    
    This patch changes the code so that ps->next_free skips the metadata
    area when metadata are loaded in function read_exceptions.
    
    The patch also moves a piece of code from persistent_prepare_exception
    to a separate function skip_metadata to avoid code duplication.
    
    CVE-2013-4299
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Alasdair G Kergon <agk@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e2672132dbdb79a7d70711ca5c4bd1fa770b7bd
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Tue Oct 1 17:35:43 2013 +0300

    gpio/lynxpoint: check if the interrupt is enabled in IRQ handler
    
    commit 03d152d5582abc8a1c19cb107164c3724bbd4be4 upstream.
    
    Checking LP_INT_STAT is not enough in the interrupt handler because its
    contents get updated regardless of whether the pin has interrupt enabled or
    not. This causes the driver to loop forever for GPIOs that are pulled up.
    
    Fix this by checking the interrupt enable bit for the pin as well.
    
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77fc96c899a5c926dd8ba6f340f1e04933e7bfd2
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Mon Oct 7 15:19:53 2013 +0200

    ARM: integrator: deactivate timer0 on the Integrator/CP
    
    commit 29114fd7db2fc82a34da8340d29b8fa413e03dca upstream.
    
    This fixes a long-standing Integrator/CP regression from
    commit 870e2928cf3368ca9b06bc925d0027b0a56bcd8e
    "ARM: integrator-cp: convert use CLKSRC_OF for timer init"
    
    When this code was introduced, the both aliases pointing the
    system to use timer1 as primary (clocksource) and timer2
    as secondary (clockevent) was ignored, and the system would
    simply use the first two timers found as clocksource and
    clockevent.
    
    However this made the system timeline accelerate by a
    factor x25, as it turns out that the way the clocking
    actually works (totally undocumented and found after some
    trial-and-error) is that timer0 runs @ 25MHz and timer1
    and timer2 runs @ 1MHz. Presumably this divider setting
    is a boot-on default and configurable albeit the way to
    configure it is not documented.
    
    So as a quick fix to the problem, let's mark timer0 as
    disabled, so the code will chose timer1 and timer2 as it
    used to.
    
    This also deletes the two aliases for the primary and
    secondary timer as they have been superceded by the
    auto-selection
    
    Cc: Rob Herring <rob.herring@calxeda.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a402463a7a4a4243c9c66600fd01ae800f959e3
Author: AKASHI Takahiro <takahiro.akashi@linaro.org>
Date:   Wed Oct 9 15:58:29 2013 +0100

    ARM: 7851/1: check for number of arguments in syscall_get/set_arguments()
    
    commit 3c1532df5c1b54b5f6246cdef94eeb73a39fe43a upstream.
    
    In ftrace_syscall_enter(),
        syscall_get_arguments(..., 0, n, ...)
            if (i == 0) { <handle ORIG_r0> ...; n--;}
            memcpy(..., n * sizeof(args[0]));
    If 'number of arguments(n)' is zero and 'argument index(i)' is also zero in
    syscall_get_arguments(), none of arguments should be copied by memcpy().
    Otherwise 'n--' can be a big positive number and unexpected amount of data
    will be copied. Tracing system calls which take no argument, say sync(void),
    may hit this case and eventually make the system corrupted.
    This patch fixes the issue both in syscall_get_arguments() and
    syscall_set_arguments().
    
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9babd8ab0192070535fe1bab8b86d1c7b1e71943
Author: Mariusz Ceier <mceier+kernel@gmail.com>
Date:   Mon Oct 21 19:45:04 2013 +0200

    davinci_emac.c: Fix IFF_ALLMULTI setup
    
    [ Upstream commit d69e0f7ea95fef8059251325a79c004bac01f018 ]
    
    When IFF_ALLMULTI flag is set on interface and IFF_PROMISC isn't,
    emac_dev_mcast_set should only enable RX of multicasts and reset
    MACHASH registers.
    
    It does this, but afterwards it either sets up multicast MACs
    filtering or disables RX of multicasts and resets MACHASH registers
    again, rendering IFF_ALLMULTI flag useless.
    
    This patch fixes emac_dev_mcast_set, so that multicast MACs filtering and
    disabling of RX of multicasts are skipped when IFF_ALLMULTI flag is set.
    
    Tested with kernel 2.6.37.
    
    Signed-off-by: Mariusz Ceier <mceier+kernel@gmail.com>
    Acked-by: Mugunthan V N <mugunthanvnm@ti.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8df627daa0bde7de4236ab68ef2dded12ab624c8
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Mon Oct 21 06:17:15 2013 +0200

    ipv6: probe routes asynchronous in rt6_probe
    
    [ Upstream commit c2f17e827b419918c856131f592df9521e1a38e3 ]
    
    Routes need to be probed asynchronous otherwise the call stack gets
    exhausted when the kernel attemps to deliver another skb inline, like
    e.g. xt_TEE does, and we probe at the same time.
    
    We update neigh->updated still at once, otherwise we would send to
    many probes.
    
    Cc: Julian Anastasov <ja@ssi.bg>
    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 2332d212926aaa92d4164482f6f7583c0f796647
Author: Julian Anastasov <ja@ssi.bg>
Date:   Sun Oct 20 15:43:05 2013 +0300

    netfilter: nf_conntrack: fix rt6i_gateway checks for H.323 helper
    
    [ Upstream commit 56e42441ed54b092d6c7411138ce60d049e7c731 ]
    
    Now when rt6_nexthop() can return nexthop address we can use it
    for proper nexthop comparison of directly connected destinations.
    For more information refer to commit bbb5823cf742a7
    ("netfilter: nf_conntrack: fix rt_gateway checks for H.323 helper").
    
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    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 044d6efb797bfa1131bfb510102505ba41bfec52
Author: Julian Anastasov <ja@ssi.bg>
Date:   Sun Oct 20 15:43:04 2013 +0300

    ipv6: fill rt6i_gateway with nexthop address
    
    [ Upstream commit 550bab42f83308c9d6ab04a980cc4333cef1c8fa ]
    
    Make sure rt6i_gateway contains nexthop information in
    all routes returned from lookup or when routes are directly
    attached to skb for generated ICMP packets.
    
    The effect of this patch should be a faster version of
    rt6_nexthop() and the consideration of local addresses as
    nexthop.
    
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    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 208a6152b633a33722cc53bca47c46b79e88a2ad
Author: Julian Anastasov <ja@ssi.bg>
Date:   Sun Oct 20 15:43:03 2013 +0300

    ipv6: always prefer rt6i_gateway if present
    
    [ Upstream commit 96dc809514fb2328605198a0602b67554d8cce7b ]
    
    In v3.9 6fd6ce2056de2709 ("ipv6: Do not depend on rt->n in
    ip6_finish_output2()." changed the behaviour of ip6_finish_output2()
    such that the recently introduced rt6_nexthop() is used
    instead of an assigned neighbor.
    
    As rt6_nexthop() prefers rt6i_gateway only for gatewayed
    routes this causes a problem for users like IPVS, xt_TEE and
    RAW(hdrincl) if they want to use different address for routing
    compared to the destination address.
    
    Another case is when redirect can create RTF_DYNAMIC
    route without RTF_GATEWAY flag, we ignore the rt6i_gateway
    in rt6_nexthop().
    
    Fix the above problems by considering the rt6i_gateway if
    present, so that traffic routed to address on local subnet is
    not wrongly diverted to the destination address.
    
    Thanks to Simon Horman and Phil Oester for spotting the
    problematic commit.
    
    Thanks to Hannes Frederic Sowa for his review and help in testing.
    
    Reported-by: Phil Oester <kernel@linuxace.com>
    Reported-by: Mark Brooks <mark@loadbalancer.org>
    Signed-off-by: Julian Anastasov <ja@ssi.bg>
    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 b90cd7b9d0baab2e8176d9cca5f18a592ef16063
Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
Date:   Tue Oct 22 00:07:47 2013 +0200

    inet: fix possible memory corruption with UDP_CORK and UFO
    
    [ This is a simplified -stable version of a set of upstream commits. ]
    
    This is a replacement patch only for stable which does fix the problems
    handled by the following two commits in -net:
    
    "ip_output: do skb ufo init for peeked non ufo skb as well" (e93b7d748be887cd7639b113ba7d7ef792a7efb9)
    "ip6_output: do skb ufo init for peeked non ufo skb as well" (c547dbf55d5f8cf615ccc0e7265e98db27d3fb8b)
    
    Three frames are written on a corked udp socket for which the output
    netdevice has UFO enabled.  If the first and third frame are smaller than
    the mtu and the second one is bigger, we enqueue the second frame with
    skb_append_datato_frags without initializing the gso fields. This leads
    to the third frame appended regulary and thus constructing an invalid skb.
    
    This fixes the problem by always using skb_append_datato_frags as soon
    as the first frag got enqueued to the skb without marking the packet
    as SKB_GSO_UDP.
    
    The problem with only two frames for ipv6 was fixed by "ipv6: udp
    packets following an UFO enqueued packet need also be handled by UFO"
    (2811ebac2521ceac84f2bdae402455baa6a7fb47).
    
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Cc: Eric Dumazet <eric.dumazet@gmail.com>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 872095cb74f0acd64d89e578a65df877870f198d
Author: Seif Mazareeb <seif@marvell.com>
Date:   Thu Oct 17 20:33:21 2013 -0700

    net: fix cipso packet validation when !NETLABEL
    
    [ Upstream commit f2e5ddcc0d12f9c4c7b254358ad245c9dddce13b ]
    
    When CONFIG_NETLABEL is disabled, the cipso_v4_validate() function could loop
    forever in the main loop if opt[opt_iter +1] == 0, this will causing a kernel
    crash in an SMP system, since the CPU executing this function will
    stall /not respond to IPIs.
    
    This problem can be reproduced by running the IP Stack Integrity Checker
    (http://isic.sourceforge.net) using the following command on a Linux machine
    connected to DUT:
    
    "icmpsic -s rand -d <DUT IP address> -r 123456"
    wait (1-2 min)
    
    Signed-off-by: Seif Mazareeb <seif@marvell.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a769ad65ce0dea53fdf907008e5f6c93fe06168f
Author: Daniel Borkmann <dborkman@redhat.com>
Date:   Thu Oct 17 22:51:31 2013 +0200

    net: unix: inherit SOCK_PASS{CRED, SEC} flags from socket to fix race
    
    [ Upstream commit 90c6bd34f884cd9cee21f1d152baf6c18bcac949 ]
    
    In the case of credentials passing in unix stream sockets (dgram
    sockets seem not affected), we get a rather sparse race after
    commit 16e5726 ("af_unix: dont send SCM_CREDENTIALS by default").
    
    We have a stream server on receiver side that requests credential
    passing from senders (e.g. nc -U). Since we need to set SO_PASSCRED
    on each spawned/accepted socket on server side to 1 first (as it's
    not inherited), it can happen that in the time between accept() and
    setsockopt() we get interrupted, the sender is being scheduled and
    continues with passing data to our receiver. At that time SO_PASSCRED
    is neither set on sender nor receiver side, hence in cmsg's
    SCM_CREDENTIALS we get eventually pid:0, uid:65534, gid:65534
    (== overflow{u,g}id) instead of what we actually would like to see.
    
    On the sender side, here nc -U, the tests in maybe_add_creds()
    invoked through unix_stream_sendmsg() would fail, as at that exact
    time, as mentioned, the sender has neither SO_PASSCRED on his side
    nor sees it on the server side, and we have a valid 'other' socket
    in place. Thus, sender believes it would just look like a normal
    connection, not needing/requesting SO_PASSCRED at that time.
    
    As reverting 16e5726 would not be an option due to the significant
    performance regression reported when having creds always passed,
    one way/trade-off to prevent that would be to set SO_PASSCRED on
    the listener socket and allow inheriting these flags to the spawned
    socket on server side in accept(). It seems also logical to do so
    if we'd tell the listener socket to pass those flags onwards, and
    would fix the race.
    
    Before, strace:
    
    recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"blub\n", 4096}],
            msg_controllen=32, {cmsg_len=28, cmsg_level=SOL_SOCKET,
            cmsg_type=SCM_CREDENTIALS{pid=0, uid=65534, gid=65534}},
            msg_flags=0}, 0) = 5
    
    After, strace:
    
    recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"blub\n", 4096}],
            msg_controllen=32, {cmsg_len=28, cmsg_level=SOL_SOCKET,
            cmsg_type=SCM_CREDENTIALS{pid=11580, uid=1000, gid=1000}},
            msg_flags=0}, 0) = 5
    
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Eric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8410b48a2d992411a8befbab05de5e886b4ac3e
Author: Vasundhara Volam <vasundhara.volam@emulex.com>
Date:   Thu Oct 17 11:47:14 2013 +0530

    be2net: pass if_id for v1 and V2 versions of TX_CREATE cmd
    
    [ Upstream commit 0fb88d61bc60779dde88b0fc268da17eb81d0412 ]
    
    It is a required field for all TX_CREATE cmd versions > 0.
    This fixes a driver initialization failure, caused by recent SH-R Firmwares
    (versions > 10.0.639.0) failing the TX_CREATE cmd when if_id field is
    not passed.
    
    Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ffb77d881734108a750acb7fb2625643f924bc5
Author: Salva Peiró <speiro@ai2.upv.es>
Date:   Wed Oct 16 12:46:50 2013 +0200

    wanxl: fix info leak in ioctl
    
    [ Upstream commit 2b13d06c9584b4eb773f1e80bbaedab9a1c344e1 ]
    
    The wanxl_ioctl() code fails to initialize the two padding bytes of
    struct sync_serial_settings after the ->loopback member. Add an explicit
    memset(0) before filling the structure to avoid the 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 c69ee66768490b30127bc496921a3603c9366a10
Author: Vlad Yasevich <vyasevich@gmail.com>
Date:   Tue Oct 15 22:01:31 2013 -0400

    sctp: Perform software checksum if packet has to be fragmented.
    
    [ Upstream commit d2dbbba77e95dff4b4f901fee236fef6d9552072 ]
    
    IP/IPv6 fragmentation knows how to compute only TCP/UDP checksum.
    This causes problems if SCTP packets has to be fragmented and
    ipsummed has been set to PARTIAL due to checksum offload support.
    This condition can happen when retransmitting after MTU discover,
    or when INIT or other control chunks are larger then MTU.
    Check for the rare fragmentation condition in SCTP and use software
    checksum calculation in this case.
    
    CC: Fan Du <fan.du@windriver.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 935be1dc2cafe04f1421e236f75d17878920631b
Author: Fan Du <fan.du@windriver.com>
Date:   Tue Oct 15 22:01:30 2013 -0400

    sctp: Use software crc32 checksum when xfrm transform will happen.
    
    [ Upstream commit 27127a82561a2a3ed955ce207048e1b066a80a2a ]
    
    igb/ixgbe have hardware sctp checksum support, when this feature is enabled
    and also IPsec is armed to protect sctp traffic, ugly things happened as
    xfrm_output checks CHECKSUM_PARTIAL to do checksum operation(sum every thing
    up and pack the 16bits result in the checksum field). The result is fail
    establishment of sctp communication.
    
    Signed-off-by: Fan Du <fan.du@windriver.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9446ff691aca0ca902f31f7a9830ac725841759
Author: Vlad Yasevich <vyasevich@gmail.com>
Date:   Tue Oct 15 22:01:29 2013 -0400

    net: dst: provide accessor function to dst->xfrm
    
    [ Upstream commit e87b3998d795123b4139bc3f25490dd236f68212 ]
    
    dst->xfrm is conditionally defined.  Provide accessor funtion that
    is always available.
    
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d14db2327635ac00aa7332bf26759d13ff39e2a5
Author: Vlad Yasevich <vyasevic@redhat.com>
Date:   Tue Oct 15 14:57:45 2013 -0400

    bridge: Correctly clamp MAX forward_delay when enabling STP
    
    [ Upstream commit 4b6c7879d84ad06a2ac5b964808ed599187a188d ]
    
    Commit be4f154d5ef0ca147ab6bcd38857a774133f5450
    	bridge: Clamp forward_delay when enabling STP
    had a typo when attempting to clamp maximum forward delay.
    
    It is possible to set bridge_forward_delay to be higher then
    permitted maximum when STP is off.  When turning STP on, the
    higher then allowed delay has to be clamed down to max value.
    
    Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
    CC: Herbert Xu <herbert@gondor.apana.org.au>
    CC: Stephen Hemminger <shemminger@vyatta.com>
    Reviewed-by: Veaceslav Falico <vfalico@redhat.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30983d3c66572348f078fe2e2d55638d73c3e486
Author: Jason Wang <jasowang@redhat.com>
Date:   Tue Oct 15 11:18:59 2013 +0800

    virtio-net: refill only when device is up during setting queues
    
    [ Upstream commit 35ed159bfd96a7547ec277ed8b550c7cbd9841b6 ]
    
    We used to schedule the refill work unconditionally after changing the
    number of queues. This may lead an issue if the device is not
    up. Since we only try to cancel the work in ndo_stop(), this may cause
    the refill work still work after removing the device. Fix this by only
    schedule the work when device is up.
    
    The bug were introduce by commit 9b9cd8024a2882e896c65222aa421d461354e3f2.
    (virtio-net: fix the race between channels setting and refill)
    
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: 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 413054e740f1efb2cb765323bc73ad01f986c4e1
Author: Jason Wang <jasowang@redhat.com>
Date:   Thu Jul 4 11:22:57 2013 +0930

    virtio-net: fix the race between channels setting and refill
    
    [ Upstream commit 9b9cd8024a2882e896c65222aa421d461354e3f2 ]
    
    Commit 55257d72bd1c51f25106350f4983ec19f62ed1fa (virtio-net: fill only rx queues
    which are being used) tries to refill on demand when changing the number of
    channels by call try_refill_recv() directly, this may race:
    
    - the refill work who may do the refill in the same time
    - the try_refill_recv() called in bh since napi was not disabled
    
    Which may led guest complain during setting channels:
    
    virtio_net virtio0: input.1:id 0 is not a head!
    
    Solve this issue by scheduling a refill work which can guarantee the
    serialization of refill.
    
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f02721718c7dcd4cb949fb0c0689e19a66c8c6ef
Author: Jason Wang <jasowang@redhat.com>
Date:   Tue Oct 15 11:18:58 2013 +0800

    virtio-net: don't respond to cpu hotplug notifier if we're not ready
    
    [ Upstream commit 3ab098df35f8b98b6553edc2e40234af512ba877 ]
    
    We're trying to re-configure the affinity unconditionally in cpu hotplug
    callback. This may lead the issue during resuming from s3/s4 since
    
    - virt queues haven't been allocated at that time.
    - it's unnecessary since thaw method will re-configure the affinity.
    
    Fix this issue by checking the config_enable and do nothing is we're not ready.
    
    The bug were introduced by commit 8de4b2f3ae90c8fc0f17eeaab87d5a951b66ee17
    (virtio-net: reset virtqueue affinity when doing cpu hotplug).
    
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Wanlong Gao <gaowanlong@cn.fujitsu.com>
    Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.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 608be70366c3abaa402ba9d6a8427b1b979633cf
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Oct 12 14:08:34 2013 -0700

    bnx2x: record rx queue for LRO packets
    
    [ Upstream commit 60e66fee56b2256dcb1dc2ea1b2ddcb6e273857d ]
    
    RPS support is kind of broken on bnx2x, because only non LRO packets
    get proper rx queue information. This triggers reorders, as it seems
    bnx2x like to generate a non LRO packet for segment including TCP PUSH
    flag : (this might be pure coincidence, but all the reorders I've
    seen involve segments with a PUSH)
    
    11:13:34.335847 IP A > B: . 415808:447136(31328) ack 1 win 457 <nop,nop,timestamp 3789336 3985797>
    11:13:34.335992 IP A > B: . 447136:448560(1424) ack 1 win 457 <nop,nop,timestamp 3789336 3985797>
    11:13:34.336391 IP A > B: . 448560:479888(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985797>
    11:13:34.336425 IP A > B: P 511216:512640(1424) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
    11:13:34.336423 IP A > B: . 479888:511216(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
    11:13:34.336924 IP A > B: . 512640:543968(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
    11:13:34.336963 IP A > B: . 543968:575296(31328) ack 1 win 457 <nop,nop,timestamp 3789337 3985798>
    
    We must call skb_record_rx_queue() to properly give to RPS (and more
    generally for TX queue selection on forward path) the receive queue
    information.
    
    Similar fix is needed for skb_mark_napi_id(), but will be handled
    in a separate patch to ease stable backports.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Eilon Greenstein <eilong@broadcom.com>
    Acked-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69b9c5ea567e5c9b202b3e5bcac3c2eb72270e0b
Author: Mathias Krause <minipli@googlemail.com>
Date:   Mon Sep 30 22:03:07 2013 +0200

    connector: use nlmsg_len() to check message length
    
    [ Upstream commit 162b2bedc084d2d908a04c93383ba02348b648b0 ]
    
    The current code tests the length of the whole netlink message to be
    at least as long to fit a cn_msg. This is wrong as nlmsg_len includes
    the length of the netlink message header. Use nlmsg_len() instead to
    fix this "off-by-NLMSG_HDRLEN" size check.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39283085a92262f9446b95d36df9724902b7579a
Author: Mathias Krause <minipli@googlemail.com>
Date:   Mon Sep 30 22:05:40 2013 +0200

    unix_diag: fix info leak
    
    [ Upstream commit 6865d1e834be84ddd5808d93d5035b492346c64a ]
    
    When filling the netlink message we miss to wipe the pad field,
    therefore leak one byte of heap memory to userland. Fix this by
    setting pad to 0.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a26736015acfc8745db623efa7f57bc982ed516
Author: Salva Peiró <speiro@ai2.upv.es>
Date:   Fri Oct 11 12:50:03 2013 +0300

    farsync: fix info leak in ioctl
    
    [ Upstream commit 96b340406724d87e4621284ebac5e059d67b2194 ]
    
    The fst_get_iface() code fails to initialize the two padding bytes of
    struct sync_serial_settings after the ->loopback member. Add an explicit
    memset(0) before filling the structure to avoid the info leak.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a41536775e712e7b438400f73e927ffe4b21149c
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Oct 10 06:30:09 2013 -0700

    l2tp: must disable bh before calling l2tp_xmit_skb()
    
    [ Upstream commit 455cc32bf128e114455d11ad919321ab89a2c312 ]
    
    François Cachereul made a very nice bug report and suspected
    the bh_lock_sock() / bh_unlok_sock() pair used in l2tp_xmit_skb() from
    process context was not good.
    
    This problem was added by commit 6af88da14ee284aaad6e4326da09a89191ab6165
    ("l2tp: Fix locking in l2tp_core.c").
    
    l2tp_eth_dev_xmit() runs from BH context, so we must disable BH
    from other l2tp_xmit_skb() users.
    
    [  452.060011] BUG: soft lockup - CPU#1 stuck for 23s! [accel-pppd:6662]
    [  452.061757] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppoe pppox
    ppp_generic slhc ipv6 ext3 mbcache jbd virtio_balloon xfs exportfs dm_mod
    virtio_blk ata_generic virtio_net floppy ata_piix libata virtio_pci virtio_ring virtio [last unloaded: scsi_wait_scan]
    [  452.064012] CPU 1
    [  452.080015] BUG: soft lockup - CPU#2 stuck for 23s! [accel-pppd:6643]
    [  452.080015] CPU 2
    [  452.080015]
    [  452.080015] Pid: 6643, comm: accel-pppd Not tainted 3.2.46.mini #1 Bochs Bochs
    [  452.080015] RIP: 0010:[<ffffffff81059f6c>]  [<ffffffff81059f6c>] do_raw_spin_lock+0x17/0x1f
    [  452.080015] RSP: 0018:ffff88007125fc18  EFLAGS: 00000293
    [  452.080015] RAX: 000000000000aba9 RBX: ffffffff811d0703 RCX: 0000000000000000
    [  452.080015] RDX: 00000000000000ab RSI: ffff8800711f6896 RDI: ffff8800745c8110
    [  452.080015] RBP: ffff88007125fc18 R08: 0000000000000020 R09: 0000000000000000
    [  452.080015] R10: 0000000000000000 R11: 0000000000000280 R12: 0000000000000286
    [  452.080015] R13: 0000000000000020 R14: 0000000000000240 R15: 0000000000000000
    [  452.080015] FS:  00007fdc0cc24700(0000) GS:ffff8800b6f00000(0000) knlGS:0000000000000000
    [  452.080015] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  452.080015] CR2: 00007fdb054899b8 CR3: 0000000074404000 CR4: 00000000000006a0
    [  452.080015] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  452.080015] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [  452.080015] Process accel-pppd (pid: 6643, threadinfo ffff88007125e000, task ffff8800b27e6dd0)
    [  452.080015] Stack:
    [  452.080015]  ffff88007125fc28 ffffffff81256559 ffff88007125fc98 ffffffffa01b2bd1
    [  452.080015]  ffff88007125fc58 000000000000000c 00000000029490d0 0000009c71dbe25e
    [  452.080015]  000000000000005c 000000080000000e 0000000000000000 ffff880071170600
    [  452.080015] Call Trace:
    [  452.080015]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
    [  452.080015]  [<ffffffffa01b2bd1>] l2tp_xmit_skb+0x189/0x4ac [l2tp_core]
    [  452.080015]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
    [  452.080015]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
    [  452.080015]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
    [  452.080015]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
    [  452.080015]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
    [  452.080015]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
    [  452.080015]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
    [  452.080015]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
    [  452.080015]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
    [  452.080015] Code: 81 48 89 e5 72 0c 31 c0 48 81 ff 45 66 25 81 0f 92 c0 5d c3 55 b8 00 01 00 00 48 89 e5 f0 66 0f c1 07 0f b6 d4 38 d0 74 06 f3 90 <8a> 07 eb f6 5d c3 90 90 55 48 89 e5 9c 58 0f 1f 44 00 00 5d c3
    [  452.080015] Call Trace:
    [  452.080015]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
    [  452.080015]  [<ffffffffa01b2bd1>] l2tp_xmit_skb+0x189/0x4ac [l2tp_core]
    [  452.080015]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
    [  452.080015]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
    [  452.080015]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
    [  452.080015]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
    [  452.080015]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
    [  452.080015]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
    [  452.080015]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
    [  452.080015]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
    [  452.080015]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
    [  452.064012]
    [  452.064012] Pid: 6662, comm: accel-pppd Not tainted 3.2.46.mini #1 Bochs Bochs
    [  452.064012] RIP: 0010:[<ffffffff81059f6e>]  [<ffffffff81059f6e>] do_raw_spin_lock+0x19/0x1f
    [  452.064012] RSP: 0018:ffff8800b6e83ba0  EFLAGS: 00000297
    [  452.064012] RAX: 000000000000aaa9 RBX: ffff8800b6e83b40 RCX: 0000000000000002
    [  452.064012] RDX: 00000000000000aa RSI: 000000000000000a RDI: ffff8800745c8110
    [  452.064012] RBP: ffff8800b6e83ba0 R08: 000000000000c802 R09: 000000000000001c
    [  452.064012] R10: ffff880071096c4e R11: 0000000000000006 R12: ffff8800b6e83b18
    [  452.064012] R13: ffffffff8125d51e R14: ffff8800b6e83ba0 R15: ffff880072a589c0
    [  452.064012] FS:  00007fdc0b81e700(0000) GS:ffff8800b6e80000(0000) knlGS:0000000000000000
    [  452.064012] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  452.064012] CR2: 0000000000625208 CR3: 0000000074404000 CR4: 00000000000006a0
    [  452.064012] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  452.064012] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [  452.064012] Process accel-pppd (pid: 6662, threadinfo ffff88007129a000, task ffff8800744f7410)
    [  452.064012] Stack:
    [  452.064012]  ffff8800b6e83bb0 ffffffff81256559 ffff8800b6e83bc0 ffffffff8121c64a
    [  452.064012]  ffff8800b6e83bf0 ffffffff8121ec7a ffff880072a589c0 ffff880071096c62
    [  452.064012]  0000000000000011 ffffffff81430024 ffff8800b6e83c80 ffffffff8121f276
    [  452.064012] Call Trace:
    [  452.064012]  <IRQ>
    [  452.064012]  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
    [  452.064012]  [<ffffffff8121c64a>] spin_lock+0x9/0xb
    [  452.064012]  [<ffffffff8121ec7a>] udp_queue_rcv_skb+0x186/0x269
    [  452.064012]  [<ffffffff8121f276>] __udp4_lib_rcv+0x297/0x4ae
    [  452.064012]  [<ffffffff8121c178>] ? raw_rcv+0xe9/0xf0
    [  452.064012]  [<ffffffff8121f4a7>] udp_rcv+0x1a/0x1c
    [  452.064012]  [<ffffffff811fe385>] ip_local_deliver_finish+0x12b/0x1a5
    [  452.064012]  [<ffffffff811fe54e>] ip_local_deliver+0x53/0x84
    [  452.064012]  [<ffffffff811fe1d0>] ip_rcv_finish+0x2bc/0x2f3
    [  452.064012]  [<ffffffff811fe78f>] ip_rcv+0x210/0x269
    [  452.064012]  [<ffffffff8101911e>] ? kvm_clock_get_cycles+0x9/0xb
    [  452.064012]  [<ffffffff811d88cd>] __netif_receive_skb+0x3a5/0x3f7
    [  452.064012]  [<ffffffff811d8eba>] netif_receive_skb+0x57/0x5e
    [  452.064012]  [<ffffffff811cf30f>] ? __netdev_alloc_skb+0x1f/0x3b
    [  452.064012]  [<ffffffffa0049126>] virtnet_poll+0x4ba/0x5a4 [virtio_net]
    [  452.064012]  [<ffffffff811d9417>] net_rx_action+0x73/0x184
    [  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffff810343b9>] __do_softirq+0xc3/0x1a8
    [  452.064012]  [<ffffffff81013b56>] ? ack_APIC_irq+0x10/0x12
    [  452.064012]  [<ffffffff81256559>] ? _raw_spin_lock+0xe/0x10
    [  452.064012]  [<ffffffff8125e0ac>] call_softirq+0x1c/0x26
    [  452.064012]  [<ffffffff81003587>] do_softirq+0x45/0x82
    [  452.064012]  [<ffffffff81034667>] irq_exit+0x42/0x9c
    [  452.064012]  [<ffffffff8125e146>] do_IRQ+0x8e/0xa5
    [  452.064012]  [<ffffffff8125676e>] common_interrupt+0x6e/0x6e
    [  452.064012]  <EOI>
    [  452.064012]  [<ffffffff810b82a1>] ? kfree+0x8a/0xa3
    [  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffffa01b2c25>] ? l2tp_xmit_skb+0x1dd/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
    [  452.064012]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
    [  452.064012]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
    [  452.064012]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
    [  452.064012]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
    [  452.064012]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
    [  452.064012]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
    [  452.064012]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
    [  452.064012]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
    [  452.064012] Code: 89 e5 72 0c 31 c0 48 81 ff 45 66 25 81 0f 92 c0 5d c3 55 b8 00 01 00 00 48 89 e5 f0 66 0f c1 07 0f b6 d4 38 d0 74 06 f3 90 8a 07 <eb> f6 5d c3 90 90 55 48 89 e5 9c 58 0f 1f 44 00 00 5d c3 55 48
    [  452.064012] Call Trace:
    [  452.064012]  <IRQ>  [<ffffffff81256559>] _raw_spin_lock+0xe/0x10
    [  452.064012]  [<ffffffff8121c64a>] spin_lock+0x9/0xb
    [  452.064012]  [<ffffffff8121ec7a>] udp_queue_rcv_skb+0x186/0x269
    [  452.064012]  [<ffffffff8121f276>] __udp4_lib_rcv+0x297/0x4ae
    [  452.064012]  [<ffffffff8121c178>] ? raw_rcv+0xe9/0xf0
    [  452.064012]  [<ffffffff8121f4a7>] udp_rcv+0x1a/0x1c
    [  452.064012]  [<ffffffff811fe385>] ip_local_deliver_finish+0x12b/0x1a5
    [  452.064012]  [<ffffffff811fe54e>] ip_local_deliver+0x53/0x84
    [  452.064012]  [<ffffffff811fe1d0>] ip_rcv_finish+0x2bc/0x2f3
    [  452.064012]  [<ffffffff811fe78f>] ip_rcv+0x210/0x269
    [  452.064012]  [<ffffffff8101911e>] ? kvm_clock_get_cycles+0x9/0xb
    [  452.064012]  [<ffffffff811d88cd>] __netif_receive_skb+0x3a5/0x3f7
    [  452.064012]  [<ffffffff811d8eba>] netif_receive_skb+0x57/0x5e
    [  452.064012]  [<ffffffff811cf30f>] ? __netdev_alloc_skb+0x1f/0x3b
    [  452.064012]  [<ffffffffa0049126>] virtnet_poll+0x4ba/0x5a4 [virtio_net]
    [  452.064012]  [<ffffffff811d9417>] net_rx_action+0x73/0x184
    [  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffff810343b9>] __do_softirq+0xc3/0x1a8
    [  452.064012]  [<ffffffff81013b56>] ? ack_APIC_irq+0x10/0x12
    [  452.064012]  [<ffffffff81256559>] ? _raw_spin_lock+0xe/0x10
    [  452.064012]  [<ffffffff8125e0ac>] call_softirq+0x1c/0x26
    [  452.064012]  [<ffffffff81003587>] do_softirq+0x45/0x82
    [  452.064012]  [<ffffffff81034667>] irq_exit+0x42/0x9c
    [  452.064012]  [<ffffffff8125e146>] do_IRQ+0x8e/0xa5
    [  452.064012]  [<ffffffff8125676e>] common_interrupt+0x6e/0x6e
    [  452.064012]  <EOI>  [<ffffffff810b82a1>] ? kfree+0x8a/0xa3
    [  452.064012]  [<ffffffffa01b2cc2>] ? l2tp_xmit_skb+0x27a/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffffa01b2c25>] ? l2tp_xmit_skb+0x1dd/0x4ac [l2tp_core]
    [  452.064012]  [<ffffffffa01c2d36>] pppol2tp_sendmsg+0x15e/0x19c [l2tp_ppp]
    [  452.064012]  [<ffffffff811c7872>] __sock_sendmsg_nosec+0x22/0x24
    [  452.064012]  [<ffffffff811c83bd>] sock_sendmsg+0xa1/0xb6
    [  452.064012]  [<ffffffff81254e88>] ? __schedule+0x5c1/0x616
    [  452.064012]  [<ffffffff8103c7c6>] ? __dequeue_signal+0xb7/0x10c
    [  452.064012]  [<ffffffff810bbd21>] ? fget_light+0x75/0x89
    [  452.064012]  [<ffffffff811c8444>] ? sockfd_lookup_light+0x20/0x56
    [  452.064012]  [<ffffffff811c9b34>] sys_sendto+0x10c/0x13b
    [  452.064012]  [<ffffffff8125cac2>] system_call_fastpath+0x16/0x1b
    
    Reported-by: François Cachereul <f.cachereul@alphalink.fr>
    Tested-by: François Cachereul <f.cachereul@alphalink.fr>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: James Chapman <jchapman@katalix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a77db44038f976c2734fb3d2b1ed0cb9c3afde75
Author: Christophe Gouault <christophe.gouault@6wind.com>
Date:   Tue Oct 8 17:21:22 2013 +0200

    vti: get rid of nf mark rule in prerouting
    
    [ Upstream commit 7263a5187f9e9de45fcb51349cf0e031142c19a1 ]
    
    This patch fixes and improves the use of vti interfaces (while
    lightly changing the way of configuring them).
    
    Currently:
    
    - it is necessary to identify and mark inbound IPsec
      packets destined to each vti interface, via netfilter rules in
      the mangle table at prerouting hook.
    
    - the vti module cannot retrieve the right tunnel in input since
      commit b9959fd3: vti tunnels all have an i_key, but the tunnel lookup
      is done with flag TUNNEL_NO_KEY, so there no chance to retrieve them.
    
    - the i_key is used by the outbound processing as a mark to lookup
      for the right SP and SA bundle.
    
    This patch uses the o_key to store the vti mark (instead of i_key) and
    enables:
    
    - to avoid the need for previously marking the inbound skbuffs via a
      netfilter rule.
    - to properly retrieve the right tunnel in input, only based on the IPsec
      packet outer addresses.
    - to properly perform an inbound policy check (using the tunnel o_key
      as a mark).
    - to properly perform an outbound SPD and SAD lookup (using the tunnel
      o_key as a mark).
    - to keep the current mark of the skbuff. The skbuff mark is neither
      used nor changed by the vti interface. Only the vti interface o_key
      is used.
    
    SAs have a wildcard mark.
    SPs have a mark equal to the vti interface o_key.
    
    The vti interface must be created as follows (i_key = 0, o_key = mark):
    
       ip link add vti1 mode vti local 1.1.1.1 remote 2.2.2.2 okey 1
    
    The SPs attached to vti1 must be created as follows (mark = vti1 o_key):
    
       ip xfrm policy add dir out mark 1 tmpl src 1.1.1.1 dst 2.2.2.2 \
          proto esp mode tunnel
       ip xfrm policy add dir in  mark 1 tmpl src 2.2.2.2 dst 1.1.1.1 \
          proto esp mode tunnel
    
    The SAs are created with the default wildcard mark. There is no
    distinction between global vs. vti SAs. Just their addresses will
    possibly link them to a vti interface:
    
       ip xfrm state add src 1.1.1.1 dst 2.2.2.2 proto esp spi 1000 mode tunnel \
                     enc "cbc(aes)" "azertyuiopqsdfgh"
    
       ip xfrm state add src 2.2.2.2 dst 1.1.1.1 proto esp spi 2000 mode tunnel \
                     enc "cbc(aes)" "sqbdhgqsdjqjsdfh"
    
    To avoid matching "global" (not vti) SPs in vti interfaces, global SPs
    should no use the default wildcard mark, but explicitly match mark 0.
    
    To avoid a double SPD lookup in input and output (in global and vti SPDs),
    the NOPOLICY and NOXFRM options should be set on the vti interfaces:
    
       echo 1 > /proc/sys/net/ipv4/conf/vti1/disable_policy
       echo 1 > /proc/sys/net/ipv4/conf/vti1/disable_xfrm
    
    The outgoing traffic is steered to vti1 by a route via the vti interface:
    
       ip route add 192.168.0.0/16 dev vti1
    
    The incoming IPsec traffic is steered to vti1 because its outer addresses
    match the vti1 tunnel configuration.
    
    Signed-off-by: Christophe Gouault <christophe.gouault@6wind.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c1f32d2d776b7d87962e902d62f8b6b2b2e1025
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Mon Oct 7 23:19:58 2013 +0200

    net: vlan: fix nlmsg size calculation in vlan_get_size()
    
    [ Upstream commit c33a39c575068c2ea9bffb22fd6de2df19c74b89 ]
    
    This patch fixes the calculation of the nlmsg size, by adding the missing
    nla_total_size().
    
    Cc: Patrick McHardy <kaber@trash.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f495ddc46f97dd0054ff2d5d3c7493d59f7511fb
Author: Paul Durrant <paul.durrant@citrix.com>
Date:   Tue Oct 8 14:22:56 2013 +0100

    xen-netback: Don't destroy the netdev until the vif is shut down
    
    [ upstream commit id: 279f438e36c0a70b23b86d2090aeec50155034a9 ]
    
    Without this patch, if a frontend cycles through states Closing
    and Closed (which Windows frontends need to do) then the netdev
    will be destroyed and requires re-invocation of hotplug scripts
    to restore state before the frontend can move to Connected. Thus
    when udev is not in use the backend gets stuck in InitWait.
    
    With this patch, the netdev is left alone whilst the backend is
    still online and is only de-registered and freed just prior to
    destroying the vif (which is also nicely symmetrical with the
    netdev allocation and registration being done during probe) so
    no re-invocation of hotplug scripts is required.
    
    Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
    Cc: David Vrabel <david.vrabel@citrix.com>
    Cc: Wei Liu <wei.liu2@citrix.com>
    Cc: Ian Campbell <ian.campbell@citrix.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9396c4c9e7f499b1dd8080e901c88705f2efa99
Author: Fabio Estevam <fabio.estevam@freescale.com>
Date:   Sat Oct 5 17:56:59 2013 -0300

    net: secure_seq: Fix warning when CONFIG_IPV6 and CONFIG_INET are not selected
    
    [ Upstream commit cb03db9d0e964568407fb08ea46cc2b6b7f67587 ]
    
    net_secret() is only used when CONFIG_IPV6 or CONFIG_INET are selected.
    
    Building a defconfig with both of these symbols unselected (Using the ARM
    at91sam9rl_defconfig, for example) leads to the following build warning:
    
    $ make at91sam9rl_defconfig
    #
    # configuration written to .config
    #
    
    $ make net/core/secure_seq.o
    scripts/kconfig/conf --silentoldconfig Kconfig
      CHK     include/config/kernel.release
      CHK     include/generated/uapi/linux/version.h
      CHK     include/generated/utsrelease.h
    make[1]: `include/generated/mach-types.h' is up to date.
      CALL    scripts/checksyscalls.sh
      CC      net/core/secure_seq.o
    net/core/secure_seq.c:17:13: warning: 'net_secret_init' defined but not used [-Wunused-function]
    
    Fix this warning by protecting the definition of net_secret() with these
    symbols.
    
    Reported-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42fc155b9fe58a8885b76136ebdb7b5e376740b6
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Sat Oct 5 21:25:17 2013 +0200

    can: dev: fix nlmsg size calculation in can_get_size()
    
    [ Upstream commit fe119a05f8ca481623a8d02efcc984332e612528 ]
    
    This patch fixes the calculation of the nlmsg size, by adding the missing
    nla_total_size().
    
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b15e22da6eb11f54ef53bec9b9e9adbc4fba1609
Author: Jiri Benc <jbenc@redhat.com>
Date:   Fri Oct 4 17:04:48 2013 +0200

    ipv4: fix ineffective source address selection
    
    [ Upstream commit 0a7e22609067ff524fc7bbd45c6951dd08561667 ]
    
    When sending out multicast messages, the source address in inet->mc_addr is
    ignored and rewritten by an autoselected one. This is caused by a typo in
    commit 813b3b5db831 ("ipv4: Use caller's on-stack flowi as-is in output
    route lookups").
    
    Signed-off-by: Jiri Benc <jbenc@redhat.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df6ae0dc3145f5d3c0b04a59e64cd647469881e4
Author: Mathias Krause <minipli@googlemail.com>
Date:   Mon Sep 30 22:03:06 2013 +0200

    proc connector: fix info leaks
    
    [ Upstream commit e727ca82e0e9616ab4844301e6bae60ca7327682 ]
    
    Initialize event_data for all possible message types to prevent leaking
    kernel stack contents to userland (up to 20 bytes). Also set the flags
    member of the connector message to 0 to prevent leaking two more stack
    bytes this way.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e8d97ab1f1236d08a8576d5c4b25d3180ff01f6
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Oct 3 00:27:20 2013 +0300

    net: heap overflow in __audit_sockaddr()
    
    [ Upstream commit 1661bf364ae9c506bc8795fef70d1532931be1e8 ]
    
    We need to cap ->msg_namelen or it leads to a buffer overflow when we
    to the memcpy() in __audit_sockaddr().  It requires CAP_AUDIT_CONTROL to
    exploit this bug.
    
    The call tree is:
    ___sys_recvmsg()
      move_addr_to_user()
        audit_sockaddr()
          __audit_sockaddr()
    
    Reported-by: Jüri Aedla <juri.aedla@gmail.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b24b4a82fc96f74d848275c8f1b33df66cbef061
Author: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Date:   Wed Oct 2 12:57:21 2013 +0200

    net: mv643xx_eth: fix orphaned statistics timer crash
    
    [ Upstream commit f564412c935111c583b787bcc18157377b208e2e ]
    
    The periodic statistics timer gets started at port _probe() time, but
    is stopped on _stop() only. In a modular environment, this can cause
    the timer to access already deallocated memory, if the module is unloaded
    without starting the eth device. To fix this, we add the timer right
    before the port is started, instead of at _probe() time.
    
    Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Acked-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85cd02136ded01747a7959567aa1626627f1877e
Author: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Date:   Wed Oct 2 12:57:20 2013 +0200

    net: mv643xx_eth: update statistics timer from timer context only
    
    [ Upstream commit 041b4ddb84989f06ff1df0ca869b950f1ee3cb1c ]
    
    Each port driver installs a periodic timer to update port statistics
    by calling mib_counters_update. As mib_counters_update is also called
    from non-timer context, we should not reschedule the timer there but
    rather move it to timer-only context.
    
    Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Acked-by: Jason Cooper <jason@lakedaemon.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d980ed627b35d4685a4a27561dc3fc7a09226dab
Author: David S. Miller <davem@davemloft.net>
Date:   Tue Oct 8 15:44:26 2013 -0400

    l2tp: Fix build warning with ipv6 disabled.
    
    [ Upstream commit 8d8a51e26a6d415e1470759f2cf5f3ee3ee86196 ]
    
    net/l2tp/l2tp_core.c: In function ‘l2tp_verify_udp_checksum’:
    net/l2tp/l2tp_core.c:499:22: warning: unused variable ‘tunnel’ [-Wunused-variable]
    
    Create a helper "l2tp_tunnel()" to facilitate this, and as a side
    effect get rid of a bunch of unnecessary void pointer casts.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd83cd77073e5c54a88f976d6d6c785a1a80b0c0
Author: François CACHEREUL <f.cachereul@alphalink.fr>
Date:   Wed Oct 2 10:16:02 2013 +0200

    l2tp: fix kernel panic when using IPv4-mapped IPv6 addresses
    
    [ Upstream commit e18503f41f9b12132c95d7c31ca6ee5155e44e5c ]
    
    IPv4 mapped addresses cause kernel panic.
    The patch juste check whether the IPv6 address is an IPv4 mapped
    address. If so, use IPv4 API instead of IPv6.
    
    [  940.026915] general protection fault: 0000 [#1]
    [  940.026915] Modules linked in: l2tp_ppp l2tp_netlink l2tp_core pppox ppp_generic slhc loop psmouse
    [  940.026915] CPU: 0 PID: 3184 Comm: memcheck-amd64- Not tainted 3.11.0+ #1
    [  940.026915] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
    [  940.026915] task: ffff880007130e20 ti: ffff88000737e000 task.ti: ffff88000737e000
    [  940.026915] RIP: 0010:[<ffffffff81333780>]  [<ffffffff81333780>] ip6_xmit+0x276/0x326
    [  940.026915] RSP: 0018:ffff88000737fd28  EFLAGS: 00010286
    [  940.026915] RAX: c748521a75ceff48 RBX: ffff880000c30800 RCX: 0000000000000000
    [  940.026915] RDX: ffff88000075cc4e RSI: 0000000000000028 RDI: ffff8800060e5a40
    [  940.026915] RBP: ffff8800060e5a40 R08: 0000000000000000 R09: ffff88000075cc90
    [  940.026915] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88000737fda0
    [  940.026915] R13: 0000000000000000 R14: 0000000000002000 R15: ffff880005d3b580
    [  940.026915] FS:  00007f163dc5e800(0000) GS:ffffffff81623000(0000) knlGS:0000000000000000
    [  940.026915] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  940.026915] CR2: 00000004032dc940 CR3: 0000000005c25000 CR4: 00000000000006f0
    [  940.026915] Stack:
    [  940.026915]  ffff88000075cc4e ffffffff81694e90 ffff880000c30b38 0000000000000020
    [  940.026915]  11000000523c4bac ffff88000737fdb4 0000000000000000 ffff880000c30800
    [  940.026915]  ffff880005d3b580 ffff880000c30b38 ffff8800060e5a40 0000000000000020
    [  940.026915] Call Trace:
    [  940.026915]  [<ffffffff81356cc3>] ? inet6_csk_xmit+0xa4/0xc4
    [  940.026915]  [<ffffffffa0038535>] ? l2tp_xmit_skb+0x503/0x55a [l2tp_core]
    [  940.026915]  [<ffffffff812b8d3b>] ? pskb_expand_head+0x161/0x214
    [  940.026915]  [<ffffffffa003e91d>] ? pppol2tp_xmit+0xf2/0x143 [l2tp_ppp]
    [  940.026915]  [<ffffffffa00292e0>] ? ppp_channel_push+0x36/0x8b [ppp_generic]
    [  940.026915]  [<ffffffffa00293fe>] ? ppp_write+0xaf/0xc5 [ppp_generic]
    [  940.026915]  [<ffffffff8110ead4>] ? vfs_write+0xa2/0x106
    [  940.026915]  [<ffffffff8110edd6>] ? SyS_write+0x56/0x8a
    [  940.026915]  [<ffffffff81378ac0>] ? system_call_fastpath+0x16/0x1b
    [  940.026915] Code: 00 49 8b 8f d8 00 00 00 66 83 7c 11 02 00 74 60 49
    8b 47 58 48 83 e0 fe 48 8b 80 18 01 00 00 48 85 c0 74 13 48 8b 80 78 02
    00 00 <48> ff 40 28 41 8b 57 68 48 01 50 30 48 8b 54 24 08 49 c7 c1 51
    [  940.026915] RIP  [<ffffffff81333780>] ip6_xmit+0x276/0x326
    [  940.026915]  RSP <ffff88000737fd28>
    [  940.057945] ---[ end trace be8aba9a61c8b7f3 ]---
    [  940.058583] Kernel panic - not syncing: Fatal exception in interrupt
    
    Signed-off-by: François CACHEREUL <f.cachereul@alphalink.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53d384ae6a01eadb8d362afaca6a9c0ba72c1126
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 1 21:04:11 2013 -0700

    net: do not call sock_put() on TIMEWAIT sockets
    
    [ Upstream commit 80ad1d61e72d626e30ebe8529a0455e660ca4693 ]
    
    commit 3ab5aee7fe84 ("net: Convert TCP & DCCP hash tables to use RCU /
    hlist_nulls") incorrectly used sock_put() on TIMEWAIT sockets.
    
    We should instead use inet_twsk_put()
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8ac0f178f98d4e7c23cf9526d789d4869ec6e4c
Author: Yuchung Cheng <ycheng@google.com>
Date:   Sat Oct 12 10:16:27 2013 -0700

    tcp: fix incorrect ca_state in tail loss probe
    
    [ Upstream commit 031afe4990a7c9dbff41a3a742c44d3e740ea0a1 ]
    
    On receiving an ACK that covers the loss probe sequence, TLP
    immediately sets the congestion state to Open, even though some packets
    are not recovered and retransmisssion are on the way.  The later ACks
    may trigger a WARN_ON check in step D of tcp_fastretrans_alert(), e.g.,
    https://bugzilla.redhat.com/show_bug.cgi?id=989251
    
    The fix is to follow the similar procedure in recovery by calling
    tcp_try_keep_open(). The sender switches to Open state if no packets
    are retransmissted. Otherwise it goes to Disorder and let subsequent
    ACKs move the state to Recovery or Open.
    
    Reported-By: Michael Sterrett <michael@sterretts.net>
    Tested-By: Dormando <dormando@rydia.net>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a50b0399e6899e39e6f74431aaddf12ee92db854
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Oct 4 10:31:41 2013 -0700

    tcp: do not forget FIN in tcp_shifted_skb()
    
    [ Upstream commit 5e8a402f831dbe7ee831340a91439e46f0d38acd ]
    
    Yuchung found following problem :
    
     There are bugs in the SACK processing code, merging part in
     tcp_shift_skb_data(), that incorrectly resets or ignores the sacked
     skbs FIN flag. When a receiver first SACK the FIN sequence, and later
     throw away ofo queue (e.g., sack-reneging), the sender will stop
     retransmitting the FIN flag, and hangs forever.
    
    Following packetdrill test can be used to reproduce the bug.
    
    $ cat sack-merge-bug.pkt
    `sysctl -q net.ipv4.tcp_fack=0`
    
    // Establish a connection and send 10 MSS.
    0.000 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
    +.000 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
    +.000 bind(3, ..., ...) = 0
    +.000 listen(3, 1) = 0
    
    +.050 < S 0:0(0) win 32792 <mss 1000,sackOK,nop,nop,nop,wscale 7>
    +.000 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 6>
    +.001 < . 1:1(0) ack 1 win 1024
    +.000 accept(3, ..., ...) = 4
    
    +.100 write(4, ..., 12000) = 12000
    +.000 shutdown(4, SHUT_WR) = 0
    +.000 > . 1:10001(10000) ack 1
    +.050 < . 1:1(0) ack 2001 win 257
    +.000 > FP. 10001:12001(2000) ack 1
    +.050 < . 1:1(0) ack 2001 win 257 <sack 10001:11001,nop,nop>
    +.050 < . 1:1(0) ack 2001 win 257 <sack 10001:12002,nop,nop>
    // SACK reneg
    +.050 < . 1:1(0) ack 12001 win 257
    +0 %{ print "unacked: ",tcpi_unacked }%
    +5 %{ print "" }%
    
    First, a typo inverted left/right of one OR operation, then
    code forgot to advance end_seq if the merged skb carried FIN.
    
    Bug was added in 2.6.29 by commit 832d11c5cd076ab
    ("tcp: Try to restore large SKBs while SACK processing")
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b81908e15f548e385598beaf17376cd101f36bc8
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 15 11:54:30 2013 -0700

    tcp: must unclone packets before mangling them
    
    [ Upstream commit c52e2421f7368fd36cbe330d2cf41b10452e39a9 ]
    
    TCP stack should make sure it owns skbs before mangling them.
    
    We had various crashes using bnx2x, and it turned out gso_size
    was cleared right before bnx2x driver was populating TC descriptor
    of the _previous_ packet send. TCP stack can sometime retransmit
    packets that are still in Qdisc.
    
    Of course we could make bnx2x driver more robust (using
    ACCESS_ONCE(shinfo->gso_size) for example), but the bug is TCP stack.
    
    We have identified two points where skb_unclone() was needed.
    
    This patch adds a WARN_ON_ONCE() to warn us if we missed another
    fix of this kind.
    
    Kudos to Neal for finding the root cause of this bug. Its visible
    using small MSS.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ae5f47eff2e543c3b94eec51c740f38a5071432
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Sep 27 03:28:54 2013 -0700

    tcp: TSQ can use a dynamic limit
    
    [ Upstream commit c9eeec26e32e087359160406f96e0949b3cc6f10 ]
    
    When TCP Small Queues was added, we used a sysctl to limit amount of
    packets queues on Qdisc/device queues for a given TCP flow.
    
    Problem is this limit is either too big for low rates, or too small
    for high rates.
    
    Now TCP stack has rate estimation in sk->sk_pacing_rate, and TSO
    auto sizing, it can better control number of packets in Qdisc/device
    queues.
    
    New limit is two packets or at least 1 to 2 ms worth of packets.
    
    Low rates flows benefit from this patch by having even smaller
    number of packets in queues, allowing for faster recovery,
    better RTT estimations.
    
    High rates flows benefit from this patch by allowing more than 2 packets
    in flight as we had reports this was a limiting factor to reach line
    rate. [ In particular if TX completion is delayed because of coalescing
    parameters ]
    
    Example for a single flow on 10Gbp link controlled by FQ/pacing
    
    14 packets in flight instead of 2
    
    $ tc -s -d qd
    qdisc fq 8001: dev eth0 root refcnt 32 limit 10000p flow_limit 100p
    buckets 1024 quantum 3028 initial_quantum 15140
     Sent 1168459366606 bytes 771822841 pkt (dropped 0, overlimits 0
    requeues 6822476)
     rate 9346Mbit 771713pps backlog 953820b 14p requeues 6822476
      2047 flow, 2046 inactive, 1 throttled, delay 15673 ns
      2372 gc, 0 highprio, 0 retrans, 9739249 throttled, 0 flows_plimit
    
    Note that sk_pacing_rate is currently set to twice the actual rate, but
    this might be refined in the future when a flow is in congestion
    avoidance.
    
    Additional change : skb->destructor should be set to tcp_wfree().
    
    A future patch (for linux 3.13+) might remove tcp_limit_output_bytes
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Wei Liu <wei.liu2@citrix.com>
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e25ba5003ee5de0ba2be56bfd54d16d4b1b028d
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Aug 27 05:46:32 2013 -0700

    tcp: TSO packets automatic sizing
    
    [ Upstream commits 6d36824e730f247b602c90e8715a792003e3c5a7,
      02cf4ebd82ff0ac7254b88e466820a290ed8289a, and parts of
      7eec4174ff29cd42f2acfae8112f51c228545d40 ]
    
    After hearing many people over past years complaining against TSO being
    bursty or even buggy, we are proud to present automatic sizing of TSO
    packets.
    
    One part of the problem is that tcp_tso_should_defer() uses an heuristic
    relying on upcoming ACKS instead of a timer, but more generally, having
    big TSO packets makes little sense for low rates, as it tends to create
    micro bursts on the network, and general consensus is to reduce the
    buffering amount.
    
    This patch introduces a per socket sk_pacing_rate, that approximates
    the current sending rate, and allows us to size the TSO packets so
    that we try to send one packet every ms.
    
    This field could be set by other transports.
    
    Patch has no impact for high speed flows, where having large TSO packets
    makes sense to reach line rate.
    
    For other flows, this helps better packet scheduling and ACK clocking.
    
    This patch increases performance of TCP flows in lossy environments.
    
    A new sysctl (tcp_min_tso_segs) is added, to specify the
    minimal size of a TSO packet (default being 2).
    
    A follow-up patch will provide a new packet scheduler (FQ), using
    sk_pacing_rate as an input to perform optional per flow pacing.
    
    This explains why we chose to set sk_pacing_rate to twice the current
    rate, allowing 'slow start' ramp up.
    
    sk_pacing_rate = 2 * cwnd * mss / srtt
    
    v2: Neal Cardwell reported a suspect deferring of last two segments on
    initial write of 10 MSS, I had to change tcp_tso_should_defer() to take
    into account tp->xmit_size_goal_segs
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Neal Cardwell <ncardwell@google.com>
    Cc: Yuchung Cheng <ycheng@google.com>
    Cc: Van Jacobson <vanj@google.com>
    Cc: Tom Herbert <therbert@google.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>