commit b3eba07a079ee4b628e40d6fecb44e2bc8f139e8
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 15 09:19:33 2017 +0200

    Linux 3.18.53

commit 94a4e4e467d7a951fcc45e7b49c74eda3e00c7ea
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Tue Dec 22 08:24:59 2015 +0100

    ARM: 8452/3: PJ4: make coprocessor access sequences buildable in Thumb2 mode
    
    commit 5008efc83bf85b647aa1cbc44718b1675bbb7444 upstream.
    
    The PJ4 inline asm sequence to write to cp15 cannot be built in Thumb-2
    mode, due to the way it performs arithmetic on the program counter, so it
    is built in ARM mode instead. However, building C files in ARM mode under
    CONFIG_THUMB2_KERNEL is problematic, since the instrumentation performed
    by subsystems like ftrace does not expect having to deal with interworking
    branches.
    
    Since the sequence in question is simply a poor man's ISB instruction,
    let's use a straight 'isb' instead when building in Thumb2 mode. Thumb2
    implies V7, so 'isb' should always be supported in that case.
    
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Nicolas Pitre <nico@linaro.org>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90757afa09b88dbec2a348037edaf65d4e1ac5c4
Author: Nicolai Hähnle <nicolai.haehnle@amd.com>
Date:   Sat Feb 18 22:59:56 2017 +0100

    drm/ttm: fix use-after-free races in vm fault handling
    
    commit 3089c1df10e2931b1d72d2ffa7d86431084c86b3 upstream.
    
    The vm fault handler relies on the fact that the VMA owns a reference
    to the BO. However, once mmap_sem is released, other tasks are free to
    destroy the VMA, which can lead to the BO being freed. Fix two code
    paths where that can happen, both related to vm fault retries.
    
    Found via a lock debugging warning which flagged &bo->wu_mutex as
    locked while being destroyed.
    
    Fixes: cbe12e74ee4e ("drm/ttm: Allow vm fault retries")
    Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27f411c7ee241d194cd5fd3271d83089d70b2c20
Author: Jin Qian <jinqian@google.com>
Date:   Tue Apr 25 16:28:48 2017 -0700

    f2fs: sanity check segment count
    
    commit b9dd46188edc2f0d1f37328637860bb65a771124 upstream.
    
    F2FS uses 4 bytes to represent block address. As a result, supported
    size of disk is 16 TB and it equals to 16 * 1024 * 1024 / 2 segments.
    
    Signed-off-by: Jin Qian <jinqian@google.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da2c082d62e93cb18397ff01d23f6d3de318ebd0
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon May 1 15:29:48 2017 -0700

    tcp: fix wraparound issue in tcp_lp
    
    [ Upstream commit a9f11f963a546fea9144f6a6d1a307e814a387e7 ]
    
    Be careful when comparing tcp_time_stamp to some u32 quantity,
    otherwise result can be surprising.
    
    Fixes: 7c106d7e782b ("[TCP]: TCP Low Priority congestion control")
    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 d01e0e80edbef33bf2e5c0675ec496fd384104fe
Author: WANG Cong <xiyou.wangcong@gmail.com>
Date:   Mon May 8 10:12:13 2017 -0700

    ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
    
    [ Upstream commit 242d3a49a2a1a71d8eb9f953db1bcaa9d698ce00 ]
    
    For each netns (except init_net), we initialize its null entry
    in 3 places:
    
    1) The template itself, as we use kmemdup()
    2) Code around dst_init_metrics() in ip6_route_net_init()
    3) ip6_route_dev_notify(), which is supposed to initialize it after
       loopback registers
    
    Unfortunately the last one still happens in a wrong order because
    we expect to initialize net->ipv6.ip6_null_entry->rt6i_idev to
    net->loopback_dev's idev, thus we have to do that after we add
    idev to loopback. However, this notifier has priority == 0 same as
    ipv6_dev_notf, and ipv6_dev_notf is registered after
    ip6_route_dev_notifier so it is called actually after
    ip6_route_dev_notifier. This is similar to commit 2f460933f58e
    ("ipv6: initialize route null entry in addrconf_init()") which
    fixes init_net.
    
    Fix it by picking a smaller priority for ip6_route_dev_notifier.
    Also, we have to release the refcnt accordingly when unregistering
    loopback_dev because device exit functions are called before subsys
    exit functions.
    
    Acked-by: David Ahern <dsahern@gmail.com>
    Tested-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40aed603cc60af30c89eb7f72536c8ec5f33a8e5
