commit 32ee7492f104d82b01a44fc4b4ae17d5d2bb237b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Feb 1 09:37:12 2020 +0000

    Linux 4.19.101

commit e4143b60ae6b2eee83f4eee4db4d5c30890bcbe1
Author: Andrew Murray <andrew.murray@arm.com>
Date:   Fri Jan 17 13:43:24 2020 +0000

    KVM: arm64: Write arch.mdcr_el2 changes since last vcpu_load on VHE
    
    commit 4942dc6638b07b5326b6d2faa142635c559e7cd5 upstream.
    
    On VHE systems arch.mdcr_el2 is written to mdcr_el2 at vcpu_load time to
    set options for self-hosted debug and the performance monitors
    extension.
    
    Unfortunately the value of arch.mdcr_el2 is not calculated until
    kvm_arm_setup_debug() in the run loop after the vcpu has been loaded.
    This means that the initial brief iterations of the run loop use a zero
    value of mdcr_el2 - until the vcpu is preempted. This also results in a
    delay between changes to vcpu->guest_debug taking effect.
    
    Fix this by writing to mdcr_el2 in kvm_arm_setup_debug() on VHE systems
    when a change to arch.mdcr_el2 has been detected.
    
    Fixes: d5a21bcc2995 ("KVM: arm64: Move common VHE/non-VHE trap config in separate functions")
    Cc: <stable@vger.kernel.org> # 4.17.x-
    Suggested-by: James Morse <james.morse@arm.com>
    Acked-by: Will Deacon <will@kernel.org>
    Reviewed-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Andrew Murray <andrew.murray@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f387897cf5b8cad1313c683419f53cdbabc9f092
Author: Dave Chinner <dchinner@redhat.com>
Date:   Wed Nov 14 08:17:18 2018 -0700

    block: fix 32 bit overflow in __blkdev_issue_discard()
    
    commit 4800bf7bc8c725e955fcbc6191cc872f43f506d3 upstream.
    
    A discard cleanup merged into 4.20-rc2 causes fstests xfs/259 to
    fall into an endless loop in the discard code. The test is creating
    a device that is exactly 2^32 sectors in size to test mkfs boundary
    conditions around the 32 bit sector overflow region.
    
    mkfs issues a discard for the entire device size by default, and
    hence this throws a sector count of 2^32 into
    blkdev_issue_discard(). It takes the number of sectors to discard as
    a sector_t - a 64 bit value.
    
    The commit ba5d73851e71 ("block: cleanup __blkdev_issue_discard")
    takes this sector count and casts it to a 32 bit value before
    comapring it against the maximum allowed discard size the device
    has. This truncates away the upper 32 bits, and so if the lower 32
    bits of the sector count is zero, it starts issuing discards of
    length 0. This causes the code to fall into an endless loop, issuing
    a zero length discards over and over again on the same sector.
    
    Fixes: ba5d73851e71 ("block: cleanup __blkdev_issue_discard")
    Tested-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    
    Killed pointless WARN_ON().
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0be61a5a59e295dc0804afd13e51ae9aa846b69
Author: Ming Lei <ming.lei@redhat.com>
Date:   Mon Oct 29 20:57:18 2018 +0800

    block: cleanup __blkdev_issue_discard()
    
    commit ba5d73851e71847ba7f7f4c27a1a6e1f5ab91c79 upstream.
    
    Cleanup __blkdev_issue_discard() a bit:
    
    - remove local variable of 'end_sect'
    - remove code block of 'fail'
    
    Cc: Mike Snitzer <snitzer@redhat.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Xiao Ni <xni@redhat.com>
    Cc: Mariusz Dabrowski <mariusz.dabrowski@intel.com>
    Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b84d75064f42280a54abd56b7c2cd864b688560f
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat Sep 28 16:53:52 2019 -0700

    random: try to actively add entropy rather than passively wait for it
    
    commit 50ee7529ec4500c88f8664560770a7a1b65db72b upstream.
    
    For 5.3 we had to revert a nice ext4 IO pattern improvement, because it
    caused a bootup regression due to lack of entropy at bootup together
    with arguably broken user space that was asking for secure random
    numbers when it really didn't need to.
    
    See commit 72dbcf721566 (Revert "ext4: make __ext4_get_inode_loc plug").
    
    This aims to solve the issue by actively generating entropy noise using
    the CPU cycle counter when waiting for the random number generator to
    initialize.  This only works when you have a high-frequency time stamp
    counter available, but that's the case on all modern x86 CPU's, and on
    most other modern CPU's too.
    
    What we do is to generate jitter entropy from the CPU cycle counter
    under a somewhat complex load: calling the scheduler while also
    guaranteeing a certain amount of timing noise by also triggering a
    timer.
    
    I'm sure we can tweak this, and that people will want to look at other
    alternatives, but there's been a number of papers written on jitter
    entropy, and this should really be fairly conservative by crediting one
    bit of entropy for every timer-induced jump in the cycle counter.  Not
    because the timer itself would be all that unpredictable, but because
    the interaction between the timer and the loop is going to be.
    
    Even if (and perhaps particularly if) the timer actually happens on
    another CPU, the cacheline interaction between the loop that reads the
    cycle counter and the timer itself firing is going to add perturbations
    to the cycle counter values that get mixed into the entropy pool.
    
    As Thomas pointed out, with a modern out-of-order CPU, even quite simple
    loops show a fair amount of hard-to-predict timing variability even in
    the absense of external interrupts.  But this tries to take that further
    by actually having a fairly complex interaction.
    
    This is not going to solve the entropy issue for architectures that have
    no CPU cycle counter, but it's not clear how (and if) that is solvable,
    and the hardware in question is largely starting to be irrelevant.  And
    by doing this we can at least avoid some of the even more contentious
    approaches (like making the entropy waiting time out in order to avoid
    the possibly unbounded waiting).
    
    Cc: Ahmed Darwish <darwish.07@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Nicholas Mc Guire <hofrat@opentech.at>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Willy Tarreau <w@1wt.eu>
    Cc: Alexander E. Patrakov <patrakov@gmail.com>
    Cc: Lennart Poettering <mzxreary@0pointer.de>
    Cc: Noah Meyerhans <noahm@debian.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b544caa07e5672b69f2a8e5f80d72fa4ecf7671
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Thu Dec 5 13:45:05 2019 +0800

    crypto: af_alg - Use bh_lock_sock in sk_destruct
    
    commit 37f96694cf73ba116993a9d2d99ad6a75fa7fdb0 upstream.
    
    As af_alg_release_parent may be called from BH context (most notably
    due to an async request that only completes after socket closure,
    or as reported here because of an RCU-delayed sk_destruct call), we
    must use bh_lock_sock instead of lock_sock.
    
    Reported-by: syzbot+c2f1558d49e25cc36e5e@syzkaller.appspotmail.com
    Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
    Fixes: c840ac6af3f8 ("crypto: af_alg - Disallow bind/setkey/...")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c1187d168953838fceb281fadc404621a5a091b
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Nov 28 18:22:03 2019 +0100

    rsi: fix non-atomic allocation in completion handler
    
    commit b9b9f9fea21830f85cf0148cd8dce001ae55ead1 upstream.
    
    USB completion handlers are called in atomic context and must
    specifically not allocate memory using GFP_KERNEL.
    
    Fixes: a1854fae1414 ("rsi: improve RX packet handling in USB interface")
    Cc: stable <stable@vger.kernel.org> # 4.17
    Cc: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71b815b0cc40f06c605ed77b6df9c50ba1f5a7fe
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Nov 28 18:22:02 2019 +0100

    rsi: fix memory leak on failed URB submission
    
    commit 47768297481184932844ab01a86752ba31a38861 upstream.
    
    Make sure to free the skb on failed receive-URB submission (e.g. on
    disconnect or currently also due to a missing endpoint).
    
    Fixes: a1854fae1414 ("rsi: improve RX packet handling in USB interface")
    Cc: stable <stable@vger.kernel.org>     # 4.17
    Cc: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b6b6371784977c2fb2353c63ffc260b46f17f96
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Nov 28 18:22:01 2019 +0100

    rsi: fix use-after-free on probe errors
    
    commit 92aafe77123ab478e5f5095878856ab0424910da upstream.
    
    The driver would fail to stop the command timer in most error paths,
    something which specifically could lead to the timer being freed while
    still active on I/O errors during probe.
    
    Fix this by making sure that each function starting the timer also stops
    it in all relevant error paths.
    
    Reported-by: syzbot+1d1597a5aa3679c65b9f@syzkaller.appspotmail.com
    Fixes: b78e91bcfb33 ("rsi: Add new firmware loading method")
    Cc: stable <stable@vger.kernel.org>     # 4.12
    Cc: Prameela Rani Garnepudi <prameela.j04cs@gmail.com>
    Cc: Amitkumar Karwar <amit.karwar@redpinesignals.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d935df7b2d589857a72695976b2c4e94cfda9cf
