commit 493ecd5cd73ed41e319fe39816c6d3638ef080ff
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Jun 24 07:14:26 2017 +0200

    Linux 4.9.34

commit ce7fe8595902c3f03ef528c2dc1928b3f4b67fcf
Author: Hugh Dickins <hughd@google.com>
Date:   Tue Jun 20 02:10:44 2017 -0700

    mm: fix new crash in unmapped_area_topdown()
    
    commit f4cb767d76cf7ee72f97dd76f6cfa6c76a5edc89 upstream.
    
    Trinity gets kernel BUG at mm/mmap.c:1963! in about 3 minutes of
    mmap testing.  That's the VM_BUG_ON(gap_end < gap_start) at the
    end of unmapped_area_topdown().  Linus points out how MAP_FIXED
    (which does not have to respect our stack guard gap intentions)
    could result in gap_end below gap_start there.  Fix that, and
    the similar case in its alternative, unmapped_area().
    
    Fixes: 1be7107fbe18 ("mm: larger stack guard gap, between vmas")
    Reported-by: Dave Jones <davej@codemonkey.org.uk>
    Debugged-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d10ad6297260e9b85e7645ee544a6115bb229e4
Author: Helge Deller <deller@gmx.de>
Date:   Mon Jun 19 17:34:05 2017 +0200

    Allow stack to grow up to address space limit
    
    commit bd726c90b6b8ce87602208701b208a208e6d5600 upstream.
    
    Fix expand_upwards() on architectures with an upward-growing stack (parisc,
    metag and partly IA-64) to allow the stack to reliably grow exactly up to
    the address space limit given by TASK_SIZE.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfc0eb403816c5c4f9667d959de5e22789b5421e
Author: Hugh Dickins <hughd@google.com>
Date:   Mon Jun 19 04:03:24 2017 -0700

    mm: larger stack guard gap, between vmas
    
    commit 1be7107fbe18eed3e319a6c3e83c78254b693acb upstream.
    
    Stack guard page is a useful feature to reduce a risk of stack smashing
    into a different mapping. We have been using a single page gap which
    is sufficient to prevent having stack adjacent to a different mapping.
    But this seems to be insufficient in the light of the stack usage in
    userspace. E.g. glibc uses as large as 64kB alloca() in many commonly
    used functions. Others use constructs liks gid_t buffer[NGROUPS_MAX]
    which is 256kB or stack strings with MAX_ARG_STRLEN.
    
    This will become especially dangerous for suid binaries and the default
    no limit for the stack size limit because those applications can be
    tricked to consume a large portion of the stack and a single glibc call
    could jump over the guard page. These attacks are not theoretical,
    unfortunatelly.
    
    Make those attacks less probable by increasing the stack guard gap
    to 1MB (on systems with 4k pages; but make it depend on the page size
    because systems with larger base pages might cap stack allocations in
    the PAGE_SIZE units) which should cover larger alloca() and VLA stack
    allocations. It is obviously not a full fix because the problem is
    somehow inherent, but it should reduce attack space a lot.
    
    One could argue that the gap size should be configurable from userspace,
    but that can be done later when somebody finds that the new 1MB is wrong
    for some special case applications.  For now, add a kernel command line
    option (stack_guard_gap) to specify the stack gap size (in page units).
    
    Implementation wise, first delete all the old code for stack guard page:
    because although we could get away with accounting one extra page in a
    stack vma, accounting a larger gap can break userspace - case in point,
    a program run with "ulimit -S -v 20000" failed when the 1MB gap was
    counted for RLIMIT_AS; similar problems could come with RLIMIT_MLOCK
    and strict non-overcommit mode.
    
    Instead of keeping gap inside the stack vma, maintain the stack guard
    gap as a gap between vmas: using vm_start_gap() in place of vm_start
    (or vm_end_gap() in place of vm_end if VM_GROWSUP) in just those few
    places which need to respect the gap - mainly arch_get_unmapped_area(),
    and and the vma tree's subtree_gap support for that.
    
    Original-patch-by: Oleg Nesterov <oleg@redhat.com>
    Original-patch-by: Michal Hocko <mhocko@suse.com>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Tested-by: Helge Deller <deller@gmx.de> # parisc
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    [wt: backport to 4.11: adjust context]
    [wt: backport to 4.9: adjust context ; kernel doc was not in admin-guide]
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04651048c79a789827239d335225a6bd785ac16a
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue May 30 23:15:35 2017 +0200

    alarmtimer: Rate limit periodic intervals
    
    commit ff86bf0c65f14346bf2440534f9ba5ac232c39a0 upstream.
    
    The alarmtimer code has another source of potentially rearming itself too
    fast. Interval timers with a very samll interval have a similar CPU hog
    effect as the previously fixed overflow issue.
    
    The reason is that alarmtimers do not implement the normal protection
    against this kind of problem which the other posix timer use:
    
      timer expires -> queue signal -> deliver signal -> rearm timer
    
    This scheme brings the rearming under scheduler control and prevents
    permanently firing timers which hog the CPU.
    
    Bringing this scheme to the alarm timer code is a major overhaul because it
    lacks all the necessary mechanisms completely.
    
    So for a quick fix limit the interval to one jiffie. This is not
    problematic in practice as alarmtimers are usually backed by an RTC for
    suspend which have 1 second resolution. It could be therefor argued that
    the resolution of this clock should be set to 1 second in general, but
    that's outside the scope of this fix.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Kostya Serebryany <kcc@google.com>
    Cc: syzkaller <syzkaller@googlegroups.com>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Link: http://lkml.kernel.org/r/20170530211655.896767100@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b355b899c74a11c06e1edd4812d4c8809ec36c5e
Author: David Miller <davem@davemloft.net>
Date:   Fri Jun 2 11:28:54 2017 -0400

    crypto: Work around deallocated stack frame reference gcc bug on sparc.
    
    commit d41519a69b35b10af7fda867fb9100df24fdf403 upstream.
    
    On sparc, if we have an alloca() like situation, as is the case with
    SHASH_DESC_ON_STACK(), we can end up referencing deallocated stack
    memory.  The result can be that the value is clobbered if a trap
    or interrupt arrives at just the right instruction.
    
    It only occurs if the function ends returning a value from that
    alloca() area and that value can be placed into the return value
    register using a single instruction.
    
    For example, in lib/libcrc32c.c:crc32c() we end up with a return
    sequence like:
    
            return  %i7+8
             lduw   [%o5+16], %o0   ! MEM[(u32 *)__shash_desc.1_10 + 16B],
    
    %o5 holds the base of the on-stack area allocated for the shash
    descriptor.  But the return released the stack frame and the
    register window.
    
    So if an intererupt arrives between 'return' and 'lduw', then
    the value read at %o5+16 can be corrupted.
    
    Add a data compiler barrier to work around this problem.  This is
    exactly what the gcc fix will end up doing as well, and it absolutely
    should not change the code generated for other cpus (unless gcc
    on them has the same bug :-)
    
    With crucial insight from Eric Sandeen.
    
    Reported-by: Anatoly Pugachev <matorola@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7dfe7ca9ec12b7dbd4fdefa7f3cc60e0ec08ba3b
