Lollipop kernel update

Squashed commit of the following:

commit 1992a719eda79b1a9c39307a17f4b1c33e086078
Author: Sreeram Ramachandran <sreeram@google.com>
Date:   Tue Jul 8 11:37:03 2014 -0700

    Handle 'sk' being NULL in UID-based routing.

    [android-3.4 commit 0836a0c191f580ed69254e0b287cdce58481e978]

    Bug: 15413527
    Bug: 16175826
    Change-Id: Ie6bb0f1c788fea5ae61a728d028be2c2c3167d94
    Signed-off-by: Sreeram Ramachandran <sreeram@google.com>
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

commit 15b55f4d6de5466ee69d4f9e01c47e64ccb3bb0e
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Mon Mar 31 16:23:51 2014 +0900

    net: core: Support UID-based routing.

    [android-3.4 commit 0b428749ce5969bc06c73855e360141b4e7126e8]

    This contains the following commits:

    1. 0149763 net: core: Add a UID range to fib rules.
    2. 1650474 net: core: Use the socket UID in routing lookups.
    3. 0b16771 net: ipv4: Add the UID to the route cache.
    4. ee058f1 net: core: Add a RTA_UID attribute to routes.
        This is so that userspace can do per-UID route lookups.

    Bug: 15413527
    Bug: 16175826
    Change-Id: I28aefb5f7e2fb4254974c79ffeafc1365220db08
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

commit 6af7c9458f2670b6ebb01f889979d9e666df2e2a
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Sun Dec 30 01:37:30 2012 +0300

    um: add missing declaration of 'getrlimit()' and friends

    commit fdfa4c952844fce881df8c76de9c7180cbe913ab upstream.

    arch/um/os-Linux/start_up.c: In function 'check_coredump_limit':
    arch/um/os-Linux/start_up.c:338:16: error: storage size of 'lim' isn't known
    arch/um/os-Linux/start_up.c:339:2: error: implicit declaration of function 'getrlimit' [-Werror=implicit-function-declaration]

    Change-Id: I41f5598648a528bff34ea9b205fa451657e52516
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    CC: Jeff Dike <jdike@addtoit.com>
    CC: Richard Weinberger <richard@nod.at>
    CC: Al Viro <viro@zeniv.linux.org.uk>
    CC: user-mode-linux-devel@lists.sourceforge.net
    CC: user-mode-linux-user@lists.sourceforge.net
    CC: linux-kernel@vger.kernel.org
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15ce3ef2bc64781fce47714d430a100ac2720609
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Jan 10 10:08:44 2013 +0100

    cgroup: Fix use after free of cgrp (cgrp->css_sets)

    Running a 3.4 kernel + Fedora-18 (systemd) userland on my Allwinner A10
    (arm cortex a8), I'm seeing repeated, reproducable list_del list corruption
    errors when build with CONFIG_DEBUG_LIST, and the backtrace always shows
    free_css_set_work as the function making the problematic list_del call.

    I've tracked this doen to a use after free of the cgrp struct, specifically
    of the cgrp->css_sets list_head, which gets cleared by free_css_set_work.

    Since free_css_set_work runs form a workqueue, it is possible for it to not be
    done with clearing the list when the cgrp gets free-ed. To avoid this the code
    adding the links increases cgrp->count, and the freeing code running from the
    workqueue decreases cgrp->count *after* doing list_del, and then if the count
    goes to 0 calls cgroup_wakeup_rmdir_waiter().

    However cgroup_rmdir() is missing a check for cgrp->count != 0, causing it
    to still continue with the rmdir (which leads to the free-ing of the cgrp),
    before free_css_set_work is done. Sometimes the free-ed memory is re-used
    before free_css_set_work gets around to unlinking link->cgrp_link_list,
    triggering the list_del list corruption messages.

    This patch fixes this by properly checking for cgrp->count != 0 and waiting
    for the cgroup_rmdir_waitq in that case.

    Change-Id: Ie633220394b8ecddd0828f4a2b8cd680162d8df4
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit fa30fa416afc5860f9374f040fe919a84679f559
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri Jan 11 13:19:27 2013 +0100

    cgroup: Take css_set_lock from cgroup_css_sets_empty()

    As indicated in the comment above cgroup_css_sets_empty it needs the
    css_set_lock. But neither of the 2 call points have it, so rather then fixing
    the callers just take the lock inside cgroup_css_sets_empty().

    Change-Id: Ib6bc053d7761f0f20b5408c99b82015e1c8b06c8
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>