Author: Vincent Guittot <vincent.guittot@linaro.org>
Date:   Wed Jan 30 06:22:47 2019 +0100

    sched/fair: Fix insertion in rq->leaf_cfs_rq_list
    
    commit f6783319737f28e4436a69611853a5a098cbe974 upstream.
    
    Sargun reported a crash:
    
      "I picked up c40f7d74c741a907cfaeb73a7697081881c497d0 sched/fair: Fix
       infinite loop in update_blocked_averages() by reverting a9e7f6544b9c
       and put it on top of 4.19.13. In addition to this, I uninlined
       list_add_leaf_cfs_rq for debugging.
    
       This revealed a new bug that we didn't get to because we kept getting
       crashes from the previous issue. When we are running with cgroups that
       are rapidly changing, with CFS bandwidth control, and in addition
       using the cpusets cgroup, we see this crash. Specifically, it seems to
       occur with cgroups that are throttled and we change the allowed
       cpuset."
    
    The algorithm used to order cfs_rq in rq->leaf_cfs_rq_list assumes that
    it will walk down to root the 1st time a cfs_rq is used and we will finish
    to add either a cfs_rq without parent or a cfs_rq with a parent that is
    already on the list. But this is not always true in presence of throttling.
    Because a cfs_rq can be throttled even if it has never been used but other CPUs
    of the cgroup have already used all the bandwdith, we are not sure to go down to
    the root and add all cfs_rq in the list.
    
    Ensure that all cfs_rq will be added in the list even if they are throttled.
    
    [ mingo: Fix !CGROUPS build. ]
    
    Reported-by: Sargun Dhillon <sargun@sargun.me>
    Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: tj@kernel.org
    Fixes: 9c2791f936ef ("Fix hierarchical order in rq->leaf_cfs_rq_list")
    Link: https://lkml.kernel.org/r/1548825767-10799-1-git-send-email-vincent.guittot@linaro.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Janne Huttunen <janne.huttunen@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c11530ea420d144038694fd01a2d15b8e58cf11
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Jan 30 14:41:04 2019 +0100

    sched/fair: Add tmp_alone_branch assertion
    
    commit 5d299eabea5a251fbf66e8277704b874bbba92dc upstream.
    
    The magic in list_add_leaf_cfs_rq() requires that at the end of
    enqueue_task_fair():
    
      rq->tmp_alone_branch == &rq->lead_cfs_rq_list
    
    If this is violated, list integrity is compromised for list entries
    and the tmp_alone_branch pointer might dangle.
    
    Also, reflow list_add_leaf_cfs_rq() while there. This looses one
    indentation level and generates a form that's convenient for the next
    patch.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Janne Huttunen <janne.huttunen@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0a31232b38fd870236fe18f37e0efe1c80b2ac2
Author: Laura Abbott <labbott@fedoraproject.org>
Date:   Tue Sep 8 09:53:38 2015 -0700

    usb-storage: Disable UAS on JMicron SATA enclosure
    
    [ Upstream commit bc3bdb12bbb3492067c8719011576370e959a2e6 ]
    
    Steve Ellis reported incorrect block sizes and alignement
    offsets with a SATA enclosure. Adding a quirk to disable
    UAS fixes the problems.
    
    Reported-by: Steven Ellis <sellis@redhat.com>
    Cc: Pacho Ramos <pachoramos@gmail.com>
    Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6a1dbca82dc80637d9f165cc349380812af51c3