Author: WANG Cong <xiyou.wangcong@gmail.com>
Date:   Wed May 3 22:07:31 2017 -0700

    ipv6: initialize route null entry in addrconf_init()
    
    [ Upstream commit 2f460933f58eee3393aba64f0f6d14acb08d1724 ]
    
    Andrey reported a crash on init_net.ipv6.ip6_null_entry->rt6i_idev
    since it is always NULL.
    
    This is clearly wrong, we have code to initialize it to loopback_dev,
    unfortunately the order is still not correct.
    
    loopback_dev is registered very early during boot, we lose a chance
    to re-initialize it in notifier. addrconf_init() is called after
    ip6_route_init(), which means we have no chance to correct it.
    
    Fix it by moving this initialization explicitly after
    ipv6_add_dev(init_net.loopback_dev) in addrconf_init().
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2422fe798d066fce82e79eda7192777e391efcb
Author: Alexander Potapenko <glider@google.com>
Date:   Wed May 3 17:06:58 2017 +0200

    ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
    
    [ Upstream commit 86f4c90a1c5c1493f07f2d12c1079f5bf01936f2 ]
    
    raw_send_hdrinc() and rawv6_send_hdrinc() expect that the buffer copied
    from the userspace contains the IPv4/IPv6 header, so if too few bytes are
    copied, parts of the header may remain uninitialized.
    
    This bug has been detected with KMSAN.
    
    For the record, the KMSAN report:
    
    ==================================================================
    BUG: KMSAN: use of unitialized memory in nf_ct_frag6_gather+0xf5a/0x44a0
    inter: 0
    CPU: 0 PID: 1036 Comm: probe Not tainted 4.11.0-rc5+ #2455
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:16
     dump_stack+0x143/0x1b0 lib/dump_stack.c:52
     kmsan_report+0x16b/0x1e0 mm/kmsan/kmsan.c:1078
     __kmsan_warning_32+0x5c/0xa0 mm/kmsan/kmsan_instr.c:510
     nf_ct_frag6_gather+0xf5a/0x44a0 net/ipv6/netfilter/nf_conntrack_reasm.c:577
     ipv6_defrag+0x1d9/0x280 net/ipv6/netfilter/nf_defrag_ipv6_hooks.c:68
     nf_hook_entry_hookfn ./include/linux/netfilter.h:102
     nf_hook_slow+0x13f/0x3c0 net/netfilter/core.c:310
     nf_hook ./include/linux/netfilter.h:212
     NF_HOOK ./include/linux/netfilter.h:255
     rawv6_send_hdrinc net/ipv6/raw.c:673
     rawv6_sendmsg+0x2fcb/0x41a0 net/ipv6/raw.c:919
     inet_sendmsg+0x3f8/0x6d0 net/ipv4/af_inet.c:762
     sock_sendmsg_nosec net/socket.c:633
     sock_sendmsg net/socket.c:643
     SYSC_sendto+0x6a5/0x7c0 net/socket.c:1696
     SyS_sendto+0xbc/0xe0 net/socket.c:1664
     do_syscall_64+0x72/0xa0 arch/x86/entry/common.c:285
     entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.S:246
    RIP: 0033:0x436e03
    RSP: 002b:00007ffce48baf38 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
    RAX: ffffffffffffffda RBX: 00000000004002b0 RCX: 0000000000436e03
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003
    RBP: 00007ffce48baf90 R08: 00007ffce48baf50 R09: 000000000000001c
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 0000000000401790 R14: 0000000000401820 R15: 0000000000000000
    origin: 00000000d9400053
     save_stack_trace+0x16/0x20 arch/x86/kernel/stacktrace.c:59
     kmsan_save_stack_with_flags mm/kmsan/kmsan.c:362
     kmsan_internal_poison_shadow+0xb1/0x1a0 mm/kmsan/kmsan.c:257
     kmsan_poison_shadow+0x6d/0xc0 mm/kmsan/kmsan.c:270
     slab_alloc_node mm/slub.c:2735
     __kmalloc_node_track_caller+0x1f4/0x390 mm/slub.c:4341
     __kmalloc_reserve net/core/skbuff.c:138
     __alloc_skb+0x2cd/0x740 net/core/skbuff.c:231
     alloc_skb ./include/linux/skbuff.h:933
     alloc_skb_with_frags+0x209/0xbc0 net/core/skbuff.c:4678
     sock_alloc_send_pskb+0x9ff/0xe00 net/core/sock.c:1903
     sock_alloc_send_skb+0xe4/0x100 net/core/sock.c:1920
     rawv6_send_hdrinc net/ipv6/raw.c:638
     rawv6_sendmsg+0x2918/0x41a0 net/ipv6/raw.c:919
     inet_sendmsg+0x3f8/0x6d0 net/ipv4/af_inet.c:762
     sock_sendmsg_nosec net/socket.c:633
     sock_sendmsg net/socket.c:643
     SYSC_sendto+0x6a5/0x7c0 net/socket.c:1696
     SyS_sendto+0xbc/0xe0 net/socket.c:1664
     do_syscall_64+0x72/0xa0 arch/x86/entry/common.c:285
     return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.S:246
    ==================================================================
    
    , triggered by the following syscalls:
      socket(PF_INET6, SOCK_RAW, IPPROTO_RAW) = 3
      sendto(3, NULL, 0, 0, {sa_family=AF_INET6, sin6_port=htons(0), inet_pton(AF_INET6, "ff00::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EPERM
    
    A similar report is triggered in net/ipv4/raw.c if we use a PF_INET socket
    instead of a PF_INET6 one.
    
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8a9fdfe683e9120dba8c871e82c3c7788084162
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Apr 26 17:15:40 2017 -0700

    tcp: do not underestimate skb->truesize in tcp_trim_head()
    
    [ Upstream commit 7162fb242cb8322beb558828fd26b33c3e9fc805 ]
    
    Andrey found a way to trigger the WARN_ON_ONCE(delta < len) in
    skb_try_coalesce() using syzkaller and a filter attached to a TCP
    socket over loopback interface.
    
    I believe one issue with looped skbs is that tcp_trim_head() can end up
    producing skb with under estimated truesize.
    
    It hardly matters for normal conditions, since packets sent over
    loopback are never truncated.
    
    Bytes trimmed from skb->head should not change skb truesize, since
    skb->head is not reallocated.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f98b49b779692ba9e1a9bb6811e7c316819622c1
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Dec 16 10:09:39 2016 +0100

    staging: emxx_udc: remove incorrect __init annotations
    
    commit 4f3445067d5f78fb8d1970b02610f85c2f377ea4 upstream.
    
    The probe function is not marked __init, but some other functions
    are. This leads to a warning on older compilers (e.g. gcc-4.3),
    and can cause executing freed memory when built with those
    compilers:
    
    WARNING: drivers/staging/emxx_udc/emxx_udc.o(.text+0x2d78): Section mismatch in reference from the function nbu2ss_drv_probe() to the function .init.text:nbu2ss_drv_contest_init()
    
    This removes the annotations.
    
    Fixes: 33aa8d45a4fe ("staging: emxx_udc: Add Emma Mobile USB Gadget driver")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d26b791edf3b3e45c5add6798dab5152d37f68a0
Author: James Hughes <james.hughes@raspberrypi.org>
Date:   Tue Apr 25 10:15:06 2017 +0100

    brcmfmac: Make skb header writable before use
    
    commit 9cc4b7cb86cbcc6330a3faa8cd65268cd2d3c227 upstream.
    
    The driver was making changes to the skb_header without
    ensuring it was writable (i.e. uncloned).
    This patch also removes some boiler plate header size
    checking/adjustment code as that is also handled by the
    skb_cow_header function used to make header writable.
    
    Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8ebb5f3b1c23cf92da042cfcbdcfe265fbc6341
Author: James Hughes <james.hughes@raspberrypi.org>
Date:   Mon Apr 24 12:40:50 2017 +0100

    brcmfmac: Ensure pointer correctly set if skb data location changes
    
    commit 455a1eb4654c24560eb9dfc634f29cba3d87601e upstream.
    
    The incoming skb header may be resized if header space is
    insufficient, which might change the data adddress in the skb.
    Ensure that a cached pointer to that data is correctly set by
    moving assignment to after any possible changes.
    
    Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a60f8b1dc6bac8f56e37150e30e0fa784ecf62a
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:14 2017 +0100

    USB: serial: io_edgeport: fix descriptor error handling
    
    commit 3c0e25d883d06a1fbd1ad35257e8abaa57befb37 upstream.
    
    Make sure to detect short control-message transfers and log an error
    when reading incomplete manufacturer and boot descriptors.
    
    Note that the default all-zero descriptors will now be used after a
    short transfer is detected instead of partially initialised ones.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7893424ddc829cc3d3d7b75dbfa813d015d2544
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:16 2017 +0100

    USB: serial: mct_u232: fix modem-status error handling
    
    commit 36356a669eddb32917fc4b5c2b9b8bf80ede69de upstream.
    
    Make sure to detect short control-message transfers so that errors are
    logged when reading the modem status at open.
    
    Note that while this also avoids initialising the modem status using
    uninitialised heap data, these bits could not leak to user space as they
    are currently not used.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 869659664539c885052082402fbd7f915b6e0be9
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:20 2017 +0100

    USB: serial: quatech2: fix control-message error handling
    
    commit 8c34cb8ddfe808d557b51da983ff10c02793beb2 upstream.
    
    Make sure to detect short control-message transfers when fetching
    modem and line state in open and when retrieving registers.
    
    This specifically makes sure that an errno is returned to user space on
    errors in TIOCMGET instead of a zero bitmask.
    
    Also drop the unused getdevice function which also lacked appropriate
    error handling.
    
    Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bc807116d014326f92248ddffe5aefc7177edf9
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:12 2017 +0100

    USB: serial: ftdi_sio: fix latency-timer error handling
    
    commit e3e574ad85a208cb179f33720bb5f12b453de33c upstream.
    
    Make sure to detect short responses when reading the latency timer to
    avoid using stale buffer data.
    
    Note that no heap data would currently leak through sysfs as
    ASYNC_LOW_LATENCY is set by default.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 333c133c8f320f4f5dfe8d8c10fad5fcb343b51f
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:10 2017 +0100

    USB: serial: ark3116: fix open error handling
    
    commit b631433b175f1002a31020e09bbfc2e5caecf290 upstream.
    
    Fix open error handling which failed to detect errors when reading the
    MSR and LSR registers, something which could lead to the shadow
    registers being initialised from errnos.
    
    Note that calling the generic close implementation is sufficient in the
    error paths as the interrupt urb has not yet been submitted and the
    register updates have not been made.
    
    Fixes: f4c1e8d597d1 ("USB: ark3116: Make existing functions 16450-aware
    and add close and release functions.")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 150dbeaaa0b76f060e1a0bc6cc5169d6d9da4ac1
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:23 2017 +0100

    USB: serial: ti_usb_3410_5052: fix control-message error handling
    
    commit 39712e8bfa8d3aa6ce1e60fc9d62c9b076c17a30 upstream.
    
    Make sure to detect and return an error on zero-length control-message
    transfers when reading from the device.
    
    This addresses a potential failure to detect an empty transmit buffer
    during close.
    
    Also remove a redundant check for short transfer when sending a command.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b84e0c4cbc29f0e6df97b3644d0bdb5b5db1ad0d
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:13 2017 +0100

    USB: serial: io_edgeport: fix epic-descriptor handling
    
    commit e4457d9798adb96272468e93da663de9bd0a4198 upstream.
    
    Use a dedicated buffer for the DMA transfer and make sure to detect
    short transfers to avoid parsing a corrupt descriptor.
    
    Fixes: 6e8cf7751f9f ("USB: add EPIC support to the io_edgeport driver")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba5886243eec44f6d9453b08cf8a749c4299a2dd
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 12 14:56:22 2017 +0100

    USB: serial: ssu100: fix control-message error handling
    
    commit 1eac5c244f705182d1552a53e2f74e2775ed95d6 upstream.
    
    Make sure to detect short control-message transfers rather than continue
    with zero-initialised data when retrieving modem status and during
    device initialisation.
    
    Fixes: 52af95459939 ("USB: add USB serial ssu100 driver")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60e272a7af52cfb9c8173fe0f542f333b1b1152d
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jan 31 17:17:28 2017 +0100

    USB: serial: digi_acceleport: fix incomplete rx sanity check
    
    commit 1b0aed2b1600f6e5c7b9acfbd610a4e351ef5232 upstream.
    
    Make sure the received data has the required headers before parsing it.
    
    Also drop the redundant urb-status check, which has already been handled
    by the caller.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a45e94d85b59ff8b1a174537aa30abe36e13965
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jan 31 17:17:29 2017 +0100

    USB: serial: keyspan_pda: fix receive sanity checks
    
    commit c528fcb116e61afc379a2e0a0f70906b937f1e2c upstream.
    
    Make sure to check for short transfers before parsing the receive buffer
    to avoid acting on stale data.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2ec9cdfe25d8f9cbc2a116232b3249705ae4e29
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Sat Jan 7 10:41:41 2017 +0200

    usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
    
    commit 68bd6fc3cfa98ef253e17307ccafd8ef907b5556 upstream.
    
    Returning from for_each_available_child_of_node() loop requires cleaning
    up node refcount.  Error paths lacked it so for example in case of
    deferred probe, the refcount of phy node was left increased.
    
    Fixes: 6d40500ac9b6 ("usb: ehci/ohci-exynos: Fix of_node_put() for child when getting PHYs")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c9e97996f07af61c8281146624a29c633296c03
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Sat Jan 7 10:41:40 2017 +0200

    usb: host: ehci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths
    
    commit 3f6026b1dcb3c8ee71198c485a72ac674c6890dd upstream.
    
    Returning from for_each_available_child_of_node() loop requires cleaning
    up node refcount.  Error paths lacked it so for example in case of
    deferred probe, the refcount of phy node was left increased.
    
    Fixes: 6d40500ac9b6 ("usb: ehci/ohci-exynos: Fix of_node_put() for child when getting PHYs")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a44b41cc492da3322f81d0f8ef2a355501fa663d
Author: Jim Mattson <jmattson@google.com>
Date:   Tue Dec 20 16:34:50 2016 -0800

    Revert "KVM: nested VMX: disable perf cpuid reporting"
    
    commit 0b4c208d443ba2af82b4c70f99ca8df31e9a0020 upstream.
    
    This reverts commit bc6134942dbbf31c25e9bd7c876be5da81c9e1ce.
    
    A CPUID instruction executed in VMX non-root mode always causes a
    VM-exit, regardless of the leaf being queried.
    
    Fixes: bc6134942dbb ("KVM: nested VMX: disable perf cpuid reporting")
    Signed-off-by: Jim Mattson <jmattson@google.com>
    [The issue solved by bc6134942dbb has been resolved with ff651cb613b4
     ("KVM: nVMX: Add nested msr load/restore algorithm").]
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e751f0c66459cb436bacb6c11abcc05582da996
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Sun Mar 12 17:07:44 2017 +0200

    x86/platform/intel-mid: Correct MSI IRQ line for watchdog device
    
    commit 80354c29025833acd72ddac1ffa21c6cb50128cd upstream.
    
    The interrupt line used for the watchdog is 12, according to the official
    Intel Edison BSP code.
    
    And indeed after fixing it we start getting an interrupt and thus the
    watchdog starts working again:
    
      [  191.699951] Kernel panic - not syncing: Kernel Watchdog
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: David Cohen <david.a.cohen@linux.intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 78a3bb9e408b ("x86: intel-mid: add watchdog platform code for Merrifield")
    Link: http://lkml.kernel.org/r/20170312150744.45493-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4b3fc13402189a6cb7813ec12cabda87070b293
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Mar 1 01:23:24 2017 +0900

    kprobes/x86: Fix kernel panic when certain exception-handling addresses are probed
    
    commit 75013fb16f8484898eaa8d0b08fed942d790f029 upstream.
    
    Fix to the exception table entry check by using probed address
    instead of the address of copied instruction.
    
    This bug may cause unexpected kernel panic if user probe an address
    where an exception can happen which should be fixup by __ex_table
    (e.g. copy_from_user.)
    
    Unless user puts a kprobe on such address, this doesn't
    cause any problem.
    
    This bug has been introduced years ago, by commit:
    
      464846888d9a ("x86/kprobes: Fix a bug which can modify kernel code permanently").
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 464846888d9a ("x86/kprobes: Fix a bug which can modify kernel code permanently")
    Link: http://lkml.kernel.org/r/148829899399.28855.12581062400757221722.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c9c9d5acd83f47622424809d782a1c6cd7ce380
Author: Nikola Pajkovsky <npajkovsky@suse.cz>
Date:   Tue Nov 15 09:47:49 2016 +0100

    x86/pci-calgary: Fix iommu_free() comparison of unsigned expression >= 0
    
    commit 68dee8e2f2cacc54d038394e70d22411dee89da2 upstream.
    
    commit 8fd524b355da ("x86: Kill bad_dma_address variable") has killed
    bad_dma_address variable and used instead of macro DMA_ERROR_CODE
    which is always zero. Since dma_addr is unsigned, the statement
    
       dma_addr >= DMA_ERROR_CODE
    
    is always true, and not needed.
    
    arch/x86/kernel/pci-calgary_64.c: In function ‘iommu_free’:
    arch/x86/kernel/pci-calgary_64.c:299:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
      if (unlikely((dma_addr >= DMA_ERROR_CODE) && (dma_addr < badend))) {
    
    Fixes: 8fd524b355da ("x86: Kill bad_dma_address variable")
    Signed-off-by: Nikola Pajkovsky <npajkovsky@suse.cz>
    Cc: iommu@lists.linux-foundation.org
    Cc: Jon Mason <jdmason@kudzu.us>
    Cc: Muli Ben-Yehuda <mulix@mulix.org>
    Link: http://lkml.kernel.org/r/7612c0f9dd7c1290407dbf8e809def922006920b.1479161177.git.npajkovsky@suse.cz
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22fe982c76243e9e099dc01dbed9730d7787a796
Author: Ganapathi Bhat <gbhat@marvell.com>
Date:   Fri Feb 3 18:30:22 2017 +0530

    mwifiex: Avoid skipping WEP key deletion for AP
    
    commit a5b60de6972decc6b50a39abb376077c3c3621c8 upstream.
    
    This patch fixes the issue specific to AP. AP is started with WEP
    security and external station is connected to it. Data path works
    in this case. Now if AP is restarted with WPA/WPA2 security,
    station is able to connect but ping fails.
    
    Driver skips the deletion of WEP keys if interface type is AP.
    Removing that redundant check resolves the issue.
    
    Fixes: e57f1734d87a ("mwifiex: add key material v2 support")
    Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
    Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 902e9c6036d381bc294377614879e3c56985e0bd
Author: Brian Norris <briannorris@chromium.org>
Date:   Mon Jan 9 15:33:50 2017 -0800

    mwifiex: debugfs: Fix (sometimes) off-by-1 SSID print
    
    commit 6183468a23fc6b6903f8597982017ad2c7fdefcf upstream.
    
    Similar to commit fcd2042e8d36 ("mwifiex: printk() overflow with 32-byte
    SSIDs"), we failed to account for the existence of 32-char SSIDs in our
    debugfs code. Unlike in that case though, we zeroed out the containing
    struct first, and I'm pretty sure we're guaranteed to have some padding
    after the 'ssid.ssid' and 'ssid.ssid_len' fields (the struct is 33 bytes
    long).
    
    So, this is the difference between:
    
      # cat /sys/kernel/debug/mwifiex/mlan0/info
      ...
      essid="0123456789abcdef0123456789abcdef "
      ...
    
    and the correct output:
    
      # cat /sys/kernel/debug/mwifiex/mlan0/info
      ...
      essid="0123456789abcdef0123456789abcdef"
      ...
    
    Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex driver")
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c710e9585569217d03531b5a4666bef731d2c226
Author: Liam Breck <liam@networkimprov.net>
Date:   Wed Jan 18 09:26:49 2017 -0800

    power: supply: bq24190_charger: Call set_mode_host() on pm_resume()
    
    commit e05ad7e0741ce0505e1df157c62b22b95172bb97 upstream.
    
    pm_resume() does a register_reset() which clears charger host mode.
    
    Fix by calling set_mode_host() after the reset.
    
    Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
    Signed-off-by: Liam Breck <kernel@networkimprov.net>
    Acked-by: Mark Greer <mgreer@animalcreek.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e738507e2f9e5d278da59ee659def37abe072293
Author: Liam Breck <liam@networkimprov.net>
Date:   Wed Jan 18 09:26:48 2017 -0800

    power: supply: bq24190_charger: Fix irq trigger to IRQF_TRIGGER_FALLING
    
    commit 767eee362fd72bb2ca44cc80419ca4b38c6d8369 upstream.
    
    The interrupt signal is TRIGGER_FALLING. This is is specified in the
    data sheet PIN FUNCTIONS: "The INT pin sends active low, 256us
    pulse to host to report charger device status and fault."
    
    Also the direction can be seen in the data sheet Figure 37 "BQ24190
    with D+/D- Detection and USB On-The-Go (OTG)" which shows a 10k
    pull-up resistor installed for the sample configurations.
    
    Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
    Signed-off-by: Liam Breck <kernel@networkimprov.net>
    Acked-by: Mark Greer <mgreer@animalcreek.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e736adbe1f3e61a5a0f0c7bc38c7189fd1197e2c
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Tue Feb 7 21:01:01 2017 +1100

    powerpc/powernv: Fix opal_exit tracepoint opcode
    
    commit a7e0fb6c2029a780444d09560f739e020d54fe4d upstream.
    
    Currently the opal_exit tracepoint usually shows the opcode as 0:
    
      <idle>-0     [047] d.h.   635.654292: opal_entry: opcode=63
      <idle>-0     [047] d.h.   635.654296: opal_exit: opcode=0 retval=0
      kopald-1209  [019] d...   636.420943: opal_entry: opcode=10
      kopald-1209  [019] d...   636.420959: opal_exit: opcode=0 retval=0
    
    This is because we incorrectly load the opcode into r0 before calling
    __trace_opal_exit(), whereas it expects the opcode in r3 (first function
    parameter). In fact we are leaving the retval in r3, so opcode and
    retval will always show the same value.
    
    Instead load the opcode into r3, resulting in:
    
      <idle>-0     [040] d.h.   636.618625: opal_entry: opcode=63
      <idle>-0     [040] d.h.   636.618627: opal_exit: opcode=63 retval=0
    
    Fixes: c49f63530bb6 ("powernv: Add OPAL tracepoints")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02392c67f6bf7bf55ade88d42650fe2451c14378
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Apr 11 00:29:44 2017 +0100

    cpupower: Fix turbo frequency reporting for pre-Sandy Bridge cores
    
    commit 4cca0457686e4ee1677d69469e4ddfd94d389a80 upstream.
    
    The switch that conditionally sets CPUPOWER_CAP_HAS_TURBO_RATIO and
    CPUPOWER_CAP_IS_SNB flags is missing a break, so all cores get both
    flags set and an assumed base clock of 100 MHz for turbo values.
    
    Reported-by: GSR <gsr.bugs@infernal-iceberg.com>
    Tested-by: GSR <gsr.bugs@infernal-iceberg.com>
    References: https://bugs.debian.org/859978
    Fixes: 8fb2e440b223 (cpupower: Show Intel turbo ratio support via ...)
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfd1a7c562019ee831afb62b3e5ee1daf6cce01b
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Mar 10 17:48:37 2015 +0100

    mtd: cfi: reduce stack size
    
    commit d09957fbb4d0b059b3176b510540df69048ad170 upstream.
    
    The cfi_staa_write_buffers function uses a large amount of kernel stack
    whenever CONFIG_MTD_MAP_BANK_WIDTH_32 is set, and that results in a
    warning on ARM allmodconfig builds:
    
    drivers/mtd/chips/cfi_cmdset_0020.c: In function 'cfi_staa_write_buffers':
    drivers/mtd/chips/cfi_cmdset_0020.c:651:1: warning: the frame size of 1208 bytes is larger than 1024 bytes [-Wframe-larger-than=]
    
    It turns out that this is largely a result of a suboptimal implementation
    of map_word_andequal(). Replacing this function with a straightforward
    one reduces the stack size in this function by exactly 200 bytes,
    shrinks the .text segment for this file from 27648 bytes to 26608 bytes,
    and makes the warning go away.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3e6999d6e61b8d2b0964a7d7c6fc3d6d30e9078
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 26 14:45:29 2015 -0700

    tty: remove platform_sysrq_reset_seq
    
    commit ffb6e0c9a0572f8e5f8e9337a1b40ac2ec1493a1 upstream.
    
    The platform_sysrq_reset_seq code was intended as a way for an embedded
    platform to provide its own sysrq sequence at compile time. After over two
    years, nobody has started using it in an upstream kernel, and the platforms
    that were interested in it have moved on to devicetree, which can be used
    to configure the sequence without requiring kernel changes. The method is
    also incompatible with the way that most architectures build support for
    multiple platforms into a single kernel.
    
    Now the code is producing warnings when built with gcc-5.1:
    
    drivers/tty/sysrq.c: In function 'sysrq_init':
    drivers/tty/sysrq.c:959:33: warning: array subscript is above array bounds [-Warray-bounds]
       key = platform_sysrq_reset_seq[i];
    
    We could fix this, but it seems unlikely that it will ever be used, so
    let's just remove the code instead. We still have the option to pass the
    sequence either in DT, using the kernel command line, or using the
    /sys/module/sysrq/parameters/reset_seq file.
    
    Fixes: 154b7a489a ("Input: sysrq - allow specifying alternate reset sequence")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2755f4c486cca1776b69fde1fac141611dbfb6aa
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Feb 22 15:40:53 2017 -0800

    9p: fix a potential acl leak
    
    commit b5c66bab72a6a65edb15beb60b90d3cb84c5763b upstream.
    
    posix_acl_update_mode() could possibly clear 'acl', if so we leak the
    memory pointed by 'acl'.  Save this pointer before calling
    posix_acl_update_mode() and release the memory if 'acl' really gets
    cleared.
    
    Link: http://lkml.kernel.org/r/1486678332-2430-1-git-send-email-xiyou.wangcong@gmail.com
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reported-by: Mark Salyzyn <salyzyn@android.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Greg Kurz <groug@kaod.org>
    Cc: Eric Van Hensbergen <ericvh@gmail.com>
    Cc: Ron Minnich <rminnich@sandia.gov>
    Cc: Latchesar Ionkov <lucho@ionkov.net>
    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>