commit fe7e66783ad3c500175dd06b61b2c350b12017f1
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Wed Mar 26 13:03:12 2014 +0900

    net: support marking accepting TCP sockets

    When using mark-based routing, sockets returned from accept()
    may need to be marked differently depending on the incoming
    connection request.

    This is the case, for example, if different socket marks identify
    different networks: a listening socket may want to accept
    connections from all networks, but each connection should be
    marked with the network that the request came in on, so that
    subsequent packets are sent on the correct network.

    This patch adds a sysctl to mark TCP sockets based on the fwmark
    of the incoming SYN packet. If enabled, and an unmarked socket
    receives a SYN, then the SYN packet's fwmark is written to the
    connection's inet_request_sock, and later written back to the
    accepted socket when the connection is established.  If the
    socket already has a nonzero mark, then the behaviour is the same
    as it is today, i.e., the listening socket's fwmark is used.

    Black-box tested using user-mode linux:

    - IPv4/IPv6 SYN+ACK, FIN, etc. packets are routed based on the
      mark of the incoming SYN packet.
    - The socket returned by accept() is marked with the mark of the
      incoming SYN packet.
    - Tested with syncookies=1 and syncookies=2.

    [android-3.4 commit 4593f09b1f9939ec6ed2f8d7848def26b98c47ac]

    Change-Id: I1c7904543d15cca7acce12a82a497f1f5f1c5597
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

commit af9fddd702de1c60e4e3dd5d5bac90095286debf
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Tue Mar 18 20:52:27 2014 +0900

    net: add a sysctl to reflect the fwmark on replies

    Kernel-originated IP packets that have no user socket associated
    with them (e.g., ICMP errors and echo replies, TCP RSTs, etc.)
    are emitted with a mark of zero. Add a sysctl to make them have
    the same mark as the packet they are replying to.

    This allows an administrator that wishes to do so to use
    mark-based routing, firewalling, etc. for these replies by
    marking the original packets inbound.

    Tested using user-mode linux:
     - ICMP/ICMPv6 echo replies and errors.
     - TCP RST packets (IPv4 and IPv6).

    [android-3.4 commit 3356997e1e1b2aa9959f046203e6d0b193bbd7f7]

    Change-Id: I700aabe3c73e822564661f8d77e6627944ff6af4
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

commit 18dba0b2d35816f17ff2995d4480d9787eed9e10
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Wed Mar 26 19:35:41 2014 +0900

    net: ipv6: autoconf routes into per-device tables

    Currently, IPv6 router discovery always puts routes into
    RT6_TABLE_MAIN. This causes problems for connection managers
    that want to support multiple simultaneous network connections
    and want control over which one is used by default (e.g., wifi
    and wired).

    To work around this connection managers typically take the routes
    they prefer and copy them to static routes with low metrics in
    the main table. This puts the burden on the connection manager
    to watch netlink to see if the routes have changed, delete the
    routes when their lifetime expires, etc.

    Instead, this patch adds a per-interface sysctl to have the
    kernel put autoconf routes into different tables. This allows
    each interface to have its own autoconf table, and choosing the
    default interface (or using different interfaces at the same
    time for different types of traffic) can be done using
    appropriate ip rules.

    The sysctl behaves as follows:

    - = 0: default. Put routes into RT6_TABLE_MAIN as before.
    - > 0: manual. Put routes into the specified table.
    - < 0: automatic. Add the absolute value of the sysctl to the
           device's ifindex, and use that table.

    The automatic mode is most useful in conjunction with
    net.ipv6.conf.default.accept_ra_rt_table. A connection manager
    or distribution could set it to, say, -100 on boot, and
    thereafter just use IP rules.

    [android-3.4 commit 5fe5c512af518d0abbbc0d2fafa8e355f518c2a9]

    Change-Id: I6be225c7f4a94a2a1f0c0610eab11a437efad97d
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