Author: Ben Dooks <ben.dooks@codethink.co.uk>
Date:   Tue Oct 15 14:12:38 2019 +0100

    ARM: OMAP2+: SmartReflex: add omap_sr_pdata definition
    
    [ Upstream commit 2079fe6ea8cbd2fb2fbadba911f1eca6c362eb9b ]
    
    The omap_sr_pdata is not declared but is exported, so add a
    define for it to fix the following warning:
    
    arch/arm/mach-omap2/pdata-quirks.c:609:36: warning: symbol 'omap_sr_pdata' was not declared. Should it be static?
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 64f79f17243eca348aa5fc5e2f0a6539d717a67b
Author: Logan Gunthorpe <logang@deltatee.com>
Date:   Tue Oct 22 16:01:21 2019 -0600

    iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping
    
    [ Upstream commit 3c124435e8dd516df4b2fc983f4415386fd6edae ]
    
    Non-Transparent Bridge (NTB) devices (among others) may have many DMA
    aliases seeing the hardware will send requests with different device ids
    depending on their origin across the bridged hardware.
    
    See commit ad281ecf1c7d ("PCI: Add DMA alias quirk for Microsemi Switchtec
    NTB") for more information on this.
    
    The AMD IOMMU IRQ remapping functionality ignores all PCI aliases for
    IRQs so if devices send an interrupt from one of their aliases they
    will be blocked on AMD hardware with the IOMMU enabled.
    
    To fix this, ensure IRQ remapping is enabled for all aliases with
    MSI interrupts.
    
    This is analogous to the functionality added to the Intel IRQ remapping
    code in commit 3f0c625c6ae7 ("iommu/vt-d: Allow interrupts from the entire
    bus for aliased devices")
    
    Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b30fd1dde59e7e950769424754999cb858dc96a
Author: Slawomir Pawlowski <slawomir.pawlowski@intel.com>
Date:   Tue Sep 17 09:20:48 2019 +0000

    PCI: Add DMA alias quirk for Intel VCA NTB
    
    [ Upstream commit 56b4cd4b7da9ee95778eb5c8abea49f641ebfd91 ]
    
    Intel Visual Compute Accelerator (VCA) is a family of PCIe add-in devices
    exposing computational units via Non Transparent Bridges (NTB, PEX 87xx).
    
    Similarly to MIC x200, we need to add DMA aliases to allow buffer access
    when IOMMU is enabled.
    
    Add aliases to allow computational unit access to host memory.  These
    aliases mark the whole VCA device as one IOMMU group.
    
    All possible slot numbers (0x20) are used, since we are unable to tell what
    slot is used on other side.  This quirk is intended for both host and
    computational unit sides.  The VCA devices have up to five functions: four
    for DMA channels and one additional.
    
    Link: https://lore.kernel.org/r/5683A335CC8BE1438C3C30C49DCC38DF637CED8E@IRSMSX102.ger.corp.intel.com
    Signed-off-by: Slawomir Pawlowski <slawomir.pawlowski@intel.com>
    Signed-off-by: Przemek Kitszel <przemyslawx.kitszel@intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c630c3f4164a5c3f712edb2ef0b56f3edd3b7848
Author: Pacien TRAN-GIRARD <pacien.trangirard@pacien.net>
Date:   Fri Sep 27 23:19:03 2019 +0200

    platform/x86: dell-laptop: disable kbd backlight on Inspiron 10xx
    
    [ Upstream commit 10b65e2915b2fcc606d173e98a972850101fb4c4 ]
    
    This patch adds a quirk disabling keyboard backlight support for the
    Dell Inspiron 1012 and 1018.
    
    Those models wrongly report supporting keyboard backlight control
    features (through SMBIOS tokens) even though they're not equipped with
    a backlit keyboard. This led to broken controls being exposed
    through sysfs by this driver which froze the system when used.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=107651
    Signed-off-by: Pacien TRAN-GIRARD <pacien.trangirard@pacien.net>
    Reviewed-by: Mario Limonciello <mario.limonciello@dell.com>
    Reviewed-by: Pali Rohár <pali.rohar@gmail.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e8d49deb45fef98296d3c162b7fc9b544b3877a4
Author: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
Date:   Tue Jan 7 20:48:13 2020 +0100

    HID: steam: Fix input device disappearing
    
    [ Upstream commit 20eee6e5af35d9586774e80b6e0b1850e7cc9899 ]
    
    The `connected` value for wired devices was not properly initialized,
    it must be set to `true` upon creation, because wired devices do not
    generate connection events.
    
    When a raw client (the Steam Client) uses the device, the input device
    is destroyed. Then, when the raw client finishes, it must be recreated.
    But since the `connected` variable was false this never happended.
    
    Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 284cd2ab3c358dbcec1332eba11640741e3d8058
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Jan 7 21:43:59 2020 +0100

    atm: eni: fix uninitialized variable warning
    
    [ Upstream commit 30780d086a83332adcd9362281201cee7c3d9d19 ]
    
    With -O3, gcc has found an actual unintialized variable stored
    into an mmio register in two instances:
    
    drivers/atm/eni.c: In function 'discard':
    drivers/atm/eni.c:465:13: error: 'dma[1]' is used uninitialized in this function [-Werror=uninitialized]
       writel(dma[i*2+1],eni_dev->rx_dma+dma_wr*8+4);
                 ^
    drivers/atm/eni.c:465:13: error: 'dma[3]' is used uninitialized in this function [-Werror=uninitialized]
    
    Change the code to always write zeroes instead.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fce6b14f29d469bdfe9540ea8ad6c4c7a4a318c
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Mon Jan 6 04:51:54 2020 +0300

    gpio: max77620: Add missing dependency on GPIOLIB_IRQCHIP
    
    [ Upstream commit c5706c7defc79de68a115b5536376298a8fef111 ]
    
    Driver fails to compile in a minimized kernel's configuration because of
    the missing dependency on GPIOLIB_IRQCHIP.
    
     error: ‘struct gpio_chip’ has no member named ‘irq’
       44 |   virq = irq_find_mapping(gpio->gpio_chip.irq.domain, offset);
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Link: https://lore.kernel.org/r/20200106015154.12040-1-digetx@gmail.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94c9249dc8d727edd04af8b88eec317770925275
Author: Krzysztof Kozlowski <krzk@kernel.org>
Date:   Sat Jan 4 15:31:43 2020 +0100

    net: wan: sdla: Fix cast from pointer to integer of different size
    
    [ Upstream commit 00c0688cecadbf7ac2f5b4cdb36d912a2d3f0cca ]
    
    Since net_device.mem_start is unsigned long, it should not be cast to
    int right before casting to pointer.  This fixes warning (compile
    testing on alpha architecture):
    
        drivers/net/wan/sdla.c: In function ‘sdla_transmit’:
        drivers/net/wan/sdla.c:711:13: warning:
            cast to pointer from integer of different size [-Wint-to-pointer-cast]
    
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6079715f2cc204bb381fbbcd7ae0d9b9ef6b32de
Author: Fenghua Yu <fenghua.yu@intel.com>
Date:   Thu Jan 2 13:27:06 2020 -0800

    drivers/net/b44: Change to non-atomic bit operations on pwol_mask
    
    [ Upstream commit f11421ba4af706cb4f5703de34fa77fba8472776 ]
    
    Atomic operations that span cache lines are super-expensive on x86
    (not just to the current processor, but also to other processes as all
    memory operations are blocked until the operation completes). Upcoming
    x86 processors have a switch to cause such operations to generate a #AC
    trap. It is expected that some real time systems will enable this mode
    in BIOS.
    
    In preparation for this, it is necessary to fix code that may execute
    atomic instructions with operands that cross cachelines because the #AC
    trap will crash the kernel.
    
    Since "pwol_mask" is local and never exposed to concurrency, there is
    no need to set bits in pwol_mask using atomic operations.
    
    Directly operate on the byte which contains the bit instead of using
    __set_bit() to avoid any big endian concern due to type cast to
    unsigned long in __set_bit().
    
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6fb12237c51e73e65899f9b1df69cd3999b4d90a
Author: wuxu.wu <wuxu.wu@huawei.com>
Date:   Wed Jan 1 11:39:41 2020 +0800

    spi: spi-dw: Add lock protect dw_spi rx/tx to prevent concurrent calls
    
    [ Upstream commit 19b61392c5a852b4e8a0bf35aecb969983c5932d ]
    
    dw_spi_irq() and dw_spi_transfer_one concurrent calls.
    
    I find a panic in dw_writer(): txw = *(u8 *)(dws->tx), when dw->tx==null,
    dw->len==4, and dw->tx_end==1.
    
    When tpm driver's message overtime dw_spi_irq() and dw_spi_transfer_one
    may concurrent visit dw_spi, so I think dw_spi structure lack of protection.
    
    Otherwise dw_spi_transfer_one set dw rx/tx buffer and then open irq,
    store dw rx/tx instructions and other cores handle irq load dw rx/tx
    instructions may out of order.
    
            [ 1025.321302] Call trace:
            ...
            [ 1025.321319]  __crash_kexec+0x98/0x148
            [ 1025.321323]  panic+0x17c/0x314
            [ 1025.321329]  die+0x29c/0x2e8
            [ 1025.321334]  die_kernel_fault+0x68/0x78
            [ 1025.321337]  __do_kernel_fault+0x90/0xb0
            [ 1025.321346]  do_page_fault+0x88/0x500
            [ 1025.321347]  do_translation_fault+0xa8/0xb8
            [ 1025.321349]  do_mem_abort+0x68/0x118
            [ 1025.321351]  el1_da+0x20/0x8c
            [ 1025.321362]  dw_writer+0xc8/0xd0
            [ 1025.321364]  interrupt_transfer+0x60/0x110
            [ 1025.321365]  dw_spi_irq+0x48/0x70
            ...
    
    Signed-off-by: wuxu.wu <wuxu.wu@huawei.com>
    Link: https://lore.kernel.org/r/1577849981-31489-1-git-send-email-wuxu.wu@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4958414a6da988b165557444f364149dd46d4cf7
Author: Andreas Kemnade <andreas@kemnade.info>
Date:   Fri Dec 13 22:48:02 2019 +0100

    watchdog: rn5t618_wdt: fix module aliases
    
    [ Upstream commit a76dfb859cd42df6e3d1910659128ffcd2fb6ba2 ]
    
    Platform device aliases were missing so module autoloading
    did not work.
    
    Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20191213214802.22268-1-andreas@kemnade.info
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27818683072306bf1a7a26761f7a8fa0bd7a0e39
Author: David Engraf <david.engraf@sysgo.com>
Date:   Wed Nov 27 09:46:17 2019 +0100

    watchdog: max77620_wdt: fix potential build errors
    
    [ Upstream commit da9e3f4e30a53cd420cf1e6961c3b4110f0f21f0 ]
    
    max77620_wdt uses watchdog core functions. Enable CONFIG_WATCHDOG_CORE
    to fix potential build errors.
    
    Signed-off-by: David Engraf <david.engraf@sysgo.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20191127084617.16937-1-david.engraf@sysgo.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0fcfcda809cb3b52e59cfb28d72d95bc93436b0
Author: Tony Lindgren <tony@atomide.com>
Date:   Sun Dec 22 10:17:02 2019 -0800

    phy: cpcap-usb: Prevent USB line glitches from waking up modem
    
    [ Upstream commit 63078b6ba09e842f09df052c5728857389fddcd2 ]
    
    The micro-USB connector on Motorola Mapphone devices can be muxed between
    the SoC and the mdm6600 modem. But even when used for the SoC, configuring
    the PHY with ID pin grounded will wake up the modem from idle state. Looks
    like the issue is probably caused by line glitches.
    
    We can prevent the glitches by using a previously unknown mode of the
    GPIO mux to prevent the USB lines from being connected to the moden while
    configuring the USB PHY, and enable the USB lines after configuring the
    PHY.
    
    Note that this only prevents waking up mdm6600 as regular USB A-host mode,
    and does not help when connected to a lapdock. The lapdock specific issue
    still needs to be debugged separately.
    
    Cc: Merlijn Wajer <merlijn@wizzup.org>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: Sebastian Reichel <sre@kernel.org>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 342c20044296df71c09282c707e504b442478f7d
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Fri Dec 20 15:47:15 2019 +0530

    phy: qcom-qmp: Increase PHY ready timeout
    
    [ Upstream commit cd217ee6867d285ceecd610fa1006975d5c683fa ]
    
    It's typical for the QHP PHY to take slightly above 1ms to initialize,
    so increase the timeout of the PHY ready check to 10ms - as already done
    in the downstream PCIe driver.
    
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Tested-by: Evan Green <evgreen@chromium.org>
    Tested-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7be469aa4379e17de7c9f73bed7ca8f2989b60cd
Author: Pan Zhang <zhangpan26@huawei.com>
Date:   Thu Dec 19 10:45:30 2019 +0800

    drivers/hid/hid-multitouch.c: fix a possible null pointer access.
    
    [ Upstream commit 306d5acbfc66e7cccb4d8f91fc857206b8df80d1 ]
    
    1002     if ((quirks & MT_QUIRK_IGNORE_DUPLICATES) && mt) {
    1003         struct input_mt_slot *i_slot = &mt->slots[slotnum];
    1004
    1005         if (input_mt_is_active(i_slot) &&
    1006             input_mt_is_used(mt, i_slot))
    1007             return -EAGAIN;
    1008     }
    
    We previously assumed 'mt' could be null (see line 1002).
    
    The following situation is similar, so add a judgement.
    
    Signed-off-by: Pan Zhang <zhangpan26@huawei.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1bc5791675a1147c5d964b3157e078f013107a04
Author: Pavel Balan <admin@kryma.net>
Date:   Wed Nov 27 03:23:29 2019 +0000

    HID: Add quirk for incorrect input length on Lenovo Y720
    
    [ Upstream commit fd0913768701612fc2b8ab9c8a5c019133e8d978 ]
    
    Apply it to the Lenovo Y720 gaming laptop I2C peripheral then.
    
    This fixes dmesg being flooded with errors visible on un-suspend
    in Linux Mint 19 Cinnamon.
    
    Example of error log:
    
    <...>
    [    4.326588] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
    [    4.326845] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
    [    4.327095] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
    [    4.327341] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
    [    4.327609] i2c_hid i2c-ITE33D1:00: i2c_hid_get_input: incomplete report (2/4)
    <...>
    
    Example of fixed log (debug on)
    
    <...>
    [ 3731.333183] i2c_hid i2c-ITE33D1:00: input: 02 00
    [ 3731.333581] i2c_hid i2c-ITE33D1:00: input: 02 00
    [ 3731.333842] i2c_hid i2c-ITE33D1:00: input: 02 00
    [ 3731.334107] i2c_hid i2c-ITE33D1:00: input: 02 00
    [ 3731.334367] i2c_hid i2c-ITE33D1:00: input: 02 00
    <...>
    
    [jkosina@suse.cz: rebase onto more recent codebase]
    Signed-off-by: Pavel Balan <admin@kryma.net>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e91b7c54ad75a0e0e299d5ea62e4e49c2180ab3
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Nov 19 15:57:11 2019 +0100

    HID: ite: Add USB id match for Acer SW5-012 keyboard dock
    
    [ Upstream commit 8f18eca9ebc57d6b150237033f6439242907e0ba ]
    
    The Acer SW5-012 2-in-1 keyboard dock uses a Synaptics S91028 touchpad
    which is connected to an ITE 8595 USB keyboard controller chip.
    
    This keyboard has the same quirk for its rfkill / airplane mode hotkey as
    other keyboards with the ITE 8595 chip, it only sends a single release
    event when pressed and released, it never sends a press event.
    
    This commit adds this keyboards USB id to the hid-ite id-table, fixing
    the rfkill key not working on this keyboard.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 76801819d5d8cb3173e584994a3edf14ad739a49
Author: Priit Laes <plaes@plaes.org>
Date:   Sun Dec 1 00:22:09 2019 +0200

    HID: Add quirk for Xin-Mo Dual Controller
    
    [ Upstream commit c62f7cd8ed066a93a243643ebf57ca99f754388e ]
    
    Without the quirk, joystick shows up as single controller
    for both first and second player pads/pins.
    
    Signed-off-by: Priit Laes <plaes@plaes.org>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a520839cc6a8f4225d36a4ffee0d96b64e5e49e3
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Tue Nov 26 17:54:09 2019 -0800

    arc: eznps: fix allmodconfig kconfig warning
    
    [ Upstream commit 1928b36cfa4df1aeedf5f2644d0c33f3a1fcfd7b ]
    
    Fix kconfig warning for arch/arc/plat-eznps/Kconfig allmodconfig:
    
    WARNING: unmet direct dependencies detected for CLKSRC_NPS
      Depends on [n]: GENERIC_CLOCKEVENTS [=y] && !PHYS_ADDR_T_64BIT [=y]
      Selected by [y]:
      - ARC_PLAT_EZNPS [=y]
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Cc: Ofer Levi <oferle@mellanox.com>
    Cc: linux-snps-arc@lists.infradead.org
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ea66250caf029bde54597c6d5d6654c75fd3e64
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Wed Dec 4 20:42:07 2019 +0800

    HID: multitouch: Add LG MELF0410 I2C touchscreen support
    
    [ Upstream commit 348b80b273fbf4ce2a307f9e38eadecf37828cad ]
    
    Add multitouch support for LG MELF I2C touchscreen.
    Apply the same workaround as LG USB touchscreen.
    
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f7a32834b624bdfc94a21f3035463310faf7259
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Thu Jan 23 16:26:18 2020 -0800

    net_sched: fix ops->bind_class() implementations
    
    [ Upstream commit 2e24cd755552350b94a7617617c6877b8cbcb701 ]
    
    The current implementations of ops->bind_class() are merely
    searching for classid and updating class in the struct tcf_result,
    without invoking either of cl_ops->bind_tcf() or
    cl_ops->unbind_tcf(). This breaks the design of them as qdisc's
    like cbq use them to count filters too. This is why syzbot triggered
    the warning in cbq_destroy_class().
    
    In order to fix this, we have to call cl_ops->bind_tcf() and
    cl_ops->unbind_tcf() like the filter binding path. This patch does
    so by refactoring out two helper functions __tcf_bind_filter()
    and __tcf_unbind_filter(), which are lockless and accept a Qdisc
    pointer, then teaching each implementation to call them correctly.
    
    Note, we merely pass the Qdisc pointer as an opaque pointer to
    each filter, they only need to pass it down to the helper
    functions without understanding it at all.
    
    Fixes: 07d79fc7d94e ("net_sched: add reverse binding for tc class")
    Reported-and-tested-by: syzbot+0a0596220218fcb603a8@syzkaller.appspotmail.com
    Reported-and-tested-by: syzbot+63bdb6006961d8c917c6@syzkaller.appspotmail.com
    Cc: Jamal Hadi Salim <jhs@mojatatu.com>
    Cc: Jiri Pirko <jiri@resnulli.us>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 979f93f1e1477cdc78801498ab8ef23ee782e6df
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Jan 24 14:57:20 2020 -0800

    net_sched: ematch: reject invalid TCF_EM_SIMPLE
    
    [ Upstream commit 55cd9f67f1e45de8517cdaab985fb8e56c0bc1d8 ]
    
    It is possible for malicious userspace to set TCF_EM_SIMPLE bit
    even for matches that should not have this bit set.
    
    This can fool two places using tcf_em_is_simple()
    
    1) tcf_em_tree_destroy() -> memory leak of em->data
       if ops->destroy() is NULL
    
    2) tcf_em_tree_dump() wrongly report/leak 4 low-order bytes
       of a kernel pointer.
    
    BUG: memory leak
    unreferenced object 0xffff888121850a40 (size 32):
      comm "syz-executor927", pid 7193, jiffies 4294941655 (age 19.840s)
      hex dump (first 32 bytes):
        00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<00000000f67036ea>] kmemleak_alloc_recursive include/linux/kmemleak.h:43 [inline]
        [<00000000f67036ea>] slab_post_alloc_hook mm/slab.h:586 [inline]
        [<00000000f67036ea>] slab_alloc mm/slab.c:3320 [inline]
        [<00000000f67036ea>] __do_kmalloc mm/slab.c:3654 [inline]
        [<00000000f67036ea>] __kmalloc_track_caller+0x165/0x300 mm/slab.c:3671
        [<00000000fab0cc8e>] kmemdup+0x27/0x60 mm/util.c:127
        [<00000000d9992e0a>] kmemdup include/linux/string.h:453 [inline]
        [<00000000d9992e0a>] em_nbyte_change+0x5b/0x90 net/sched/em_nbyte.c:32
        [<000000007e04f711>] tcf_em_validate net/sched/ematch.c:241 [inline]
        [<000000007e04f711>] tcf_em_tree_validate net/sched/ematch.c:359 [inline]
        [<000000007e04f711>] tcf_em_tree_validate+0x332/0x46f net/sched/ematch.c:300
        [<000000007a769204>] basic_set_parms net/sched/cls_basic.c:157 [inline]
        [<000000007a769204>] basic_change+0x1d7/0x5f0 net/sched/cls_basic.c:219
        [<00000000e57a5997>] tc_new_tfilter+0x566/0xf70 net/sched/cls_api.c:2104
        [<0000000074b68559>] rtnetlink_rcv_msg+0x3b2/0x4b0 net/core/rtnetlink.c:5415
        [<00000000b7fe53fb>] netlink_rcv_skb+0x61/0x170 net/netlink/af_netlink.c:2477
        [<00000000e83a40d0>] rtnetlink_rcv+0x1d/0x30 net/core/rtnetlink.c:5442
        [<00000000d62ba933>] netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
        [<00000000d62ba933>] netlink_unicast+0x223/0x310 net/netlink/af_netlink.c:1328
        [<0000000088070f72>] netlink_sendmsg+0x2c0/0x570 net/netlink/af_netlink.c:1917
        [<00000000f70b15ea>] sock_sendmsg_nosec net/socket.c:639 [inline]
        [<00000000f70b15ea>] sock_sendmsg+0x54/0x70 net/socket.c:659
        [<00000000ef95a9be>] ____sys_sendmsg+0x2d0/0x300 net/socket.c:2330
        [<00000000b650f1ab>] ___sys_sendmsg+0x8a/0xd0 net/socket.c:2384
        [<0000000055bfa74a>] __sys_sendmsg+0x80/0xf0 net/socket.c:2417
        [<000000002abac183>] __do_sys_sendmsg net/socket.c:2426 [inline]
        [<000000002abac183>] __se_sys_sendmsg net/socket.c:2424 [inline]
        [<000000002abac183>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2424
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot+03c4738ed29d5d366ddf@syzkaller.appspotmail.com
    Cc: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28e017af2ad707bda135b53811084c56c7144ed4
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:26 2019 +0100

    zd1211rw: fix storage endpoint lookup
    
    commit 2d68bb2687abb747558b933e80845ff31570a49c upstream.
    
    Make sure to use the current alternate setting when verifying the
    storage interface descriptors to avoid submitting an URB to an invalid
    endpoint.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: a1030e92c150 ("[PATCH] zd1211rw: Convert installer CDROM device into WLAN device")
    Cc: stable <stable@vger.kernel.org>     # 2.6.19
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57d472c65629e20ede3c9bc3c52e90d4d53201bd
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:24 2019 +0100

    rtl8xxxu: fix interface sanity check
    
    commit 39a4281c312f2d226c710bc656ce380c621a2b16 upstream.
    
    Make sure to use the current alternate setting when verifying the
    interface descriptors to avoid binding to an invalid interface.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: 26f1fad29ad9 ("New driver: rtl8xxxu (mac80211)")
    Cc: stable <stable@vger.kernel.org>     # 4.4
    Cc: Jes Sorensen <Jes.Sorensen@redhat.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64f4dd1a9db2678812c30780be5e8cba2b753b39
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:22 2019 +0100

    brcmfmac: fix interface sanity check
    
    commit 3428fbcd6e6c0850b1a8b2a12082b7b2aabb3da3 upstream.
    
    Make sure to use the current alternate setting when verifying the
    interface descriptors to avoid binding to an invalid interface.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: 71bb244ba2fd ("brcm80211: fmac: add USB support for bcm43235/6/8 chipsets")
    Cc: stable <stable@vger.kernel.org>     # 3.4
    Cc: Arend van Spriel <arend@broadcom.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c477154f17a2066d37fbfa54d88ebc7fbbae2e63
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:20 2019 +0100

    ath9k: fix storage endpoint lookup
    
    commit 0ef332951e856efa89507cdd13ba8f4fb8d4db12 upstream.
    
    Make sure to use the current alternate setting when verifying the
    storage interface descriptors to avoid submitting an URB to an invalid
    endpoint.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: 36bcce430657 ("ath9k_htc: Handle storage devices")
    Cc: stable <stable@vger.kernel.org>     # 2.6.39
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f93743a333eac0817b0537f8bfeb40fe22841e87
Author: Paulo Alcantara (SUSE) <pc@cjr.nz>
Date:   Mon Jan 13 17:46:59 2020 -0300

    cifs: Fix memory allocation in __smb2_handle_cancelled_cmd()
    
    commit 0a5a98863c9debc02387b3d23c46d187756f5e2b upstream.
    
    __smb2_handle_cancelled_cmd() is called under a spin lock held in
    cifs_mid_q_entry_release(), so make its memory allocation GFP_ATOMIC.
    
    This issue was observed when running xfstests generic/028:
    
    [ 1722.589204] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72064 cmd: 5
    [ 1722.590687] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72065 cmd: 17
    [ 1722.593529] CIFS VFS: \\192.168.30.26 Cancelling wait for mid 72066 cmd: 6
    [ 1723.039014] BUG: sleeping function called from invalid context at mm/slab.h:565
    [ 1723.040710] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 30877, name: cifsd
    [ 1723.045098] CPU: 3 PID: 30877 Comm: cifsd Not tainted 5.5.0-rc4+ #313
    [ 1723.046256] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba527-rebuilt.opensuse.org 04/01/2014
    [ 1723.048221] Call Trace:
    [ 1723.048689]  dump_stack+0x97/0xe0
    [ 1723.049268]  ___might_sleep.cold+0xd1/0xe1
    [ 1723.050069]  kmem_cache_alloc_trace+0x204/0x2b0
    [ 1723.051051]  __smb2_handle_cancelled_cmd+0x40/0x140 [cifs]
    [ 1723.052137]  smb2_handle_cancelled_mid+0xf6/0x120 [cifs]
    [ 1723.053247]  cifs_mid_q_entry_release+0x44d/0x630 [cifs]
    [ 1723.054351]  ? cifs_reconnect+0x26a/0x1620 [cifs]
    [ 1723.055325]  cifs_demultiplex_thread+0xad4/0x14a0 [cifs]
    [ 1723.056458]  ? cifs_handle_standard+0x2c0/0x2c0 [cifs]
    [ 1723.057365]  ? kvm_sched_clock_read+0x14/0x30
    [ 1723.058197]  ? sched_clock+0x5/0x10
    [ 1723.058838]  ? sched_clock_cpu+0x18/0x110
    [ 1723.059629]  ? lockdep_hardirqs_on+0x17d/0x250
    [ 1723.060456]  kthread+0x1ab/0x200
    [ 1723.061149]  ? cifs_handle_standard+0x2c0/0x2c0 [cifs]
    [ 1723.062078]  ? kthread_create_on_node+0xd0/0xd0
    [ 1723.062897]  ret_from_fork+0x3a/0x50
    
    Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
    Fixes: 9150c3adbf24 ("CIFS: Close open handle after interrupted close")
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d9fb93084fafef7b670ed53f42b09fa0c3d2067
Author: Eric Biggers <ebiggers@google.com>
Date:   Mon Dec 30 21:19:31 2019 -0600

    crypto: chelsio - fix writing tfm flags to wrong place
    
    commit bd56cea012fc2d6381e8cd3209510ce09f9de8c9 upstream.
    
    The chelsio crypto driver is casting 'struct crypto_aead' directly to
    'struct crypto_tfm', which is incorrect because the crypto_tfm isn't the
    first field of 'struct crypto_aead'.  Consequently, the calls to
    crypto_tfm_set_flags() are modifying some other field in the struct.
    
    Also, the driver is setting CRYPTO_TFM_RES_BAD_KEY_LEN in
    ->setauthsize(), not just in ->setkey().  This is incorrect since this
    flag is for bad key lengths, not for bad authentication tag lengths.
    
    Fix these bugs by removing the broken crypto_tfm_set_flags() calls from
    ->setauthsize() and by fixing them in ->setkey().
    
    Fixes: 324429d74127 ("chcr: Support for Chelsio's Crypto Hardware")
    Cc: <stable@vger.kernel.org> # v4.9+
    Cc: Atul Gupta <atul.gupta@chelsio.com>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c1f01628a85ede2baf25480de2edf7e0fee11c1
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Tue Dec 17 19:10:38 2019 +0200

    iio: st_gyro: Correct data for LSM9DS0 gyro
    
    commit e825070f697abddf3b9b0a675ed0ff1884114818 upstream.
    
    The commit 41c128cb25ce ("iio: st_gyro: Add lsm9ds0-gyro support")
    assumes that gyro in LSM9DS0 is the same as others with 0xd4 WAI ID,
    but datasheet tells slight different story, i.e. the first scale factor
    for the chip is 245 dps, and not 250 dps.
    
    Correct this by introducing a separate settings for LSM9DS0.
    
    Fixes: 41c128cb25ce ("iio: st_gyro: Add lsm9ds0-gyro support")
    Depends-on: 45a4e4220bf4 ("iio: gyro: st_gyro: fix L3GD20H support")
    Cc: Leonard Crestez <leonard.crestez@nxp.com>
    Cc: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56bcce9f85ce512b6c8ad5df5c7d4e45b5b9395d
Author: Tomas Winkler <tomas.winkler@intel.com>
Date:   Sun Jan 19 11:42:29 2020 +0200

    mei: me: add comet point (lake) H device ids
    
    commit 559e575a8946a6561dfe8880de341d4ef78d5994 upstream.
    
    Add Comet Point device IDs for Comet Lake H platforms.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Link: https://lore.kernel.org/r/20200119094229.20116-1-tomas.winkler@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7d002c50902fdde05a087fb7c776287be0b86f1
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Mon Nov 18 12:54:31 2019 +0100

    component: do not dereference opaque pointer in debugfs
    
    commit ef9ffc1e5f1ac73ecd2fb3b70db2a3b2472ff2f7 upstream.
    
    The match data does not have to be a struct device pointer, and indeed
    very often is not. Attempt to treat it as such easily results in a
    crash.
    
    For the components that are not registered, we don't know which device
    is missing. Once it it is there, we can use the struct component to get
    the device and whether it's bound or not.
    
    Fixes: 59e73854b5fd ('component: add debugfs support')
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Cc: stable <stable@vger.kernel.org>
    Cc: Arnaud Pouliquen <arnaud.pouliquen@st.com>
    Link: https://lore.kernel.org/r/20191118115431.63626-1-lkundrak@v3.sk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad7a72e8180170cb97407d03be349ab7e5b6dc98
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Jan 16 13:14:01 2020 +0100

    serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
    
    commit dc76697d7e933d5e299116f219c890568785ea15 upstream.
    
    Unbinding the bcm2835aux UART driver raises the following error if the
    maximum number of 8250 UARTs is set to 1 (via the 8250.nr_uarts module
    parameter or CONFIG_SERIAL_8250_RUNTIME_UARTS):
    
    (NULL device *): Removing wrong port: a6f80333 != fa20408b
    
    That's because bcm2835aux_serial_probe() retrieves UART line number 1
    from the devicetree and stores it in data->uart.port.line, while
    serial8250_register_8250_port() instead uses UART line number 0,
    which is stored in data->line.
    
    On driver unbind, bcm2835aux_serial_remove() uses data->uart.port.line,
    which contains the wrong number.  Fix it.
    
    The issue does not occur if the maximum number of 8250 UARTs is >= 2.
    
    Fixes: bdc5f3009580 ("serial: bcm2835: add driver for bcm2835-aux-uart")
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: stable@vger.kernel.org # v4.6+
    Cc: Martin Sperl <kernel@martin.sperl.org>
    Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Link: https://lore.kernel.org/r/912ccf553c5258135c6d7e8f404a101ef320f0f4.1579175223.git.lukas@wunner.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9b897d1d6740f4d8d0464cb856b95eee816d3be
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Wed Jan 8 21:41:36 2020 +0000

    staging: vt6656: Fix false Tx excessive retries reporting.
    
    commit 9dd631fa99dc0a0dfbd191173bf355ba30ea786a upstream.
    
    The driver reporting  IEEE80211_TX_STAT_ACK is not being handled
    correctly. The driver should only report on TSR_TMO flag is not
    set indicating no transmission errors and when not IEEE80211_TX_CTL_NO_ACK
    is being requested.
    
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Link: https://lore.kernel.org/r/340f1f7f-c310-dca5-476f-abc059b9cd97@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ca682e4bf76724a216755c3bcc1c84556bda088
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Wed Jan 8 21:41:20 2020 +0000

    staging: vt6656: use NULLFUCTION stack on mac80211
    
    commit d579c43c82f093e63639151625b2139166c730fd upstream.
    
    It appears that the drivers does not go into power save correctly the
    NULL data packets are not being transmitted because it not enabled
    in mac80211.
    
    The driver needs to capture ieee80211_is_nullfunc headers and
    copy the duration_id to it's own duration data header.
    
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Link: https://lore.kernel.org/r/610971ae-555b-a6c3-61b3-444a0c1e35b4@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d3f43117567eddd9e50af193a03cebef104cdb8
Author: Malcolm Priestley <tvboxspy@gmail.com>
Date:   Wed Jan 8 21:40:58 2020 +0000

    staging: vt6656: correct packet types for CTS protect, mode.
    
    commit d971fdd3412f8342747778fb59b8803720ed82b1 upstream.
    
    It appears that the driver still transmits in CTS protect mode even
    though it is not enabled in mac80211.
    
    That is both packet types PK_TYPE_11GA and PK_TYPE_11GB both use CTS protect.
    The only difference between them GA does not use B rates.
    
    Find if only B rate in GB or GA in protect mode otherwise transmit packets
    as PK_TYPE_11A.
    
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
    Link: https://lore.kernel.org/r/9c1323ff-dbb3-0eaa-43e1-9453f7390dc0@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb808249094182907b40888c40dd064be57284f8
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Jan 14 18:16:04 2020 +0000

    staging: wlan-ng: ensure error return is actually returned
    
    commit 4cc41cbce536876678b35e03c4a8a7bb72c78fa9 upstream.
    
    Currently when the call to prism2sta_ifst fails a netdev_err error
    is reported, error return variable result is set to -1 but the
    function always returns 0 for success.  Fix this by returning
    the error value in variable result rather than 0.
    
    Addresses-Coverity: ("Unused value")
    Fixes: 00b3ed168508 ("Staging: add wlan-ng prism2 usb driver")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200114181604.390235-1-colin.king@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9dab6bbc9462c43001a88ee933a491a1502fa6f5
Author: Andrey Shvetsov <andrey.shvetsov@k2l.de>
Date:   Thu Jan 16 18:22:39 2020 +0100

    staging: most: net: fix buffer overflow
    
    commit 4d1356ac12f4d5180d0df345d85ff0ee42b89c72 upstream.
    
    If the length of the socket buffer is 0xFFFFFFFF (max size for an
    unsigned int), then payload_len becomes 0xFFFFFFF1 after subtracting 14
    (ETH_HLEN).  Then, mdp_len is set to payload_len + 16 (MDP_HDR_LEN)
    which overflows and results in a value of 2.  These values for
    payload_len and mdp_len will pass current buffer size checks.
    
    This patch checks if derived from skb->len sum may overflow.
    
    The check is based on the following idea:
    
    For any `unsigned V1, V2` and derived `unsigned SUM = V1 + V2`,
    `V1 + V2` overflows iif `SUM < V1`.
    
    Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200116172238.6046-1-andrey.shvetsov@microchip.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26962313b0adbc65c7354dac5a0a2ebb8a135d0a
Author: Bin Liu <b-liu@ti.com>
Date:   Wed Dec 11 10:10:03 2019 -0600

    usb: dwc3: turn off VBUS when leaving host mode
    
    commit 09ed259fac621634d51cd986aa8d65f035662658 upstream.
    
    VBUS should be turned off when leaving the host mode.
    Set GCTL_PRTCAP to device mode in teardown to de-assert DRVVBUS pin to
    turn off VBUS power.
    
    Fixes: 5f94adfeed97 ("usb: dwc3: core: refactor mode initialization to its own function")
    Cc: stable@vger.kernel.org
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b271314b3ce1ff4bb780a9831fdb853ea9758317
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Jan 22 11:15:28 2020 +0100

    USB: serial: ir-usb: fix IrLAP framing
    
    commit 38c0d5bdf4973f9f5a888166e9d3e9ed0d32057a upstream.
    
    Commit f4a4cbb2047e ("USB: ir-usb: reimplement using generic framework")
    switched to using the generic write implementation which may combine
    multiple write requests into larger transfers. This can break the IrLAP
    protocol where end-of-frame is determined using the USB short packet
    mechanism, for example, if multiple frames are sent in rapid succession.
    
    Fixes: f4a4cbb2047e ("USB: ir-usb: reimplement using generic framework")
    Cc: stable <stable@vger.kernel.org>     # 2.6.35
    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 dae15f08eb384ecd99352f8f4a0518873a4db2b7
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Jan 22 11:15:27 2020 +0100

    USB: serial: ir-usb: fix link-speed handling
    
    commit 17a0184ca17e288decdca8b2841531e34d49285f upstream.
    
    Commit e0d795e4f36c ("usb: irda: cleanup on ir-usb module") added a USB
    IrDA header with common defines, but mistakingly switched to using the
    class-descriptor baud-rate bitmask values for the outbound header.
    
    This broke link-speed handling for rates above 9600 baud, but a device
    would also be able to operate at the default 9600 baud until a
    link-speed request was issued (e.g. using the TCGETS ioctl).
    
    Fixes: e0d795e4f36c ("usb: irda: cleanup on ir-usb module")
    Cc: stable <stable@vger.kernel.org>     # 2.6.27
    Cc: Felipe Balbi <balbi@kernel.org>
    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 8c3aa49b53282c1f1677c442638e9dff5396bae9
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Jan 22 11:15:26 2020 +0100

    USB: serial: ir-usb: add missing endpoint sanity check
    
    commit 2988a8ae7476fe9535ab620320790d1714bdad1d upstream.
    
    Add missing endpoint sanity check to avoid dereferencing a NULL-pointer
    on open() in case a device lacks a bulk-out endpoint.
    
    Note that prior to commit f4a4cbb2047e ("USB: ir-usb: reimplement using
    generic framework") the oops would instead happen on open() if the
    device lacked a bulk-in endpoint and on write() if it lacked a bulk-out
    endpoint.
    
    Fixes: f4a4cbb2047e ("USB: ir-usb: reimplement using generic framework")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    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 8896e2ef71d8a05bea30dc372fff339dd85af77f
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Fri Jan 17 12:30:33 2020 +0300

    usb: dwc3: pci: add ID for the Intel Comet Lake -V variant
    
    commit f5ae8869095552e3396ee3e404f9586cc6a828f0 upstream.
    
    There is one more Comet Lake PCH variant, CML-V, that has
    its own PCI ID.
    
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200117093033.48616-1-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7182f3abfcc83519af9c18a828f12e1dd38a049
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:25 2019 +0100

    rsi_91x_usb: fix interface sanity check
    
    commit 3139b180906af43bc09bd3373fc2338a8271d9d9 upstream.
    
    Make sure to use the current alternate setting when verifying the
    interface descriptors to avoid binding to an invalid interface.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: dad0d04fa7ba ("rsi: Add RS9113 wireless driver")
    Cc: stable <stable@vger.kernel.org>     # 3.15
    Cc: Fariya Fatima <fariyaf@gmail.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6e285ff34f50f0f608961beec0b27b71f2a5ea4
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Dec 10 12:44:23 2019 +0100

    orinoco_usb: fix interface sanity check
    
    commit b73e05aa543cf8db4f4927e36952360d71291d41 upstream.
    
    Make sure to use the current alternate setting when verifying the
    interface descriptors to avoid binding to an invalid interface.
    
    Failing to do so could cause the driver to misbehave or trigger a WARN()
    in usb_submit_urb() that kernels with panic_on_warn set would choke on.
    
    Fixes: 9afac70a7305 ("orinoco: add orinoco_usb driver")
    Cc: stable <stable@vger.kernel.org>     # 2.6.35
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>