commit 6b65a8f64f4fd256ac0f6b9e97e9939ae18fc6c7
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu May 25 14:18:15 2017 +0200

    Linux 3.18.55

commit 5d5ea13896c83d3c9ad9fa3c4ae8cd76045edf44
Author: Maksim Salau <maksim.salau@gmail.com>
Date:   Sat May 13 23:49:26 2017 +0300

    usb: misc: legousbtower: Fix memory leak
    
    commit 0bd193d62b4270a2a7a09da43ad1034c7ca5b3d3 upstream.
    
    get_version_reply is not freed if function returns with success.
    
    Fixes: 942a48730faf ("usb: misc: legousbtower: Fix buffers on stack")
    Reported-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Maksim Salau <maksim.salau@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea3c00fdcc43148414d8427b4505ba9f395c789e
Author: Julius Werner <jwerner@chromium.org>
Date:   Fri May 12 14:42:58 2017 -0700

    drivers: char: mem: Check for address space wraparound with mmap()
    
    commit b299cde245b0b76c977f4291162cf668e087b408 upstream.
    
    /dev/mem currently allows mmap() mappings that wrap around the end of
    the physical address space, which should probably be illegal. It
    circumvents the existing STRICT_DEVMEM permission check because the loop
    immediately terminates (as the start address is already higher than the
    end address). On the x86_64 architecture it will then cause a panic
    (from the BUG(start >= end) in arch/x86/mm/pat.c:reserve_memtype()).
    
    This patch adds an explicit check to make sure offset + size will not
    wrap around in the physical address type.
    
    Signed-off-by: Julius Werner <jwerner@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc932a80ee3cdbd5756ebc74f68dd629a5ec69c7