commit ab6b4e9faa8785869fd67fddb51140dc584ac11f
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Thu Feb 27 13:38:26 2014 +0900

    net: ipv6: ping: Use socket mark in routing lookup

    [net-next commit bf439b3154ce49d81a79b14f9fab18af99018ae2]

    Change-Id: I56c68a4cf87d8f7fb7792d80e66c50371620ae4e
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e1d42b1eb87060a2f02d57a907fb616c4a269aeb
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Wed Nov 23 17:29:23 2011 -0500

    ipv6: tcp: fix tcp_v6_conn_request()

    Since linux 2.6.26 (commit c6aefafb7ec6 : Add IPv6 support to TCP SYN
    cookies), we can drop a SYN packet reusing a TIME_WAIT socket.

    (As a matter of fact we fail to send the SYNACK answer)

    As the client resends its SYN packet after a one second timeout, we
    accept it, because first packet removed the TIME_WAIT socket before
    being dropped.

    This probably explains why nobody ever noticed or complained.

    [net-next commit 4d0fe50c75a547088e4304e5eb5f521514dfae46]

    Change-Id: I433da104a6a04613c40f7f28ecd35c729711af50
    Reported-by: Jesse Young <jlyo@jlyo.org>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9422ab069e39121e8bf991cfd4d89034ad62576c