Author: Hon Ching \(Vicky) Lo <honclo@linux.vnet.ibm.com>
Date:   Wed Mar 15 01:28:07 2017 -0400

    vTPM: Fix missing NULL check
    
    commit 31574d321c70f6d3b40fe98f9b2eafd9a903fef9 upstream.
    
    The current code passes the address of tpm_chip as the argument to
    dev_get_drvdata() without prior NULL check in
    tpm_ibmvtpm_get_desired_dma.  This resulted an oops during kernel
    boot when vTPM is enabled in Power partition configured in active
    memory sharing mode.
    
    The vio_driver's get_desired_dma() is called before the probe(), which
    for vtpm is tpm_ibmvtpm_probe, and it's this latter function that
    initializes the driver and set data.  Attempting to get data before
    the probe() caused the problem.
    
    This patch adds a NULL check to the tpm_ibmvtpm_get_desired_dma.
    
    fixes: 9e0d39d8a6a0 ("tpm: Remove useless priv field in struct tpm_vendor_specific")
    Signed-off-by: Hon Ching(Vicky) Lo <honclo@linux.vnet.ibm.com>
    Reviewed-by: Jarkko Sakkine <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecae47331a431b0295905add457a06e766310f71
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Fri Jun 2 12:02:08 2017 -0700

    MIPS: .its targets depend on vmlinux
    
    commit bcd7c45e0d5a82be9a64b90050f0e09d41a50758 upstream.
    
    The .its targets require information about the kernel binary, such as
    its entry point, which is extracted from the vmlinux ELF. We therefore
    require that the ELF is built before the .its files are generated.
    Declare this requirement in the Makefile such that make will ensure this
    is always the case, otherwise in corner cases we can hit issues as the
    .its is generated with an incorrect (either invalid or stale) entry
    point.
    
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Fixes: cf2a5e0bb4c6 ("MIPS: Support generating Flattened Image Trees (.itb)")
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16179/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b706cbb16e9e794a2a37e57ae4951b8232270b4
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Fri Jun 2 11:35:01 2017 -0700

    MIPS: Fix bnezc/jialc return address calculation
    
    commit 1a73d9310e093fc3adffba4d0a67b9fab2ee3f63 upstream.
    
    The code handling the pop76 opcode (ie. bnezc & jialc instructions) in
    __compute_return_epc_for_insn() needs to set the value of $31 in the
    jialc case, which is encoded with rs = 0. However its check to
    differentiate bnezc (rs != 0) from jialc (rs = 0) was unfortunately
    backwards, meaning that if we emulate a bnezc instruction we clobber $31
    & if we emulate a jialc instruction it actually behaves like a jic
    instruction.
    
    Fix this by inverting the check of rs to match the way the instructions
    are actually encoded.
    
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Fixes: 28d6f93d201d ("MIPS: Emulate the new MIPS R6 BNEZC and JIALC instructions")
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16178/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22921a9e232a1187873c0127d408767b6bdc558e
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Tue Jan 10 16:05:28 2017 -0700

    usb: dwc3: exynos fix axius clock error path to do cleanup
    
    commit 8ae584d1951f241efd45499f8774fd7066f22823 upstream.
    
    Axius clock error path returns without disabling clock and suspend clock.
    Fix it to disable them before returning error.
    
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0ee203c864faca0b8b36698a0ffacb246b1412a
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Wed Jan 4 06:30:16 2017 +0100

    usb: gadget: composite: Fix function used to free memory
    
    commit 990758c53eafe5a220a780ed12e7b4d51b3df032 upstream.
    
    'cdev->os_desc_req' has been allocated with 'usb_ep_alloc_request()' so
    'usb_ep_free_request()' should be used to free it.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ee7f06f4dcaad729ecd7562b10b9a816f99ae70
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue May 30 23:15:34 2017 +0200

    alarmtimer: Prevent overflow of relative timers
    
    commit f4781e76f90df7aec400635d73ea4c35ee1d4765 upstream.
    
    Andrey reported a alartimer related RCU stall while fuzzing the kernel with
    syzkaller.
    
    The reason for this is an overflow in ktime_add() which brings the
    resulting time into negative space and causes immediate expiry of the
    timer. The following rearm with a small interval does not bring the timer
    back into positive space due to the same issue.
    
    This results in a permanent firing alarmtimer which hogs the CPU.
    
    Use ktime_add_safe() instead which detects the overflow and clamps the
    result to KTIME_SEC_MAX.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Kostya Serebryany <kcc@google.com>
    Cc: syzkaller <syzkaller@googlegroups.com>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Link: http://lkml.kernel.org/r/20170530211655.802921648@linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 766283254b672293fa39b5cecd6a5f86efd75127
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Sun Jun 11 00:38:36 2017 +0200

    genirq: Release resources in __setup_irq() error path
    
    commit fa07ab72cbb0d843429e61bf179308aed6cbe0dd upstream.
    
    In case __irq_set_trigger() fails the resources requested via
    irq_request_resources() are not released.
    
    Add the missing release call into the error handling path.
    
    Fixes: c1bacbae8192 ("genirq: Provide irq_request/release_resources chip callbacks")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/655538f5-cb20-a892-ff15-fbd2dd1fa4ec@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a48b7eace4d9a12363de9583e70e279e5fce536
Author: Andy Lutomirski <luto@kernel.org>
Date:   Fri Jun 9 11:49:15 2017 -0700

    sched/core: Idle_task_exit() shouldn't use switch_mm_irqs_off()
    
    commit 252d2a4117bc181b287eeddf848863788da733ae upstream.
    
    idle_task_exit() can be called with IRQs on x86 on and therefore
    should use switch_mm(), not switch_mm_irqs_off().
    
    This doesn't seem to cause any problems right now, but it will
    confuse my upcoming TLB flush changes.  Nonetheless, I think it
    should be backported because it's trivial.  There won't be any
    meaningful performance impact because idle_task_exit() is only
    used when offlining a CPU.
    
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: f98db6013c55 ("sched/core: Add switch_mm_irqs_off() and use it in the scheduler")
    Link: http://lkml.kernel.org/r/ca3d1a9fa93a0b49f5a8ff729eda3640fb6abdf9.1497034141.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf6ac3abb3233b6178279bc2ecaa8c14890f0d77
Author: Jean-Baptiste Maneyrol <JManeyrol@invensense.com>
Date:   Mon May 29 09:59:40 2017 +0000

    iio: imu: inv_mpu6050: add accel lpf setting for chip >= MPU6500
    
    commit 948588e25b8af5e66962ed3f53e1cae1656fa5af upstream.
    
    Starting from MPU6500, accelerometer dlpf is set in a separate
    register named ACCEL_CONFIG_2.
    Add this new register in the map and set it for the corresponding
    chips.
    
    Signed-off-by: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7ae7d2229d2f7c372a00b80c22b6eb5a9ac1949
Author: Yu Zhao <yuzhao@google.com>
Date:   Fri Jun 16 14:02:31 2017 -0700

    swap: cond_resched in swap_cgroup_prepare()
    
    commit ef70762948dde012146926720b70e79736336764 upstream.
    
    I saw need_resched() warnings when swapping on large swapfile (TBs)
    because continuously allocating many pages in swap_cgroup_prepare() took
    too long.
    
    We already cond_resched when freeing page in swap_cgroup_swapoff().  Do
    the same for the page allocation.
    
    Link: http://lkml.kernel.org/r/20170604200109.17606-1-yuzhao@google.com
    Signed-off-by: Yu Zhao <yuzhao@google.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1419b8752153d50f21cb34131cc613ee09662d8a