Author: Lukas Wunner <lukas@wunner.de>
Date:   Tue Apr 18 20:44:30 2017 +0200

    PCI: Freeze PME scan before suspending devices
    
    commit ea00353f36b64375518662a8ad15e39218a1f324 upstream.
    
    Laurent Pinchart reported that the Renesas R-Car H2 Lager board (r8a7790)
    crashes during suspend tests.  Geert Uytterhoeven managed to reproduce the
    issue on an M2-W Koelsch board (r8a7791):
    
      It occurs when the PME scan runs, once per second.  During PME scan, the
      PCI host bridge (rcar-pci) registers are accessed while its module clock
      has already been disabled, leading to the crash.
    
    One reproducer is to configure s2ram to use "s2idle" instead of "deep"
    suspend:
    
      # echo 0 > /sys/module/printk/parameters/console_suspend
      # echo s2idle > /sys/power/mem_sleep
      # echo mem > /sys/power/state
    
    Another reproducer is to write either "platform" or "processors" to
    /sys/power/pm_test.  It does not (or is less likely) to happen during full
    system suspend ("core" or "none") because system suspend also disables
    timers, and thus the workqueue handling PME scans no longer runs.  Geert
    believes the issue may still happen in the small window between disabling
    module clocks and disabling timers:
    
      # echo 0 > /sys/module/printk/parameters/console_suspend
      # echo platform > /sys/power/pm_test    # Or "processors"
      # echo mem > /sys/power/state
    
    (Make sure CONFIG_PCI_RCAR_GEN2 and CONFIG_USB_OHCI_HCD_PCI are enabled.)
    
    Rafael Wysocki agrees that PME scans should be suspended before the host
    bridge registers become inaccessible.  To that end, queue the task on a
    workqueue that gets frozen before devices suspend.
    
    Rafael notes however that as a result, some wakeup events may be missed if
    they are delivered via PME from a device without working IRQ (which hence
    must be polled) and occur after the workqueue has been frozen.  If that
    turns out to be an issue in practice, it may be possible to solve it by
    calling pci_pme_list_scan() once directly from one of the host bridge's
    pm_ops callbacks.
    
    Stacktrace for posterity:
    
      PM: Syncing filesystems ... [   38.566237] done.
      PM: Preparing system for sleep (mem)
      Freezing user space processes ... [   38.579813] (elapsed 0.001 seconds) done.
      Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
      PM: Suspending system (mem)
      PM: suspend of devices complete after 152.456 msecs
      PM: late suspend of devices complete after 2.809 msecs
      PM: noirq suspend of devices complete after 29.863 msecs
      suspend debug: Waiting for 5 second(s).
      Unhandled fault: asynchronous external abort (0x1211) at 0x00000000
      pgd = c0003000
      [00000000] *pgd=80000040004003, *pmd=00000000
      Internal error: : 1211 [#1] SMP ARM
      Modules linked in:
      CPU: 1 PID: 20 Comm: kworker/1:1 Not tainted
      4.9.0-rc1-koelsch-00011-g68db9bc814362e7f #3383
      Hardware name: Generic R8A7791 (Flattened Device Tree)
      Workqueue: events pci_pme_list_scan
      task: eb56e140 task.stack: eb58e000
      PC is at pci_generic_config_read+0x64/0x6c
      LR is at rcar_pci_cfg_base+0x64/0x84
      pc : [<c041d7b4>]    lr : [<c04309a0>]    psr: 600d0093
      sp : eb58fe98  ip : c041d750  fp : 00000008
      r10: c0e2283c  r9 : 00000000  r8 : 600d0013
      r7 : 00000008  r6 : eb58fed6  r5 : 00000002  r4 : eb58feb4
      r3 : 00000000  r2 : 00000044  r1 : 00000008  r0 : 00000000
      Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 30c5387d  Table: 6a9f6c80  DAC: 55555555
      Process kworker/1:1 (pid: 20, stack limit = 0xeb58e210)
      Stack: (0xeb58fe98 to 0xeb590000)
      fe80:                                                       00000002 00000044
      fea0: eb6f5800 c041d9b0 eb58feb4 00000008 00000044 00000000 eb78a000 eb78a000
      fec0: 00000044 00000000 eb9aff00 c0424bf0 eb78a000 00000000 eb78a000 c0e22830
      fee0: ea8a6fc0 c0424c5c eaae79c0 c0424ce0 eb55f380 c0e22838 eb9a9800 c0235fbc
      ff00: eb55f380 c0e22838 eb55f380 eb9a9800 eb9a9800 eb58e000 eb9a9824 c0e02100
      ff20: eb55f398 c02366c4 eb56e140 eb5631c0 00000000 eb55f380 c023641c 00000000
      ff40: 00000000 00000000 00000000 c023a928 cd105598 00000000 40506a34 eb55f380
      ff60: 00000000 00000000 dead4ead ffffffff ffffffff eb58ff74 eb58ff74 00000000
      ff80: 00000000 dead4ead ffffffff ffffffff eb58ff90 eb58ff90 eb58ffac eb5631c0
      ffa0: c023a844 00000000 00000000 c0206d68 00000000 00000000 00000000 00000000
      ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 3a81336c 10ccd1dd
      [<c041d7b4>] (pci_generic_config_read) from [<c041d9b0>]
      (pci_bus_read_config_word+0x58/0x80)
      [<c041d9b0>] (pci_bus_read_config_word) from [<c0424bf0>]
      (pci_check_pme_status+0x34/0x78)
      [<c0424bf0>] (pci_check_pme_status) from [<c0424c5c>] (pci_pme_wakeup+0x28/0x54)
      [<c0424c5c>] (pci_pme_wakeup) from [<c0424ce0>] (pci_pme_list_scan+0x58/0xb4)
      [<c0424ce0>] (pci_pme_list_scan) from [<c0235fbc>]
      (process_one_work+0x1bc/0x308)
      [<c0235fbc>] (process_one_work) from [<c02366c4>] (worker_thread+0x2a8/0x3e0)
      [<c02366c4>] (worker_thread) from [<c023a928>] (kthread+0xe4/0xfc)
      [<c023a928>] (kthread) from [<c0206d68>] (ret_from_fork+0x14/0x2c)
      Code: ea000000 e5903000 f57ff04f e3a00000 (e5843000)
      ---[ end trace 667d43ba3aa9e589 ]---
    
    Fixes: df17e62e5bff ("PCI: Add support for polling PME state on suspended legacy PCI devices")
    Reported-and-tested-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Reported-and-tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
    Cc: Simon Horman <horms+renesas@verge.net.au>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Matthew Garrett <mjg59@srcf.ucam.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb0aa10af383c908a03593cf1929f596eb66d20f
Author: David Woodhouse <dwmw@amazon.co.uk>
Date:   Wed Apr 12 13:25:50 2017 +0100

    PCI: Fix pci_mmap_fits() for HAVE_PCI_RESOURCE_TO_USER platforms
    
    commit 6bccc7f426abd640f08d8c75fb22f99483f201b4 upstream.
    
    In the PCI_MMAP_PROCFS case when the address being passed by the user is a
    'user visible' resource address based on the bus window, and not the actual
    contents of the resource, that's what we need to be checking it against.
    
    Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9713a7c45a15c568b266bcbc7d5b9cd054d8c1a6
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed May 17 10:19:49 2017 +0200

    tracing/kprobes: Enforce kprobes teardown after testing
    
    commit 30e7d894c1478c88d50ce94ddcdbd7f9763d9cdd upstream.
    
    Enabling the tracer selftest triggers occasionally the warning in
    text_poke(), which warns when the to be modified page is not marked
    reserved.
    
    The reason is that the tracer selftest installs kprobes on functions marked
    __init for testing. These probes are removed after the tests, but that
    removal schedules the delayed kprobes_optimizer work, which will do the
    actual text poke. If the work is executed after the init text is freed,
    then the warning triggers. The bug can be reproduced reliably when the work
    delay is increased.
    
    Flush the optimizer work and wait for the optimizing/unoptimizing lists to
    become empty before returning from the kprobes tracer selftest. That
    ensures that all operations which were queued due to the probes removal
    have completed.
    
    Link: http://lkml.kernel.org/r/20170516094802.76a468bb@gandalf.local.home
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Fixes: 6274de498 ("kprobes: Support delayed unoptimizing")
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e0fb40f8cd59d525cbf65c46b456216c4a0b1e9
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun May 14 21:47:25 2017 -0400

    osf_wait4(): fix infoleak
    
    commit a8c39544a6eb2093c04afd5005b6192bd0e880c6 upstream.
    
    failing sys_wait4() won't fill struct rusage...
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02a8cea43ee5d1bce0a729997226dfda23344126
Author: Johan Hovold <johan@kernel.org>
Date:   Fri May 12 12:06:32 2017 +0200

    uwb: fix device quirk on big-endian hosts
    
    commit 41318a2b82f5d5fe1fb408f6d6e0b22aa557111d upstream.
    
    Add missing endianness conversion when using the USB device-descriptor
    idProduct field to apply a hardware quirk.
    
    Fixes: 1ba47da52712 ("uwb: add the i1480 DFU driver")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 609a3e81550b0b4ea87197b0f59455a7bcff975a
Author: Daniel Micay <danielmicay@gmail.com>
Date:   Thu May 4 09:32:09 2017 -0400

    stackprotector: Increase the per-task stack canary's random range from 32 bits to 64 bits on 64-bit platforms
    
    commit 5ea30e4e58040cfd6434c2f33dc3ea76e2c15b05 upstream.
    
    The stack canary is an 'unsigned long' and should be fully initialized to
    random data rather than only 32 bits of random data.
    
    Signed-off-by: Daniel Micay <danielmicay@gmail.com>
    Acked-by: Arjan van de Ven <arjan@linux.intel.com>
    Acked-by: Rik van Riel <riel@redhat.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Arjan van Ven <arjan@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: kernel-hardening@lists.openwall.com
    Link: http://lkml.kernel.org/r/20170504133209.3053-1-danielmicay@gmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1897f50c52c763e331d0809dddc7dd103d5383df
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue May 2 19:41:06 2017 +0100

    metag/uaccess: Check access_ok in strncpy_from_user
    
    commit 3a158a62da0673db918b53ac1440845a5b64fd90 upstream.
    
    The metag implementation of strncpy_from_user() doesn't validate the src
    pointer, which could allow reading of arbitrary kernel memory. Add a
    short access_ok() check to prevent that.
    
    Its still possible for it to read across the user/kernel boundary, but
    it will invariably reach a NUL character after only 9 bytes, leaking
    only a static kernel address being loaded into D0Re0 at the beginning of
    __start, which is acceptable for the immediate fix.
    
    Reported-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: linux-metag@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ee04c4ba6d8b49c9374e176c619d137da2df8c4
Author: James Hogan <james.hogan@imgtec.com>
Date:   Fri Apr 28 10:50:26 2017 +0100

    metag/uaccess: Fix access_ok()
    
    commit 8a8b56638bcac4e64cccc88bf95a0f9f4b19a2fb upstream.
    
    The __user_bad() macro used by access_ok() has a few corner cases
    noticed by Al Viro where it doesn't behave correctly:
    
     - The kernel range check has off by 1 errors which permit access to the
       first and last byte of the kernel mapped range.
    
     - The kernel range check ends at LINCORE_BASE rather than
       META_MEMORY_LIMIT, which is ineffective when the kernel is in global
       space (an extremely uncommon configuration).
    
    There are a couple of other shortcomings here too:
    
     - Access to the whole of the other address space is permitted (i.e. the
       global half of the address space when the kernel is in local space).
       This isn't ideal as it could theoretically still contain privileged
       mappings set up by the bootloader.
    
     - The size argument is unused, permitting user copies which start on
       valid pages at the end of the user address range and cross the
       boundary into the kernel address space (e.g. addr = 0x3ffffff0, size
       > 0x10).
    
    It isn't very convenient to add size checks when disallowing certain
    regions, and it seems far safer to be sure and explicit about what
    userland is able to access, so invert the logic to allow certain regions
    instead, and fix the off by 1 errors and missing size checks. This also
    allows the get_fs() == KERNEL_DS check to be more easily optimised into
    the user address range case.
    
    We now have 3 such allowed regions:
    
     - The user address range (incorporating the get_fs() == KERNEL_DS
       check).
    
     - NULL (some kernel code expects this to work, and we'll always catch
       the fault anyway).
    
     - The core code memory region.
    
    Fixes: 373cd784d0fc ("metag: Memory handling")
    Reported-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: linux-metag@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6afa45149d91d3d031e191b5d9c153016dfc1995
Author: Keno Fischer <keno@juliacomputing.com>
Date:   Tue Jan 24 15:17:48 2017 -0800

    mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp
    
    commit 8310d48b125d19fcd9521d83b8293e63eb1646aa upstream.
    
    In commit 19be0eaffa3a ("mm: remove gup_flags FOLL_WRITE games from
    __get_user_pages()"), the mm code was changed from unsetting FOLL_WRITE
    after a COW was resolved to setting the (newly introduced) FOLL_COW
    instead.  Simultaneously, the check in gup.c was updated to still allow
    writes with FOLL_FORCE set if FOLL_COW had also been set.
    
    However, a similar check in huge_memory.c was forgotten.  As a result,
    remote memory writes to ro regions of memory backed by transparent huge
    pages cause an infinite loop in the kernel (handle_mm_fault sets
    FOLL_COW and returns 0 causing a retry, but follow_trans_huge_pmd bails
    out immidiately because `(flags & FOLL_WRITE) && !pmd_write(*pmd)` is
    true.
    
    While in this state the process is stil SIGKILLable, but little else
    works (e.g.  no ptrace attach, no other signals).  This is easily
    reproduced with the following code (assuming thp are set to always):
    
        #include <assert.h>
        #include <fcntl.h>
        #include <stdint.h>
        #include <stdio.h>
        #include <string.h>
        #include <sys/mman.h>
        #include <sys/stat.h>
        #include <sys/types.h>
        #include <sys/wait.h>
        #include <unistd.h>
    
        #define TEST_SIZE 5 * 1024 * 1024
    
        int main(void) {
          int status;
          pid_t child;
          int fd = open("/proc/self/mem", O_RDWR);
          void *addr = mmap(NULL, TEST_SIZE, PROT_READ,
                            MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
          assert(addr != MAP_FAILED);
          pid_t parent_pid = getpid();
          if ((child = fork()) == 0) {
            void *addr2 = mmap(NULL, TEST_SIZE, PROT_READ | PROT_WRITE,
                               MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
            assert(addr2 != MAP_FAILED);
            memset(addr2, 'a', TEST_SIZE);
            pwrite(fd, addr2, TEST_SIZE, (uintptr_t)addr);
            return 0;
          }
          assert(child == waitpid(child, &status, 0));
          assert(WIFEXITED(status) && WEXITSTATUS(status) == 0);
          return 0;
        }
    
    Fix this by updating follow_trans_huge_pmd in huge_memory.c analogously
    to the update in gup.c in the original commit.  The same pattern exists
    in follow_devmap_pmd.  However, we should not be able to reach that
    check with FOLL_COW set, so add WARN_ONCE to make sure we notice if we
    ever do.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Link: http://lkml.kernel.org/r/20170106015025.GA38411@juliacomputing.com
    Signed-off-by: Keno Fischer <keno@juliacomputing.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Willy Tarreau <w@1wt.eu>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [AmitP: Minor refactoring of upstream changes for linux-3.18.y,
            where follow_devmap_pmd() doesn't exist.]
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c9b24b2064aa21eeb6ea7d143d176e84b8f1410
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Nov 17 10:49:31 2016 +0100

    xc2028: Fix use-after-free bug properly
    
    commit 22a1e7783e173ab3d86018eb590107d68df46c11 upstream.
    
    The commit 8dfbcc4351a0 ("[media] xc2028: avoid use after free") tried
    to address the reported use-after-free by clearing the reference.
    
    However, it's clearing the wrong pointer; it sets NULL to
    priv->ctrl.fname, but it's anyway overwritten by the next line
    memcpy(&priv->ctrl, p, sizeof(priv->ctrl)).
    
    OTOH, the actual code accessing the freed string is the strcmp() call
    with priv->fname:
            if (!firmware_name[0] && p->fname &&
                priv->fname && strcmp(p->fname, priv->fname))
                    free_firmware(priv);
    
    where priv->fname points to the previous file name, and this was
    already freed by kfree().
    
    For fixing the bug properly, this patch does the following:
    
    - Keep the copy of firmware file name in only priv->fname,
      priv->ctrl.fname isn't changed;
    - The allocation is done only when the firmware gets loaded;
    - The kfree() is called in free_firmware() commonly
    
    Fixes: commit 8dfbcc4351a0 ('[media] xc2028: avoid use after free')
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd216cef3e6056326d168d64e896a0ca3b7817f3
Author: Kristina Martsenko <kristina.martsenko@arm.com>
Date:   Wed May 3 16:37:48 2017 +0100

    arm64: documentation: document tagged pointer stack constraints
    
    commit f0e421b1bf7af97f026e1bb8bfe4c5a7a8c08f42 upstream.
    
    Some kernel features don't currently work if a task puts a non-zero
    address tag in its stack pointer, frame pointer, or frame record entries
    (FP, LR).
    
    For example, with a tagged stack pointer, the kernel can't deliver
    signals to the process, and the task is killed instead. As another
    example, with a tagged frame pointer or frame records, perf fails to
    generate call graphs or resolve symbols.
    
    For now, just document these limitations, instead of finding and fixing
    everything that doesn't work, as it's not known if anyone needs to use
    tags in these places anyway.
    
    In addition, as requested by Dave Martin, generalize the limitations
    into a general kernel address tag policy, and refactor
    tagged-pointers.txt to include it.
    
    Fixes: d50240a5f6ce ("arm64: mm: permit use of tagged pointers at EL0")
    Reviewed-by: Dave Martin <Dave.Martin@arm.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 033ed44aa118ba8998ee4e3240fc40d4d5ca8d90
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Wed May 3 16:09:35 2017 +0100

    arm64: uaccess: ensure extension of access_ok() addr
    
    commit a06040d7a791a9177581dcf7293941bd92400856 upstream.
    
    Our access_ok() simply hands its arguments over to __range_ok(), which
    implicitly assummes that the addr parameter is 64 bits wide. This isn't
    necessarily true for compat code, which might pass down a 32-bit address
    parameter.
    
    In these cases, we don't have a guarantee that the address has been zero
    extended to 64 bits, and the upper bits of the register may contain
    unknown values, potentially resulting in a suprious failure.
    
    Avoid this by explicitly casting the addr parameter to an unsigned long
    (as is done on other architectures), ensuring that the parameter is
    widened appropriately.
    
    Fixes: 0aea86a2176c ("arm64: User access library functions")
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 387a6581346abf51db2fd2878afa56132ec30735
Author: Ludovic Desroches <ludovic.desroches@microchip.com>
Date:   Mon Apr 10 10:25:17 2017 +0200

    ARM: dts: at91: sama5d3_xplained: not all ADC channels are available
    
    commit d3df1ec06353e51fc44563d2e7e18d42811af290 upstream.
    
    Remove ADC channels that are not available by default on the sama5d3_xplained
    board (resistor not populated) in order to not create confusion.
    
    Signed-off-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfbd967d8032f564c8ba674dafca42c058ff7966
Author: Ludovic Desroches <ludovic.desroches@microchip.com>
Date:   Mon Apr 10 10:25:16 2017 +0200

    ARM: dts: at91: sama5d3_xplained: fix ADC vref
    
    commit 9cdd31e5913c1f86dce7e201b086155b3f24896b upstream.
    
    The voltage reference for the ADC is not 3V but 3.3V since it is connected to
    VDDANA.
    
    Signed-off-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c95e5af8d926ab88af3d03ff54bc765a3a74a96
Author: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Date:   Mon Apr 17 20:21:40 2017 -0400

    powerpc/pseries: Fix of_node_put() underflow during DLPAR remove
    
    commit 68baf692c435339e6295cb470ea5545cbc28160e upstream.
    
    Historically struct device_node references were tracked using a kref embedded as
    a struct field. Commit 75b57ecf9d1d ("of: Make device nodes kobjects so they
    show up in sysfs") (Mar 2014) refactored device_nodes to be kobjects such that
    the device tree could by more simply exposed to userspace using sysfs.
    
    Commit 0829f6d1f69e ("of: device_node kobject lifecycle fixes") (Mar 2014)
    followed up these changes to better control the kobject lifecycle and in
    particular the referecne counting via of_node_get(), of_node_put(), and
    of_node_init().
    
    A result of this second commit was that it introduced an of_node_put() call when
    a dynamic node is detached, in of_node_remove(), that removes the initial kobj
    reference created by of_node_init().
    
    Traditionally as the original dynamic device node user the pseries code had
    assumed responsibilty for releasing this final reference in its platform
    specific DLPAR detach code.
    
    This patch fixes a refcount underflow introduced by commit 0829f6d1f6, and
    recently exposed by the upstreaming of the recount API.
    
    Messages like the following are no longer seen in the kernel log with this
    patch following DLPAR remove operations of cpus and pci devices.
    
      rpadlpar_io: slot PHB 72 removed
      refcount_t: underflow; use-after-free.
      ------------[ cut here ]------------
      WARNING: CPU: 5 PID: 3335 at lib/refcount.c:128 refcount_sub_and_test+0xf4/0x110
    
    Fixes: 0829f6d1f69e ("of: device_node kobject lifecycle fixes")
    Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    [mpe: Make change log commit references more verbose]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e224ace16656fd0f8588838acadfdbb87fd0899e
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 09:53:58 2017 -0300

    cx231xx-audio: fix NULL-deref at probe
    
    commit 65f921647f4c89a2068478c89691f39b309b58f7 upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    Fixes: e0d3bafd0258 ("V4L/DVB (10954): Add cx231xx USB driver")
    
    Cc: Sri Deevi <Srinivasa.Deevi@conexant.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07d497dd36b79ed6fe3c4c28d86b264213c5c0c9
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 09:53:56 2017 -0300

    cx231xx-cards: fix NULL-deref at probe
    
    commit 0cd273bb5e4d1828efaaa8dfd11b7928131ed149 upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    Fixes: e0d3bafd0258 ("V4L/DVB (10954): Add cx231xx USB driver")
    
    Cc: Sri Deevi <Srinivasa.Deevi@conexant.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17ca53843170745f46aea99c75250981cd3cb752
Author: Alyssa Milburn <amilburn@zall.org>
Date:   Sat Apr 1 14:34:08 2017 -0300

    zr364xx: enforce minimum size when reading header
    
    commit ee0fe833d96793853335844b6d99fb76bd12cbeb upstream.
    
    This code copies actual_length-128 bytes from the header, which will
    underflow if the received buffer is too small.
    
    Signed-off-by: Alyssa Milburn <amilburn@zall.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0f4be46859c7e3461fed108fd8d5c646506b197a
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 09:53:54 2017 -0300

    dib0700: fix NULL-deref at probe
    
    commit d5823511c0f8719a39e72ede1bce65411ac653b7 upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer should a malicious device lack endpoints.
    
    Fixes: c4018fa2e4c0 ("[media] dib0700: fix RC support on Hauppauge
    Nova-TD")
    
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e2ffea00ad95f94ffd13b9ff286d83f9ba3b354
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Wed Mar 22 04:53:57 2017 -0300

    s5p-mfc: Fix unbalanced call to clock management
    
    commit a5cb00eb4223458250b55daf03ac7ea5f424d601 upstream.
    
    Clock should be turned off after calling s5p_mfc_init_hw() from the
    watchdog worker, like it is already done in the s5p_mfc_open() which also
    calls this function.
    
    Fixes: af93574678108 ("[media] MFC: Add MFC 5.1 V4L2 driver")
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15d36bbaed6e56eb74c9a348cbd25679b90af596
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 09:53:59 2017 -0300

    gspca: konica: add missing endpoint sanity check
    
    commit aa58fedb8c7b6cf2f05941d238495f9e2f29655c upstream.
    
    Make sure to check the number of endpoints to avoid accessing memory
    beyond the endpoint array should a device lack the expected endpoints.
    
    Note that, as far as I can tell, the gspca framework has already made
    sure there is at least one endpoint in the current alternate setting so
    there should be no risk for a NULL-pointer dereference here.
    
    Fixes: b517af722860 ("V4L/DVB: gspca_konica: New gspca subdriver for
    konica chipset using cams")
    
    Cc: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hansverk@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91fe07aac0780b17b85bc6435ee36c40ff2df74e
Author: Matt Ranostay <matt.ranostay@konsulko.com>
Date:   Thu Apr 13 23:21:56 2017 -0700

    iio: proximity: as3935: fix as3935_write
    
    commit 84ca8e364acb26aba3292bc113ca8ed4335380fd upstream.
    
    AS3935_WRITE_DATA macro bit is incorrect and the actual write
    sequence is two leading zeros.
    
    Cc: George McCollister <george.mccollister@gmail.com>
    Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53b5e27b585ecd9d657617890887cb1686153295
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue May 2 13:58:53 2017 +0300

    ipx: call ipxitf_put() in ioctl error path
    
    commit ee0d8d8482345ff97a75a7d747efc309f13b0d80 upstream.
    
    We should call ipxitf_put() if the copy_to_user() fails.
    
    Reported-by: 李强 <liqiang6-s@360.cn>
    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 f98d89173f9e16dba893806e2b99c1d7e0a10ac6
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Fri Nov 27 14:30:21 2015 -0500

    tty: Prevent ldisc drivers from re-using stale tty fields
    
    commit dd42bf1197144ede075a9d4793123f7689e164bc upstream.
    
    Line discipline drivers may mistakenly misuse ldisc-related fields
    when initializing. For example, a failure to initialize tty->receive_room
    in the N_GIGASET_M101 line discipline was recently found and fixed [1].
    Now, the N_X25 line discipline has been discovered accessing the previous
    line discipline's already-freed private data [2].
    
    Harden the ldisc interface against misuse by initializing revelant
    tty fields before instancing the new line discipline.
    
    [1]
        commit fd98e9419d8d622a4de91f76b306af6aa627aa9c
        Author: Tilman Schmidt <tilman@imap.cc>
        Date:   Tue Jul 14 00:37:13 2015 +0200
    
        isdn/gigaset: reset tty->receive_room when attaching ser_gigaset
    
    [2] Report from Sasha Levin <sasha.levin@oracle.com>
        [  634.336761] ==================================================================
        [  634.338226] BUG: KASAN: use-after-free in x25_asy_open_tty+0x13d/0x490 at addr ffff8800a743efd0
        [  634.339558] Read of size 4 by task syzkaller_execu/8981
        [  634.340359] =============================================================================
        [  634.341598] BUG kmalloc-512 (Not tainted): kasan: bad access detected
        ...
        [  634.405018] Call Trace:
        [  634.405277] dump_stack (lib/dump_stack.c:52)
        [  634.405775] print_trailer (mm/slub.c:655)
        [  634.406361] object_err (mm/slub.c:662)
        [  634.406824] kasan_report_error (mm/kasan/report.c:138 mm/kasan/report.c:236)
        [  634.409581] __asan_report_load4_noabort (mm/kasan/report.c:279)
        [  634.411355] x25_asy_open_tty (drivers/net/wan/x25_asy.c:559 (discriminator 1))
        [  634.413997] tty_ldisc_open.isra.2 (drivers/tty/tty_ldisc.c:447)
        [  634.414549] tty_set_ldisc (drivers/tty/tty_ldisc.c:567)
        [  634.415057] tty_ioctl (drivers/tty/tty_io.c:2646 drivers/tty/tty_io.c:2879)
        [  634.423524] do_vfs_ioctl (fs/ioctl.c:43 fs/ioctl.c:607)
        [  634.427491] SyS_ioctl (fs/ioctl.c:622 fs/ioctl.c:613)
        [  634.427945] entry_SYSCALL_64_fastpath (arch/x86/entry/entry_64.S:188)
    
    Cc: Tilman Schmidt <tilman@imap.cc>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14f378cdac38e5eda662e22875b448c4a8fedb9a
Author: Johan Hovold <johan@kernel.org>
Date:   Wed May 10 18:18:28 2017 +0200

    USB: hub: fix non-SS hub-descriptor handling
    
    commit bec444cd1c94c48df409a35ad4e5b143c245c3f7 upstream.
    
    Add missing sanity check on the non-SuperSpeed hub-descriptor length in
    order to avoid parsing and leaking two bytes of uninitialised slab data
    through sysfs removable-attributes (or a compound-device debug
    statement).
    
    Note that we only make sure that the DeviceRemovable field is always
    present (and specifically ignore the unused PortPwrCtrlMask field) in
    order to continue support any hubs with non-compliant descriptors. As a
    further safeguard, the descriptor buffer is also cleared.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6a3e9e093fca621b21f47402d94fcaefca91fd0
Author: Johan Hovold <johan@kernel.org>
Date:   Wed May 10 18:18:27 2017 +0200

    USB: hub: fix SS hub-descriptor handling
    
    commit 2c25a2c818023df64463aac3288a9f969491e507 upstream.
    
    A SuperSpeed hub descriptor does not have any variable-length fields so
    bail out when reading a short descriptor.
    
    This avoids parsing and leaking two bytes of uninitialised slab data
    through sysfs removable-attributes.
    
    Fixes: dbe79bbe9dcb ("USB 3.0 Hub Changes")
    Cc: John Youn <John.Youn@synopsys.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a635375148830a2caa5716ba2bd0a223c582228
Author: Johan Hovold <johan@kernel.org>
Date:   Thu May 11 11:41:21 2017 +0200

    USB: serial: io_ti: fix div-by-zero in set_termios
    
    commit 6aeb75e6adfaed16e58780309613a578fe1ee90b upstream.
    
    Fix a division-by-zero in set_termios when debugging is enabled and a
    high-enough speed has been requested so that the divisor value becomes
    zero.
    
    Instead of just fixing the offending debug statement, cap the baud rate
    at the base as a zero divisor value also appears to crash the firmware.
    
    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 2d19b3e0e86852752574bbd6dadaacd78f2e740a
Author: Johan Hovold <johan@kernel.org>
Date:   Thu May 11 11:41:20 2017 +0200

    USB: serial: mct_u232: fix big-endian baud-rate handling
    
    commit 26cede343656c0bc2c33cdc783771282405c7fb2 upstream.
    
    Drop erroneous cpu_to_le32 when setting the baud rate, something which
    corrupted the divisor on big-endian hosts.
    
    Found using sparse:
    
            warning: incorrect type in argument 1 (different base types)
                expected unsigned int [unsigned] [usertype] val
                got restricted __le32 [usertype] <noident>
    
    Fixes: af2ac1a091bc ("USB: serial mct_usb232: move DMA buffers to heap")
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-By: Pete Zaitcev <zaitcev@yahoo.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1fbdd6834a11d9313e92ea5ee414f0dbd59a3cc
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed May 17 16:30:50 2017 +0200

    USB: serial: qcserial: add more Lenovo EM74xx device IDs
    
    commit 8d7a10dd323993cc40bd37bce8bc570133b0c396 upstream.
    
    In their infinite wisdom, and never ending quest for end user frustration,
    Lenovo has decided to use new USB device IDs for the wwan modules in
    their 2017 laptops.  The actual hardware is still the Sierra Wireless
    EM7455 or EM7430, depending on region.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae0ff95b2333f555c3ea50e0e6688f086f579cc8
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Wed May 3 10:28:54 2017 +0200

    usb: serial: option: add Telit ME910 support
    
    commit 40dd46048c155b8f0683f468c950a1c107f77a7c upstream.
    
    This patch adds support for Telit ME910 PID 0x1100.
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab3f0290bc5be09f54c8fee23ec95e944f352c93
Author: Johan Hovold <johan@kernel.org>
Date:   Thu May 11 11:36:02 2017 +0200

    USB: iowarrior: fix info ioctl on big-endian hosts
    
    commit dd5ca753fa92fb736b1395db892bd29f78e6d408 upstream.
    
    Drop erroneous le16_to_cpu when returning the USB device speed which is
    already in host byte order.
    
    Found using sparse:
    
            warning: cast to restricted __le16
    
    Fixes: 946b960d13c1 ("USB: add driver for iowarrior devices.")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ac14c4dd0caee5fd442b955594a4ab9ab6311f5
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed May 17 11:23:11 2017 -0500

    usb: musb: tusb6010_omap: Do not reset the other direction's packet size
    
    commit 6df2b42f7c040d57d9ecb67244e04e905ab87ac6 upstream.
    
    We have one register for each EP to set the maximum packet size for both
    TX and RX.
    If for example an RX programming would happen before the previous TX
    transfer finishes we would reset the TX packet side.
    
    To fix this issue, only modify the TX or RX part of the register.
    
    Fixes: 550a7375fe72 ("USB: Add MUSB and TUSB support")
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Tested-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d2fbcf492cec7625132ec044433f8d020a1e508
Author: Alyssa Milburn <amilburn@zall.org>
Date:   Sat Apr 1 14:34:32 2017 -0300

    ttusb2: limit messages to buffer size
    
    commit a12b8ab8c5ff7ccd7b107a564743507c850a441d upstream.
    
    Otherwise ttusb2_i2c_xfer can read or write beyond the end of static and
    heap buffers.
    
    Signed-off-by: Alyssa Milburn <amilburn@zall.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b49b71f3ba5333e0ed97cec6309c293404edfbf
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Mar 7 15:14:13 2017 -0300

    mceusb: fix NULL-deref at probe
    
    commit 03eb2a557ed552e920a0942b774aaf931596eec1 upstream.
    
    Make sure to check for the required out endpoint to avoid dereferencing
    a NULL-pointer in mce_request_packet should a malicious device lack such
    an endpoint. Note that this path is hit during probe.
    
    Fixes: 66e89522aff7 ("V4L/DVB: IR: add mceusb IR receiver driver")
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 587e719ffd247421d3d66b9b04d12f6787617d23
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 09:53:55 2017 -0300

    usbvision: fix NULL-deref at probe
    
    commit eacb975b48272f54532b62f515a3cf7eefa35123 upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    Fixes: 2a9f8b5d25be ("V4L/DVB (5206): Usbvision: set alternate interface
    modification")
    
    Cc: Thierry MERLE <thierry.merle@free.fr>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4be4dd34ab052bde22e9d463eb17c8fc1912ca3e
Author: Johan Hovold <johan@kernel.org>
Date:   Fri May 12 12:11:13 2017 +0200

    net: irda: irda-usb: fix firmware name on big-endian hosts
    
    commit 75cf067953d5ee543b3bda90bbfcbee5e1f94ae8 upstream.
    
    Add missing endianness conversion when using the USB device-descriptor
    bcdDevice field to construct a firmware file name.
    
    Fixes: 8ef80aef118e ("[IRDA]: irda-usb.c: STIR421x cleanups")
    Cc: Nick Fedchik <nfedchik@atlantic-link.com.ua>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5ebe69a459548ef3b9d65f8aed323a2eede13e3
Author: Peter Chen <peter.chen@nxp.com>
Date:   Wed May 17 18:32:01 2017 +0300

    usb: host: xhci-mem: allocate zeroed Scratchpad Buffer
    
    commit 7480d912d549f414e0ce39331870899e89a5598c upstream.
    
    According to xHCI ch4.20 Scratchpad Buffers, the Scratchpad
    Buffer needs to be zeroed.
    
            ...
            The following operations take place to allocate
            Scratchpad Buffers to the xHC:
            ...
                    b. Software clears the Scratchpad Buffer to '0'
    
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c79e8a69b10f55a3b71c9fbb96c4e43c91791108
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Wed May 17 18:32:06 2017 +0300

    usb: host: xhci-plat: propagate return value of platform_get_irq()
    
    commit 4b148d5144d64ee135b8924350cb0b3a7fd21150 upstream.
    
    platform_get_irq() returns an error code, but the xhci-plat driver
    ignores it and always returns -ENODEV. This is not correct, and
    prevents -EPROBE_DEFER from being propagated properly.
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91ae3e0340135aa4a176c85cdbe2d0d2e16830b6
Author: Andrey Korolyov <andrey@xdel.ru>
Date:   Tue May 16 23:54:41 2017 +0300

    USB: serial: ftdi_sio: add Olimex ARM-USB-TINY(H) PIDs
    
    commit 5f63424ab7daac840df2b12dd5bcc5b38d50f779 upstream.
    
    This patch adds support for recognition of ARM-USB-TINY(H) devices which
    are almost identical to ARM-USB-OCD(H) but lacking separate barrel jack
    and serial console.
    
    By suggestion from Johan Hovold it is possible to replace
    ftdi_jtag_quirk with a bit more generic construction. Since all
    Olimex-ARM debuggers has exactly two ports, we could safely always use
    only second port within the debugger family.
    
    Signed-off-by: Andrey Korolyov <andrey@xdel.ru>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8551ebfb913146c81b92a82e5aec5f08adfa79b9
Author: Anthony Mallet <anthony.mallet@laas.fr>
Date:   Fri May 5 17:30:16 2017 +0200

    USB: serial: ftdi_sio: fix setting latency for unprivileged users
    
    commit bb246681b3ed0967489a7401ad528c1aaa1a4c2e upstream.
    
    Commit 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY
    flag") enables unprivileged users to set the FTDI latency timer,
    but there was a logic flaw that skipped sending the corresponding
    USB control message to the device.
    
    Specifically, the device latency timer would not be updated until next
    open, something which was later also inadvertently broken by commit
    c19db4c9e49a ("USB: ftdi_sio: set device latency timeout at port
    probe").
    
    A recent commit c6dce2626606 ("USB: serial: ftdi_sio: fix extreme
    low-latency setting") disabled the low-latency mode by default so we now
    need this fix to allow unprivileged users to again enable it.
    
    Signed-off-by: Anthony Mallet <anthony.mallet@laas.fr>
    [johan: amend commit message]
    Fixes: 557aaa7ffab6 ("ft232: support the ASYNC_LOW_LATENCY flag")
    Fixes: c19db4c9e49a ("USB: ftdi_sio: set device latency timeout at port probe").
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49a6c831625bc96244ba6f4a15ead8ed321c220d
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Thu May 11 18:21:01 2017 -0500

    pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
    
    commit b9a985db98961ae1ba0be169f19df1c567e4ffe0 upstream.
    
    The code can potentially sleep for an indefinite amount of time in
    zap_pid_ns_processes triggering the hung task timeout, and increasing
    the system average.  This is undesirable.  Sleep with a task state of
    TASK_INTERRUPTIBLE instead of TASK_UNINTERRUPTIBLE to remove these
    undesirable side effects.
    
    Apparently under heavy load this has been allowing Chrome to trigger
    the hung time task timeout error and cause ChromeOS to reboot.
    
    Reported-by: Vovo Yang <vovoy@google.com>
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Fixes: 6347e9009104 ("pidns: guarantee that the pidns init will be the last pidns process reaped")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c364a656eee4204483552a64fa9c9c26008b71f
Author: Pavel Roskin <plroskin@gmail.com>
Date:   Thu Apr 13 14:54:23 2017 -0700

    iio: dac: ad7303: fix channel description
    
    commit ce420fd4251809b4c3119b3b20c8b13bd8eba150 upstream.
    
    realbits, storagebits and shift should be numbers, not ASCII characters.
    
    Signed-off-by: Pavel Roskin <plroskin@gmail.com>
    Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f7f956d12ac150e69a3fd645b6e01507f3ec343
Author: Johan Hovold <johan@kernel.org>
Date:   Wed May 17 17:29:09 2017 +0200

    of: fdt: add missing allocation-failure check
    
    commit 49e67dd17649b60b4d54966e18ec9c80198227f0 upstream.
    
    The memory allocator passed to __unflatten_device_tree() (e.g. a wrapped
    kzalloc) can fail so add the missing sanity check to avoid dereferencing
    a NULL pointer.
    
    Fixes: fe14042358fa ("of/flattree: Refactor unflatten_device_tree and add fdt_unflatten_tree")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3829ab9ff69fb78713addc58e642d40d5c28ba56
Author: Rob Herring <robh@kernel.org>
Date:   Thu May 4 12:34:30 2017 -0500

    of: fix sparse warning in of_pci_range_parser_one
    
    commit eb3100365791b06242b8bb5c3c2854ba41dabfbc upstream.
    
    sparse gives the following warning for 'pci_space':
    
    ../drivers/of/address.c:266:26: warning: incorrect type in assignment (different base types)
    ../drivers/of/address.c:266:26:    expected unsigned int [unsigned] [usertype] pci_space
    ../drivers/of/address.c:266:26:    got restricted __be32 const [usertype] <noident>
    
    It appears that pci_space is only ever accessed on powerpc, so the endian
    swap is often not needed.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a98913621b4ac74c9653a1b308cc19de2e6bb28
Author: Tobias Herzog <t-herzog@gmx.de>
Date:   Thu Mar 30 22:15:10 2017 +0200

    cdc-acm: fix possible invalid access when processing notification
    
    commit 1bb9914e1730417d530de9ed37e59efdc647146b upstream.
    
    Notifications may only be 8 bytes long. Accessing the 9th and
    10th byte of unimplemented/unknown notifications may be insecure.
    Also check the length of known notifications before accessing anything
    behind the 8th byte.
    
    Signed-off-by: Tobias Herzog <t-herzog@gmx.de>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 603455cd8ee20da2bbdccfe1f16f2fbf618a5e09
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 13:44:20 2017 +0100

    ath9k_htc: fix NULL-deref at probe
    
    commit ebeb36670ecac36c179b5fb5d5c88ff03ba191ec upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    Fixes: 36bcce430657 ("ath9k_htc: Handle storage devices")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a543c8fee6fa26ed6e8e3c846386ce5c1f56d235
Author: Richard Cochran <rcochran@linutronix.de>
Date:   Mon Apr 17 10:23:36 2017 +0200

    regulator: tps65023: Fix inverted core enable logic.
    
    commit c90722b54a4f5e21ac59301ed9a6dbaa439bdb16 upstream.
    
    Commit 43530b69d758328d3ffe6ab98fd640463e8e3667 ("regulator: Use
    regmap_read/write(), regmap_update_bits functions directly") intended
    to replace working inline helper functions with standard regmap
    calls.  However, it also inverted the set/clear logic of the "CORE ADJ
    Allowed" bit.  That patch was clearly never tested, since without that
    bit cleared, the core VDCDC1 voltage output does not react to I2C
    configuration changes.
    
    This patch fixes the issue by clearing the bit as in the original,
    correct implementation.  Note for stable back porting that, due to
    subsequent driver churn, this patch will not apply on every kernel
    version.
    
    Fixes: 43530b69d758 ("regulator: Use regmap_read/write(), regmap_update_bits functions directly")
    Signed-off-by: Richard Cochran <rcochran@linutronix.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9681c72067a9523fa36219e12fa1ee17da769551
Author: Daniel Glöckner <dg@emlix.com>
Date:   Fri Feb 24 15:05:14 2017 +0100

    ima: accept previously set IMA_NEW_FILE
    
    commit 1ac202e978e18f045006d75bd549612620c6ec3a upstream.
    
    Modifying the attributes of a file makes ima_inode_post_setattr reset
    the IMA cache flags. So if the file, which has just been created,
    is opened a second time before the first file descriptor is closed,
    verification fails since the security.ima xattr has not been written
    yet. We therefore have to look at the IMA_NEW_FILE even if the file
    already existed.
    
    With this patch there should no longer be an error when cat tries to
    open testfile:
    
    $ rm -f testfile
    $ ( echo test >&3 ; touch testfile ; cat testfile ) 3>testfile
    
    A file being new is no reason to accept that it is missing a digital
    signature demanded by the policy.
    
    Signed-off-by: Daniel Glöckner <dg@emlix.com>
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66eedcb02ce644095605b8bb2ef7b56fce53f6ee
Author: Brian Norris <briannorris@chromium.org>
Date:   Fri Apr 14 14:51:17 2017 -0700

    mwifiex: pcie: fix cmd_buf use-after-free in remove/reset
    
    commit 3c8cb9ad032d737b874e402c59eb51e3c991a144 upstream.
    
    Command buffers (skb's) are allocated by the main driver, and freed upon
    the last use. That last use is often in mwifiex_free_cmd_buffer(). In
    the meantime, if the command buffer gets used by the PCI driver, we map
    it as DMA-able, and store the mapping information in the 'cb' memory.
    
    However, if a command was in-flight when resetting the device (and
    therefore was still mapped), we don't get a chance to unmap this memory
    until after the core has cleaned up its command handling.
    
    Let's keep a refcount within the PCI driver, so we ensure the memory
    only gets freed after we've finished unmapping it.
    
    Noticed by KASAN when forcing a reset via:
    
      echo 1 > /sys/bus/pci/.../reset
    
    The same code path can presumably be exercised in remove() and
    shutdown().
    
    [  205.390377] mwifiex_pcie 0000:01:00.0: info: shutdown mwifiex...
    [  205.400393] ==================================================================
    [  205.407719] BUG: KASAN: use-after-free in mwifiex_unmap_pci_memory.isra.14+0x4c/0x100 [mwifiex_pcie] at addr ffffffc0ad471b28
    [  205.419040] Read of size 16 by task bash/1913
    [  205.423421] =============================================================================
    [  205.431625] BUG skbuff_head_cache (Tainted: G    B          ): kasan: bad access detected
    [  205.439815] -----------------------------------------------------------------------------
    [  205.439815]
    [  205.449534] INFO: Allocated in __build_skb+0x48/0x114 age=1311 cpu=4 pid=1913
    [  205.456709]  alloc_debug_processing+0x124/0x178
    [  205.461282]  ___slab_alloc.constprop.58+0x528/0x608
    [  205.466196]  __slab_alloc.isra.54.constprop.57+0x44/0x54
    [  205.471542]  kmem_cache_alloc+0xcc/0x278
    [  205.475497]  __build_skb+0x48/0x114
    [  205.479019]  __netdev_alloc_skb+0xe0/0x170
    [  205.483244]  mwifiex_alloc_cmd_buffer+0x68/0xdc [mwifiex]
    [  205.488759]  mwifiex_init_fw+0x40/0x6cc [mwifiex]
    [  205.493584]  _mwifiex_fw_dpc+0x158/0x520 [mwifiex]
    [  205.498491]  mwifiex_reinit_sw+0x2c4/0x398 [mwifiex]
    [  205.503510]  mwifiex_pcie_reset_notify+0x114/0x15c [mwifiex_pcie]
    [  205.509643]  pci_reset_notify+0x5c/0x6c
    [  205.513519]  pci_reset_function+0x6c/0x7c
    [  205.517567]  reset_store+0x68/0x98
    [  205.521003]  dev_attr_store+0x54/0x60
    [  205.524705]  sysfs_kf_write+0x9c/0xb0
    [  205.528413] INFO: Freed in __kfree_skb+0xb0/0xbc age=131 cpu=4 pid=1913
    [  205.535064]  free_debug_processing+0x264/0x370
    [  205.539550]  __slab_free+0x84/0x40c
    [  205.543075]  kmem_cache_free+0x1c8/0x2a0
    [  205.547030]  __kfree_skb+0xb0/0xbc
    [  205.550465]  consume_skb+0x164/0x178
    [  205.554079]  __dev_kfree_skb_any+0x58/0x64
    [  205.558304]  mwifiex_free_cmd_buffer+0xa0/0x158 [mwifiex]
    [  205.563817]  mwifiex_shutdown_drv+0x578/0x5c4 [mwifiex]
    [  205.569164]  mwifiex_shutdown_sw+0x178/0x310 [mwifiex]
    [  205.574353]  mwifiex_pcie_reset_notify+0xd4/0x15c [mwifiex_pcie]
    [  205.580398]  pci_reset_notify+0x5c/0x6c
    [  205.584274]  pci_dev_save_and_disable+0x24/0x6c
    [  205.588837]  pci_reset_function+0x30/0x7c
    [  205.592885]  reset_store+0x68/0x98
    [  205.596324]  dev_attr_store+0x54/0x60
    [  205.600017]  sysfs_kf_write+0x9c/0xb0
    ...
    [  205.800488] Call trace:
    [  205.802980] [<ffffffc00020a69c>] dump_backtrace+0x0/0x190
    [  205.808415] [<ffffffc00020a96c>] show_stack+0x20/0x28
    [  205.813506] [<ffffffc0005d020c>] dump_stack+0xa4/0xcc
    [  205.818598] [<ffffffc0003be44c>] print_trailer+0x158/0x168
    [  205.824120] [<ffffffc0003be5f0>] object_err+0x4c/0x5c
    [  205.829210] [<ffffffc0003c45bc>] kasan_report+0x334/0x500
    [  205.834641] [<ffffffc0003c3994>] check_memory_region+0x20/0x14c
    [  205.840593] [<ffffffc0003c3b14>] __asan_loadN+0x14/0x1c
    [  205.845879] [<ffffffbffc46171c>] mwifiex_unmap_pci_memory.isra.14+0x4c/0x100 [mwifiex_pcie]
    [  205.854282] [<ffffffbffc461864>] mwifiex_pcie_delete_cmdrsp_buf+0x94/0xa8 [mwifiex_pcie]
    [  205.862421] [<ffffffbffc462028>] mwifiex_pcie_free_buffers+0x11c/0x158 [mwifiex_pcie]
    [  205.870302] [<ffffffbffc4620d4>] mwifiex_pcie_down_dev+0x70/0x80 [mwifiex_pcie]
    [  205.877736] [<ffffffbffc1397a8>] mwifiex_shutdown_sw+0x190/0x310 [mwifiex]
    [  205.884658] [<ffffffbffc4606b4>] mwifiex_pcie_reset_notify+0xd4/0x15c [mwifiex_pcie]
    [  205.892446] [<ffffffc000635f54>] pci_reset_notify+0x5c/0x6c
    [  205.898048] [<ffffffc00063a044>] pci_dev_save_and_disable+0x24/0x6c
    [  205.904350] [<ffffffc00063cf0c>] pci_reset_function+0x30/0x7c
    [  205.910134] [<ffffffc000641118>] reset_store+0x68/0x98
    [  205.915312] [<ffffffc000771588>] dev_attr_store+0x54/0x60
    [  205.920750] [<ffffffc00046f53c>] sysfs_kf_write+0x9c/0xb0
    [  205.926182] [<ffffffc00046dfb0>] kernfs_fop_write+0x184/0x1f8
    [  205.931963] [<ffffffc0003d64f4>] __vfs_write+0x6c/0x17c
    [  205.937221] [<ffffffc0003d7164>] vfs_write+0xf0/0x1c4
    [  205.942310] [<ffffffc0003d7da0>] SyS_write+0x78/0xd8
    [  205.947312] [<ffffffc000204634>] el0_svc_naked+0x24/0x28
    ...
    [  205.998268] ==================================================================
    
    This bug has been around in different forms for a while. It was sort of
    noticed in commit 955ab095c51a ("mwifiex: Do not kfree cmd buf while
    unregistering PCIe"), but it just fixed the double-free, without
    acknowledging the potential for use-after-free.
    
    Fixes: fc3314609047 ("mwifiex: use pci_alloc/free_consistent APIs for PCIe")
    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 17f2c0ebba6b9d9eb9ed6082290f36ad9350f149
Author: Joe Thornber <ejt@redhat.com>
Date:   Mon May 15 09:45:40 2017 -0400

    dm space map disk: fix some book keeping in the disk space map
    
    commit 0377a07c7a035e0d033cd8b29f0cb15244c0916a upstream.
    
    When decrementing the reference count for a block, the free count wasn't
    being updated if the reference count went to zero.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 986e0919703d832f283666ef48940d60078f4618
Author: Joe Thornber <ejt@redhat.com>
Date:   Mon May 15 09:43:05 2017 -0400

    dm thin metadata: call precommit before saving the roots
    
    commit 91bcdb92d39711d1adb40c26b653b7978d93eb98 upstream.
    
    These calls were the wrong way round in __write_initial_superblock.
    
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37a8ef6db65c5b8184570a80e2f101f51db3bb72
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Sun Apr 30 17:33:26 2017 -0400

    dm bufio: avoid a possible ABBA deadlock
    
    commit 1b0fb5a5b2dc0dddcfa575060441a7176ba7ac37 upstream.
    
    __get_memory_limit() tests if dm_bufio_cache_size changed and calls
    __cache_size_refresh() if it did.  It takes dm_bufio_clients_lock while
    it already holds the client lock.  However, lock ordering is violated
    because in cleanup_old_buffers() dm_bufio_clients_lock is taken before
    the client lock.
    
    This results in a possible deadlock and lockdep engine warning.
    
    Fix this deadlock by changing mutex_lock() to mutex_trylock().  If the
    lock can't be taken, it will be re-checked next time when a new buffer
    is allocated.
    
    Also add "unlikely" to the if condition, so that the optimizer assumes
    that the condition is false.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17e9a9166dfd42fc6e9e3f01a3482b1f11c4aa7a
Author: Vinothkumar Raja <vinraja@cs.stonybrook.edu>
Date:   Thu Apr 6 22:09:38 2017 -0400

    dm btree: fix for dm_btree_find_lowest_key()
    
    commit 7d1fedb6e96a960aa91e4ff70714c3fb09195a5a upstream.
    
    dm_btree_find_lowest_key() is giving incorrect results.  find_key()
    traverses the btree correctly for finding the highest key, but there is
    an error in the way it traverses the btree for retrieving the lowest
    key.  dm_btree_find_lowest_key() fetches the first key of the rightmost
    block of the btree instead of fetching the first key from the leftmost
    block.
    
    Fix this by conditionally passing the correct parameter to value64()
    based on the @find_highest flag.
    
    Signed-off-by: Erez Zadok <ezk@fsl.cs.sunysb.edu>
    Signed-off-by: Vinothkumar Raja <vinraja@cs.stonybrook.edu>
    Signed-off-by: Nidhi Panpalia <npanpalia@cs.stonybrook.edu>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c128b70e4802fd8c999337e0aaa072d562bb92f
Author: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
Date:   Tue May 16 14:38:08 2017 +0200

    USB: core: replace %p with %pK
    
    commit 2f964780c03b73de269b08d12aff96a9618d13f3 upstream.
    
    Format specifier %p can leak kernel addresses while not valuing the
    kptr_restrict system settings. When kptr_restrict is set to (1), kernel
    pointers printed using the %pK format specifier will be replaced with
    Zeros. Debugging Note : &pK prints only Zeros as address. If you need
    actual address information, write 0 to kptr_restrict.
    
    echo 0 > /proc/sys/kernel/kptr_restrict
    
    [Found by poking around in a random vendor kernel tree, it would be nice
    if someone would actually send these types of patches upstream - gkh]
    
    Signed-off-by: Vamsi Krishna Samavedam <vskrishn@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f4615841767ff7908599e643f587078670a390c9
Author: Willy Tarreau <w@1wt.eu>
Date:   Tue May 16 19:18:55 2017 +0200

    char: lp: fix possible integer overflow in lp_setup()
    
    commit 3e21f4af170bebf47c187c1ff8bf155583c9f3b1 upstream.
    
    The lp_setup() code doesn't apply any bounds checking when passing
    "lp=none", and only in this case, resulting in an overflow of the
    parport_nr[] array. All versions in Git history are affected.
    
    Reported-By: Roee Hay <roee.hay@hcl.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 941c4b3f3001f9e627dee49092f68b03fd4edab9
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 13:49:45 2017 +0100

    watchdog: pcwd_usb: fix NULL-deref at probe
    
    commit 46c319b848268dab3f0e7c4a5b6e9146d3bca8a4 upstream.
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer should a malicious device lack endpoints.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8d5a02d887a296a9633e079f74c98b8d4447dff
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue May 16 11:47:29 2017 -0400

    USB: ene_usb6250: fix DMA to the stack
    
    commit 628c2893d44876ddd11602400c70606ade62e129 upstream.
    
    The ene_usb6250 sub-driver in usb-storage does USB I/O to buffers on
    the stack, which doesn't work with vmapped stacks.  This patch fixes
    the problem by allocating a separate 512-byte buffer at probe time and
    using it for all of the offending I/O operations.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Andreas Hartmann <andihartmann@01019freenet.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>