Author: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Date:   Fri Oct 12 04:34:17 2012 +0000

    tcp: resets are misrouted

    [ Upstream commit 4c67525849e0b7f4bd4fab2487ec9e43ea52ef29 ]

    After commit e2446eaa ("tcp_v4_send_reset: binding oif to iif in no
    sock case").. tcp resets are always lost, when routing is asymmetric.
    Yes, backing out that patch will result in misrouting of resets for
    dead connections which used interface binding when were alive, but we
    actually cannot do anything here.  What's died that's died and correct
    handling normal unbound connections is obviously a priority.

    Comment to comment:
    > This has few benefits:
    >   1. tcp_v6_send_reset already did that.

    It was done to route resets for IPv6 link local addresses. It was a
    mistake to do so for global addresses. The patch fixes this as well.

    Actually, the problem appears to be even more serious than guaranteed
    loss of resets.  As reported by Sergey Soloviev <sol@eqv.ru>, those
    misrouted resets create a lot of arp traffic and huge amount of
    unresolved arp entires putting down to knees NAT firewalls which use
    asymmetric routing.

    Change-Id: Id7ff4096cb61ad42cf1a3513a15a5a3f006c622b
    Signed-off-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db31985982af8cb0142e459cd64164ba73b32b66
Author: Shawn Lu <shawn.lu@ericsson.com>
Date:   Sat Feb 4 12:38:09 2012 +0000

    tcp_v4_send_reset: binding oif to iif in no sock case

    Binding RST packet outgoing interface to incoming interface
    for tcp v4 when there is no socket associate with it.
    when sk is not NULL, using sk->sk_bound_dev_if instead.
    (suggested by Eric Dumazet).

    This has few benefits:
    1. tcp_v6_send_reset already did that.
    2. This helps tcp connect with SO_BINDTODEVICE set. When
    connection is lost, we still able to sending out RST using
    same interface.
    3. we are sending reply, it is most likely to be succeed
    if iif is used

    [android-3.4 commit e2446eaab5585555a38ea0df4e01ff313dbb4ac9]

    Change-Id: I3566b1f286f38563f1c14d846dbc43a89f651ea1
    Signed-off-by: Shawn Lu <shawn.lu@ericsson.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e5971258f3da57c4bab7ec9e97b4b0a377f38cc3
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Fri Jun 13 17:03:01 2014 -0700

    prctl: adds the capable(CAP_SYS_NICE) check to PR_SET_TIMERSLACK_PID.

    Adds a capable() check to make sure that arbitary apps do not change the
    timer slack for other apps.

    Bug: 15000427
    Change-Id: Ifa0d3b21a4acdf929c0c3bb91cdf5db158c1eae0
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit a9284b9a2e4ff5da64f7371cfa5cc63af3eab833
Author: Andreas Henriksson <andreas@fatal.se>
Date:   Thu Nov 7 18:26:38 2013 +0100

    net: Fix "ip rule delete table 256"

    [ Upstream commit 13eb2ab2d33c57ebddc57437a7d341995fc9138c ]

    When trying to delete a table >= 256 using iproute2 the local table
    will be deleted.
    The table id is specified as a netlink attribute when it needs more then
    8 bits and iproute2 then sets the table field to RT_TABLE_UNSPEC (0).
    Preconditions to matching the table id in the rule delete code
    doesn't seem to take the "table id in netlink attribute" into condition
    so the frh_get_table helper function never gets to do its job when
    matching against current rule.
    Use the helper function twice instead of peaking at the table value directly.

    Originally reported at: http://bugs.debian.org/724783

    Change-Id: Ia96e09fb81f56a684478c2db3c1711903ee2e243
    Reported-by: Nicolas HICHER <nhicher@avencall.com>
    Signed-off-by: Andreas Henriksson <andreas@fatal.se>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b04a4dd7246c76e9619fc1ba736f282d276bfb09
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Thu Aug 23 02:09:11 2012 +0000

    netlink: fix possible spoofing from non-root processes

    Non-root user-space processes can send Netlink messages to other
    processes that are well-known for being subscribed to Netlink
    asynchronous notifications. This allows ilegitimate non-root
    process to send forged messages to Netlink subscribers.

    The userspace process usually verifies the legitimate origin in
    two ways:

    a) Socket credentials. If UID != 0, then the message comes from
       some ilegitimate process and the message needs to be dropped.

    b) Netlink portID. In general, portID == 0 means that the origin
       of the messages comes from the kernel. Thus, discarding any
       message not coming from the kernel.

    However, ctnetlink sets the portID in event messages that has
    been triggered by some user-space process, eg. conntrack utility.
    So other processes subscribed to ctnetlink events, eg. conntrackd,
    know that the event was triggered by some user-space action.

    Neither of the two ways to discard ilegitimate messages coming
    from non-root processes can help for ctnetlink.

    This patch adds capability validation in case that dst_pid is set
    in netlink_sendmsg(). This approach is aggressive since existing
    applications using any Netlink bus to deliver messages between
    two user-space processes will break. Note that the exception is
    NETLINK_USERSOCK, since it is reserved for netlink-to-netlink
    userspace communication.

    Still, if anyone wants that his Netlink bus allows netlink-to-netlink
    userspace, then they can set NL_NONROOT_SEND. However, by default,
    I don't think it makes sense to allow to use NETLINK_ROUTE to
    communicate two processes that are sending no matter what information
    that is not related to link/neighbouring/routing. They should be using
    NETLINK_USERSOCK instead for that.

    Change-Id: I807bdd3f3e3d5411db1dc487bb9c0fd98a42a51b
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit bd57d707c22ad0e46d71a6c0d6f2f0d4f0dce141
Author: JP Abgrall <jpa@google.com>
Date:   Thu Apr 24 15:50:33 2014 -0700

    net: ipv4: current group_info should be put after using.

    Plug a group_info refcount leak in ping_init.
    group_info is only needed during initialization and
    the code failed to release the reference on exit.
    While here move grabbing the reference to a place
    where it is actually needed.

    Change-Id: Iebdd78e4499b7b8516b41718838bf0ee94442f9a
    Signed-off-by: Chuansheng Liu <chuansheng.liu@intel.com>
    Signed-off-by: Zhang Dongxing <dongxing.zhang@intel.com>
    Signed-off-by: xiaoming wang <xiaoming.wang@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5bd664d30840b581fc4bbacc2d1c8b948bdfef2e
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Thu Apr 24 14:11:08 2014 -0700

    nf: Remove compilation error caused by e254d2c28c880da28626af6d53b7add5f7d6afee

    Change-Id: Iaff7ed0dea148c4b90167a4c012189be05e75088
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 8be9ea0500dfbee50bb94ca57783af8410b78ec7
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Tue Mar 25 16:43:28 2014 -0700

    nf: IDLETIMER: time-stamp and suspend/resume handling.

    Message notifications contains an additional timestamp field in nano seconds.
    The expiry time for the timers are modified during suspend/resume.
    If timer was supposed to expire while the system is suspended then a
    notification is sent when it resumes with the timestamp of the scheduled expiry.

    Removes the race condition for multiple work scheduled.

    Bug: 13247811

    Change-Id: I6739b6b69688b98d283d73b3acd21e11ed059cd6
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 4464e61c3eeeadd018db7d95378627f62730ad62
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Fri Apr 18 14:07:28 2014 -0700

    prctl: adds PR_SET_TIMERSLACK_PID for setting timer slack of an arbitrary thread.

    Second argument is similar to PR_SET_TIMERSLACK, if non-zero then the
    slack is set to that value otherwise sets it to the default for the thread.

    Takes PID of the thread as the third argument.

    This allows power/performance management software to set timer slack for
    other threads according to its policy for the thread (such as when the
    thread is designated foreground vs. background activity)

    Change-Id: I81af1c2f5a97b9e4273da16fa8a0628f14364a76
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 52b04ffda81f0206be4e16327ee4034081cb3563
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Thu Apr 24 14:31:57 2014 -0700

    Power: Changes the permission to read only for sysfs file /sys/kernel/wakeup_reasons/last_resume_reason

    Change-Id: Iccb2dc33081f3135e3b860abd4fb84a548df9e03
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 4a37838ff3debc81da5ca155c40e2efc49033168
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Fri Feb 28 14:06:05 2014 -0800

    Power: Add an API call to log wakeup reasons

    Change-Id: Iec9ec06dbaa8eb5936e92f9df977ca3db7233a05
    Signed-off-by: Ruchi Kandoi<kandoiruchi@google.com>