Author: James Morse <james.morse@arm.com>
Date:   Fri Jun 16 14:02:29 2017 -0700

    mm/memory-failure.c: use compound_head() flags for huge pages
    
    commit 7258ae5c5a2ce2f5969e8b18b881be40ab55433d upstream.
    
    memory_failure() chooses a recovery action function based on the page
    flags.  For huge pages it uses the tail page flags which don't have
    anything interesting set, resulting in:
    
    > Memory failure: 0x9be3b4: Unknown page state
    > Memory failure: 0x9be3b4: recovery action for unknown page: Failed
    
    Instead, save a copy of the head page's flags if this is a huge page,
    this means if there are no relevant flags for this tail page, we use the
    head pages flags instead.  This results in the me_huge_page() recovery
    action being called:
    
    > Memory failure: 0x9b7969: recovery action for huge page: Delayed
    
    For hugepages that have not yet been allocated, this allows the hugepage
    to be dequeued.
    
    Fixes: 524fca1e7356 ("HWPOISON: fix misjudgement of page_action() for errors on mlocked pages")
    Link: http://lkml.kernel.org/r/20170524130204.21845-1-james.morse@arm.com
    Signed-off-by: James Morse <james.morse@arm.com>
    Tested-by: Punit Agrawal <punit.agrawal@arm.com>
    Acked-by: Punit Agrawal <punit.agrawal@arm.com>
    Acked-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c0d3d8730db10baf92ad82fd29aca53a1936483
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Jun 13 15:23:42 2017 -0400

    USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
    
    commit f16443a034c7aa359ddf6f0f9bc40d01ca31faea upstream.
    
    Using the syzkaller kernel fuzzer, Andrey Konovalov generated the
    following error in gadgetfs:
    
    > BUG: KASAN: use-after-free in __lock_acquire+0x3069/0x3690
    > kernel/locking/lockdep.c:3246
    > Read of size 8 at addr ffff88003a2bdaf8 by task kworker/3:1/903
    >
    > CPU: 3 PID: 903 Comm: kworker/3:1 Not tainted 4.12.0-rc4+ #35
    > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    > Workqueue: usb_hub_wq hub_event
    > Call Trace:
    >  __dump_stack lib/dump_stack.c:16 [inline]
    >  dump_stack+0x292/0x395 lib/dump_stack.c:52
    >  print_address_description+0x78/0x280 mm/kasan/report.c:252
    >  kasan_report_error mm/kasan/report.c:351 [inline]
    >  kasan_report+0x230/0x340 mm/kasan/report.c:408
    >  __asan_report_load8_noabort+0x19/0x20 mm/kasan/report.c:429
    >  __lock_acquire+0x3069/0x3690 kernel/locking/lockdep.c:3246
    >  lock_acquire+0x22d/0x560 kernel/locking/lockdep.c:3855
    >  __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
    >  _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:151
    >  spin_lock include/linux/spinlock.h:299 [inline]
    >  gadgetfs_suspend+0x89/0x130 drivers/usb/gadget/legacy/inode.c:1682
    >  set_link_state+0x88e/0xae0 drivers/usb/gadget/udc/dummy_hcd.c:455
    >  dummy_hub_control+0xd7e/0x1fb0 drivers/usb/gadget/udc/dummy_hcd.c:2074
    >  rh_call_control drivers/usb/core/hcd.c:689 [inline]
    >  rh_urb_enqueue drivers/usb/core/hcd.c:846 [inline]
    >  usb_hcd_submit_urb+0x92f/0x20b0 drivers/usb/core/hcd.c:1650
    >  usb_submit_urb+0x8b2/0x12c0 drivers/usb/core/urb.c:542
    >  usb_start_wait_urb+0x148/0x5b0 drivers/usb/core/message.c:56
    >  usb_internal_control_msg drivers/usb/core/message.c:100 [inline]
    >  usb_control_msg+0x341/0x4d0 drivers/usb/core/message.c:151
    >  usb_clear_port_feature+0x74/0xa0 drivers/usb/core/hub.c:412
    >  hub_port_disable+0x123/0x510 drivers/usb/core/hub.c:4177
    >  hub_port_init+0x1ed/0x2940 drivers/usb/core/hub.c:4648
    >  hub_port_connect drivers/usb/core/hub.c:4826 [inline]
    >  hub_port_connect_change drivers/usb/core/hub.c:4999 [inline]
    >  port_event drivers/usb/core/hub.c:5105 [inline]
    >  hub_event+0x1ae1/0x3d40 drivers/usb/core/hub.c:5185
    >  process_one_work+0xc08/0x1bd0 kernel/workqueue.c:2097
    >  process_scheduled_works kernel/workqueue.c:2157 [inline]
    >  worker_thread+0xb2b/0x1860 kernel/workqueue.c:2233
    >  kthread+0x363/0x440 kernel/kthread.c:231
    >  ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:424
    >
    > Allocated by task 9958:
    >  save_stack_trace+0x1b/0x20 arch/x86/kernel/stacktrace.c:59
    >  save_stack+0x43/0xd0 mm/kasan/kasan.c:513
    >  set_track mm/kasan/kasan.c:525 [inline]
    >  kasan_kmalloc+0xad/0xe0 mm/kasan/kasan.c:617
    >  kmem_cache_alloc_trace+0x87/0x280 mm/slub.c:2745
    >  kmalloc include/linux/slab.h:492 [inline]
    >  kzalloc include/linux/slab.h:665 [inline]
    >  dev_new drivers/usb/gadget/legacy/inode.c:170 [inline]
    >  gadgetfs_fill_super+0x24f/0x540 drivers/usb/gadget/legacy/inode.c:1993
    >  mount_single+0xf6/0x160 fs/super.c:1192
    >  gadgetfs_mount+0x31/0x40 drivers/usb/gadget/legacy/inode.c:2019
    >  mount_fs+0x9c/0x2d0 fs/super.c:1223
    >  vfs_kern_mount.part.25+0xcb/0x490 fs/namespace.c:976
    >  vfs_kern_mount fs/namespace.c:2509 [inline]
    >  do_new_mount fs/namespace.c:2512 [inline]
    >  do_mount+0x41b/0x2d90 fs/namespace.c:2834
    >  SYSC_mount fs/namespace.c:3050 [inline]
    >  SyS_mount+0xb0/0x120 fs/namespace.c:3027
    >  entry_SYSCALL_64_fastpath+0x1f/0xbe
    >
    > Freed by task 9960:
    >  save_stack_trace+0x1b/0x20 arch/x86/kernel/stacktrace.c:59
    >  save_stack+0x43/0xd0 mm/kasan/kasan.c:513
    >  set_track mm/kasan/kasan.c:525 [inline]
    >  kasan_slab_free+0x72/0xc0 mm/kasan/kasan.c:590
    >  slab_free_hook mm/slub.c:1357 [inline]
    >  slab_free_freelist_hook mm/slub.c:1379 [inline]
    >  slab_free mm/slub.c:2961 [inline]
    >  kfree+0xed/0x2b0 mm/slub.c:3882
    >  put_dev+0x124/0x160 drivers/usb/gadget/legacy/inode.c:163
    >  gadgetfs_kill_sb+0x33/0x60 drivers/usb/gadget/legacy/inode.c:2027
    >  deactivate_locked_super+0x8d/0xd0 fs/super.c:309
    >  deactivate_super+0x21e/0x310 fs/super.c:340
    >  cleanup_mnt+0xb7/0x150 fs/namespace.c:1112
    >  __cleanup_mnt+0x1b/0x20 fs/namespace.c:1119
    >  task_work_run+0x1a0/0x280 kernel/task_work.c:116
    >  exit_task_work include/linux/task_work.h:21 [inline]
    >  do_exit+0x18a8/0x2820 kernel/exit.c:878
    >  do_group_exit+0x14e/0x420 kernel/exit.c:982
    >  get_signal+0x784/0x1780 kernel/signal.c:2318
    >  do_signal+0xd7/0x2130 arch/x86/kernel/signal.c:808
    >  exit_to_usermode_loop+0x1ac/0x240 arch/x86/entry/common.c:157
    >  prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
    >  syscall_return_slowpath+0x3ba/0x410 arch/x86/entry/common.c:263
    >  entry_SYSCALL_64_fastpath+0xbc/0xbe
    >
    > The buggy address belongs to the object at ffff88003a2bdae0
    >  which belongs to the cache kmalloc-1024 of size 1024
    > The buggy address is located 24 bytes inside of
    >  1024-byte region [ffff88003a2bdae0, ffff88003a2bdee0)
    > The buggy address belongs to the page:
    > page:ffffea0000e8ae00 count:1 mapcount:0 mapping:          (null)
    > index:0x0 compound_mapcount: 0
    > flags: 0x100000000008100(slab|head)
    > raw: 0100000000008100 0000000000000000 0000000000000000 0000000100170017
    > raw: ffffea0000ed3020 ffffea0000f5f820 ffff88003e80efc0 0000000000000000
    > page dumped because: kasan: bad access detected
    >
    > Memory state around the buggy address:
    >  ffff88003a2bd980: fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    >  ffff88003a2bda00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    > >ffff88003a2bda80: fc fc fc fc fc fc fc fc fc fc fc fc fb fb fb fb
    >                                                                 ^
    >  ffff88003a2bdb00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >  ffff88003a2bdb80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    > ==================================================================
    
    What this means is that the gadgetfs_suspend() routine was trying to
    access dev->lock after it had been deallocated.  The root cause is a
    race in the dummy_hcd driver; the dummy_udc_stop() routine can race
    with the rest of the driver because it contains no locking.  And even
    when proper locking is added, it can still race with the
    set_link_state() function because that function incorrectly drops the
    private spinlock before invoking any gadget driver callbacks.
    
    The result of this race, as seen above, is that set_link_state() can
    invoke a callback in gadgetfs even after gadgetfs has been unbound
    from dummy_hcd's UDC and its private data structures have been
    deallocated.
    
    include/linux/usb/gadget.h documents that the ->reset, ->disconnect,
    ->suspend, and ->resume callbacks may be invoked in interrupt context.
    In general this is necessary, to prevent races with gadget driver
    removal.  This patch fixes dummy_hcd to retain the spinlock across
    these calls, and it adds a spinlock acquisition to dummy_udc_stop() to
    prevent the race.
    
    The net2280 driver makes the same mistake of dropping the private
    spinlock for its ->disconnect and ->reset callback invocations.  The
    patch fixes it too.
    
    Lastly, since gadgetfs_suspend() may be invoked in interrupt context,
    it cannot assume that interrupts are enabled when it runs.  It must
    use spin_lock_irqsave() instead of spin_lock_irq().  The patch fixes
    that bug as well.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Andrey Konovalov <andreyknvl@google.com>
    Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ff5f4f6a8a7c4a4f06e0b5f492ecd9a36460fb7
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Thu Jun 8 13:55:59 2017 -0400

    USB: gadget: fix GPF in gadgetfs
    
    commit f50b878fed33e360d01dcdc31a8eeb1815d033d5 upstream.
    
    A NULL-pointer dereference bug in gadgetfs was uncovered by syzkaller:
    
    > kasan: GPF could be caused by NULL-ptr deref or user memory access
    > general protection fault: 0000 [#1] SMP KASAN
    > Dumping ftrace buffer:
    >    (ftrace buffer empty)
    > Modules linked in:
    > CPU: 2 PID: 4820 Comm: syz-executor0 Not tainted 4.12.0-rc4+ #5
    > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    > task: ffff880039542dc0 task.stack: ffff88003bdd0000
    > RIP: 0010:__list_del_entry_valid+0x7e/0x170 lib/list_debug.c:51
    > RSP: 0018:ffff88003bdd6e50 EFLAGS: 00010246
    > RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000010000
    > RDX: 0000000000000000 RSI: ffffffff86504948 RDI: ffffffff86504950
    > RBP: ffff88003bdd6e68 R08: ffff880039542dc0 R09: ffffffff8778ce00
    > R10: ffff88003bdd6e68 R11: dffffc0000000000 R12: 0000000000000000
    > R13: dffffc0000000000 R14: 1ffff100077badd2 R15: ffffffff864d2e40
    > FS:  0000000000000000(0000) GS:ffff88006dc00000(0000) knlGS:0000000000000000
    > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    > CR2: 000000002014aff9 CR3: 0000000006022000 CR4: 00000000000006e0
    > Call Trace:
    >  __list_del_entry include/linux/list.h:116 [inline]
    >  list_del include/linux/list.h:124 [inline]
    >  usb_gadget_unregister_driver+0x166/0x4c0 drivers/usb/gadget/udc/core.c:1387
    >  dev_release+0x80/0x160 drivers/usb/gadget/legacy/inode.c:1187
    >  __fput+0x332/0x7f0 fs/file_table.c:209
    >  ____fput+0x15/0x20 fs/file_table.c:245
    >  task_work_run+0x19b/0x270 kernel/task_work.c:116
    >  exit_task_work include/linux/task_work.h:21 [inline]
    >  do_exit+0x18a3/0x2820 kernel/exit.c:878
    >  do_group_exit+0x149/0x420 kernel/exit.c:982
    >  get_signal+0x77f/0x1780 kernel/signal.c:2318
    >  do_signal+0xd2/0x2130 arch/x86/kernel/signal.c:808
    >  exit_to_usermode_loop+0x1a7/0x240 arch/x86/entry/common.c:157
    >  prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
    >  syscall_return_slowpath+0x3ba/0x410 arch/x86/entry/common.c:263
    >  entry_SYSCALL_64_fastpath+0xbc/0xbe
    > RIP: 0033:0x4461f9
    > RSP: 002b:00007fdac2b1ecf8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
    > RAX: fffffffffffffe00 RBX: 00000000007080c8 RCX: 00000000004461f9
    > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000007080c8
    > RBP: 00000000007080a8 R08: 0000000000000000 R09: 0000000000000000
    > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    > R13: 0000000000000000 R14: 00007fdac2b1f9c0 R15: 00007fdac2b1f700
    > Code: 00 00 00 00 ad de 49 39 c4 74 6a 48 b8 00 02 00 00 00 00 ad de
    > 48 89 da 48 39 c3 74 74 48 c1 ea 03 48 b8 00 00 00 00 00 fc ff df <80>
    > 3c 02 00 0f 85 92 00 00 00 48 8b 13 48 39 f2 75 66 49 8d 7c
    > RIP: __list_del_entry_valid+0x7e/0x170 lib/list_debug.c:51 RSP: ffff88003bdd6e50
    > ---[ end trace 30e94b1eec4831c8 ]---
    > Kernel panic - not syncing: Fatal exception
    
    The bug was caused by dev_release() failing to turn off its
    gadget_registered flag after unregistering the gadget driver.  As a
    result, when a later user closed the device file before writing a
    valid set of descriptors, dev_release() thought the gadget had been
    registered and tried to unregister it, even though it had not been.
    This led to the NULL pointer dereference.
    
    The fix is simple: turn off the flag when the gadget is unregistered.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06178662474ca54f92664f72e2e3c48d716317f0
Author: Corentin Labbe <clabbe.montjoie@gmail.com>
Date:   Fri Jun 9 14:48:41 2017 +0300

    usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
    
    commit d2f48f05cd2a2a0a708fbfa45f1a00a87660d937 upstream.
    
    When plugging an USB webcam I see the following message:
    [106385.615559] xhci_hcd 0000:04:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    [106390.583860] handle_tx_event: 913 callbacks suppressed
    
    With this patch applied, I get no more printing of this message.
    
    Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4581d7dd44f336d82cac7d5e5ae5ce429b52c98a
Author: YD Tseng <yd_tseng@asmedia.com.tw>
Date:   Fri Jun 9 14:48:40 2017 +0300

    usb: xhci: Fix USB 3.1 supported protocol parsing
    
    commit b72eb8435b25be3a1880264cf32ac91e626ba5ba upstream.
    
    xHCI host controllers can have both USB 3.1 and 3.0 extended speed
    protocol lists. If the USB3.1 speed is parsed first and 3.0 second then
    the minor revision supported will be overwritten by the 3.0 speeds and
    the USB3 roothub will only show support for USB 3.0 speeds.
    
    This was the case with a xhci controller with the supported protocol
    capability listed below.
    In xhci-mem.c, the USB 3.1 speed is parsed first, the min_rev of usb3_rhub
    is set as 0x10.  And then USB 3.0 is parsed.  However, the min_rev of
    usb3_rhub will be changed to 0x00. If USB 3.1 device is connected behind
    this host controller, the speed of USB 3.1 device just reports 5G speed
    using lsusb.
    
         00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
      00 01 08 00 00 00 00 00 40 00 00 00 00 00 00 00 00
      10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      20 02 08 10 03 55 53 42 20 01 02 00 00 00 00 00 00     //USB 3.1
      30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      40 02 08 00 03 55 53 42 20 03 06 00 00 00 00 00 00     //USB 3.0
      50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      60 02 08 00 02 55 53 42 20 09 0E 19 00 00 00 00 00     //USB 2.0
      70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    
    This patch fixes the issue by only owerwriting the minor revision if
    it is higher than the existing one.
    
    [reword commit message -Mathias]
    Signed-off-by: YD Tseng <yd_tseng@asmedia.com.tw>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2abac4084fb91021371a97fc42963f3e01228a3b
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon May 8 15:55:17 2017 -0700

    drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
    
    commit 8128a31eaadbcdfa37774bbd28f3f00bac69996a upstream.
    
    c2port_device_register() never returns NULL, it uses error pointers.
    
    Link: http://lkml.kernel.org/r/20170412083321.GC3250@mwanda
    Fixes: 65131cd52b9e ("c2port: add c2port support for Eurotech Duramar 2150")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Rodolfo Giometti <giometti@linux.it>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f28ba80c6a3e8bf7ec96e06667dd82e98ae1c672
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Jan 9 11:20:16 2017 +0300

    misc: mic: double free on ioctl error path
    
    commit 816c9311f1144a03da1fdc4feb2f6b0d3299fca0 upstream.
    
    This function only has one caller.  Freeing "vdev" here leads to a use
    after free bug.  There are several other error paths in this function
    but this is the only one which frees "vdev".  It looks like the kfree()
    can be safely removed.
    
    Fixes: 61e9c905df78 ("misc: mic: Enable VOP host side functionality")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02d009e865a830a16d932c4ea2fce158642c0bbe
Author: Kalle Valo <kvalo@qca.qualcomm.com>
Date:   Mon Feb 13 12:38:39 2017 +0200

    ath10k: fix napi crash during rmmod when probe firmware fails
    
    commit 1427228d5869f5804b03d47acfa4a88122572a78 upstream.
    
    This fixes the below crash when ath10k probe firmware fails, NAPI polling tries
    to access a rx ring resource which was never allocated. An easy way to
    reproduce this is easy to remove all the firmware files, load ath10k modules
    and ath10k will crash when calling 'rmmod ath10k_pci'. The fix is to call
    napi_enable() from ath10k_pci_hif_start() so that it matches with
    napi_disable() being called from ath10k_pci_hif_stop().
    
    Big thanks to Mohammed Shafi Shajakhan who debugged this and provided first
    version of the fix. In this patch I just fix the actual problem in pci.c
    instead of having a workaround in core.c.
    
    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP:  __ath10k_htt_rx_ring_fill_n+0x19/0x230 [ath10k_core]
    __ath10k_htt_rx_ring_fill_n+0x19/0x230 [ath10k_core]
    
    Call Trace:
    
    [<ffffffffa113ec62>] ath10k_htt_rx_msdu_buff_replenish+0x42/0x90
    [ath10k_core]
    [<ffffffffa113f393>] ath10k_htt_txrx_compl_task+0x433/0x17d0
    [ath10k_core]
    [<ffffffff8114406d>] ? __wake_up_common+0x4d/0x80
    [<ffffffff811349ec>] ? cpu_load_update+0xdc/0x150
    [<ffffffffa119301d>] ? ath10k_pci_read32+0xd/0x10 [ath10k_pci]
    [<ffffffffa1195b17>] ath10k_pci_napi_poll+0x47/0x110 [ath10k_pci]
    [<ffffffff817863af>] net_rx_action+0x20f/0x370
    
    Reported-by: Ben Greear <greearb@candelatech.com>
    Fixes: 3c97f5de1f28 ("ath10k: implement NAPI support")
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07612c1227e8532e840f457f5b95596f7487e0f6
Author: Chris Brandt <chris.brandt@renesas.com>
Date:   Thu Apr 27 12:12:49 2017 -0700

    usb: r8a66597-hcd: decrease timeout
    
    commit dd14a3e9b92ac6f0918054f9e3477438760a4fa6 upstream.
    
    The timeout for BULK packets was 300ms which is a long time if other
    endpoints or devices are waiting for their turn. Changing it to 50ms
    greatly increased the overall performance for multi-endpoint devices.
    
    Fixes: 5d3043586db4 ("usb: r8a66597-hcd: host controller driver for R8A6659")
    Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f75f4d196ab58f21746a0cf624bd00f2153273c7
Author: Chris Brandt <chris.brandt@renesas.com>
Date:   Thu Apr 27 12:12:02 2017 -0700

    usb: r8a66597-hcd: select a different endpoint on timeout
    
    commit 1f873d857b6c2fefb4dada952674aa01bcfb92bd upstream.
    
    If multiple endpoints on a single device have pending IN URBs and one
    endpoint times out due to NAKs (perfectly legal), select a different
    endpoint URB to try.
    The existing code only checked to see another device address has pending
    URBs and ignores other IN endpoints on the current device address. This
    leads to endpoints never getting serviced if one endpoint is using NAK as
    a flow control method.
    
    Fixes: 5d3043586db4 ("usb: r8a66597-hcd: host controller driver for R8A6659")
    Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    USB: gadget: dummy_hcd: fix hub-descriptor removable fields
    
    commit d81182ce30dbd497a1e7047d7fda2af040347790 upstream.
    
    Flag the first and only port as removable while also leaving the
    remaining bits (including the reserved bit zero) unset in accordance
    with the specifications:
    
            "Within a byte, if no port exists for a given location, the bit
            field representing the port characteristics shall be 0."
    
    Also add a comment marking the legacy PortPwrCtrlMask field.
    
    Fixes: 1cd8fd2887e1 ("usb: gadget: dummy_hcd: add SuperSpeed support")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: Tatyana Brokhman <tlinder@codeaurora.org>
    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 374aceef5912f3438a1cc582a2007551f0fbdb15
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Feb 2 12:53:04 2017 -0200

    pvrusb2: reduce stack usage pvr2_eeprom_analyze()
    
    commit 6830733d53a4517588e56227b9c8538633f0c496 upstream.
    
    The driver uses a relatively large data structure on the stack, which
    showed up on my radar as we get a warning with the "latent entropy"
    GCC plugin:
    
    drivers/media/usb/pvrusb2/pvrusb2-eeprom.c:153:1: error: the frame size of 1376 bytes is larger than 1152 bytes [-Werror=frame-larger-than=]
    
    The warning is usually hidden as we raise the warning limit to 2048
    when the plugin is enabled, but I'd like to lower that again in the
    future, and making this function smaller helps to do that without
    build regressions.
    
    Further analysis shows that putting an 'i2c_client' structure on
    the stack is not really supported, as the embedded 'struct device'
    is not initialized here, and we are only saved by the fact that
    the function that is called here does not use the pointer at all.
    
    Fixes: d855497edbfb ("V4L/DVB (4228a): pvrusb2 to kernel 2.6.18")
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    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 9ae5dac225e28ce165464d8880ecbc147708e12b
Author: Johan Hovold <johan@kernel.org>
Date:   Wed May 10 18:18:26 2017 +0200

    USB: usbip: fix nonconforming hub descriptor
    
    commit ec963b412a54aac8e527708ecad06a6988a86fb4 upstream.
    
    Fix up the root-hub descriptor to accommodate the variable-length
    DeviceRemovable and PortPwrCtrlMask fields, while marking all ports as
    removable (and leaving the reserved bit zero unset).
    
    Also add a build-time constraint on VHCI_HC_PORTS which must never be
    greater than USB_MAXCHILDREN (but this was only enforced through a
    KConfig constant).
    
    This specifically fixes the descriptor layout whenever VHCI_HC_PORTS is
    greater than seven (default is 8).
    
    Fixes: 04679b3489e0 ("Staging: USB/IP: add client driver")
    Cc: Takahiro Hirofuchi <hirofuchi@users.sourceforge.net>
    Cc: Valentina Manea <valentina.manea.m@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b5bce3a5128108ec14dc22e8a9e46cd1a3b6c54
Author: Anton Bondarenko <anton.bondarenko.sama@gmail.com>
Date:   Sun May 7 01:53:46 2017 +0200

    usb: core: fix potential memory leak in error path during hcd creation
    
    commit 1a744d2eb76aaafb997fda004ae3ae62a1538f85 upstream.
    
    Free memory allocated for address0_mutex if allocation of bandwidth_mutex
    failed.
    
    Fixes: feb26ac31a2a ("usb: core: hub: hub_port_init lock controller instead of bus")
    
    Signed-off-by: Anton Bondarenko <anton.bondarenko.sama@gmail.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

    USB: hub: fix SS max number of ports
    
    commit 93491ced3c87c94b12220dbac0527e1356702179 upstream.
    
    Add define for the maximum number of ports on a SuperSpeed hub as per
    USB 3.1 spec Table 10-5, and use it when verifying the retrieved hub
    descriptor.
    
    This specifically avoids benign attempts to update the DeviceRemovable
    mask for non-existing ports (should we get that far).
    
    Fixes: dbe79bbe9dcb ("USB 3.0 Hub Changes")
    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 cb53a4e03b2f2341f1b24d8c6785d4ff57928f41
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Wed Apr 26 20:50:09 2017 +0900

    usb: gadget: udc: renesas_usb3: lock for PN_ registers access
    
    commit 940f538a100c84c6e72813e4ac88bd1753a86945 upstream.
    
    This controller disallows to change the PIPE until reading/writing
    a packet finishes. However. the previous code is not enough to hold
    the lock in some functions. So, this patch fixes it.
    
    Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd65c0958b77d97a9419f1ccfab3fa8c30f61338
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Wed Apr 26 20:50:08 2017 +0900

    usb: gadget: udc: renesas_usb3: fix deadlock by spinlock
    
    commit 067d6fdc558d2c43f0bfdc7af99630dd5eb08dc5 upstream.
    
    This patch fixes an issue that this driver is possible to cause
    deadlock by double-spinclocked in renesas_usb3_stop_controller().
    So, this patch removes spinlock API calling in renesas_usb3_stop().
    (In other words, the previous code had a redundant lock.)
    
    Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 723bd3b9f83fe4ba903351cdaa1e6dfbec8faac0
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Wed Apr 26 20:50:07 2017 +0900

    usb: gadget: udc: renesas_usb3: fix pm_runtime functions calling
    
    commit cdc876877ebc3f0677b267756d4564e2a429e730 upstream.
    
    This patch fixes an issue that this driver is possible to access
    the registers before pm_runtime_get_sync() if a gadget driver is
    installed first. After that, oops happens on R-Car Gen3 environment.
    To avoid it, this patch changes the pm_runtime call timing from
    probe/remove to udc_start/udc_stop.
    
    Fixes: 746bfe63bba3 ("usb: gadget: renesas_usb3: add support for Renesas USB3.0 peripheral controller")
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b51e4b0ac6618814bb1b294086b84aa9a51aaf48
Author: Eli Cohen <eli@mellanox.com>
Date:   Tue Jan 3 23:55:19 2017 +0200

    IB/mlx5: Fix kernel to user leak prevention logic
    
    commit de8d6e02efbdb259c67832ccf027d7ace9b91d5d upstream.
    
    The logic was broken as it failed to update the response length for
    architectures with PAGE_SIZE larger than 4kB. As a result further
    extension of the ucontext response struct would fail.
    
    Fixes: d69e3bcf7976 ('IB/mlx5: Mmap the HCA's core clock register to user-space')
    Signed-off-by: Eli Cohen <eli@mellanox.com>
    Reviewed-by: Matan Barak <matanb@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dca02651cee78260ad9b6f1dce8f40b28367b7e2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed May 10 08:51:09 2017 +0300

    iio: adc: ti_am335x_adc: allocating too much in probe
    
    commit 5ba5b437efaa7a502eec393c045d3bf90c92c4e9 upstream.
    
    We should be allocating enough information for a tiadc_device struct
    which is about 400 bytes but instead we allocate enough for a second
    iio_dev struct which is over 2000 bytes.
    
    Fixes: fea89e2dfcea ("iio: adc: ti_am335x_adc: use variable names for sizeof() operator")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf308c15103e9b5e13a7719decec86b20d538863
Author: Matt Ranostay <matt.ranostay@konsulko.com>
Date:   Fri Apr 14 16:38:19 2017 -0700

    iio: proximity: as3935: recalibrate RCO after resume
    
    commit 6272c0de13abf1480f701d38288f28a11b4301c4 upstream.
    
    According to the datasheet the RCO must be recalibrated
    on every power-on-reset. Also remove mutex locking in the
    calibration function since callers other than the probe
    function (which doesn't need it) will have a lock.
    
    Fixes: 24ddb0e4bba4 ("iio: Add AS3935 lightning sensor support")
    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 56251d138570b4c789ee8e55c4f58f8b658e8ea0
Author: Marcin Niestroj <m.niestroj@grinn-global.com>
Date:   Mon Dec 12 17:58:42 2016 +0100

    iio: st_pressure: Fix data sign
    
    commit 1b211d48abaa0e12e6e6177c0316ff55d11fdfce upstream.
    
    Datasheet of each device (lps331ap, lps25h, lps001wp, lps22hb) says that
    the pressure and temperature data is a 2's complement.
    
    I'm sending this the slow way, as negative pressures on these are pretty
    unusual and the nature of the fixing of multiple device introduction patches
    will make it hard to apply to older kernels - Jonathan.
    
    Fixes: 217494e5b780 ("iio:pressure: Add STMicroelectronics pressures driver")
    Fixes: 2f5effcbd097 ("iio: pressure-core: st: Expand and rename LPS331AP's channel descriptor")
    Fixes: 7885a8ce6800 ("iio: pressure: st: Add support for new LPS001WP pressure sensor")
    Fixes: e039e2f5b4da ("iio:st_pressure:initial lps22hb sensor support")
    Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1d51f7abf710729822bafeb82c664f6657a4db6
Author: Eva Rachel Retuya <eraretuya@gmail.com>
Date:   Mon Mar 20 19:27:05 2017 +0800

    staging: iio: tsl2x7x_core: Fix standard deviation calculation
    
    commit cf6c77323a96fc40309cc8a4921ef206cccdd961 upstream.
    
    Standard deviation is calculated as the square root of the variance
    where variance is the mean of sample_sum and length. Correct the
    computation of statP->stddev in accordance to the proper calculation.
    
    Fixes: 3c97c08b5735 ("staging: iio: add TAOS tsl2x7x driver")
    Reported-by: Abhiram Balasubramanian <abhiram@cs.utah.edu>
    Signed-off-by: Eva Rachel Retuya <eraretuya@gmail.com>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 773fdcdc0957527577b2f1de994448894f1e3305
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Sat Apr 22 13:47:23 2017 +0300

    staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
    
    commit 784047eb2d3405a35087af70cba46170c5576b25 upstream.
    
    The "len" could be as low as -14 so we should check for negatives.
    
    Fixes: 9a7fe54ddc3a ("staging: r8188eu: Add source files for new driver - part 1")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed13a9c6464b49b654baeba96c833b1129dc4ce4
Author: Tony Lindgren <tony@atomide.com>
Date:   Sat Apr 15 10:05:08 2017 -0700

    mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
    
    commit 8b8a84c54aff4256d592dc18346c65ecf6811b45 upstream.
    
    Commit 16fa3dc75c22 ("mfd: omap-usb-tll: HOST TLL platform driver")
    added support for USB TLL, but uses OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF
    bit the wrong way. The comments in the code are correct, but the inverted
    use of OMAP_TLL_CHANNEL_CONF_ULPINOBITSTUFF causes the register to be
    enabled instead of disabled unlike what the comments say.
    
    Without this change the Wrigley 3G LTE modem on droid 4 EHCI bus can
    be only pinged few times before it stops responding.
    
    Fixes: 16fa3dc75c22 ("mfd: omap-usb-tll: HOST TLL platform driver")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Acked-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caa6f1c7bcbe15e8cc009c689a10b1c67de48833
Author: Laura Abbott <labbott@redhat.com>
Date:   Mon May 8 14:23:16 2017 -0700

    x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
    
    commit 861ce4a3244c21b0af64f880d5bfe5e6e2fb9e4a upstream.
    
    '__vmalloc_start_set' currently only gets set in initmem_init() when
    !CONFIG_NEED_MULTIPLE_NODES. This breaks detection of vmalloc address
    with virt_addr_valid() with CONFIG_NEED_MULTIPLE_NODES=y, causing
    a kernel crash:
    
      [mm/usercopy] 517e1fbeb6: kernel BUG at arch/x86/mm/physaddr.c:78!
    
    Set '__vmalloc_start_set' appropriately for that case as well.
    
    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Signed-off-by: Laura Abbott <labbott@redhat.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: dc16ecf7fd1f ("x86-32: use specific __vmalloc_start_set flag in __virt_addr_valid")
    Link: http://lkml.kernel.org/r/1494278596-30373-1-git-send-email-labbott@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad3faea03fdfeed4cb1f8fc1b3b28eb8282bd231
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Mar 28 11:13:45 2017 +0200

    serial: sh-sci: Fix late enablement of AUTORTS
    
    commit 5f76895e4c712b1b5af450cf344389b8c53ac2c2 upstream.
    
    When changing hardware control flow for a UART with dedicated RTS/CTS
    pins, the new AUTORTS state is not immediately reflected in the
    hardware, but only when RTS is raised.  However, the serial core does
    not call .set_mctrl() after .set_termios(), hence AUTORTS may only
    become effective when the port is closed, and reopened later.
    Note that this problem does not happen when manually using stty to
    change CRTSCTS, as AUTORTS will work fine on next open.
    
    To fix this, call .set_mctrl() from .set_termios() when dedicated
    RTS/CTS pins are present, to refresh the AUTORTS or RTS state.
    This is similar to what other drivers supporting AUTORTS do (e.g.
    omap-serial).
    
    Reported-by: Baumann, Christoph (C.) <cbaumann@visteon.com>
    Fixes: 33f50ffc253854cf ("serial: sh-sci: Fix support for hardware-assisted RTS/CTS")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a50aacf5de522a5af2a9cd61ba38b0bd8b50cad6
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri May 12 16:35:45 2017 +0200

    serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
    
    commit be40597a1bc173bf9dadccdf5388b956f620ae8f upstream.
    
    UARTn_FRAME_PARITY_ODD is 0x0300
    UARTn_FRAME_PARITY_EVEN is 0x0200
    So if the UART is configured for EVEN parity, it would be reported as ODD.
    Fix it by correctly testing if the 2 bits are set.
    
    Fixes: 3afbd89c9639 ("serial/efm32: add new driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 879d61f218a94afdc53a050e97c59209b64687c4
Author: Eric Anholt <eric@anholt.net>
Date:   Wed Mar 1 10:56:02 2017 -0800

    drm/vc4: Fix OOPSes from trying to cache a partially constructed BO.
    
    commit ca39b449f6d03e8235969f12f5dd25b8eb4304d6 upstream.
    
    If a CMA allocation failed, the partially constructed BO would be
    unreferenced through the normal path, and we might choose to put it in
    the BO cache.  If we then reused it before it expired from the cache,
    the kernel would OOPS.
    
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
    Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170301185602.6873-2-eric@anholt.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5899b635ecc7a8c4ae5007f2e74250ec4297feba
Author: YYS <nickey.yang@rock-chips.com>
Date:   Tue Mar 21 16:27:03 2017 +0800

    drm/mediatek: fix mtk_hdmi_setup_vendor_specific_infoframe mistake
    
    commit 014580ffab654bb83256783a2b185cf6c06dffaa upstream.
    
    mtk_hdmi_setup_vendor_specific_infoframe will return before handle
    mtk_hdmi_hw_send_info_frame.Because hdmi_vendor_infoframe_pack
    returns the number of bytes packed into the binary buffer or
    a negative error code on failure.
    So correct it.
    
    Fixes: 8f83f26891e1 ("drm/mediatek: Add HDMI support")
    Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
    Signed-off-by: CK Hu <ck.hu@mediatek.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b754c994f3893f64973aecb467c38cd9bfc25e5
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Sat Jun 10 13:52:45 2017 +0300

    mac80211: don't send SMPS action frame in AP mode when not needed
    
    commit b3dd8279659f14f3624bb32559782d699fa6f7d1 upstream.
    
    mac80211 allows to modify the SMPS state of an AP both,
    when it is started, and after it has been started. Such a
    change will trigger an action frame to all the peers that
    are currently connected, and will be remembered so that
    new peers will get notified as soon as they connect (since
    the SMPS setting in the beacon may not be the right one).
    
    This means that we need to remember the SMPS state
    currently requested as well as the SMPS state that was
    configured initially (and advertised in the beacon).
    The former is bss->req_smps and the latter is
    sdata->smps_mode.
    
    Initially, the AP interface could only be started with
    SMPS_OFF, which means that sdata->smps_mode was SMPS_OFF
    always. Later, a nl80211 API was added to be able to start
    an AP with a different AP mode. That code forgot to update
    bss->req_smps and because of that, if the AP interface was
    started with SMPS_DYNAMIC, we had:
       sdata->smps_mode = SMPS_DYNAMIC
       bss->req_smps = SMPS_OFF
    
    That configuration made mac80211 think it needs to fire off
    an action frame to any new station connecting to the AP in
    order to let it know that the actual SMPS configuration is
    SMPS_OFF.
    
    Fix that by properly setting bss->req_smps in
    ieee80211_start_ap.
    
    Fixes: f69931748730 ("mac80211: set smps_mode according to ap params")
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3e8c503d0a1626cb54c01c04f6485683d8d76f28
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Jun 1 21:26:03 2017 +0200

    mac80211: fix dropped counter in multiqueue RX
    
    commit e165bc02a02c70e40d5c811c705ba269aeca0497 upstream.
    
    In the commit enabling per-CPU station statistics, I inadvertedly
    copy-pasted some code to update rx_packets and forgot to change it
    to update rx_dropped_misc. Fix that.
    
    This addresses https://bugzilla.kernel.org/show_bug.cgi?id=195953.
    
    Fixes: c9c5962b56c1 ("mac80211: enable collecting station statistics per-CPU")
    Reported-by: Petru-Florin Mihancea <petrum@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6568f8f70152b787ded9fe9f7d88aaeac379b6d3
Author: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Date:   Sun May 14 21:41:55 2017 -0700

    mac80211: strictly check mesh address extension mode
    
    commit 5667c86acf021e6dcf02584408b4484a273ac68f upstream.
    
    Mesh forwarding path checks for address extension mode to fetch
    appropriate proxied address and MPP address. Existing condition
    that looks for 6 address format is not strict enough so that
    frames with improper values are processed and invalid entries
    are added into MPP table. Fix that by adding a stricter check before
    processing the packet.
    
    Per IEEE Std 802.11s-2011 spec. Table 7-6g1 lists address extension
    mode 0x3 as reserved one. And also Table Table 9-13 does not specify
    0x3 as valid address field.
    
    Fixes: 9b395bc3be1c ("mac80211: verify that skb data is present")
    Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8143269c9c48172c832f25b5ae38163147244d2
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Apr 27 13:19:04 2017 +0200

    mac80211: fix IBSS presp allocation size
    
    commit f1f3e9e2a50a70de908f9dfe0d870e9cdc67e042 upstream.
    
    When VHT IBSS support was added, the size of the extra elements
    wasn't considered in ieee80211_ibss_build_presp(), which makes
    it possible that it would overrun the allocated buffer. Fix it
    by allocating the necessary space.
    
    Fixes: abcff6ef01f9 ("mac80211: add VHT support for IBSS")
    Reported-by: Shaul Triebitz <shaul.triebitz@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 841e4e775bb1229dce3404a459b8353c08c70f49
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Feb 20 08:59:16 2017 +0100

    mac80211: fix packet statistics for fast-RX
    
    commit 0328edc77d4f35014b35f32b46be0a7e16aae74f upstream.
    
    When adding per-CPU statistics, which added statistics back
    to mac80211 for the fast-RX path, I evidently forgot to add
    the "stats->packets++" line. The reason for that is likely
    that I didn't see it since it's done in defragmentation for
    the regular RX path.
    
    Add the missing line to properly count received packets in
    the fast-RX case.
    
    Fixes: c9c5962b56c1 ("mac80211: enable collecting station statistics per-CPU")
    Reported-by: Oren Givon <oren.givon@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f79d740f3289d747b5563da98b778c0021a8fc32
Author: Koen Vandeputte <koen.vandeputte@ncentric.com>
Date:   Wed Feb 8 15:32:05 2017 +0100

    mac80211: fix CSA in IBSS mode
    
    commit f181d6a3bcc35633facf5f3925699021c13492c5 upstream.
    
    Add the missing IBSS capability flag during capability init as it needs
    to be inserted into the generated beacon in order for CSA to work.
    
    Fixes: cd7760e62c2ac ("mac80211: add support for CSA in IBSS mode")
    Signed-off-by: Piotr Gawlowicz <gawlowicz@tkn.tu-berlin.de>
    Signed-off-by: Mikołaj Chwalisz <chwalisz@tkn.tu-berlin.de>
    Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd3f89002e526bb954d8b8a5620bd6810423f040
Author: Bin Liu <b-liu@ti.com>
Date:   Thu May 25 13:42:39 2017 -0500

    usb: musb: dsps: keep VBUS on for host-only mode
    
    commit b3addcf0d1f04f53fcc302577d5a5e964c18531a upstream.
    
    Currently VBUS is turned off while a usb device is detached, and turned
    on again by the polling routine. This short period VBUS loss prevents
    usb modem to switch mode.
    
    VBUS should be constantly on for host-only mode, so this changes the
    driver to not turn off VBUS for host-only mode.
    
    Fixes: 2f3fd2c5bde1 ("usb: musb: Prepare dsps glue layer for PM runtime support")
    Reported-by: Moreno Bartalucci <moreno.bartalucci@tecnorama.it>
    Acked-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 a317afc0c1ce9f49573ae8182d2a0f38d0171962
Author: Zhenyu Wang <zhenyuw@linux.intel.com>
Date:   Fri Jun 9 15:48:05 2017 +0800

    drm/i915: Fix GVT-g PVINFO version compatibility check
    
    commit c380f681245d7ae57f17d9ebbbe8f8f1557ee1fb upstream.
    
    Current it's strictly checked if PVINFO version matches 1.0
    for GVT-g i915 guest which doesn't help for compatibility at
    all and forces GVT-g host can't extend PVINFO easily with version
    bump for real compatibility check.
    
    This fixes that to check minimal required PVINFO version instead.
    
    v2:
    - drop unneeded version macro
    - use only major version for sanity check
    
    v3:
    - fix up PVInfo value with kernel type
    - one indent fix
    
    Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Chuanxiao Dong <chuanxiao.dong@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170609074805.5101-1-zhenyuw@linux.intel.com
    (cherry picked from commit 0c8792d00d38de85b6ceb1dd67d3ee009d7c8e42)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f7bb1173db826a292727ee6d7a499cef4e6e0bc
Author: Mario Kleiner <mario.kleiner.de@gmail.com>
Date:   Tue Jun 13 07:17:10 2017 +0200

    drm/amdgpu: Fix overflow of watermark calcs at > 4k resolutions.
    
    commit bea10413934dcf98cb9b2dfcdc56e1d28f192897 upstream.
    
    Commit d63c277dc672e0
    ("drm/amdgpu: Make display watermark calculations more accurate")
    made watermark calculations more accurate, but not for > 4k
    resolutions on 32-Bit architectures, as it introduced an integer
    overflow for those setups and resolutions.
    
    Fix this by proper u64 casting and division.
    
    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Reported-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Fixes: d63c277dc672 ("drm/amdgpu: Make display watermark calculations more accurate")
    Cc: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6e99a2efc03eea6444f59f158e1b0ce7c51ef36
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sat Jun 10 04:59:12 2017 +0200

    mac80211/wpa: use constant time memory comparison for MACs
    
    commit 98c67d187db7808b1f3c95f2110dd4392d034182 upstream.
    
    Otherwise, we enable all sorts of forgeries via timing attack.
    
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Johannes Berg <johannes@sipsolutions.net>
    Cc: linux-wireless@vger.kernel.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ec5b68bf62ef47daf526967f0fd069caf581e31
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Jun 8 14:00:49 2017 +0300

    mac80211: don't look at the PM bit of BAR frames
    
    commit 769dc04db3ed8484798aceb015b94deacc2ba557 upstream.
    
    When a peer sends a BAR frame with PM bit clear, we should
    not modify its PM state as madated by the spec in
    802.11-20012 10.2.1.2.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 63d34ea7042af3ffe25cb19094cb5e766e7b67ca
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri Apr 28 01:51:40 2017 -0300

    vb2: Fix an off by one error in 'vb2_plane_vaddr'
    
    commit 5ebb6dd36c9f5fb37b1077b393c254d70a14cb46 upstream.
    
    We should ensure that 'plane_no' is '< vb->num_planes' as done in
    'vb2_plane_cookie' just a few lines below.
    
    Fixes: e23ccc0ad925 ("[media] v4l: add videobuf2 Video for Linux 2 driver framework")
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    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 5d5605cc5833d6b83db393e2d178e10ef307bb40
Author: Tomasz Wilczyński <twilczynski@naver.com>
Date:   Sun Jun 11 17:28:39 2017 +0900

    cpufreq: conservative: Allow down_threshold to take values from 1 to 10
    
    commit b8e11f7d2791bd9320be1c6e772a60b2aa093e45 upstream.
    
    Commit 27ed3cd2ebf4 (cpufreq: conservative: Fix the logic in frequency
    decrease checking) removed the 10 point substraction when comparing the
    load against down_threshold but did not remove the related limit for the
    down_threshold value.  As a result, down_threshold lower than 11 is not
    allowed even though values from 1 to 10 do work correctly too. The
    comment ("cannot be lower than 11 otherwise freq will not fall") also
    does not apply after removing the substraction.
    
    For this reason, allow down_threshold to take any value from 1 to 99
    and fix the related comment.
    
    Fixes: 27ed3cd2ebf4 (cpufreq: conservative: Fix the logic in frequency decrease checking)
    Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
    Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47537bceb7b7de66a2cf8d0f3c1b15da7be7ef4d
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Jun 8 09:54:24 2017 +0200

    ila_xlat: add missing hash secret initialization
    
    commit 0db47e3d323411beeb6ea97f2c4d19395c91fd8b upstream.
    
    While discussing the possible merits of clang warning about unused initialized
    functions, I found one function that was clearly meant to be called but
    never actually is.
    
    __ila_hash_secret_init() initializes the hash value for the ila locator,
    apparently this is intended to prevent hash collision attacks, but this ends
    up being a read-only zero constant since there is no caller. I could find
    no indication of why it was never called, the earliest patch submission
    for the module already was like this. If my interpretation is right, we
    certainly want to backport the patch to stable kernels as well.
    
    I considered adding it to the ila_xlat_init callback, but for best effect
    the random data is read as late as possible, just before it is first used.
    The underlying net_get_random_once() is already highly optimized to avoid
    overhead when called frequently.
    
    Fixes: 7f00feaf1076 ("ila: Add generic ILA translation facility")
    Link: https://www.spinics.net/lists/kernel/msg2527243.html
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95f47cd7d7d8f40a1cc744a4a3116b44a43e6514
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Sun Jun 4 14:03:42 2017 +0200

    can: gs_usb: fix memory leak in gs_cmd_reset()
    
    commit 5cda3ee5138e91ac369ed9d0b55eab0dab077686 upstream.
    
    This patch adds the missing kfree() in gs_cmd_reset() to free the
    memory that is not used anymore after usb_control_msg().
    
    Cc: Maximilian Schneider <max@schneidersoft.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a6d6282040b7196a58fba47f89b05b560fadde2b
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Thu Jun 8 04:51:54 2017 +0000

    configfs: Fix race between create_link and configfs_rmdir
    
    commit ba80aa909c99802c428682c352b0ee0baac0acd3 upstream.
    
    This patch closes a long standing race in configfs between
    the creation of a new symlink in create_link(), while the
    symlink target's config_item is being concurrently removed
    via configfs_rmdir().
    
    This can happen because the symlink target's reference
    is obtained by config_item_get() in create_link() before
    the CONFIGFS_USET_DROPPING bit set by configfs_detach_prep()
    during configfs_rmdir() shutdown is actually checked..
    
    This originally manifested itself on ppc64 on v4.8.y under
    heavy load using ibmvscsi target ports with Novalink API:
    
    [ 7877.289863] rpadlpar_io: slot U8247.22L.212A91A-V1-C8 added
    [ 7879.893760] ------------[ cut here ]------------
    [ 7879.893768] WARNING: CPU: 15 PID: 17585 at ./include/linux/kref.h:46 config_item_get+0x7c/0x90 [configfs]
    [ 7879.893811] CPU: 15 PID: 17585 Comm: targetcli Tainted: G           O 4.8.17-customv2.22 #12
    [ 7879.893812] task: c00000018a0d3400 task.stack: c0000001f3b40000
    [ 7879.893813] NIP: d000000002c664ec LR: d000000002c60980 CTR: c000000000b70870
    [ 7879.893814] REGS: c0000001f3b43810 TRAP: 0700   Tainted: G O     (4.8.17-customv2.22)
    [ 7879.893815] MSR: 8000000000029033 <SF,EE,ME,IR,DR,RI,LE>  CR: 28222242  XER: 00000000
    [ 7879.893820] CFAR: d000000002c664bc SOFTE: 1
                    GPR00: d000000002c60980 c0000001f3b43a90 d000000002c70908 c0000000fbc06820
                    GPR04: c0000001ef1bd900 0000000000000004 0000000000000001 0000000000000000
                    GPR08: 0000000000000000 0000000000000001 d000000002c69560 d000000002c66d80
                    GPR12: c000000000b70870 c00000000e798700 c0000001f3b43ca0 c0000001d4949d40
                    GPR16: c00000014637e1c0 0000000000000000 0000000000000000 c0000000f2392940
                    GPR20: c0000001f3b43b98 0000000000000041 0000000000600000 0000000000000000
                    GPR24: fffffffffffff000 0000000000000000 d000000002c60be0 c0000001f1dac490
                    GPR28: 0000000000000004 0000000000000000 c0000001ef1bd900 c0000000f2392940
    [ 7879.893839] NIP [d000000002c664ec] config_item_get+0x7c/0x90 [configfs]
    [ 7879.893841] LR [d000000002c60980] check_perm+0x80/0x2e0 [configfs]
    [ 7879.893842] Call Trace:
    [ 7879.893844] [c0000001f3b43ac0] [d000000002c60980] check_perm+0x80/0x2e0 [configfs]
    [ 7879.893847] [c0000001f3b43b10] [c000000000329770] do_dentry_open+0x2c0/0x460
    [ 7879.893849] [c0000001f3b43b70] [c000000000344480] path_openat+0x210/0x1490
    [ 7879.893851] [c0000001f3b43c80] [c00000000034708c] do_filp_open+0xfc/0x170
    [ 7879.893853] [c0000001f3b43db0] [c00000000032b5bc] do_sys_open+0x1cc/0x390
    [ 7879.893856] [c0000001f3b43e30] [c000000000009584] system_call+0x38/0xec
    [ 7879.893856] Instruction dump:
    [ 7879.893858] 409d0014 38210030 e8010010 7c0803a6 4e800020 3d220000 e94981e0 892a0000
    [ 7879.893861] 2f890000 409effe0 39200001 992a0000 <0fe00000> 4bffffd0 60000000 60000000
    [ 7879.893866] ---[ end trace 14078f0b3b5ad0aa ]---
    
    To close this race, go ahead and obtain the symlink's target
    config_item reference only after the existing CONFIGFS_USET_DROPPING
    check succeeds.
    
    This way, if configfs_rmdir() wins create_link() will return -ENONET,
    and if create_link() wins configfs_rmdir() will return -EBUSY.
    
    Reported-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com>
    Tested-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com>
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 222aa34e5d791217aaba7096eae78d5bba42b30b
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri Jun 16 11:08:24 2017 +0200

    fs: pass on flags in compat_writev
    
    commit 20223f0f39ea9d31ece08f04ac79f8c4e8d98246 upstream.
    
    Fixes: 793b80ef14af ("vfs: pass a flags argument to vfs_readv/vfs_writev")
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>