commit 30bbadd078cd3e459110b3e5a97218916031337d
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Thu Feb 20 19:47:38 2014 -0800

    POWER: fix compile warnings in log_wakeup_reason

    Change I81addaf420f1338255c5d0638b0d244a99d777d1 introduced compile
    warnings, fix these.

    Change-Id: Ib225cafbe249bef82721e9c52753967bcef5f215
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 18388f336c6aee7b8133230f31694f7510648632
Author: Ruchi Kandoi <kandoiruchi@google.com>
Date:   Wed Feb 19 15:30:47 2014 -0800

    Power: add an API to log wakeup reasons

    Add API log_wakeup_reason() and expose it to userspace via sysfs path
    /sys/kernel/wakeup_reasons/last_resume_reason

    Change-Id: I5be7f1183b368c968cbde6f8504e74ff68e76ab4
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>

commit 7f9d6637ba8e46574d9e48e63358636045f3788c
Author: Thomas Wendt <thoemy@gmx.net>
Date:   Fri Feb 28 22:18:10 2014 +0100

    xt_IDLETIMER: Add new netlink msg type for IDLETIMER.

    Squashed commit of the following:

    commit 3cfe1023c0999bd7bf5b991e82f5f14a39454969
    Author: Ashish Sharma <ashishsharma@google.com>
    Date:   Wed Feb 5 01:50:50 2014 +0000

        netfilter: xt_IDLETIMER: Revert to retain the kernel API format.

        Reverted Change-Id: Iaeca5dd2d7878c0733923ae03309a2a7b86979ca

        Change-Id: I0e0a4f60ec14330d8d8d1c5a508fa058d9919e07
        Signed-off-by: Ashish Sharma <ashishsharma@google.com>

    commit bf204ad9814c621ef28686d736c79a3c6c5506d3
    Author: Ashish Sharma <ashishsharma@google.com>
    Date:   Mon Aug 13 11:38:49 2012 -0700

        netfilter: xt_IDLETIMER: Rename INTERFACE to LABEL in netlink notification.

        Signed-off-by: Ashish Sharma <ashishsharma@google.com>

    commit 70fa6a5d5019638d46406b29789284923b4bf89f
    Author: JP Abgrall <jpa@google.com>
    Date:   Fri May 4 14:26:57 2012 -0700

        netfilter: xt_IDLETIMER: Use uevent instead of new netlink msg type

        Send netlink message notifications using a uevent with
          subsystem=xt_idletimer
          INTERFACE=...
          STATE={active,inactive}
        instead of needing a new netlink message type.
        Revert the netlink.h change added by commit
          beb914e987cbbd368988d2b94a6661cb907c4d5a

        Change-Id: I6881936bf754f3367ff3c8f6c1e9661cec0357d4
        Signed-off-by: JP Abgrall <jpa@google.com>

    commit 43c75b7d23b947539508c8e9deb026333194d444
    Author: Ashish Sharma <ashishsharma@google.com>
    Date:   Thu Mar 29 13:02:27 2012 -0700

        xt_IDLETIMER: Add new netlink msg type for IDLETIMER.

        Send notifications when the label becomes active after an idle period.
        Send netlink message notifications in addition to sysfs notifications.

        Change-Id: I31677ef00c94b5f82c8457e5bf9e5e584c23c523
        Signed-off-by: Ashish Sharma <ashishsharma@google.com>

    Change-Id: I04d0258bc52b284c8d8b40c53a65994c7464d443

commit 50c74eba670876c73e28acc753cbcc3265075c79
Author: Thomas Wendt <thoemy@gmx.net>
Date:   Fri Feb 28 22:15:23 2014 +0100

    net: ipv6: Add IPv6 support to the ping socket.

    Squashed commit of the following:

    commit 09fdd03555b0c6ac3dd27fd116c2227d5ef7d6f3
    Author: Lorenzo Colitti <lorenzo@google.com>
    Date:   Thu Jul 4 00:12:40 2013 +0900

        net: ipv6: fix wrong ping_v6_sendmsg return value

        [net-next commit fbfe80c890a1dc521d0b629b870e32fcffff0da5]

        ping_v6_sendmsg currently returns 0 on success. It should return
        the number of bytes written instead.

        Bug: 9469865
        Change-Id: I82b7d3a37ba91ad24e6dbd97a4880745ce16ad31
        Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>

    commit 3fcf8d4851e4eec508423d2c6cca3937368be7c3
    Author: Lorenzo Colitti <lorenzo@google.com>
    Date:   Thu Jul 4 00:52:49 2013 +0900

        net: ipv6: add missing lock in ping_v6_sendmsg

        [net-next commit a1bdc45580fc19e968b32ad27cd7e476a4aa58f6]

        Bug: 9469865
        Change-Id: I480f8ce95956dd8f17fbbb26dc60cc162f8ec933
        Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>

    commit 036b819793cb3bcd30b8718dc240a5b4b377f6dc
    Author: Cong Wang <amwang@redhat.com>
    Date:   Sun Jun 2 22:43:52 2013 +0000

        ping: always initialize ->sin6_scope_id and ->sin6_flowinfo

        [net-next commit c26d6b46da3ee86fa8a864347331e5513ca84c2b]

        If we don't need scope id, we should initialize it to zero.
        Same for ->sin6_flowinfo.

        Change-Id: I28e4bc9593e76fc3434052182466fab4bb8ccf3a
        Cc: Lorenzo Colitti <lorenzo@google.com>
        Cc: David S. Miller <davem@davemloft.net>
        Signed-off-by: Cong Wang <amwang@redhat.com>
        Acked-by: Lorenzo Colitti <lorenzo@google.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>

    commit 34f8ee7b67086c089898db3eca698541682d2748
    Author: Lorenzo Colitti <lorenzo@google.com>
    Date:   Wed Jan 16 22:09:49 2013 +0000

        net: ipv6: Add IPv6 support to the ping socket.

        [backport of net-next 6d0bfe22611602f36617bc7aa2ffa1bbb2f54c67]

        This adds the ability to send ICMPv6 echo requests without a
        raw socket. The equivalent ability for ICMPv4 was added in
        2011.

        Instead of having separate code paths for IPv4 and IPv6, make
        most of the code in net/ipv4/ping.c dual-stack and only add a
        few IPv6-specific bits (like the protocol definition) to a new
        net/ipv6/ping.c. Hopefully this will reduce divergence and/or
        duplication of bugs in the future.

        Caveats:

        - Setting options via ancillary data (e.g., using IPV6_PKTINFO
          to specify the outgoing interface) is not yet supported.
        - There are no separate security settings for IPv4 and IPv6;
          everything is controlled by /proc/net/ipv4/ping_group_range.
        - The proc interface does not yet display IPv6 ping sockets
          properly.

        Tested with a patched copy of ping6 and using raw socket calls.
        Compiles and works with all of CONFIG_IPV6={n,m,y}.

        Change-Id: Ia359af556021344fc7f890c21383aadf950b6498
        Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>
        [lorenzo@google.com: backported to 3.0]
        Signed-off-by: Lorenzo Colitti <lorenzo@google.com>

    commit 19ea39e13d0ca712bc1b336a650ef7d942064d07
    Author: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Date:   Fri Mar 8 02:07:16 2013 +0000

        ipv6: introdcue __ipv6_addr_needs_scope_id and ipv6_iface_scope_id helper functions

        [net-next commit b7ef213ef65256168df83ddfbb8131ed9adc10f9]

        __ipv6_addr_needs_scope_id checks if an ipv6 address needs to supply
        a 'sin6_scope_id != 0'. 'sin6_scope_id != 0' was enforced in case
        of link-local addresses. To support interface-local multicast these
        checks had to be enhanced and are now consolidated into these new helper
        functions.

        v2:
        a) migrated to struct ipv6_addr_props

        v3:
        a) reverted changes for ipv6_addr_props
        b) test for address type instead of comparing scope

        v4:
        a) unchanged

        Change-Id: Id6fc54cec61f967928e08a9eba4f857157d973a3
        Suggested-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
        Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
        Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
        Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
        Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
        Signed-off-by: David S. Miller <davem@davemloft.net>

    commit 77c3b0a7319b81a3906547351f461ec0c40c955f
    Author: Li Wei <lw@cn.fujitsu.com>
    Date:   Thu Feb 21 00:09:54 2013 +0000

        ipv4: fix a bug in ping_err().

        [ Upstream commit b531ed61a2a2a77eeb2f7c88b49aa5ec7d9880d8 ]

        We should get 'type' and 'code' from the outer ICMP header.

        Signed-off-by: Li Wei <lw@cn.fujitsu.com>
        Signed-off-by: David S. Miller <davem@davemloft.net>
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    Change-Id: I24280b4bff802b5af7b08ef0ac856f6270fee712

Change-Id: I42b21bf995e8077f5aa5c8ed893a42b9bc5d0a8e