commit 22bc18377bd45c060733e1ed09f34b769e4b4bef
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Jul 14 08:09:53 2019 +0200

    Linux 5.1.18

commit 5dd8f535cbba31da584e8561f32f2656fc0190c5
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Jun 28 14:37:48 2019 +0200

    staging: rtl8712: reduce stack usage, again
    
    commit fbd6b25009ac76b2034168cd21d5e01f8c2d83d1 upstream.
    
    An earlier patch I sent reduced the stack usage enough to get
    below the warning limit, and I could show this was safe, but with
    GCC_PLUGIN_STRUCTLEAK_BYREF_ALL, it gets worse again because large stack
    variables in the same function no longer overlap:
    
    drivers/staging/rtl8712/rtl871x_ioctl_linux.c: In function 'translate_scan.isra.2':
    drivers/staging/rtl8712/rtl871x_ioctl_linux.c:322:1: error: the frame size of 1200 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
    
    Split out the largest two blocks in the affected function into two
    separate functions and mark those noinline_for_stack.
    
    Fixes: 8c5af16f7953 ("staging: rtl8712: reduce stack usage")
    Fixes: 81a56f6dcd20 ("gcc-plugins: structleak: Generalize to all variable types")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 491a82beeded104572795e04e981d54a3c36464f
Author: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date:   Sat Jun 29 14:48:23 2019 +0200

    staging: bcm2835-camera: Handle empty EOS buffers whilst streaming
    
    commit a26be06d6d96c10a9ab005e99d93fbb5d3babd98 upstream.
    
    The change to mapping V4L2 to MMAL buffers 1:1 didn't handle
    the condition we get with raw pixel buffers (eg YUV and RGB)
    direct from the camera's stills port. That sends the pixel buffer
    and then an empty buffer with the EOS flag set. The EOS buffer
    wasn't handled and returned an error up the stack.
    
    Handle the condition correctly by returning it to the component
    if streaming, or returning with an error if stopping streaming.
    
    Fixes: 938416707071 ("staging: bcm2835-camera: Remove V4L2/MMAL buffer remapping")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd1bf4d948af4c4374684e11b2a4fe6e5b73b62a
Author: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date:   Sat Jun 29 14:13:30 2019 +0200

    staging: bcm2835-camera: Remove check of the number of buffers supplied
    
    commit bb8e97006d701ae725a177f8f322e5a75fa761b7 upstream.
    
    Before commit "staging: bcm2835-camera: Remove V4L2/MMAL buffer remapping"
    there was a need to ensure that there were sufficient buffers supplied from
    the user to cover those being sent to the VPU (always 1).
    
    Now the buffers are linked 1:1 between MMAL and V4L2,
    therefore there is no need for that check, and indeed it is wrong
    as there is no need to submit all the buffers before starting streaming.
    
    Fixes: 938416707071 ("staging: bcm2835-camera: Remove V4L2/MMAL buffer remapping")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ba36aeb132e2728e060caa9422eef29957d88c5
Author: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date:   Sat Jun 29 14:13:29 2019 +0200

    staging: bcm2835-camera: Ensure all buffers are returned on disable
    
    commit 70ec64ccdaac5d8f634338e33b016c1c99831499 upstream.
    
    With the recent change to match MMAL and V4L2 buffers there
    is a need to wait for all MMAL buffers to be returned during
    stop_streaming.
    
    Fixes: 938416707071 ("staging: bcm2835-camera: Remove V4L2/MMAL buffer remapping")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a305bc4d819f9f2bc38d05707ae0f432789cc0dd
Author: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date:   Sat Jun 29 14:13:17 2019 +0200

    staging: bcm2835-camera: Replace spinlock protecting context_map with mutex
    
    commit 8dedab2903f152aa3cee9ae3d57c828dea0d356e upstream.
    
    The commit "staging: bcm2835-camera: Replace open-coded idr with a struct idr."
    replaced an internal implementation of an idr with the standard functions
    and a spinlock. idr_alloc(GFP_KERNEL) can sleep whilst calling kmem_cache_alloc
    to allocate the new node, but this is not valid whilst in an atomic context
    due to the spinlock.
    
    There is no need for this to be a spinlock as a standard mutex is
    sufficient.
    
    Fixes: 950fd867c635 ("staging: bcm2835-camera: Replace open-coded idr with a struct idr.")
    Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Acked-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4279f7b8e64de3690824b00047c1266390eff7f0
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sat Jun 8 12:50:31 2019 +0100

    staging: fsl-dpaa2/ethsw: fix memory leak of switchdev_work
    
    commit 5555ebbbac822b4fa28db2be15aaf98b3c21af26 upstream.
    
    In the default event case switchdev_work is being leaked because
    nothing is queued for work. Fix this by kfree'ing switchdev_work
    before returning NOTIFY_DONE.
    
    Addresses-Coverity: ("Resource leak")
    Fixes: 44baaa43d7cc ("staging: fsl-dpaa2/ethsw: Add Freescale DPAA2 Ethernet Switch driver")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e8051fc13f9f73d58b352cf51e663a4e31689a7
Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date:   Thu May 9 16:31:35 2019 +0200

    staging: vchiq: make wait events interruptible
    
    commit 77cf3f5dcf35c8f547f075213dbc15146d44cc76 upstream.
    
    The killable version of wait_event() is meant to be used on situations
    where it should not fail at all costs, but still have the convenience of
    being able to kill it if really necessary. Wait events in VCHIQ doesn't
    fit this criteria, as it's mainly used as an interface to V4L2 and ALSA
    devices.
    
    Fixes: 852b2876a8a8 ("staging: vchiq: rework remove_event handling")
    Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de8bc7030aa0faa5b23000cb8f59805acdf774f3
Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date:   Thu May 9 16:31:34 2019 +0200

    staging: vchiq: revert "switch to wait_for_completion_killable"
    
    commit 086efbabdc04563268372aaef4d66039d85ee76c upstream.
    
    The killable version of wait_for_completion() is meant to be used on
    situations where it should not fail at all costs, but still have the
    convenience of being able to kill it if really necessary. VCHIQ doesn't
    fit this criteria, as it's mainly used as an interface to V4L2 and ALSA
    devices.
    
    Fixes: a772f116702e ("staging: vchiq: switch to wait_for_completion_killable")
    Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d04bcbb048755e423fcd0dbc239657cac6dfa11e
Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date:   Thu May 9 16:31:33 2019 +0200

    staging: vchiq_2835_arm: revert "quit using custom down_interruptible()"
    
    commit 061ca1401f96c254e7f179bf97a1fc5c7f47e1e1 upstream.
    
    The killable version of down() is meant to be used on situations where
    it should not fail at all costs, but still have the convenience of being
    able to kill it if really necessary. VCHIQ doesn't fit this criteria, as
    it's mainly used as an interface to V4L2 and ALSA devices.
    
    Fixes: ff5979ad8636 ("staging: vchiq_2835_arm: quit using custom down_interruptible()")
    Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95688f33cb29efe90bb31b61e5d604e60ed35498
Author: Vishnu DASA <vdasa@vmware.com>
Date:   Fri May 24 15:13:10 2019 +0000

    VMCI: Fix integer overflow in VMCI handle arrays
    
    commit 1c2eb5b2853c9f513690ba6b71072d8eb65da16a upstream.
    
    The VMCI handle array has an integer overflow in
    vmci_handle_arr_append_entry when it tries to expand the array. This can be
    triggered from a guest, since the doorbell link hypercall doesn't impose a
    limit on the number of doorbell handles that a VM can create in the
    hypervisor, and these handles are stored in a handle array.
    
    In this change, we introduce a mandatory max capacity for handle
    arrays/lists to avoid excessive memory usage.
    
    Signed-off-by: Vishnu Dasa <vdasa@vmware.com>
    Reviewed-by: Adit Ranadive <aditr@vmware.com>
    Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e0150f694944ce0a60a2a23d8cab8925baeb0a8
Author: Christian Lamparter <chunkeey@gmail.com>
Date:   Sat Jun 8 16:49:47 2019 +0200

    carl9170: fix misuse of device driver API
    
    commit feb09b2933275a70917a869989ea2823e7356be8 upstream.
    
    This patch follows Alan Stern's recent patch:
    "p54: Fix race between disconnect and firmware loading"
    
    that overhauled carl9170 buggy firmware loading and driver
    unbinding procedures.
    
    Since the carl9170 code was adapted from p54 it uses the
    same functions and is likely to have the same problem, but
    it's just that the syzbot hasn't reproduce them (yet).
    
    a summary from the changes (copied from the p54 patch):
     * Call usb_driver_release_interface() rather than
       device_release_driver().
    
     * Lock udev (the interface's parent) before unbinding the
       driver instead of locking udev->parent.
    
     * During the firmware loading process, take a reference
       to the USB interface instead of the USB device.
    
     * Don't take an unnecessary reference to the device during
       probe (and then don't drop it during disconnect).
    
    and
    
     * Make sure to prevent use-after-free bugs by explicitly
       setting the driver context to NULL after signaling the
       completion.
    
    Cc: <stable@vger.kernel.org>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1f5ded28df861cb0f61120720a1598abaa94198
Author: Fabrice Gasnier <fabrice.gasnier@st.com>
Date:   Wed Jun 19 14:29:55 2019 +0200

    iio: adc: stm32-adc: add missing vdda-supply
    
    commit 7685010fca2ba0284f31fd1380df3cffc96d847e upstream.
    
    Add missing vdda-supply, analog power supply, to STM32 ADC. When vdda is
    an independent supply, it needs to be properly turned on or off to supply
    the ADC.
    
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
    Fixes: 1add69880240 ("iio: adc: Add support for STM32 ADC core").
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9edfd065a0b85f94ca5f7ea993fe50ad558511a7
Author: Todd Kjos <tkjos@android.com>
Date:   Fri Jun 28 09:50:12 2019 -0700

    binder: return errors from buffer copy functions
    
    commit bb4a2e48d5100ed3ff614df158a636bca3c6bf9f upstream.
    
    The buffer copy functions assumed the caller would ensure
    correct alignment and that the memory to be copied was
    completely within the binder buffer. There have been
    a few cases discovered by syzkallar where a malformed
    transaction created by a user could violated the
    assumptions and resulted in a BUG_ON.
    
    The fix is to remove the BUG_ON and always return the
    error to be handled appropriately by the caller.
    
    Acked-by: Martijn Coenen <maco@android.com>
    Reported-by: syzbot+3ae18325f96190606754@syzkaller.appspotmail.com
    Fixes: bde4a19fc04f ("binder: use userspace pointer as base of buffer space")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Todd Kjos <tkjos@google.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93a260f17e29beadb7b4f4c6f95c305f0e73bcae
Author: Todd Kjos <tkjos@android.com>
Date:   Fri Jun 21 10:54:15 2019 -0700

    binder: fix memory leak in error path
    
    commit 1909a671dbc3606685b1daf8b22a16f65ea7edda upstream.
    
    syzkallar found a 32-byte memory leak in a rarely executed error
    case. The transaction complete work item was not freed if put_user()
    failed when writing the BR_TRANSACTION_COMPLETE to the user command
    buffer. Fixed by freeing it before put_user() is called.
    
    Reported-by: syzbot+182ce46596c3f2e1eb24@syzkaller.appspotmail.com
    Signed-off-by: Todd Kjos <tkjos@google.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd05fb747726f7e2292ca3b6e654b3938ecc59b5
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Wed May 15 11:24:41 2019 -0700

    lkdtm: support llvm-objcopy
    
    commit e9e08a07385e08f1a7f85c5d1e345c21c9564963 upstream.
    
    With CONFIG_LKDTM=y and make OBJCOPY=llvm-objcopy, llvm-objcopy errors:
    llvm-objcopy: error: --set-section-flags=.text conflicts with
    --rename-section=.text=.rodata
    
    Rather than support setting flags then renaming sections vs renaming
    then setting flags, it's simpler to just change both at the same time
    via --rename-section. Adding the load flag is required for GNU objcopy
    to mark .rodata Type as PROGBITS after the rename.
    
    This can be verified with:
    $ readelf -S drivers/misc/lkdtm/rodata_objcopy.o
    ...
    Section Headers:
      [Nr] Name              Type             Address           Offset
           Size              EntSize          Flags  Link  Info  Align
    ...
      [ 1] .rodata           PROGBITS         0000000000000000  00000040
           0000000000000004  0000000000000000   A       0     0     4
    ...
    
    Which shows that .text is now renamed .rodata, the alloc flag A is set,
    the type is PROGBITS, and the section is not flagged as writeable W.
    
    Cc: stable@vger.kernel.org
    Link: https://sourceware.org/bugzilla/show_bug.cgi?id=24554
    Link: https://github.com/ClangBuiltLinux/linux/issues/448
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Suggested-by: Alan Modra <amodra@gmail.com>
    Suggested-by: Jordan Rupprect <rupprecht@google.com>
    Suggested-by: Kees Cook <keescook@chromium.org>
    Acked-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efb27acc284420bd099df151d99b437c0fa83816
Author: Sebastian Parschauer <s.parschauer@gmx.de>
Date:   Mon Jul 1 07:48:17 2019 +0200

    HID: Add another Primax PIXART OEM mouse quirk
    
    commit 4c12954965fdf33d8ae3883c1931fc29ca023cfb upstream.
    
    The PixArt OEM mice are known for disconnecting every minute in
    runlevel 1 or 3 if they are not always polled. So add quirk
    ALWAYS_POLL for this Alienware branded Primax mouse as well.
    
    Daniel Schepler (@dschepler) reported and tested the quirk.
    Reference: https://github.com/sriemer/fix-linux-mouse/issues/15
    
    Signed-off-by: Sebastian Parschauer <s.parschauer@gmx.de>
    CC: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e5487c385591c7094b006e4bb300440eb899c7b
Author: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Date:   Wed Jun 26 14:43:18 2019 +0200

    staging: mt7621-pci: fix PCIE_FTS_NUM_LO macro
    
    commit 0ae0cf509d28d8539b88b5f7f24558f5bfe57cdf upstream.
    
    Add missing parenthesis to PCIE_FTS_NUM_LO macro to do the
    same it was being done in original code.
    
    Fixes: a4b2eb912bb1 ("staging: mt7621-pci: rewrite RC FTS configuration")
    Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 811c7e8f1ef5312520457ccd48c2bd0422b3220c
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Jun 26 14:17:39 2019 +0100

    staging: comedi: amplc_pci230: fix null pointer deref on interrupt
    
    commit 7379e6baeddf580d01feca650ec1ad508b6ea8ee upstream.
    
    The interrupt handler `pci230_interrupt()` causes a null pointer
    dereference for a PCI260 card.  There is no analog output subdevice for
    a PCI260.  The `dev->write_subdev` subdevice pointer and therefore the
    `s_ao` subdevice pointer variable will be `NULL` for a PCI260.  The
    following call near the end of the interrupt handler results in the null
    pointer dereference for a PCI260:
    
            comedi_handle_events(dev, s_ao);
    
    Fix it by only calling the above function if `s_ao` is valid.
    
    Note that the other uses of `s_ao` in the calls
    `pci230_handle_ao_nofifo(dev, s_ao);` and `pci230_handle_ao_fifo(dev,
    s_ao);` will never be reached for a PCI260, so they are safe.
    
    Fixes: 39064f23284c ("staging: comedi: amplc_pci230: use comedi_handle_events()")
    Cc: <stable@vger.kernel.org> # v3.19+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2720d5677d801749ce1907ac42c1cf461576a8f9
Author: Ajay Singh <ajay.kathat@microchip.com>
Date:   Wed Jun 26 12:40:48 2019 +0000

    staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
    
    commit 6419f818ababebc1116fb2d0e220bd4fe835d0e3 upstream.
    
    For the error path in wilc_wlan_initialize(), the resources are not
    cleanup in the correct order. Reverted the previous changes and use the
    correct order to free during error condition.
    
    Fixes: b46d68825c2d ("staging: wilc1000: remove COMPLEMENT_BOOT")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e634a09b6de5323bb1993993f8a4a6ac2ab05966
Author: Ian Abbott <abbotti@mev.co.uk>
Date:   Wed Jun 26 14:18:04 2019 +0100

    staging: comedi: dt282x: fix a null pointer deref on interrupt
    
    commit b8336be66dec06bef518030a0df9847122053ec5 upstream.
    
    The interrupt handler `dt282x_interrupt()` causes a null pointer
    dereference for those supported boards that have no analog output
    support.  For these boards, `dev->write_subdev` will be `NULL` and
    therefore the `s_ao` subdevice pointer variable will be `NULL`.  In that
    case, the following call near the end of the interrupt handler results
    in a null pointer dereference:
    
            comedi_handle_events(dev, s_ao);
    
    Fix it by only calling the above function if `s_ao` is valid.
    
    (There are other uses of `s_ao` by the interrupt handler that may or may
    not be reached depending on values of hardware registers.  Trust that
    they are reliable for now.)
    
    Note:
    commit 4f6f009b204f ("staging: comedi: dt282x: use comedi_handle_events()")
    propagates an earlier error from
    commit f21c74fa4cfe ("staging: comedi: dt282x: use cfc_handle_events()").
    
    Fixes: 4f6f009b204f ("staging: comedi: dt282x: use comedi_handle_events()")
    Cc: <stable@vger.kernel.org> # v3.19+
    Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99fdac8553c937b401c6e763a6caa08988d82de6
Author: Christian Lamparter <chunkeey@gmail.com>
Date:   Sat May 18 22:05:48 2019 +0200

    p54: fix crash during initialization
    
    commit 1645ab931998b39aed5761f095956f0b10a6362f upstream.
    
    This patch fixes a crash that got introduced when the
    mentioned patch replaced  the direct list_head access
    with skb_peek_tail(). When the device is starting up,
    there are  no entries in  the queue, so previously to
    "Use skb_peek_tail() instead..." the target_skb would
    end up as the  tail and head pointer which then could
    be used by __skb_queue_after to fill the empty queue.
    
    With skb_peek_tail() in its place will instead just
    return NULL which then causes a crash in the
    __skb_queue_after().
    
    | BUG: unable to handle kernel NULL pointer dereference at 000000
    | #PF error: [normal kernel read fault]
    | PGD 0 P4D 0
    | Oops: 0000 [#1] SMP PTI
    | CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: GO   5.1.0-rc7-wt+ #218
    | Hardware name: MSI MS-7816/Z87-G43 (MS-7816), BIOS V1.11 05/09/2015
    | Workqueue: events request_firmware_work_func
    | RIP: 0010:p54_tx_pending+0x10f/0x1b0 [p54common]
    | Code: 78 06 80 78 28 00 74 6d <48> 8b 07 49 89 7c 24 08 49 89 04 24 4
    | RSP: 0018:ffffa81c81927d90 EFLAGS: 00010086
    | RAX: ffff9bbaaf131048 RBX: 0000000000020670 RCX: 0000000000020264
    | RDX: ffff9bbaa976d660 RSI: 0000000000000202 RDI: 0000000000000000
    | RBP: ffff9bbaa976d620 R08: 00000000000006c0 R09: ffff9bbaa976d660
    | R10: 0000000000000000 R11: ffffe8480dbc5900 R12: ffff9bbb45e87700
    | R13: ffff9bbaa976d648 R14: ffff9bbaa976d674 R15: ffff9bbaaf131048
    | FS:  0000000000000000(0000) GS:ffff9bbb5ec00000(0000) knlGS:00000
    | CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    | CR2: 0000000000000000 CR3: 00000003695fc003 CR4: 00000000001606f0
    | Call Trace:
    |  p54_download_eeprom+0xbe/0x120 [p54common]
    |  p54_read_eeprom+0x7f/0xc0 [p54common]
    |  p54u_load_firmware_cb+0xe0/0x160 [p54usb]
    |  request_firmware_work_func+0x42/0x80
    |  process_one_work+0x1f5/0x3f0
    |  worker_thread+0x28/0x3c0
    
    Cc: stable@vger.kernel.org
    Fixes: e3554197fc8f ("p54: Use skb_peek_tail() instead of direct head pointer accesses.")
    Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52a7655707a8d50acfee28fdafb9c54930e985f5
Author: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
Date:   Fri Jun 28 11:01:09 2019 +0200

    drivers/usb/typec/tps6598x.c: fix 4CC cmd write
    
    commit 2681795b5e7a5bf336537661010072f4c22cea31 upstream.
    
    Writing 4CC commands with tps6598x_write_4cc() already has
    a pointer arg, don't reference it when using as arg to
    tps6598x_block_write(). Correcting this enforces the constness
    of the pointer to propagate to tps6598x_block_write(), so add
    the const qualifier there to avoid the warning.
    
    Fixes: 0a4c005bd171 ("usb: typec: driver for TI TPS6598x USB Power Delivery controllers")
    Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a2f9af6e5231433cd6da76af82c570a1c0f691a
Author: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
Date:   Fri Jun 28 11:01:08 2019 +0200

    drivers/usb/typec/tps6598x.c: fix portinfo width
    
    commit 05da75fc651138e51ff74ace97174349910463f5 upstream.
    
    Portinfo bit field is 3 bits wide, not 2 bits. This led to
    a wrong driver configuration for some tps6598x configurations.
    
    Fixes: 0a4c005bd171 ("usb: typec: driver for TI TPS6598x USB Power Delivery controllers")
    Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc696de1d8fda6f16b9bcb05bb3d20e986edf52f
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Wed Jun 26 22:06:33 2019 +0900

    usb: renesas_usbhs: add a workaround for a race condition of workqueue
    
    commit b2357839c56ab7d06bcd4e866ebc2d0e2b7997f3 upstream.
    
    The old commit 6e4b74e4690d ("usb: renesas: fix scheduling in atomic
    context bug") fixed an atomic issue by using workqueue for the shdmac
    dmaengine driver. However, this has a potential race condition issue
    between the work pending and usbhsg_ep_free_request() in gadget mode.
    When usbhsg_ep_free_request() is called while pending the queue,
    since the work_struct will be freed and then the work handler is
    called, kernel panic happens on process_one_work().
    
    To fix the issue, if we could call cancel_work_sync() at somewhere
    before the free request, it could be easy. However,
    the usbhsg_ep_free_request() is called on atomic (e.g. f_ncm driver
    calls free request via gether_disconnect()).
    
    For now, almost all users are having "USB-DMAC" and the DMAengine
    driver can be used on atomic. So, this patch adds a workaround for
    a race condition to call the DMAengine APIs without the workqueue.
    
    This means we still have TODO on shdmac environment (SH7724), but
    since it doesn't have SMP, the race condition might not happen.
    
    Fixes: ab330cf3888d ("usb: renesas_usbhs: add support for USB-DMAC")
    Cc: <stable@vger.kernel.org> # v4.1+
    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 4351a218d30030f229911f23edec3efff9b6719a
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Thu Jun 20 19:50:22 2019 +0200

    usb: dwc2: use a longer AHB idle timeout in dwc2_core_reset()
    
    commit dfc4fdebc5d62ac4e2fe5428e59b273675515fb2 upstream.
    
    Use a 10000us AHB idle timeout in dwc2_core_reset() and make it
    consistent with the other "wait for AHB master IDLE state" ocurrences.
    
    This fixes a problem for me where dwc2 would not want to initialize when
    updating to 4.19 on a MIPS Lantiq VRX200 SoC. dwc2 worked fine with
    4.14.
    Testing on my board shows that it takes 180us until AHB master IDLE
    state is signalled. The very old vendor driver for this SoC (ifxhcd)
    used a 1 second timeout.
    Use the same timeout that is used everywhere when polling for
    GRSTCTL_AHBIDLE instead of using a timeout that "works for one board"
    (180us in my case) to have consistent behavior across the dwc2 driver.
    
    Cc: linux-stable <stable@vger.kernel.org> # 4.19+
    Acked-by: Minas Harutyunyan <hminas@synopsys.com>
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43b417e412f10d7a9dee7b519904d4c619072320
Author: Kiruthika Varadarajan <Kiruthika.Varadarajan@harman.com>
Date:   Tue Jun 18 08:39:06 2019 +0000

    usb: gadget: ether: Fix race between gether_disconnect and rx_submit
    
    commit d29fcf7078bc8be2b6366cbd4418265b53c94fac upstream.
    
    On spin lock release in rx_submit, gether_disconnect get a chance to
    run, it makes port_usb NULL, rx_submit access NULL port USB, hence null
    pointer crash.
    
    Fixed by releasing the lock in rx_submit after port_usb is used.
    
    Fixes: 2b3d942c4878 ("usb ethernet gadget: split out network core")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Kiruthika Varadarajan <Kiruthika.Varadarajan@harman.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b5a979c8fb2d5d85789c577478762d6d5c99fe9
Author: Fei Yang <fei.yang@intel.com>
Date:   Wed Jun 12 15:13:26 2019 -0700

    usb: gadget: f_fs: data_len used before properly set
    
    commit 4833a94eb383f5b22775077ff92ddaae90440921 upstream.
    
    The following line of code in function ffs_epfile_io is trying to set
    flag io_data->use_sg in case buffer required is larger than one page.
    
        io_data->use_sg = gadget->sg_supported && data_len > PAGE_SIZE;
    
    However at this point of time the variable data_len has not been set
    to the proper buffer size yet. The consequence is that io_data->use_sg
    is always set regardless what buffer size really is, because the condition
    (data_len > PAGE_SIZE) is effectively an unsigned comparison between
    -EINVAL and PAGE_SIZE which would always result in TRUE.
    
    Fixes: 772a7a724f69 ("usb: gadget: f_fs: Allow scatter-gather buffers")
    Signed-off-by: Fei Yang <fei.yang@intel.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cae928691200cbe65da1b31d92472f50abe48a14
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon May 20 10:44:21 2019 -0400

    p54usb: Fix race between disconnect and firmware loading
    
    commit 6e41e2257f1094acc37618bf6c856115374c6922 upstream.
    
    The syzbot fuzzer found a bug in the p54 USB wireless driver.  The
    issue involves a race between disconnect and the firmware-loader
    callback routine, and it has several aspects.
    
    One big problem is that when the firmware can't be loaded, the
    callback routine tries to unbind the driver from the USB _device_ (by
    calling device_release_driver) instead of from the USB _interface_ to
    which it is actually bound (by calling usb_driver_release_interface).
    
    The race involves access to the private data structure.  The driver's
    disconnect handler waits for a completion that is signalled by the
    firmware-loader callback routine.  As soon as the completion is
    signalled, you have to assume that the private data structure may have
    been deallocated by the disconnect handler -- even if the firmware was
    loaded without errors.  However, the callback routine does access the
    private data several times after that point.
    
    Another problem is that, in order to ensure that the USB device
    structure hasn't been freed when the callback routine runs, the driver
    takes a reference to it.  This isn't good enough any more, because now
    that the callback routine calls usb_driver_release_interface, it has
    to ensure that the interface structure hasn't been freed.
    
    Finally, the driver takes an unnecessary reference to the USB device
    structure in the probe function and drops the reference in the
    disconnect handler.  This extra reference doesn't accomplish anything,
    because the USB core already guarantees that a device structure won't
    be deallocated while a driver is still bound to any of its interfaces.
    
    To fix these problems, this patch makes the following changes:
    
            Call usb_driver_release_interface() rather than
            device_release_driver().
    
            Don't signal the completion until after the important
            information has been copied out of the private data structure,
            and don't refer to the private data at all thereafter.
    
            Lock udev (the interface's parent) before unbinding the driver
            instead of locking udev->parent.
    
            During the firmware loading process, take a reference to the
            USB interface instead of the USB device.
    
            Don't take an unnecessary reference to the device during probe
            (and then don't drop it during disconnect).
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-and-tested-by: syzbot+200d4bb11b23d929335f@syzkaller.appspotmail.com
    CC: <stable@vger.kernel.org>
    Acked-by: Christian Lamparter <chunkeey@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32a88e920591efb9beff6a1916ca05dc98b9bb2e
Author: Oliver Barta <o.barta89@gmail.com>
Date:   Wed Jun 19 10:16:39 2019 +0200

    Revert "serial: 8250: Don't service RX FIFO if interrupts are disabled"
    
    commit 3f2640ed7be838c3f05c0d2b0f7c7508e7431e48 upstream.
    
    This reverts commit 2e9fe539108320820016f78ca7704a7342788380.
    
    Reading LSR unconditionally but processing the error flags only if
    UART_IIR_RDI bit was set before in IIR may lead to a loss of transmission
    error information on UARTs where the transmission error flags are cleared
    by a read of LSR. Information are lost in case an error is detected right
    before the read of LSR while processing e.g. an UART_IIR_THRI interrupt.
    
    Signed-off-by: Oliver Barta <o.barta89@gmail.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Fixes: 2e9fe5391083 ("serial: 8250: Don't service RX FIFO if interrupts are disabled")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c02af52b6c1c55bd930f7988059cfbfc2d790be6
Author: Jörgen Storvist <jorgen.storvist@gmail.com>
Date:   Wed Jun 19 00:30:19 2019 +0200

    USB: serial: option: add support for GosunCn ME3630 RNDIS mode
    
    commit aed2a26283528fb69c38e414f649411aa48fb391 upstream.
    
    Added USB IDs for GosunCn ME3630 cellular module in RNDIS mode.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=01 Cnt=03 Dev#= 18 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=19d2 ProdID=0601 Rev=03.18
    S:  Manufacturer=Android
    S:  Product=Android
    S:  SerialNumber=b950269c
    C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#=0x0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host
    I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    
    Signed-off-by: Jörgen Storvist <jorgen.storvist@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9baf84e016e7107919a4ab6a9df2c290d1d1786
Author: Andreas Fritiofson <andreas.fritiofson@unjo.com>
Date:   Fri Jun 28 15:08:34 2019 +0200

    USB: serial: ftdi_sio: add ID for isodebug v1
    
    commit f8377eff548170e8ea8022c067a1fbdf9e1c46a8 upstream.
    
    This adds the vid:pid of the isodebug v1 isolated JTAG/SWD+UART. Only the
    second channel is available for use as a serial port.
    
    Signed-off-by: Andreas Fritiofson <andreas.fritiofson@unjo.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b441bf73158b3adea913fbd5d6002cdb556ee0d3
Author: Brian Norris <briannorris@chromium.org>
Date:   Fri Jun 14 17:13:20 2019 -0700

    mwifiex: Don't abort on small, spec-compliant vendor IEs
    
    commit 63d7ef36103d26f20325a921ecc96a3288560146 upstream.
    
    Per the 802.11 specification, vendor IEs are (at minimum) only required
    to contain an OUI. A type field is also included in ieee80211.h (struct
    ieee80211_vendor_ie) but doesn't appear in the specification. The
    remaining fields (subtype, version) are a convention used in WMM
    headers.
    
    Thus, we should not reject vendor-specific IEs that have only the
    minimum length (3 bytes) -- we should skip over them (since we only want
    to match longer IEs, that match either WMM or WPA formats). We can
    reject elements that don't have the minimum-required 3 byte OUI.
    
    While we're at it, move the non-standard subtype and version fields into
    the WMM structs, to avoid this confusion in the future about generic
    "vendor header" attributes.
    
    Fixes: 685c9b7750bf ("mwifiex: Abort at too short BSS descriptor element")
    Cc: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a93f9120a1ab3fb2db98ea4a2fb0609e789d12f
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed May 29 14:52:20 2019 +0200

    mwifiex: Abort at too short BSS descriptor element
    
    commit 685c9b7750bfacd6fc1db50d86579980593b7869 upstream.
    
    Currently mwifiex_update_bss_desc_with_ie() implicitly assumes that
    the source descriptor entries contain the enough size for each type
    and performs copying without checking the source size.  This may lead
    to read over boundary.
    
    Fix this by putting the source size check in appropriate places.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bca7f52f10d0fe6534c568d163419de9d031a71f
Author: Andy Lutomirski <luto@kernel.org>
Date:   Wed Jun 26 21:45:02 2019 -0700

    Documentation/admin: Remove the vsyscall=native documentation
    
    commit d974ffcfb7447db5f29a4b662a3eaf99a4e1109e upstream.
    
    The vsyscall=native feature is gone -- remove the docs.
    
    Fixes: 076ca272a14c ("x86/vsyscall/64: Drop "native" vsyscalls")
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Florian Weimer <fweimer@redhat.com>
    Cc: Jann Horn <jannh@google.com>
    Cc: stable@vger.kernel.org
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Kernel Hardening <kernel-hardening@lists.openwall.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/d77c7105eb4c57c1a95a95b6a5b8ba194a18e764.1561610354.git.luto@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbf4f4234e0acb88157841f426c6128f762ae3a7
Author: Tim Chen <tim.c.chen@linux.intel.com>
Date:   Thu Jun 20 16:10:50 2019 -0700

    Documentation: Add section about CPU vulnerabilities for Spectre
    
    commit 6e88559470f581741bcd0f2794f9054814ac9740 upstream.
    
    Add documentation for Spectre vulnerability and the mitigation mechanisms:
    
    - Explain the problem and risks
    - Document the mitigation mechanisms
    - Document the command line controls
    - Document the sysfs files
    
    Co-developed-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Co-developed-by: Tim Chen <tim.c.chen@linux.intel.com>
    Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
    Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jonathan Corbet <corbet@lwn.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f26cffdb59f7953b22b16a891c3c1f2371bb1149
Author: Dianzhang Chen <dianzhangchen0@gmail.com>
Date:   Wed Jun 26 12:50:30 2019 +0800

    x86/tls: Fix possible spectre-v1 in do_get_thread_area()
    
    commit 993773d11d45c90cb1c6481c2638c3d9f092ea5b upstream.
    
    The index to access the threads tls array is controlled by userspace
    via syscall: sys_ptrace(), hence leading to a potential exploitation
    of the Spectre variant 1 vulnerability.
    
    The index can be controlled from:
            ptrace -> arch_ptrace -> do_get_thread_area.
    
    Fix this by sanitizing the user supplied index before using it to access
    the p->thread.tls_array.
    
    Signed-off-by: Dianzhang Chen <dianzhangchen0@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/1561524630-3642-1-git-send-email-dianzhangchen0@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4ef7981cad64623c8bede832f2b7bbb4cc3d611
Author: Dianzhang Chen <dianzhangchen0@gmail.com>
Date:   Tue Jun 25 23:30:17 2019 +0800

    x86/ptrace: Fix possible spectre-v1 in ptrace_get_debugreg()
    
    commit 31a2fbb390fee4231281b939e1979e810f945415 upstream.
    
    The index to access the threads ptrace_bps is controlled by userspace via
    syscall: sys_ptrace(), hence leading to a potential exploitation of the
    Spectre variant 1 vulnerability.
    
    The index can be controlled from:
        ptrace -> arch_ptrace -> ptrace_get_debugreg.
    
    Fix this by sanitizing the user supplied index before using it access
    thread->ptrace_bps.
    
    Signed-off-by: Dianzhang Chen <dianzhangchen0@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: bp@alien8.de
    Cc: hpa@zytor.com
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/1561476617-3759-1-git-send-email-dianzhangchen0@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f2bad57c482b509702ce2b6646e647520db538e
Author: Song Liu <songliubraving@fb.com>
Date:   Wed Jun 19 18:04:53 2019 -0700

    perf header: Assign proper ff->ph in perf_event__synthesize_features()
    
    commit c952b35f4b15dd1b83e952718dec3307256383ef upstream.
    
    bpf/btf write_* functions need ff->ph->env.
    
    With this missing, pipe-mode (perf record -o -)  would crash like:
    
    Program terminated with signal SIGSEGV, Segmentation fault.
    
    This patch assign proper ph value to ff.
    
    Committer testing:
    
      (gdb) run record -o -
      Starting program: /root/bin/perf record -o -
      PERFILE2
      <SNIP start of perf.data headers>
      Thread 1 "perf" received signal SIGSEGV, Segmentation fault.
      __do_write_buf (size=4, buf=0x160, ff=0x7fffffff8f80) at util/header.c:126
      126           memcpy(ff->buf + ff->offset, buf, size);
      (gdb) bt
      #0  __do_write_buf (size=4, buf=0x160, ff=0x7fffffff8f80) at util/header.c:126
      #1  do_write (ff=ff@entry=0x7fffffff8f80, buf=buf@entry=0x160, size=4) at util/header.c:137
      #2  0x00000000004eddba in write_bpf_prog_info (ff=0x7fffffff8f80, evlist=<optimized out>) at util/header.c:912
      #3  0x00000000004f69d7 in perf_event__synthesize_features (tool=tool@entry=0x97cc00 <record>, session=session@entry=0x7fffe9c6d010,
          evlist=0x7fffe9cae010, process=process@entry=0x4435d0 <process_synthesized_event>) at util/header.c:3695
      #4  0x0000000000443c79 in record__synthesize (tail=tail@entry=false, rec=0x97cc00 <record>) at builtin-record.c:1214
      #5  0x0000000000444ec9 in __cmd_record (rec=0x97cc00 <record>, argv=<optimized out>, argc=0) at builtin-record.c:1435
      #6  cmd_record (argc=0, argv=<optimized out>) at builtin-record.c:2450
      #7  0x00000000004ae3e9 in run_builtin (p=p@entry=0x98e058 <commands+216>, argc=argc@entry=3, argv=0x7fffffffd670) at perf.c:304
      #8  0x000000000042eded in handle_internal_command (argv=<optimized out>, argc=<optimized out>) at perf.c:356
      #9  run_argv (argcp=<optimized out>, argv=<optimized out>) at perf.c:400
      #10 main (argc=3, argv=<optimized out>) at perf.c:522
      (gdb)
    
    After the patch the SEGSEGV is gone.
    
    Reported-by: David Carrillo Cisneros <davidca@fb.com>
    Signed-off-by: Song Liu <songliubraving@fb.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: kernel-team@fb.com
    Cc: stable@vger.kernel.org # v5.1+
    Fixes: 606f972b1361 ("perf bpf: Save bpf_prog_info information as headers to perf.data")
    Link: http://lkml.kernel.org/r/20190620010453.4118689-1-songliubraving@fb.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13449616e0343e8ee1ecf62263eeb0f00429724b
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Wed Jun 19 09:44:28 2019 +0300

    perf thread-stack: Fix thread stack return from kernel for kernel-only case
    
    commit 97860b483c5597663a174ff7405be957b4838391 upstream.
    
    Commit f08046cb3082 ("perf thread-stack: Represent jmps to the start of a
    different symbol") had the side-effect of introducing more stack entries
    before return from kernel space.
    
    When user space is also traced, those entries are popped before entry to
    user space, but when user space is not traced, they get stuck at the
    bottom of the stack, making the stack grow progressively larger.
    
    Fix by detecting a return-from-kernel branch type, and popping kernel
    addresses from the stack then.
    
    Note, the problem and fix affect the exported Call Graph / Tree but not
    the callindent option used by "perf script --call-trace".
    
    Example:
    
      perf-with-kcore record example -e intel_pt//k -- ls
      perf-with-kcore script example --itrace=bep -s ~/libexec/perf-core/scripts/python/export-to-sqlite.py example.db branches calls
      ~/libexec/perf-core/scripts/python/exported-sql-viewer.py example.db
    
      Menu option: Reports -> Context-Sensitive Call Graph
    
      Before: (showing Call Path column only)
    
        Call Path
        â–¶ perf
        â–¼ ls
          â–¼ 12111:12111
            â–¶ setup_new_exec
            â–¶ __task_pid_nr_ns
            â–¶ perf_event_pid_type
            â–¶ perf_event_comm_output
            â–¶ perf_iterate_ctx
            â–¶ perf_iterate_sb
            â–¶ perf_event_comm
            â–¶ __set_task_comm
            â–¶ load_elf_binary
            â–¶ search_binary_handler
            â–¶ __do_execve_file.isra.41
            â–¶ __x64_sys_execve
            â–¶ do_syscall_64
            â–¼ entry_SYSCALL_64_after_hwframe
              â–¼ swapgs_restore_regs_and_return_to_usermode
                â–¼ native_iret
                  â–¶ error_entry
                  â–¶ do_page_fault
                  â–¼ error_exit
                    â–¼ retint_user
                      â–¶ prepare_exit_to_usermode
                      â–¼ native_iret
                        â–¶ error_entry
                        â–¶ do_page_fault
                        â–¼ error_exit
                          â–¼ retint_user
                            â–¶ prepare_exit_to_usermode
                            â–¼ native_iret
                              â–¶ error_entry
                              â–¶ do_page_fault
                              â–¼ error_exit
                                â–¼ retint_user
                                  â–¶ prepare_exit_to_usermode
                                  â–¶ native_iret
    
      After: (showing Call Path column only)
    
        Call Path
        â–¶ perf
        â–¼ ls
          â–¼ 12111:12111
            â–¶ setup_new_exec
            â–¶ __task_pid_nr_ns
            â–¶ perf_event_pid_type
            â–¶ perf_event_comm_output
            â–¶ perf_iterate_ctx
            â–¶ perf_iterate_sb
            â–¶ perf_event_comm
            â–¶ __set_task_comm
            â–¶ load_elf_binary
            â–¶ search_binary_handler
            â–¶ __do_execve_file.isra.41
            â–¶ __x64_sys_execve
            â–¶ do_syscall_64
            â–¶ entry_SYSCALL_64_after_hwframe
            â–¶ page_fault
            â–¼ entry_SYSCALL_64
              â–¼ do_syscall_64
                â–¶ __x64_sys_brk
                â–¶ __x64_sys_access
                â–¶ __x64_sys_openat
                â–¶ __x64_sys_newfstat
                â–¶ __x64_sys_mmap
                â–¶ __x64_sys_close
                â–¶ __x64_sys_read
                â–¶ __x64_sys_mprotect
                â–¶ __x64_sys_arch_prctl
                â–¶ __x64_sys_munmap
                â–¶ exit_to_usermode_loop
                â–¶ __x64_sys_set_tid_address
                â–¶ __x64_sys_set_robust_list
                â–¶ __x64_sys_rt_sigaction
                â–¶ __x64_sys_rt_sigprocmask
                â–¶ __x64_sys_prlimit64
                â–¶ __x64_sys_statfs
                â–¶ __x64_sys_ioctl
                â–¶ __x64_sys_getdents64
                â–¶ __x64_sys_write
                â–¶ __x64_sys_exit_group
    
    Committer notes:
    
    The first arg to the perf-with-kcore needs to be the same for the
    'record' and 'script' lines, otherwise we'll record the perf.data file
    and kcore_dir/ files in one directory ('example') to then try to use it
    from the 'bep' directory, fix the instructions above it so that both use
    'example'.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: f08046cb3082 ("perf thread-stack: Represent jmps to the start of a different symbol")
    Link: http://lkml.kernel.org/r/20190619064429.14940-2-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 286c71f17595737a76339476a45ee7ae44c0cb65
Author: John Garry <john.garry@huawei.com>
Date:   Fri Jun 14 22:07:59 2019 +0800

    perf pmu: Fix uncore PMU alias list for ARM64
    
    commit 599ee18f0740d7661b8711249096db94c09bc508 upstream.
    
    In commit 292c34c10249 ("perf pmu: Fix core PMU alias list for X86
    platform"), we fixed the issue of CPU events being aliased to uncore
    events.
    
    Fix this same issue for ARM64, since the said commit left the (broken)
    behaviour untouched for ARM64.
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Cc: Hendrik Brueckner <brueckner@linux.ibm.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxarm@huawei.com
    Cc: stable@vger.kernel.org
    Fixes: 292c34c10249 ("perf pmu: Fix core PMU alias list for X86 platform")
    Link: http://lkml.kernel.org/r/1560521283-73314-2-git-send-email-john.garry@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c30f3eda42279ed382ef71ca503faf1d93373eba
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Mon May 20 14:37:09 2019 +0300

    perf intel-pt: Fix itrace defaults for perf script intel-pt documentation
    
    commit a2d8a1585e35444789c1c8cf7e2e51fb15589880 upstream.
    
    Fix intel-pt documentation to reflect the change of itrace defaults for
    perf script.
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 4eb068157121 ("perf script: Make itrace script default to all calls")
    Link: http://lkml.kernel.org/r/20190520113728.14389-4-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a205fd56ea118668f2b7a653537a33070e5e2f2
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Mon May 20 14:37:08 2019 +0300

    perf auxtrace: Fix itrace defaults for perf script
    
    commit 355200e0f6a9ce14771625014aa469f5ecbd8977 upstream.
    
    Commit 4eb068157121 ("perf script: Make itrace script default to all
    calls") does not work for the case when '--itrace' only is used, because
    default_no_sample is not being passed.
    
    Example:
    
     Before:
    
      $ perf record -e intel_pt/cyc/u ls
      $ perf script --itrace > cmp1.txt
      $ perf script --itrace=cepwx > cmp2.txt
      $ diff -sq cmp1.txt cmp2.txt
      Files cmp1.txt and cmp2.txt differ
    
     After:
    
      $ perf script --itrace > cmp1.txt
      $ perf script --itrace=cepwx > cmp2.txt
      $ diff -sq cmp1.txt cmp2.txt
      Files cmp1.txt and cmp2.txt are identical
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 4eb068157121 ("perf script: Make itrace script default to all calls")
    Link: http://lkml.kernel.org/r/20190520113728.14389-3-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91f87bc375d2e8b41d65073a4f05654d93096aae
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Mon May 20 14:37:07 2019 +0300

    perf intel-pt: Fix itrace defaults for perf script
    
    commit 26f19c2eb7e54015564ff133b91983a74e84541b upstream.
    
    Commit 4eb068157121 ("perf script: Make itrace script default to all
    calls") does not work because 'use_browser' is being used to determine
    whether to default to periodic sampling (i.e. better for perf report).
    The result is that nothing but CBR events display for perf script when
    no --itrace option is specified.
    
    Fix by using 'default_no_sample' and 'inject' instead.
    
    Example:
    
     Before:
    
      $ perf record -e intel_pt/cyc/u ls
      $ perf script > cmp1.txt
      $ perf script --itrace=cepwx > cmp2.txt
      $ diff -sq cmp1.txt cmp2.txt
      Files cmp1.txt and cmp2.txt differ
    
     After:
    
      $ perf script > cmp1.txt
      $ perf script --itrace=cepwx > cmp2.txt
      $ diff -sq cmp1.txt cmp2.txt
      Files cmp1.txt and cmp2.txt are identical
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: stable@vger.kernel.org # v4.20+
    Fixes: 90e457f7be08 ("perf tools: Add Intel PT support")
    Link: http://lkml.kernel.org/r/20190520113728.14389-2-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b48536db7ea3365ba78bb35d8f96e9d7cd4e232
Author: Douglas Anderson <dianders@chromium.org>
Date:   Thu Jun 27 21:44:09 2019 -0700

    block, bfq: NULL out the bic when it's no longer valid
    
    commit dbc3117d4ca9e17819ac73501e914b8422686750 upstream.
    
    In reboot tests on several devices we were seeing a "use after free"
    when slub_debug or KASAN was enabled.  The kernel complained about:
    
      Unable to handle kernel paging request at virtual address 6b6b6c2b
    
    ...which is a classic sign of use after free under slub_debug.  The
    stack crawl in kgdb looked like:
    
     0  test_bit (addr=<optimized out>, nr=<optimized out>)
     1  bfq_bfqq_busy (bfqq=<optimized out>)
     2  bfq_select_queue (bfqd=<optimized out>)
     3  __bfq_dispatch_request (hctx=<optimized out>)
     4  bfq_dispatch_request (hctx=<optimized out>)
     5  0xc056ef00 in blk_mq_do_dispatch_sched (hctx=0xed249440)
     6  0xc056f728 in blk_mq_sched_dispatch_requests (hctx=0xed249440)
     7  0xc0568d24 in __blk_mq_run_hw_queue (hctx=0xed249440)
     8  0xc0568d94 in blk_mq_run_work_fn (work=<optimized out>)
     9  0xc024c5c4 in process_one_work (worker=0xec6d4640, work=0xed249480)
     10 0xc024cff4 in worker_thread (__worker=0xec6d4640)
    
    Digging in kgdb, it could be found that, though bfqq looked fine,
    bfqq->bic had been freed.
    
    Through further digging, I postulated that perhaps it is illegal to
    access a "bic" (AKA an "icq") after bfq_exit_icq() had been called
    because the "bic" can be freed at some point in time after this call
    is made.  I confirmed that there certainly were cases where the exact
    crashing code path would access the "bic" after bfq_exit_icq() had
    been called.  Sspecifically I set the "bfqq->bic" to (void *)0x7 and
    saw that the bic was 0x7 at the time of the crash.
    
    To understand a bit more about why this crash was fairly uncommon (I
    saw it only once in a few hundred reboots), you can see that much of
    the time bfq_exit_icq_fbqq() fully frees the bfqq and thus it can't
    access the ->bic anymore.  The only case it doesn't is if
    bfq_put_queue() sees a reference still held.
    
    However, even in the case when bfqq isn't freed, the crash is still
    rare.  Why?  I tracked what happened to the "bic" after the exit
    routine.  It doesn't get freed right away.  Rather,
    put_io_context_active() eventually called put_io_context() which
    queued up freeing on a workqueue.  The freeing then actually happened
    later than that through call_rcu().  Despite all these delays, some
    extra debugging showed that all the hoops could be jumped through in
    time and the memory could be freed causing the original crash.  Phew!
    
    To make a long story short, assuming it truly is illegal to access an
    icq after the "exit_icq" callback is finished, this patch is needed.
    
    Cc: stable@vger.kernel.org
    Reviewed-by: Paolo Valente <paolo.valente@unimore.it>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a28f6c295dbed6795617fc8e2466c53f2d3b0181
Author: Vadim Sukhomlinov <sukhomlinov@google.com>
Date:   Mon Jun 10 15:01:18 2019 -0700

    tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
    
    commit db4d8cb9c9f2af71c4d087817160d866ed572cc9 upstream.
    
    TPM 2.0 Shutdown involve sending TPM2_Shutdown to TPM chip and disabling
    future TPM operations. TPM 1.2 behavior was different, future TPM
    operations weren't disabled, causing rare issues. This patch ensures
    that future TPM operations are disabled.
    
    Fixes: d1bd4a792d39 ("tpm: Issue a TPM2_Shutdown for TPM2 devices.")
    Cc: stable@vger.kernel.org
    Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com>
    [dianders: resolved merge conflicts with mainline]
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Jarkko Sakkinen <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 446daaf5d94a392c99e8a7fa48afb0dc472e701f
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Apr 1 12:06:07 2019 -0700

    tpm: Actually fail on TPM errors during "get random"
    
    commit 782779b60faa2fc7ff609ac8ef938260fd792c0f upstream.
    
    A "get random" may fail with a TPM error, but those codes were returned
    as-is to the caller, which assumed the result was the number of bytes
    that had been written to the target buffer, which could lead to a kernel
    heap memory exposure and over-read.
    
    This fixes tpm1_get_random() to mask positive TPM errors into -EIO, as
    before.
    
    [   18.092103] tpm tpm0: A TPM error (379) occurred attempting get random
    [   18.092106] usercopy: Kernel memory exposure attempt detected from SLUB object 'kmalloc-64' (offset 0, size 379)!
    
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1650989
    Reported-by: Phil Baker <baker1tex@gmail.com>
    Reported-by: Craig Robson <craig@zhatt.com>
    Fixes: 7aee9c52d7ac ("tpm: tpm1: rewrite tpm1_get_random() using tpm_buf structure")
    Cc: Laura Abbott <labbott@redhat.com>
    Cc: Tomas Winkler <tomas.winkler@intel.com>
    Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Tomas Winkler <tomas.winkler@intel.com>
    Tested-by: Bartosz Szczepanek <bsz@semihalf.com>
    Reviewed-by: Jarkko Sakkinen <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 b487df8a8b6f761d0327273f766f275e4153eeb6
Author: Kailang Yang <kailang@realtek.com>
Date:   Thu Jul 4 16:02:10 2019 +0800

    ALSA: hda/realtek - Headphone Mic can't record after S3
    
    commit d07a9a4f66e944fcc900812cbc2f6817bde6a43d upstream.
    
    Dell headset mode platform with ALC236.
    It doesn't recording after system resume from S3.
    S3 mode was deep. s2idle was not has this issue.
    S3 deep will cut of codec power. So, the register will back to default
    after resume back.
    This patch will solve this issue.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd025262fe105e00d9194b4b9fcf4a7717c8b4f1
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Jul 4 16:31:12 2019 +0200

    ALSA: usb-audio: Fix parse of UAC2 Extension Units
    
    commit ca95c7bf3d29716916baccdc77c3c2284b703069 upstream.
    
    Extension Unit (XU) is used to have a compatible layout with
    Processing Unit (PU) on UAC1, and the usb-audio driver code assumed it
    for parsing the descriptors.  Meanwhile, on UAC2, XU became slightly
    incompatible with PU; namely, XU has a one-byte bmControls bitmap
    while PU has two bytes bmControls bitmap.  This incompatibility
    results in the read of a wrong address for the last iExtension field,
    which ended up with an incorrect string for the mixer element name, as
    recently reported for Focusrite Scarlett 18i20 device.
    
    This patch corrects this misalignment by introducing a couple of new
    macros and calling them depending on the descriptor type.
    
    Fixes: 23caaf19b11e ("ALSA: usb-mixer: Add support for Audio Class v2.0")
    Reported-by: Stefan Sauer <ensonic@hora-obscura.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 888b0232bd49f6dc0e27aaa9edca88bca3082d7f
Author: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Date:   Tue Jun 25 06:45:20 2019 -0400

    media: stv0297: fix frequency range limit
    
    commit b09a2ab2baeb36bf7ef7780405ad172281741c7c upstream.
    
    There was a typo at the lower frequency limit for a DVB-C
    card, causing the driver to fail while tuning channels at the
    VHF range.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=202083
    
    Fixes: f1b1eabff0eb ("media: dvb: represent min/max/step/tolerance freqs in Hz")
    Reported-by: Ari Kohtamäki <ari.kohtamaki@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0ec469682c9d36012195f299bb3e942611b2450
Author: Steven J. Magnani <steve.magnani@digidescorp.com>
Date:   Sun Jun 30 21:39:35 2019 -0500

    udf: Fix incorrect final NOT_ALLOCATED (hole) extent length
    
    commit fa33cdbf3eceb0206a4f844fe91aeebcf6ff2b7a upstream.
    
    In some cases, using the 'truncate' command to extend a UDF file results
    in a mismatch between the length of the file's extents (specifically, due
    to incorrect length of the final NOT_ALLOCATED extent) and the information
    (file) length. The discrepancy can prevent other operating systems
    (i.e., Windows 10) from opening the file.
    
    Two particular errors have been observed when extending a file:
    
    1. The final extent is larger than it should be, having been rounded up
       to a multiple of the block size.
    
    B. The final extent is not shorter than it should be, due to not having
       been updated when the file's information length was increased.
    
    [JK: simplified udf_do_extend_final_block(), fixed up some types]
    
    Fixes: 2c948b3f86e5 ("udf: Avoid IO in udf_clear_inode")
    CC: stable@vger.kernel.org
    Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
    Link: https://lore.kernel.org/r/1561948775-5878-1-git-send-email-steve@digidescorp.com
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d326a510c017c37204212736ae0364e6b2e34404
Author: Hongjie Fang <hongjiefang@asrmicro.com>
Date:   Wed May 22 10:02:53 2019 +0800

    fscrypt: don't set policy for a dead directory
    
    commit 5858bdad4d0d0fc18bf29f34c3ac836e0b59441f upstream.
    
    The directory may have been removed when entering
    fscrypt_ioctl_set_policy().  If so, the empty_dir() check will return
    error for ext4 file system.
    
    ext4_rmdir() sets i_size = 0, then ext4_empty_dir() reports an error
    because 'inode->i_size < EXT4_DIR_REC_LEN(1) + EXT4_DIR_REC_LEN(2)'.  If
    the fs is mounted with errors=panic, it will trigger a panic issue.
    
    Add the check IS_DEADDIR() to fix this problem.
    
    Fixes: 9bd8212f981e ("ext4 crypto: add encryption policy and password salt support")
    Cc: <stable@vger.kernel.org> # v4.1+
    Signed-off-by: Hongjie Fang <hongjiefang@asrmicro.com>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26fd9ac2120b4d05c5c4c9f6c8981c056cc6d1cd
Author: Benjamin Coddington <bcodding@redhat.com>
Date:   Fri Jun 7 06:37:30 2019 -0400

    NFS4: Only set creation opendata if O_CREAT
    
    [ Upstream commit 909105199a682cb09c500acd443d34b182846c9c ]
    
    We can end up in nfs4_opendata_alloc during task exit, in which case
    current->fs has already been cleaned up.  This leads to a crash in
    current_umask().
    
    Fix this by only setting creation opendata if we are actually doing an open
    with O_CREAT.  We can drop the check for NULL nfs4_open_createattrs, since
    O_CREAT will never be set for the recovery path.
    
    Suggested-by: Trond Myklebust <trondmy@hammerspace.com>
    Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e5cb4da600918a2a2fecfa48771770853c3c0c3
Author: Andrew Jones <drjones@redhat.com>
Date:   Mon May 27 13:46:19 2019 +0200

    KVM: arm/arm64: Fix emulated ptimer irq injection
    
    [ Upstream commit e4e5a865e9a9e8e47ac1959b629e9f3ae3b062f2 ]
    
    The emulated ptimer needs to track the level changes, otherwise the
    the interrupt will never get deasserted, resulting in the guest getting
    stuck in an interrupt storm if it enables ptimer interrupts. This was
    found with kvm-unit-tests; the ptimer tests hung as soon as interrupts
    were enabled. Typical Linux guests don't have a problem as they prefer
    using the virtual timer.
    
    Fixes: bee038a674875 ("KVM: arm/arm64: Rework the timer code to use a timer_map")
    Signed-off-by: Andrew Jones <drjones@redhat.com>
    [Simplified the patch to res we only care about emulated timers here]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f14533a672b21b12aa3109f3f6d15c2fe90f4ff
Author: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Date:   Wed Jun 19 10:02:13 2019 +0000

    net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge()
    
    [ Upstream commit 48620e341659f6e4b978ec229f6944dabe6df709 ]
    
    The comment is correct, but the code ends up moving the bits four
    places too far, into the VTUOp field.
    
    Fixes: 11ea809f1a74 (net: dsa: mv88e6xxx: support 256 databases)
    Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0e24af6f44aff4e07417364b0969f36bd2485fe
Author: yangerkun <yangerkun@huawei.com>
Date:   Tue Mar 26 22:00:02 2019 +0800

    quota: fix a problem about transfer quota
    
    [ Upstream commit c6d9c35d16f1bafd3fec64b865e569e48cbcb514 ]
    
    Run below script as root, dquot_add_space will return -EDQUOT since
    __dquot_transfer call dquot_add_space with flags=0, and dquot_add_space
    think it's a preallocation. Fix it by set flags as DQUOT_SPACE_WARN.
    
    mkfs.ext4 -O quota,project /dev/vdb
    mount -o prjquota /dev/vdb /mnt
    setquota -P 23 1 1 0 0 /dev/vdb
    dd if=/dev/zero of=/mnt/test-file bs=4K count=1
    chattr -p 23 test-file
    
    Fixes: 7b9ca4c61bc2 ("quota: Reduce contention on dq_data_lock")
    Signed-off-by: yangerkun <yangerkun@huawei.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bfd2bc5cc2d07cafe683cbb074a94bf9b4275c4f
Author: Christoph Hellwig <hch@lst.de>
Date:   Thu Jun 13 10:24:46 2019 +0200

    powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac
    
    [ Upstream commit 9739ab7eda459f0669ec9807e0d9be5020bab88c ]
    
    With the strict dma mask checking introduced with the switch to
    the generic DMA direct code common wifi chips on 32-bit powerbooks
    stopped working.  Add a 30-bit ZONE_DMA to the 32-bit pmac builds
    to allow them to reliably allocate dma coherent memory.
    
    Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported")
    Reported-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Tested-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b936c0e244e840fa42fadabe18cfe212b9c72d95
Author: Nilesh Javali <njavali@marvell.com>
Date:   Wed Jun 12 01:05:41 2019 -0700

    scsi: qedi: Check targetname while finding boot target information
    
    [ Upstream commit 1ac3549ed58cdfdaf43bbf31ac260e2381cc0dae ]
    
    The kernel panic was observed during iSCSI discovery via offload with below
    call trace,
    
    [ 2115.646901] BUG: unable to handle kernel NULL pointer dereference at (null)
    [ 2115.646909] IP: [<ffffffffacf7f0cc>] strncmp+0xc/0x60
    [ 2115.646927] PGD 0
    [ 2115.646932] Oops: 0000 [#1] SMP
    [ 2115.647107] CPU: 24 PID: 264 Comm: kworker/24:1 Kdump: loaded Tainted: G
                   OE  ------------   3.10.0-957.el7.x86_64 #1
    [ 2115.647133] Workqueue: slowpath-13:00. qed_slowpath_task [qed]
    [ 2115.647135] task: ffff8d66af80b0c0 ti: ffff8d66afb80000 task.ti: ffff8d66afb80000
    [ 2115.647136] RIP: 0010:[<ffffffffacf7f0cc>]  [<ffffffffacf7f0cc>] strncmp+0xc/0x60
    [ 2115.647141] RSP: 0018:ffff8d66afb83c68  EFLAGS: 00010206
    [ 2115.647143] RAX: 0000000000000001 RBX: 0000000000000007 RCX: 000000000000000a
    [ 2115.647144] RDX: 0000000000000100 RSI: 0000000000000000 RDI: ffff8d632b3ba040
    [ 2115.647145] RBP: ffff8d66afb83c68 R08: 0000000000000000 R09: 000000000000ffff
    [ 2115.647147] R10: 0000000000000007 R11: 0000000000000800 R12: ffff8d66a30007a0
    [ 2115.647148] R13: ffff8d66747a3c10 R14: ffff8d632b3ba000 R15: ffff8d66747a32f8
    [ 2115.647149] FS:  0000000000000000(0000) GS:ffff8d66aff00000(0000) knlGS:0000000000000000
    [ 2115.647151] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 2115.647152] CR2: 0000000000000000 CR3: 0000000509610000 CR4: 00000000007607e0
    [ 2115.647153] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 2115.647154] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 2115.647155] PKRU: 00000000
    [ 2115.647157] Call Trace:
    [ 2115.647165]  [<ffffffffc0634cc5>] qedi_get_protocol_tlv_data+0x2c5/0x510 [qedi]
    [ 2115.647184]  [<ffffffffc05968f5>] ? qed_mfw_process_tlv_req+0x245/0xbe0 [qed]
    [ 2115.647195]  [<ffffffffc05496cb>] qed_mfw_fill_tlv_data+0x4b/0xb0 [qed]
    [ 2115.647206]  [<ffffffffc0596911>] qed_mfw_process_tlv_req+0x261/0xbe0 [qed]
    [ 2115.647215]  [<ffffffffacce0e8e>] ? dequeue_task_fair+0x41e/0x660
    [ 2115.647221]  [<ffffffffacc2a59e>] ? __switch_to+0xce/0x580
    [ 2115.647230]  [<ffffffffc0546013>] qed_slowpath_task+0xa3/0x160 [qed]
    [ 2115.647278] RIP  [<ffffffffacf7f0cc>] strncmp+0xc/0x60
    
    Fix kernel panic by validating the session targetname before providing TLV
    data and confirming the presence of boot targets.
    
    Signed-off-by: Nilesh Javali <njavali@marvell.com>
    Reviewed-by: Lee Duncan <lduncan@suse.com>
    Reviewed-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40386f7d5f4328cc5bde597e857e265661ae23d6
Author: Colin Ian King <colin.king@canonical.com>
Date:   Mon Jun 17 17:12:49 2019 +0100

    net: lio_core: fix potential sign-extension overflow on large shift
    
    [ Upstream commit 9476274093a0e79b905f4cd6cf6d149f65e02c17 ]
    
    Left shifting the signed int value 1 by 31 bits has undefined behaviour
    and the shift amount oq_no can be as much as 63.  Fix this by using
    BIT_ULL(oq_no) instead.
    
    Addresses-Coverity: ("Bad shift operation")
    Fixes: f21fb3ed364b ("Add support of Cavium Liquidio ethernet adapters")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9465dc24d1c5205ae980988e44afd1d4736aaeba
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Jun 17 21:34:14 2019 +0800

    ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL
    
    [ Upstream commit 6f6a8622057c92408930c31698394fae1557b188 ]
    
    A similar fix to Patch "ip_tunnel: allow not to count pkts on tstats by
    setting skb's dev to NULL" is also needed by ip6_tunnel.
    
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b4ef52d26aec77217f27d7a399816b2a135b63f6
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jun 18 16:18:43 2019 +0300

    drm: return -EFAULT if copy_to_user() fails
    
    [ Upstream commit 74b67efa8d7b4f90137f0ab9a80dd319da050350 ]
    
    The copy_from_user() function returns the number of bytes remaining
    to be copied but we want to return a negative error code.  Otherwise
    the callers treat it as a successful copy.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190618131843.GA29463@mwanda
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d929834822c78b3a88105ec52a796f08f3a8976e
Author: Mauro S. M. Rodrigues <maurosr@linux.vnet.ibm.com>
Date:   Thu Jun 13 16:25:40 2019 -0300

    bnx2x: Check if transceiver implements DDM before access
    
    [ Upstream commit cf18cecca911c0db96b868072665347efe6df46f ]
    
    Some transceivers may comply with SFF-8472 even though they do not
    implement the Digital Diagnostic Monitoring (DDM) interface described in
    the spec. The existence of such area is specified by the 6th bit of byte
    92, set to 1 if implemented.
    
    Currently, without checking this bit, bnx2x fails trying to read sfp
    module's EEPROM with the follow message:
    
    ethtool -m enP5p1s0f1
    Cannot get Module EEPROM data: Input/output error
    
    Because it fails to read the additional 256 bytes in which it is assumed
    to exist the DDM data.
    
    This issue was noticed using a Mellanox Passive DAC PN 01FT738. The EEPROM
    data was confirmed by Mellanox as correct and similar to other Passive
    DACs from other manufacturers.
    
    Signed-off-by: Mauro S. M. Rodrigues <maurosr@linux.vnet.ibm.com>
    Acked-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32cb50319091a5033c5021c297df62d786315857
Author: Mariusz Tkaczyk <mariusz.tkaczyk@intel.com>
Date:   Thu Jun 13 16:11:41 2019 +0200

    md: fix for divide error in status_resync
    
    [ Upstream commit 9642fa73d073527b0cbc337cc17a47d545d82cd2 ]
    
    Stopping external metadata arrays during resync/recovery causes
    retries, loop of interrupting and starting reconstruction, until it
    hit at good moment to stop completely. While these retries
    curr_mark_cnt can be small- especially on HDD drives, so subtraction
    result can be smaller than 0. However it is casted to uint without
    checking. As a result of it the status bar in /proc/mdstat while stopping
    is strange (it jumps between 0% and 99%).
    
    The real problem occurs here after commit 72deb455b5ec ("block: remove
    CONFIG_LBDAF"). Sector_div() macro has been changed, now the
    divisor is casted to uint32. For db = -8 the divisior(db/32-1) becomes 0.
    
    Check if db value can be really counted and replace these macro by
    div64_u64() inline.
    
    Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@intel.com>
    Signed-off-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e62ebc063f5ee8cfed2a799c43db954a9964677d
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:33:06 2019 -0400

    IB/hfi1: Handle port down properly in pio
    
    [ Upstream commit 942a899335707fc9cfc97cb382a60734b2ff4e03 ]
    
    The call to sc_buffer_alloc currently returns NULL (no buffer) or
    a buffer descriptor.
    
    There is a third case when the port is down.  Currently that
    returns NULL and this prevents the caller from properly handling the
    sc_buffer_alloc() failure.  A verbs code link test after the call is
    racy so the indication needs to come from the state check inside the allocation
    routine to be valid.
    
    Fix by encoding the ECOMM failure like SDMA.   IS_ERR_OR_NULL() tests
    are added at all call sites.  For verbs send, this needs to treat any
    error by returning a completion without any MMIO copy.
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d19a1a9c4083e2b9015e7a1a151e9661ba5c47d5
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:33:00 2019 -0400

    IB/hfi1: Handle wakeup of orphaned QPs for pio
    
    [ Upstream commit 099a884ba4c00145cef283d36e050726311c2e95 ]
    
    Once a send context is taken down due to a link failure, any QPs waiting
    for pio credits will stay on the waitlist indefinitely.
    
    Fix by wakeing up all QPs linked to piowait list.
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7a79b35dd816c47745c021953cdc92c78c1d6b8
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:32:50 2019 -0400

    IB/hfi1: Wakeup QPs orphaned on wait list after flush
    
    [ Upstream commit f972775b1cc0441ae22c9f8d06dd16b118463632 ]
    
    Once an SDMA engine is taken down due to a link failure, any waiting QPs
    that do not have outstanding descriptors in the ring will stay
    on the dmawait list as long as the port is down.
    
    Since there is no timer running, they will stay there for a long time.
    
    The fix is to wake up all iowaits linked to dmawait. The send engine
    will build and post packets that get flushed back.
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Kaike Wan <kaike.wan@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01514e2d6ea9c79f40697b570a0a4648a2d008eb
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:32:44 2019 -0400

    IB/hfi1: Use aborts to trigger RC throttling
    
    [ Upstream commit 4bb02e9572af1383038d83ad196d7166c515f2ee ]
    
    SDMA and pio flushes will cause a lot of packets to be transmitted
    after a link has gone down, using a lot of CPU to retransmit
    packets.
    
    Fix for RC QPs by recognizing the flush status and:
    - Forcing a timer start
    - Putting the QP into a "send one" mode
    
    Fixes: 7724105686e7 ("IB/hfi1: add driver files")
    Reviewed-by: Kaike Wan <kaike.wan@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 339d51e3723bb049728d4d9d7c61dd836e7a3263
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Fri Jun 14 12:32:38 2019 -0400

    IB/hfi1: Create inline to get extended headers
    
    [ Upstream commit 9755f72496664eec70bc804104118b5797b6bf63 ]
    
    This paves the way for another patch that reacts to a
    flush sdma completion for RC.
    
    Fixes: 81cd3891f021 ("IB/hfi1: Add support for 16B Management Packets")
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 511b73e67016bbdb8ab6d879f2ddf62655a3d74e
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Tue Jun 11 22:03:43 2019 +0200

    mmc: core: complete HS400 before checking status
    
    [ Upstream commit b0e370b95a3b231d0fb5d1958cce85ef57196fe6 ]
    
    We don't have a reproducible error case, yet our BSP team suggested that
    the mmc_switch_status() command in mmc_select_hs400() should come after
    the callback into the driver completing HS400 setup. It makes sense to
    me because we want the status of a fully setup HS400, so it will
    increase the reliability of the mmc_switch_status() command.
    
    Reported-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Fixes: ba6c7ac3a2f4 ("mmc: core: more fine-grained hooks for HS400 tuning")
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e1b6174a87806df5fddc54305ed55d15e72b137
Author: Reinhard Speyerer <rspmn@arcor.de>
Date:   Wed Jun 12 19:03:50 2019 +0200

    qmi_wwan: extend permitted QMAP mux_id value range
    
    [ Upstream commit 36815b416fa48766ac5a98e4b2dc3ebc5887222e ]
    
    Permit mux_id values up to 254 to be used in qmimux_register_device()
    for compatibility with ip(8) and the rmnet driver.
    
    Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support")
    Cc: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 382719d4a0c815d2313a3d707088f6f02e3e161b
Author: Reinhard Speyerer <rspmn@arcor.de>
Date:   Wed Jun 12 19:03:15 2019 +0200

    qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode
    
    [ Upstream commit a8fdde1cb830e560208af42b6c10750137f53eb3 ]
    
    Switch qmimux_unregister_device() and qmi_wwan_disconnect() to
    use unregister_netdevice_queue() and unregister_netdevice_many()
    instead of unregister_netdevice(). This avoids RCU stalls which
    have been observed on device disconnect in certain setups otherwise.
    
    Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support")
    Cc: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4bd6849a7cd76bfd1f59cece6b798232c31f41eb
Author: Reinhard Speyerer <rspmn@arcor.de>
Date:   Wed Jun 12 19:02:13 2019 +0200

    qmi_wwan: add support for QMAP padding in the RX path
    
    [ Upstream commit 61356088ace1866a847a727d4d40da7bf00b67fc ]
    
    The QMAP code in the qmi_wwan driver is based on the CodeAurora GobiNet
    driver which does not process QMAP padding in the RX path correctly.
    Add support for QMAP padding to qmimux_rx_fixup() according to the
    description of the rmnet driver.
    
    Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support")
    Cc: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Reinhard Speyerer <rspmn@arcor.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86e69af63f6ebcd50959ef6d5a9be947102d3bb0
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Fri Jun 14 15:43:28 2019 -0700

    bpf, x64: fix stack layout of JITed bpf code
    
    [ Upstream commit fe8d9571dc50232b569242fac7ea6332a654f186 ]
    
    Since commit 177366bf7ceb the %rbp stopped pointing to %rbp of the
    previous stack frame. That broke frame pointer based stack unwinding.
    This commit is a partial revert of it.
    Note that the location of tail_call_cnt is fixed, since the verifier
    enforces MAX_BPF_STACK stack size for programs with tail calls.
    
    Fixes: 177366bf7ceb ("bpf: change x86 JITed program stack layout")
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 172a3024ef7eee59b295a14dca67406a79645cb9
Author: Toshiaki Makita <toshiaki.makita1@gmail.com>
Date:   Fri Jun 14 17:20:15 2019 +0900

    bpf, devmap: Add missing RCU read lock on flush
    
    [ Upstream commit 86723c8640633bee4b4588d3c7784ee7a0032f65 ]
    
    .ndo_xdp_xmit() assumes it is called under RCU. For example virtio_net
    uses RCU to detect it has setup the resources for tx. The assumption
    accidentally broke when introducing bulk queue in devmap.
    
    Fixes: 5d053f9da431 ("bpf: devmap prepare xdp frames for bulking")
    Reported-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: Toshiaki Makita <toshiaki.makita1@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ee2ec83afa8b3c0cfe6e8589cfed08f57d468b11
Author: Toshiaki Makita <toshiaki.makita1@gmail.com>
Date:   Fri Jun 14 17:20:14 2019 +0900

    bpf, devmap: Add missing bulk queue free
    
    [ Upstream commit edabf4d9dd905acd60048ea1579943801e3a4876 ]
    
    dev_map_free() forgot to free bulk queue when freeing its entries.
    
    Fixes: 5d053f9da431 ("bpf: devmap prepare xdp frames for bulking")
    Signed-off-by: Toshiaki Makita <toshiaki.makita1@gmail.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92e9431c8beffad497ee8601f9befd7caa56620f
Author: Toshiaki Makita <toshiaki.makita1@gmail.com>
Date:   Fri Jun 14 17:20:13 2019 +0900

    bpf, devmap: Fix premature entry free on destroying map
    
    [ Upstream commit d4dd153d551634683fccf8881f606fa9f3dfa1ef ]
    
    dev_map_free() waits for flush_needed bitmap to be empty in order to
    ensure all flush operations have completed before freeing its entries.
    However the corresponding clear_bit() was called before using the
    entries, so the entries could be used after free.
    
    All access to the entries needs to be done before clearing the bit.
    It seems commit a5e2da6e9787 ("bpf: netdev is never null in
    __dev_map_flush") accidentally changed the clear_bit() and memory access
    order.
    
    Note that the problem happens only in __dev_map_flush(), not in
    dev_map_flush_old(). dev_map_flush_old() is called only after nulling
    out the corresponding netdev_map entry, so dev_map_free() never frees
    the entry thus no such race happens there.
    
    Fixes: a5e2da6e9787 ("bpf: netdev is never null in __dev_map_flush")
    Signed-off-by: Toshiaki Makita <toshiaki.makita1@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d0b6b471e5c3379ea964a893d934a7bd17a697a
Author: Avraham Stern <avraham.stern@intel.com>
Date:   Wed May 29 15:25:28 2019 +0300

    cfg80211: report measurement start TSF correctly
    
    [ Upstream commit b65842025335711e2a0259feb4dbadb0c9ffb6d9 ]
    
    Instead of reporting the AP's TSF, host time was reported. Fix it.
    
    Signed-off-by: Avraham Stern <avraham.stern@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afe6a610dd5d82e93add11aaee1fb071d5b57a78
Author: Mordechay Goodstein <mordechay.goodstein@intel.com>
Date:   Wed May 29 15:25:31 2019 +0300

    cfg80211: util: fix bit count off by one
    
    [ Upstream commit 1a473d6092d5d182914bea854ce0b21e6d12519d ]
    
    The bits of Rx MCS Map in VHT capability were enumerated
    with index transform - index i -> (i + 1) bit => nss i. BUG!
    while it should be -   index i -> (i + 1) bit => (i + 1) nss.
    
    The bug was exposed in commit a53b2a0b1245 ("iwlwifi: mvm: implement VHT
    extended NSS support in rs.c"), where iwlwifi started using the
    function.
    
    Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
    Fixes: b0aa75f0b1b2 ("ieee80211: add new VHT capability fields/parsing")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2aab1140bd37e5bbfbc03152243701ff832d2ba
Author: Naftali Goldstein <naftali.goldstein@intel.com>
Date:   Wed May 29 15:25:30 2019 +0300

    mac80211: do not start any work during reconfigure flow
    
    [ Upstream commit f8891461a277ec0afc493fd30cd975a38048a038 ]
    
    It is not a good idea to try to perform any work (e.g. send an auth
    frame) during reconfigure flow.
    
    Prevent this from happening, and at the end of the reconfigure flow
    requeue all the works.
    
    Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b88d16425319b2f2d51b12bd5cca739b5ac3a37d
Author: Yibo Zhao <yiboz@codeaurora.org>
Date:   Fri Jun 14 19:01:52 2019 +0800

    mac80211: only warn once on chanctx_conf being NULL
    
    [ Upstream commit 563572340173865a9a356e6bb02579e6998a876d ]
    
    In multiple SSID cases, it takes time to prepare every AP interface
    to be ready in initializing phase. If a sta already knows everything it
    needs to join one of the APs and sends authentication to the AP which
    is not fully prepared at this point of time, AP's channel context
    could be NULL. As a result, warning message occurs.
    
    Even worse, if the AP is under attack via tools such as MDK3 and massive
    authentication requests are received in a very short time, console will
    be hung due to kernel warning messages.
    
    WARN_ON_ONCE() could be a better way for indicating warning messages
    without duplicate messages to flood the console.
    
    Johannes: We still need to address the underlying problem, but we
              don't really have a good handle on it yet. Suppress the
              worst side-effects for now.
    
    Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
    Signed-off-by: Yibo Zhao <yiboz@codeaurora.org>
    [johannes: add note, change subject]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7ed6a9b4c56fa602ba941ca188aa7274105147e
Author: Steve Longerbeam <slongerbeam@gmail.com>
Date:   Tue Jun 11 18:16:57 2019 -0700

    gpu: ipu-v3: image-convert: Fix image downsize coefficients
    
    [ Upstream commit 912bbf7e9ca422099935dd69d3ff0fd62db24882 ]
    
    The output of the IC downsizer unit in both dimensions must be <= 1024
    before being passed to the IC resizer unit. This was causing corrupted
    images when:
    
    input_dim > 1024, and
    input_dim / 2 < output_dim < input_dim
    
    Some broken examples were 1920x1080 -> 1024x768 and 1920x1080 ->
    1280x1080.
    
    Fixes: 70b9b6b3bcb21 ("gpu: ipu-v3: image-convert: calculate per-tile
    resize coefficients")
    
    Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 858251f8dd6eb387470256a1d2ea7f78f82d2a9f
Author: Steve Longerbeam <slongerbeam@gmail.com>
Date:   Tue Jun 11 18:16:56 2019 -0700

    gpu: ipu-v3: image-convert: Fix input bytesperline for packed formats
    
    [ Upstream commit bca4d70cf1b8f6478a711c448a3a1e47b794b162 ]
    
    The input bytesperline calculation for packed pixel formats was
    incorrect. The min/max clamping values must be multiplied by the
    packed bits-per-pixel. This was causing corrupted converted images
    when the input format was RGB4 (probably also other input packed
    formats).
    
    Fixes: d966e23d61a2c ("gpu: ipu-v3: image-convert: fix bytesperline
    adjustment")
    
    Reported-by: Harsha Manjula Mallikarjun <Harsha.ManjulaMallikarjun@in.bosch.com>
    Suggested-by: Harsha Manjula Mallikarjun <Harsha.ManjulaMallikarjun@in.bosch.com>
    Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 955be60e0c2f3f4aae7b6e8819a5a8b234fbfa00
Author: Steve Longerbeam <slongerbeam@gmail.com>
Date:   Tue Jun 11 18:16:55 2019 -0700

    gpu: ipu-v3: image-convert: Fix input bytesperline width/height align
    
    [ Upstream commit ff391ecd65a1b8324c49046c3db98d9c8ab29af9 ]
    
    The output width and height alignment values were being used in the
    input bytesperline calculation. Fix by separating local vars w_align
    and h_align into w_align_in, h_align_in, w_align_out, and h_align_out.
    
    Fixes: d966e23d61a2c ("gpu: ipu-v3: image-convert: fix bytesperline
    adjustment")
    
    Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 658031eab6241a3c7ffc72066f65c19ad3f22b49
Author: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Date:   Fri Jun 7 16:33:50 2019 +0200

    ARM: davinci: da8xx: specify dma_coherent_mask for lcdc
    
    [ Upstream commit 68f2515bb31a664ba3e2bc1eb78dd9f529b10067 ]
    
    The lcdc device is missing the dma_coherent_mask definition causing the
    following warning on da850-evm:
    
    da8xx_lcdc da8xx_lcdc.0: found Sharp_LK043T1DG01 panel
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 1 at kernel/dma/mapping.c:247 dma_alloc_attrs+0xc8/0x110
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Not tainted 5.2.0-rc3-00077-g16d72dd4891f #18
    Hardware name: DaVinci DA850/OMAP-L138/AM18x EVM
    [<c000fce8>] (unwind_backtrace) from [<c000d900>] (show_stack+0x10/0x14)
    [<c000d900>] (show_stack) from [<c001a4f8>] (__warn+0xec/0x114)
    [<c001a4f8>] (__warn) from [<c001a634>] (warn_slowpath_null+0x3c/0x48)
    [<c001a634>] (warn_slowpath_null) from [<c0065860>] (dma_alloc_attrs+0xc8/0x110)
    [<c0065860>] (dma_alloc_attrs) from [<c02820f8>] (fb_probe+0x228/0x5a8)
    [<c02820f8>] (fb_probe) from [<c02d3e9c>] (platform_drv_probe+0x48/0x9c)
    [<c02d3e9c>] (platform_drv_probe) from [<c02d221c>] (really_probe+0x1d8/0x2d4)
    [<c02d221c>] (really_probe) from [<c02d2474>] (driver_probe_device+0x5c/0x168)
    [<c02d2474>] (driver_probe_device) from [<c02d2728>] (device_driver_attach+0x58/0x60)
    [<c02d2728>] (device_driver_attach) from [<c02d27b0>] (__driver_attach+0x80/0xbc)
    [<c02d27b0>] (__driver_attach) from [<c02d047c>] (bus_for_each_dev+0x64/0xb4)
    [<c02d047c>] (bus_for_each_dev) from [<c02d1590>] (bus_add_driver+0xe4/0x1d8)
    [<c02d1590>] (bus_add_driver) from [<c02d301c>] (driver_register+0x78/0x10c)
    [<c02d301c>] (driver_register) from [<c000a5c0>] (do_one_initcall+0x48/0x1bc)
    [<c000a5c0>] (do_one_initcall) from [<c05cae6c>] (kernel_init_freeable+0x10c/0x1d8)
    [<c05cae6c>] (kernel_init_freeable) from [<c048a000>] (kernel_init+0x8/0xf4)
    [<c048a000>] (kernel_init) from [<c00090e0>] (ret_from_fork+0x14/0x34)
    Exception stack(0xc6837fb0 to 0xc6837ff8)
    7fa0:                                     00000000 00000000 00000000 00000000
    7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
    ---[ end trace 8a8073511be81dd2 ]---
    
    Add a 32-bit mask to the platform device's definition.
    
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 06004e683ee1138dcf5dae105326460e568a2da4
Author: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Date:   Fri Jun 7 11:02:01 2019 +0200

    ARM: davinci: da850-evm: call regulator_has_full_constraints()
    
    [ Upstream commit 0c0c9b5753cd04601b17de09da1ed2885a3b42fe ]
    
    The BB expander at 0x21 i2c bus 1 fails to probe on da850-evm because
    the board doesn't set has_full_constraints to true in the regulator
    API.
    
    Call regulator_has_full_constraints() at the end of board registration
    just like we do in da850-lcdk and da830-evm.
    
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5d5e2b12cdcd6ea9d3b2b2c50c829e5379bda5c7
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Jun 13 00:21:39 2019 +0530

    bpf: fix div64 overflow tests to properly detect errors
    
    [ Upstream commit 3e0682695199bad51dd898fe064d1564637ff77a ]
    
    If the result of the division is LLONG_MIN, current tests do not detect
    the error since the return value is truncated to a 32-bit value and ends
    up being 0.
    
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e80b4f6271eca3f86ada3c21fdfedb02ec3643d8
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Thu Jun 13 13:35:02 2019 +0200

    KVM: nVMX: use correct clean fields when copying from eVMCS
    
    [ Upstream commit f9bc5227652df4900eff12a9b8b38e9a8c7c78ea ]
    
    Unfortunately, a couple of mistakes were made while implementing
    Enlightened VMCS support, in particular, wrong clean fields were
    used in copy_enlightened_to_vmcs12():
    - exception_bitmap is covered by CONTROL_EXCPN;
    - vm_exit_controls/pin_based_vm_exec_control/secondary_vm_exec_control
      are covered by CONTROL_GRP1.
    
    Fixes: 945679e301ea0 ("KVM: nVMX: add enlightened VMCS state")
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5b8efec8a9f2c7de08e720dd3f6310af292d8e50
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Tue Jun 11 10:19:46 2019 +0300

    mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed
    
    [ Upstream commit 4b14cc313f076c37b646cee06a85f0db59cf216c ]
    
    When PVID is removed from a bridge port, the Linux bridge drops both
    untagged and prio-tagged packets. Align mlxsw with this behavior.
    
    Fixes: 148f472da5db ("mlxsw: reg: Add the Switch Port Acceptable Frame Types register")
    Acked-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a3f322213f00930396a8f09261f1438d272e21c
Author: Dave Martin <Dave.Martin@arm.com>
Date:   Thu Jun 6 11:58:07 2019 +0100

    KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy
    
    [ Upstream commit 4729ec8c1e1145234aeeebad5d96d77f4ccbb00a ]
    
    kvm_device->destroy() seems to be supposed to free its kvm_device
    struct, but vgic_its_destroy() is not currently doing this,
    resulting in a memory leak, resulting in kmemleak reports such as
    the following:
    
    unreferenced object 0xffff800aeddfe280 (size 128):
      comm "qemu-system-aar", pid 13799, jiffies 4299827317 (age 1569.844s)
      [...]
      backtrace:
        [<00000000a08b80e2>] kmem_cache_alloc+0x178/0x208
        [<00000000dcad2bd3>] kvm_vm_ioctl+0x350/0xbc0
    
    Fix it.
    
    Cc: Andre Przywara <andre.przywara@arm.com>
    Fixes: 1085fdc68c60 ("KVM: arm64: vgic-its: Introduce new KVM ITS device")
    Signed-off-by: Dave Martin <Dave.Martin@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5769fc5d1bb758a024d54c4147a4692fa4ba5ce
Author: Ilya Maximets <i.maximets@samsung.com>
Date:   Fri Jun 7 20:27:32 2019 +0300

    xdp: check device pointer before clearing
    
    [ Upstream commit 01d76b5317003e019ace561a9b775f51aafdfdc4 ]
    
    We should not call 'ndo_bpf()' or 'dev_put()' with NULL argument.
    
    Fixes: c9b47cc1fabc ("xsk: fix bug when trying to use both copy and zero-copy on one queue id")
    Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
    Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f546398d344593edfdf83301d7d7a5ddc55eab9
Author: Anson Huang <anson.huang@nxp.com>
Date:   Tue Jun 11 17:50:44 2019 -0700

    Input: imx_keypad - make sure keyboard can always wake up system
    
    [ Upstream commit ce9a53eb3dbca89e7ad86673d94ab886e9bea704 ]
    
    There are several scenarios that keyboard can NOT wake up system
    from suspend, e.g., if a keyboard is depressed between system
    device suspend phase and device noirq suspend phase, the keyboard
    ISR will be called and both keyboard depress and release interrupts
    will be disabled, then keyboard will no longer be able to wake up
    system. Another scenario would be, if a keyboard is kept depressed,
    and then system goes into suspend, the expected behavior would be
    when keyboard is released, system will be waked up, but current
    implementation can NOT achieve that, because both depress and release
    interrupts are disabled in ISR, and the event check is still in
    progress.
    
    To fix these issues, need to make sure keyboard's depress or release
    interrupt is enabled after noirq device suspend phase, this patch
    moves the suspend/resume callback to noirq suspend/resume phase, and
    enable the corresponding interrupt according to current keyboard status.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82045b8cbcc68e3f8d38e89a0ff48fc99178c2be
Author: Nick Hu <nickhu@andestech.com>
Date:   Thu May 30 15:01:17 2019 +0800

    riscv: Fix udelay in RV32.
    
    [ Upstream commit d0e1f2110a5eeb6e410b2dd37d98bc5b30da7bc7 ]
    
    In RV32, udelay would delay the wrong cycle. When it shifts right
    "UDELAY_SHIFT" bits, it either delays 0 cycle or 1 cycle. It only works
    correctly in RV64. Because the 'ucycles' always needs to be 64 bits
    variable.
    
    Signed-off-by: Nick Hu <nickhu@andestech.com>
    Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
    [paul.walmsley@sifive.com: fixed minor spelling error]
    Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1ef49d30eb2d24b190fa575bf8e6f35ae622694f
Author: Qian Cai <cai@lca.pw>
Date:   Mon Jun 3 16:44:15 2019 -0400

    drm/vmwgfx: fix a warning due to missing dma_parms
    
    [ Upstream commit 39916897cd815a0ee07ba1f6820cf88a63e459fc ]
    
    Booting up with DMA_API_DEBUG_SG=y generates a warning due to the driver
    forgot to set dma_parms appropriately. Set it just after vmw_dma_masks()
    in vmw_driver_load().
    
    DMA-API: vmwgfx 0000:00:0f.0: mapping sg segment longer than device
    claims to support [len=2097152] [max=65536]
    WARNING: CPU: 2 PID: 261 at kernel/dma/debug.c:1232
    debug_dma_map_sg+0x360/0x480
    Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop
    Reference Platform, BIOS 6.00 04/13/2018
    RIP: 0010:debug_dma_map_sg+0x360/0x480
    Call Trace:
     vmw_ttm_map_dma+0x3b1/0x5b0 [vmwgfx]
     vmw_bo_map_dma+0x25/0x30 [vmwgfx]
     vmw_otables_setup+0x2a8/0x750 [vmwgfx]
     vmw_request_device_late+0x78/0xc0 [vmwgfx]
     vmw_request_device+0xee/0x4e0 [vmwgfx]
     vmw_driver_load.cold+0x757/0xd84 [vmwgfx]
     drm_dev_register+0x1ff/0x340 [drm]
     drm_get_pci_dev+0x110/0x290 [drm]
     vmw_probe+0x15/0x20 [vmwgfx]
     local_pci_probe+0x7a/0xc0
     pci_device_probe+0x1b9/0x290
     really_probe+0x1b5/0x630
     driver_probe_device+0xa3/0x1a0
     device_driver_attach+0x94/0xa0
     __driver_attach+0xdd/0x1c0
     bus_for_each_dev+0xfe/0x150
     driver_attach+0x2d/0x40
     bus_add_driver+0x290/0x350
     driver_register+0xdc/0x1d0
     __pci_register_driver+0xda/0xf0
     vmwgfx_init+0x34/0x1000 [vmwgfx]
     do_one_initcall+0xe5/0x40a
     do_init_module+0x10f/0x3a0
     load_module+0x16a5/0x1a40
     __se_sys_finit_module+0x183/0x1c0
     __x64_sys_finit_module+0x43/0x50
     do_syscall_64+0xc8/0x606
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: fb1d9738ca05 ("drm/vmwgfx: Add DRM driver for VMware Virtual GPU")
    Co-developed-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Qian Cai <cai@lca.pw>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 04c309800d00093f854ca49fa9af5d7bfbddc971
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Tue Jun 4 13:54:26 2019 +0200

    drm/vmwgfx: Honor the sg list segment size limitation
    
    [ Upstream commit bde15555ba61c7f664f40fd3c6fdbdb63f784c9b ]
    
    When building sg tables, honor the device sg list segment size limitation.
    
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Deepak Rawat <drawat@vmware.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f9f960af41c8a119a47a19f094d5063bb6e7667
Author: Kevin Hilman <khilman@baylibre.com>
Date:   Wed Jun 5 10:50:42 2019 -0700

    RISC-V: defconfig: enable clocks, serial console
    
    [ Upstream commit 3b025f2bc98973f181d926192b0ceb6ced0f86d2 ]
    
    Enable PRCI clock driver and serial console by default, so the default
    upstream defconfig is bootable to a serial console.
    
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eee9998b27e1a634bf207097532d5b7059282200
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Tue Jun 4 13:10:51 2019 +0200

    s390/boot: disable address-of-packed-member warning
    
    [ Upstream commit f9364df30420987e77599c4789ec0065c609a507 ]
    
    Get rid of gcc9 warnings like this:
    
    arch/s390/boot/ipl_report.c: In function 'find_bootdata_space':
    arch/s390/boot/ipl_report.c:42:26: warning: taking address of packed member of 'struct ipl_rb_components' may result in an unaligned pointer value [-Waddress-of-packed-member]
       42 |  for_each_rb_entry(comp, comps)
          |                          ^~~~~
    
    This is effectively the s390 variant of commit 20c6c1890455
    ("x86/boot: Disable the address-of-packed-member compiler warning").
    
    Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3379bbd0fce938edcb8a35bfe2cb690b888119a8
Author: Teresa Remmet <t.remmet@phytec.de>
Date:   Fri May 24 15:19:57 2019 +0200

    ARM: dts: am335x phytec boards: Fix cd-gpios active level
    
    [ Upstream commit 8a0098c05a272c9a68f6885e09755755b612459c ]
    
    Active level of the mmc1 cd gpio needs to be low instead of high.
    Fix PCM-953 and phyBOARD-WEGA.
    
    Signed-off-by: Teresa Remmet <t.remmet@phytec.de>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cda7382c1136e76b6edd58f46d5a405bc052024e
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Fri Jun 7 16:03:55 2019 -0500

    ibmvnic: Fix unchecked return codes of memory allocations
    
    [ Upstream commit 7c940b1a5291e5069d561f5b8f0e51db6b7a259a ]
    
    The return values for these memory allocations are unchecked,
    which may cause an oops if the driver does not handle them after
    a failure. Fix by checking the function's return code.
    
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c21c3ab0e54cf608b641290e69f943fd0f1423d
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Fri Jun 7 16:03:54 2019 -0500

    ibmvnic: Refresh device multicast list after reset
    
    [ Upstream commit be32a24372cf162e825332da1a7ccef058d4f20b ]
    
    It was observed that multicast packets were no longer received after
    a device reset.  The fix is to resend the current multicast list to
    the backing device after recovery.
    
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78e1374d96c50d69f8e8acbd06a9067c2f21b2f8
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Fri Jun 7 16:03:53 2019 -0500

    ibmvnic: Do not close unopened driver during reset
    
    [ Upstream commit 1f94608b0ce141be5286dde31270590bdf35b86a ]
    
    Check driver state before halting it during a reset. If the driver is
    not running, do nothing. Otherwise, a request to deactivate a down link
    can cause an error and the reset will fail.
    
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe218cfad2fb8677a1becc90ecc98c9376dffa65
Author: Michael Schmitz <schmitzmic@gmail.com>
Date:   Fri Jun 7 17:37:34 2019 +1200

    net: phy: rename Asix Electronics PHY driver
    
    [ Upstream commit a9520543b123bbd7275a0ab8d0375a5412683b41 ]
    
    [Resent to net instead of net-next - may clash with Anders Roxell's patch
    series addressing duplicate module names]
    
    Commit 31dd83b96641 ("net-next: phy: new Asix Electronics PHY driver")
    introduced a new PHY driver drivers/net/phy/asix.c that causes a module
    name conflict with a pre-existiting driver (drivers/net/usb/asix.c).
    
    The PHY driver is used by the X-Surf 100 ethernet card driver, and loaded
    by that driver via its PHY ID. A rename of the driver looks unproblematic.
    
    Rename PHY driver to ax88796b.c in order to resolve name conflict.
    
    Signed-off-by: Michael Schmitz <schmitzmic@gmail.com>
    Tested-by: Michael Schmitz <schmitzmic@gmail.com>
    Fixes: 31dd83b96641 ("net-next: phy: new Asix Electronics PHY driver")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6a38e8c3d5b2d88410d60ae5876c1a0621f04f38
Author: Fabio Estevam <festevam@gmail.com>
Date:   Tue Jun 4 15:49:42 2019 -0300

    can: flexcan: Remove unneeded registration message
    
    [ Upstream commit eb503004a7e563d543c9cb869907156de7efe720 ]
    
    Currently the following message is observed when the flexcan
    driver is probed:
    
    flexcan 2090000.flexcan: device registered (reg_base=(ptrval), irq=23)
    
    The reason for printing 'ptrval' is explained at
    Documentation/core-api/printk-formats.rst:
    
    "Pointers printed without a specifier extension (i.e unadorned %p) are
    hashed to prevent leaking information about the kernel memory layout. This
    has the added benefit of providing a unique identifier. On 64-bit machines
    the first 32 bits are zeroed. The kernel will print ``(ptrval)`` until it
    gathers enough entropy."
    
    Instead of passing %pK, which can print the correct address, simply
    remove the entire message as it is not really that useful.
    
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bdfd30f912dacf98ac55e0fba038767e77ce4618
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Thu May 16 22:36:26 2019 +0800

    can: af_can: Fix error path of can_init()
    
    [ Upstream commit c5a3aed1cd3152429348ee1fe5cdcca65fe901ce ]
    
    This patch add error path for can_init() to avoid possible crash if some
    error occurs.
    
    Fixes: 0d66548a10cb ("[CAN]: Add PF_CAN core module")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 677eaf97288305ea5f701aaf0b746e56c72171df
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Mon Mar 4 14:44:13 2019 +0000

    can: m_can: implement errata "Needless activation of MRAF irq"
    
    [ Upstream commit 3e82f2f34c930a2a0a9e69fdc2de2f2f1388b442 ]
    
    During frame reception while the MCAN is in Error Passive state and the
    Receive Error Counter has thevalue MCAN_ECR.REC = 127, it may happen
    that MCAN_IR.MRAF is set although there was no Message RAM access
    failure. If MCAN_IR.MRAF is enabled, an interrupt to the Host CPU is
    generated.
    
    Work around:
    The Message RAM Access Failure interrupt routine needs to check whether
    
        MCAN_ECR.RP = '1' and MCAN_ECR.REC = '127'.
    
    In this case, reset MCAN_IR.MRAF. No further action is required.
    This affects versions older than 3.2.0
    
    Errata explained on Sama5d2 SoC which includes this hardware block:
    http://ww1.microchip.com/downloads/en/DeviceDoc/SAMA5D2-Family-Silicon-Errata-and-Data-Sheet-Clarification-DS80000803B.pdf
    chapter 6.2
    
    Reproducibility: If 2 devices with m_can are connected back to back,
    configuring different bitrate on them will lead to interrupt storm on
    the receiving side, with error "Message RAM access failure occurred".
    Another way is to have a bad hardware connection. Bad wire connection
    can lead to this issue as well.
    
    This patch fixes the issue according to provided workaround.
    
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Reviewed-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit caad90046a157a646530cf85d5a6b19f535d6581
Author: Sean Nyekjaer <sean@geanix.com>
Date:   Tue May 7 11:34:36 2019 +0200

    can: mcp251x: add support for mcp25625
    
    [ Upstream commit 35b7fa4d07c43ad79b88e6462119e7140eae955c ]
    
    Fully compatible with mcp2515, the mcp25625 have integrated transceiver.
    
    This patch adds support for the mcp25625 to the existing mcp251x driver.
    
    Signed-off-by: Sean Nyekjaer <sean@geanix.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b9e3c98ecdb4f512422b52f372d3e8f12c79a46
Author: Sean Nyekjaer <sean@geanix.com>
Date:   Tue May 7 11:34:37 2019 +0200

    dt-bindings: can: mcp251x: add mcp25625 support
    
    [ Upstream commit 0df82dcd55832a99363ab7f9fab954fcacdac3ae ]
    
    Fully compatible with mcp2515, the mcp25625 have integrated transceiver.
    
    This patch add the mcp25625 to the device tree bindings documentation.
    
    Signed-off-by: Sean Nyekjaer <sean@geanix.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7e43c33079692372e3d0bfed047bdd43853d72c
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu Jun 6 18:04:00 2019 +0200

    netfilter: ipv6: nf_defrag: accept duplicate fragments again
    
    [ Upstream commit 8a3dca632538c550930ce8bafa8c906b130d35cf ]
    
    When fixing the skb leak introduced by the conversion to rbtree, I
    forgot about the special case of duplicate fragments. The condition
    under the 'insert_error' label isn't effective anymore as
    nf_ct_frg6_gather() doesn't override the returned value anymore. So
    duplicate fragments now get NF_DROP verdict.
    
    To accept duplicate fragments again, handle them specially as soon as
    inet_frag_queue_insert() reports them. Return -EINPROGRESS which will
    translate to NF_STOLEN verdict, like any accepted fragment. However,
    such packets don't carry any new information and aren't queued, so we
    just drop them immediately.
    
    Fixes: a0d56cb911ca ("netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ef90e54de1359c5d954e0d4bb8978e5b113f002
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Thu Jun 6 12:23:04 2019 +0100

    soundwire: intel: set dai min and max channels correctly
    
    [ Upstream commit 39194128701bf2af9bbc420ffe6e3cb5d2c16061 ]
    
    Looks like there is a copy paste error.
    This patch fixes it!
    
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d48fa440c70bb22153da18c753e66846ed74a61
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Thu Jun 6 12:22:22 2019 +0100

    soundwire: stream: fix bad unlock balance
    
    [ Upstream commit 9315d904c7e8f38886e2820fa6cb8d0fa723ea21 ]
    
    the msg lock is taken for multi-link cases only but released
    unconditionally, leading to an unlock balance warning for single-link usages
    This patch fixes this.
    
     =====================================
     WARNING: bad unlock balance detected!
     5.1.0-16506-gc1c383a6f0a2-dirty #1523 Tainted: G        W
     -------------------------------------
     aplay/2954 is trying to release lock (&bus->msg_lock) at:
     do_bank_switch+0x21c/0x480
     but there are no more locks to release!
    
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Acked-by: Sanyog Kale <sanyog.r.kale@intel.com>
    [vkoul: edited the change log as suggested by Pierre]
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0493503b1e28a8d096d241903f338303b5c908c2
Author: Krzesimir Nowak <krzesimir@kinvolk.io>
Date:   Wed Jun 5 21:17:06 2019 +0200

    tools: bpftool: Fix JSON output when lookup fails
    
    [ Upstream commit 1884c066579a7a274dd981a4d9639ca63db66a23 ]
    
    In commit 9a5ab8bf1d6d ("tools: bpftool: turn err() and info() macros
    into functions") one case of error reporting was special cased, so it
    could report a lookup error for a specific key when dumping the map
    element. What the code forgot to do is to wrap the key and value keys
    into a JSON object, so an example output of pretty JSON dump of a
    sockhash map (which does not support looking up its values) is:
    
    [
        "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00"
        ],
        "value": {
            "error": "Operation not supported"
        },
        "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01"
        ],
        "value": {
            "error": "Operation not supported"
        }
    ]
    
    Note the key-value pairs inside the toplevel array. They should be
    wrapped inside a JSON object, otherwise it is an invalid JSON. This
    commit fixes this, so the output now is:
    
    [{
            "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00"
            ],
            "value": {
                "error": "Operation not supported"
            }
        },{
            "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01"
            ],
            "value": {
                "error": "Operation not supported"
            }
        }
    ]
    
    Fixes: 9a5ab8bf1d6d ("tools: bpftool: turn err() and info() macros into functions")
    Cc: Quentin Monnet <quentin.monnet@netronome.com>
    Signed-off-by: Krzesimir Nowak <krzesimir@kinvolk.io>
    Acked-by: Andrii Nakryiko <andriin@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 53374b5aa7392edcdc67c33a75fce30d4d109916
Author: Guillaume Nault <gnault@redhat.com>
Date:   Sun Jun 2 15:13:47 2019 +0200

    netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments
    
    [ Upstream commit a0d56cb911ca301de81735f1d73c2aab424654ba ]
    
    With commit 997dd9647164 ("net: IP6 defrag: use rbtrees in
    nf_conntrack_reasm.c"), nf_ct_frag6_reasm() is now called from
    nf_ct_frag6_queue(). With this change, nf_ct_frag6_queue() can fail
    after the skb has been added to the fragment queue and
    nf_ct_frag6_gather() was adapted to handle this case.
    
    But nf_ct_frag6_queue() can still fail before the fragment has been
    queued. nf_ct_frag6_gather() can't handle this case anymore, because it
    has no way to know if nf_ct_frag6_queue() queued the fragment before
    failing. If it didn't, the skb is lost as the error code is overwritten
    with -EINPROGRESS.
    
    Fix this by setting -EINPROGRESS directly in nf_ct_frag6_queue(), so
    that nf_ct_frag6_gather() can propagate the error as is.
    
    Fixes: 997dd9647164 ("net: IP6 defrag: use rbtrees in nf_conntrack_reasm.c")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e9111176d9c195ba709245f1bf1d3d1dae5cd22a
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri May 31 15:18:41 2019 +0200

    mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies()
    
    [ Upstream commit 69ae4f6aac1578575126319d3f55550e7e440449 ]
    
    A few places in mwifiex_uap_parse_tail_ies() perform memcpy()
    unconditionally, which may lead to either buffer overflow or read over
    boundary.
    
    This patch addresses the issues by checking the read size and the
    destination size at each place more properly.  Along with the fixes,
    the patch cleans up the code slightly by introducing a temporary
    variable for the token size, and unifies the error path with the
    standard goto statement.
    
    Reported-by: huangwen <huangwen@venustech.com.cn>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 687f9cc72e09858b080a7d65e1c3253e643f6535
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed May 29 16:39:54 2019 +0300

    iwlwifi: Fix double-free problems in iwl_req_fw_callback()
    
    [ Upstream commit a8627176b0de7ba3f4524f641ddff4abf23ae4e4 ]
    
    In the error handling code of iwl_req_fw_callback(), iwl_dealloc_ucode()
    is called to free data. In iwl_drv_stop(), iwl_dealloc_ucode() is called
    again, which can cause double-free problems.
    
    To fix this bug, the call to iwl_dealloc_ucode() in
    iwl_req_fw_callback() is deleted.
    
    This bug is found by a runtime fuzzing tool named FIZZER written by us.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c02f59eb13b92a1e01a1a329aff1dac4fc4be3f
Author: Matt Chen <matt.chen@intel.com>
Date:   Wed May 29 16:39:53 2019 +0300

    iwlwifi: fix AX201 killer sku loading firmware issue
    
    [ Upstream commit b17dc0632a17fbfe66b34ee7c24e1cc10cfc503e ]
    
    When try to bring up the AX201 2 killer sku, we
    run into:
    [81261.392463] iwlwifi 0000:01:00.0: loaded firmware version 46.8c20f243.0 op_mode iwlmvm
    [81261.407407] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AX 22000, REV=0x340
    [81262.424778] iwlwifi 0000:01:00.0: Collecting data: trigger 16 fired.
    [81262.673359] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
    [81262.673365] iwlwifi 0000:01:00.0: Status: 0x00000000, count: -906373681
    [81262.673368] iwlwifi 0000:01:00.0: Loaded firmware version: 46.8c20f243.0
    [81262.673371] iwlwifi 0000:01:00.0: 0x507C015D | ADVANCED_SYSASSERT
    
    Fix this issue by adding 2 more cfg to avoid modifying the
    original cfg configuration.
    
    Signed-off-by: Matt Chen <matt.chen@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c72a7c2e945ad23eab99817a0cc5bfb344cbcd11
Author: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Date:   Wed May 29 16:39:51 2019 +0300

    iwlwifi: clear persistence bit according to device family
    
    [ Upstream commit 44f61b5c832c4085fcf476484efeaeef96dcfb8b ]
    
    The driver attempts to clear persistence bit on any device familiy even
    though only 9000 and 22000 families require it. Clear the bit only on
    the relevant device families.
    
    Each HW has different address to the write protection register. Use the
    right register for each HW
    
    Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
    Fixes: 8954e1eb2270 ("iwlwifi: trans: Clear persistence bit when starting the FW")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 597bf51869f0d830b8def6a928244e17aef8774e
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed May 29 16:39:50 2019 +0300

    iwlwifi: fix load in rfkill flow for unified firmware
    
    [ Upstream commit b3500b472c880b5abe90ffd5c4a25aa736f906ad ]
    
    When we have a single image (same firmware image for INIT and
    OPERATIONAL), we couldn't load the driver and register to the
    stack if we had hardware RF-Kill asserted.
    
    Fix this. This required a few changes:
    
    1) Run the firmware as part of the INIT phase even if its
       ucode_type is not IWL_UCODE_INIT.
    2) Send the commands that are sent to the unified image in
       INIT flow even in RF-Kill.
    3) Don't ask the transport to stop the hardware upon RF-Kill
       interrupt if the RF-Kill is asserted.
    4) Allow the RF-Kill interrupt to take us out of L1A so that
       the RF-Kill interrupt will be received by the host (to
       enable the radio).
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb1965c6d7afe5613adc882785a1a183085a26c8
Author: Luke Nelson <luke.r.nels@gmail.com>
Date:   Thu May 30 15:29:22 2019 -0700

    bpf, riscv: clear high 32 bits for ALU32 add/sub/neg/lsh/rsh/arsh
    
    [ Upstream commit 1e692f09e091bf5c8b38384f297d6dae5dbf0f12 ]
    
    In BPF, 32-bit ALU operations should zero-extend their results into
    the 64-bit registers.
    
    The current BPF JIT on RISC-V emits incorrect instructions that perform
    sign extension only (e.g., addw, subw) on 32-bit add, sub, lsh, rsh,
    arsh, and neg. This behavior diverges from the interpreter and JITs
    for other architectures.
    
    This patch fixes the bugs by performing zero extension on the destination
    register of 32-bit ALU operations.
    
    Fixes: 2353ecc6f91f ("bpf, riscv: add BPF JIT for RV64G")
    Cc: Xi Wang <xi.wang@gmail.com>
    Signed-off-by: Luke Nelson <luke.r.nels@gmail.com>
    Acked-by: Song Liu <songliubraving@fb.com>
    Acked-by: Björn Töpel <bjorn.topel@gmail.com>
    Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb48f5e50582bf44f63599b78941b325a17fa1ec
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed May 29 14:52:19 2019 +0200

    mwifiex: Fix possible buffer overflows at parsing bss descriptor
    
    [ Upstream commit 13ec7f10b87f5fc04c4ccbd491c94c7980236a74 ]
    
    mwifiex_update_bss_desc_with_ie() calls memcpy() unconditionally in
    a couple places without checking the destination size.  Since the
    source is given from user-space, this may trigger a heap buffer
    overflow.
    
    Fix it by putting the length check before performing memcpy().
    
    This fix addresses CVE-2019-3846.
    
    Reported-by: huangwen <huangwen@venustech.com.cn>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af5275fc48d2c8e5cd6a72148068be2e9bafc88f
Author: Tony Lindgren <tony@atomide.com>
Date:   Thu May 30 00:25:23 2019 -0700

    ARM: dts: Drop bogus CLKSEL for timer12 on dra7
    
    [ Upstream commit 34f61de87017aff3c8306280d196dddb1e168a88 ]
    
    There is no CLKSEL for timer12 on dra7 unlike for timer1. This
    causes issues on booting the device that Tomi noticed if
    DEBUG_SLAB is enabled and the clkctrl clock does not properly
    handle non-existing clock. Let's drop the bogus CLKSEL clock,
    the clkctrl clock handling gets fixed separately.
    
    Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Cc: Tero Kristo <t-kristo@ti.com>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Tested-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Fixes: 4ed0dfe3cf39 ("ARM: dts: dra7: Move l4 child devices to probe them with ti-sysc")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6017f0892221ee66cdf189664ae3ef644d1d7d75
Author: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
Date:   Tue May 28 16:36:16 2019 -0700

    mac80211: free peer keys before vif down in mesh
    
    [ Upstream commit 0112fa557c3bb3a002bc85760dc3761d737264d3 ]
    
    freeing peer keys after vif down is resulting in peer key uninstall
    to fail due to interface lookup failure. so fix that.
    
    Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 452989b756c6a380825b03148ef3fe0d03bea2be
Author: Thomas Pedersen <thomas@eero.com>
Date:   Fri May 24 21:16:24 2019 -0700

    mac80211: mesh: fix RCU warning
    
    [ Upstream commit 551842446ed695641a00782cd118cbb064a416a1 ]
    
    ifmsh->csa is an RCU-protected pointer. The writer context
    in ieee80211_mesh_finish_csa() is already mutually
    exclusive with wdev->sdata.mtx, but the RCU checker did
    not know this. Use rcu_dereference_protected() to avoid a
    warning.
    
    fixes the following warning:
    
    [   12.519089] =============================
    [   12.520042] WARNING: suspicious RCU usage
    [   12.520652] 5.1.0-rc7-wt+ #16 Tainted: G        W
    [   12.521409] -----------------------------
    [   12.521972] net/mac80211/mesh.c:1223 suspicious rcu_dereference_check() usage!
    [   12.522928] other info that might help us debug this:
    [   12.523984] rcu_scheduler_active = 2, debug_locks = 1
    [   12.524855] 5 locks held by kworker/u8:2/152:
    [   12.525438]  #0: 00000000057be08c ((wq_completion)phy0){+.+.}, at: process_one_work+0x1a2/0x620
    [   12.526607]  #1: 0000000059c6b07a ((work_completion)(&sdata->csa_finalize_work)){+.+.}, at: process_one_work+0x1a2/0x620
    [   12.528001]  #2: 00000000f184ba7d (&wdev->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x2f/0x90
    [   12.529116]  #3: 00000000831a1f54 (&local->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x47/0x90
    [   12.530233]  #4: 00000000fd06f988 (&local->chanctx_mtx){+.+.}, at: ieee80211_csa_finalize_work+0x51/0x90
    
    Signed-off-by: Thomas Pedersen <thomas@eero.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 179848f4d5d39b6b57dc4f95a33d684a69430a2c
Author: Melissa Wen <melissa.srw@gmail.com>
Date:   Sat May 18 22:04:56 2019 -0300

    staging:iio:ad7150: fix threshold mode config bit
    
    [ Upstream commit df4d737ee4d7205aaa6275158aeebff87fd14488 ]
    
    According to the AD7150 configuration register description, bit 7 assumes
    value 1 when the threshold mode is fixed and 0 when it is adaptive,
    however, the operation that identifies this mode was considering the
    opposite values.
    
    This patch renames the boolean variable to describe it correctly and
    properly replaces it in the places where it is used.
    
    Fixes: 531efd6aa0991 ("staging:iio:adc:ad7150: chan_spec conv + i2c_smbus commands + drop unused poweroff timeout control.")
    Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 867abba5b0c6efc857ed5423c76792f49ca4d434
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Wed May 22 17:24:43 2019 +0100

    soundwire: stream: fix out of boundary access on port properties
    
    [ Upstream commit 03ecad90d3798be11b033248bbd4bbff4425a1c7 ]
    
    Assigning local iterator to array element and using it again for
    indexing would cross the array boundary.
    Fix this by directly referring array element without using the local
    variable.
    
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8badadedccebc8d67f2920c7adc153e344777d47
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Fri May 24 08:01:00 2019 -0700

    bpf: sockmap, fix use after free from sleep in psock backlog workqueue
    
    [ Upstream commit bd95e678e0f6e18351ecdc147ca819145db9ed7b ]
    
    Backlog work for psock (sk_psock_backlog) might sleep while waiting
    for memory to free up when sending packets. However, while sleeping
    the socket may be closed and removed from the map by the user space
    side.
    
    This breaks an assumption in sk_stream_wait_memory, which expects the
    wait queue to be still there when it wakes up resulting in a
    use-after-free shown below. To fix his mark sendmsg as MSG_DONTWAIT
    to avoid the sleep altogether. We already set the flag for the
    sendpage case but we missed the case were sendmsg is used.
    Sockmap is currently the only user of skb_send_sock_locked() so only
    the sockmap paths should be impacted.
    
    ==================================================================
    BUG: KASAN: use-after-free in remove_wait_queue+0x31/0x70
    Write of size 8 at addr ffff888069a0c4e8 by task kworker/0:2/110
    
    CPU: 0 PID: 110 Comm: kworker/0:2 Not tainted 5.0.0-rc2-00335-g28f9d1a3d4fe-dirty #14
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
    Workqueue: events sk_psock_backlog
    Call Trace:
     print_address_description+0x6e/0x2b0
     ? remove_wait_queue+0x31/0x70
     kasan_report+0xfd/0x177
     ? remove_wait_queue+0x31/0x70
     ? remove_wait_queue+0x31/0x70
     remove_wait_queue+0x31/0x70
     sk_stream_wait_memory+0x4dd/0x5f0
     ? sk_stream_wait_close+0x1b0/0x1b0
     ? wait_woken+0xc0/0xc0
     ? tcp_current_mss+0xc5/0x110
     tcp_sendmsg_locked+0x634/0x15d0
     ? tcp_set_state+0x2e0/0x2e0
     ? __kasan_slab_free+0x1d1/0x230
     ? kmem_cache_free+0x70/0x140
     ? sk_psock_backlog+0x40c/0x4b0
     ? process_one_work+0x40b/0x660
     ? worker_thread+0x82/0x680
     ? kthread+0x1b9/0x1e0
     ? ret_from_fork+0x1f/0x30
     ? check_preempt_curr+0xaf/0x130
     ? iov_iter_kvec+0x5f/0x70
     ? kernel_sendmsg_locked+0xa0/0xe0
     skb_send_sock_locked+0x273/0x3c0
     ? skb_splice_bits+0x180/0x180
     ? start_thread+0xe0/0xe0
     ? update_min_vruntime.constprop.27+0x88/0xc0
     sk_psock_backlog+0xb3/0x4b0
     ? strscpy+0xbf/0x1e0
     process_one_work+0x40b/0x660
     worker_thread+0x82/0x680
     ? process_one_work+0x660/0x660
     kthread+0x1b9/0x1e0
     ? __kthread_create_on_node+0x250/0x250
     ret_from_fork+0x1f/0x30
    
    Fixes: 20bf50de3028c ("skbuff: Function to send an skbuf on a socket")
    Reported-by: Jakub Sitnicki <jakub@cloudflare.com>
    Tested-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 234d92fc85367f5655334711bba4546a2cfcb9ed
Author: John Crispin <john@phrozen.org>
Date:   Thu May 23 10:27:24 2019 +0200

    mac80211: fix rate reporting inside cfg80211_calculate_bitrate_he()
    
    [ Upstream commit 25d16d124a5e249e947c0487678b61dcff25cf8b ]
    
    The reported rate is not scaled down correctly. After applying this patch,
    the function will behave just like the v/ht equivalents.
    
    Signed-off-by: Shashidhar Lakkavalli <slakkavalli@datto.com>
    Signed-off-by: John Crispin <john@phrozen.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0579691bf74aab3785474070133f3827b6dd352f
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Wed May 22 12:01:42 2019 +0200

    bpf: sockmap, restore sk_write_space when psock gets dropped
    
    [ Upstream commit 186bcc3dcd106dc52d706117f912054b616666e1 ]
    
    Once psock gets unlinked from its sock (sk_psock_drop), user-space can
    still trigger a call to sk->sk_write_space by setting TCP_NOTSENT_LOWAT
    socket option. This causes a null-ptr-deref because we try to read
    psock->saved_write_space from sk_psock_write_space:
    
    ==================================================================
    BUG: KASAN: null-ptr-deref in sk_psock_write_space+0x69/0x80
    Read of size 8 at addr 00000000000001a0 by task sockmap-echo/131
    
    CPU: 0 PID: 131 Comm: sockmap-echo Not tainted 5.2.0-rc1-00094-gf49aa1de9836 #81
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
    ?-20180724_192412-buildhw-07.phx2.fedoraproject.org-1.fc29 04/01/2014
    Call Trace:
     ? sk_psock_write_space+0x69/0x80
     __kasan_report.cold.2+0x5/0x3f
     ? sk_psock_write_space+0x69/0x80
     kasan_report+0xe/0x20
     sk_psock_write_space+0x69/0x80
     tcp_setsockopt+0x69a/0xfc0
     ? tcp_shutdown+0x70/0x70
     ? fsnotify+0x5b0/0x5f0
     ? remove_wait_queue+0x90/0x90
     ? __fget_light+0xa5/0xf0
     __sys_setsockopt+0xe6/0x180
     ? sockfd_lookup_light+0xb0/0xb0
     ? vfs_write+0x195/0x210
     ? ksys_write+0xc9/0x150
     ? __x64_sys_read+0x50/0x50
     ? __bpf_trace_x86_fpu+0x10/0x10
     __x64_sys_setsockopt+0x61/0x70
     do_syscall_64+0xc5/0x520
     ? vmacache_find+0xc0/0x110
     ? syscall_return_slowpath+0x110/0x110
     ? handle_mm_fault+0xb4/0x110
     ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe
     ? trace_hardirqs_off_caller+0x4b/0x120
     ? trace_hardirqs_off_thunk+0x1a/0x3a
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7f2e5e7cdcce
    Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb b1 66 2e 0f 1f 84 00 00 00 00 00
    0f 1f 44 00 00 f3 0f 1e fa 49 89 ca b8 36 00 00 00 0f 05 <48> 3d 01 f0 ff
    ff 73 01 c3 48 8b 0d 8a 11 0c 00 f7 d8 64 89 01 48
    RSP: 002b:00007ffed011b778 EFLAGS: 00000206 ORIG_RAX: 0000000000000036
    RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f2e5e7cdcce
    RDX: 0000000000000019 RSI: 0000000000000006 RDI: 0000000000000007
    RBP: 00007ffed011b790 R08: 0000000000000004 R09: 00007f2e5e84ee80
    R10: 00007ffed011b788 R11: 0000000000000206 R12: 00007ffed011b78c
    R13: 00007ffed011b788 R14: 0000000000000007 R15: 0000000000000068
    ==================================================================
    
    Restore the saved sk_write_space callback when psock is being dropped to
    fix the crash.
    
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a1dbf72838b0f889d9c846076235eee527372d8f
Author: Björn Töpel <bjorn.topel@gmail.com>
Date:   Tue May 21 15:46:22 2019 +0200

    bpf, riscv: clear target register high 32-bits for and/or/xor on ALU32
    
    [ Upstream commit fe121ee531d1362810bfd30f38a1b88b1d3d376c ]
    
    When using 32-bit subregisters (ALU32), the RISC-V JIT would not clear
    the high 32-bits of the target register and therefore generate
    incorrect code.
    
    E.g., in the following code:
    
      $ cat test.c
      unsigned int f(unsigned long long a,
                   unsigned int b)
      {
            return (unsigned int)a & b;
      }
    
      $ clang-9 -target bpf -O2 -emit-llvm -S test.c -o - | \
            llc-9 -mattr=+alu32 -mcpu=v3
            .text
            .file   "test.c"
            .globl  f
            .p2align        3
            .type   f,@function
      f:
            r0 = r1
            w0 &= w2
            exit
      .Lfunc_end0:
            .size   f, .Lfunc_end0-f
    
    The JIT would not clear the high 32-bits of r0 after the
    and-operation, which in this case might give an incorrect return
    value.
    
    After this patch, that is not the case, and the upper 32-bits are
    cleared.
    
    Reported-by: Jiong Wang <jiong.wang@netronome.com>
    Fixes: 2353ecc6f91f ("bpf, riscv: add BPF JIT for RV64G")
    Signed-off-by: Björn Töpel <bjorn.topel@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ab0e4bc01ef66567c7ddb39321d76428300fc08
Author: Matteo Croce <mcroce@redhat.com>
Date:   Mon May 20 23:49:38 2019 +0200

    samples, bpf: suppress compiler warning
    
    [ Upstream commit a195cefff49f60054998333e81ee95170ce8bf92 ]
    
    GCC 9 fails to calculate the size of local constant strings and produces a
    false positive:
    
    samples/bpf/task_fd_query_user.c: In function ‘test_debug_fs_uprobe’:
    samples/bpf/task_fd_query_user.c:242:67: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 215 [-Wformat-truncation=]
      242 |  snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
          |                                                                   ^~
      243 |    event_type, event_alias);
          |                ~~~~~~~~~~~
    samples/bpf/task_fd_query_user.c:242:2: note: ‘snprintf’ output between 45 and 300 bytes into a destination of size 256
      242 |  snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id",
          |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      243 |    event_type, event_alias);
          |    ~~~~~~~~~~~~~~~~~~~~~~~~
    
    Workaround this by lowering the buffer size to a reasonable value.
    Related GCC Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83431
    
    Signed-off-by: Matteo Croce <mcroce@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5755141b26ac3c966ac3551d49655c895eb9cd0
Author: Chang-Hsien Tsai <luke.tw@gmail.com>
Date:   Sun May 19 09:05:44 2019 +0000

    samples, bpf: fix to change the buffer size for read()
    
    [ Upstream commit f7c2d64bac1be2ff32f8e4f500c6e5429c1003e0 ]
    
    If the trace for read is larger than 4096, the return
    value sz will be 4096. This results in off-by-one error
    on buf:
    
        static char buf[4096];
        ssize_t sz;
    
        sz = read(trace_fd, buf, sizeof(buf));
        if (sz > 0) {
            buf[sz] = 0;
            puts(buf);
        }
    
    Signed-off-by: Chang-Hsien Tsai <luke.tw@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e87dee8db8e2e6e507acf715c117c9dd209b4859
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Mon May 20 22:09:10 2019 -0700

    Input: elantech - enable middle button support on 2 ThinkPads
    
    [ Upstream commit aa440de3058a3ef530851f9ef373fbb5f694dbc3 ]
    
    Adding 2 new touchpad PNPIDs to enable middle button support.
    
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc1c8cfd63d4b83075b34162e80b5d03124c3980
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Apr 12 10:15:26 2019 -0700

    soc: bcm: brcmstb: biuctrl: Register writes require a barrier
    
    [ Upstream commit 6b23af0783a54efb348f0bd781b7850636023dbb ]
    
    The BIUCTRL register writes require that a data barrier be inserted
    after comitting the write to the register for the block to latch in the
    recently written values. Reads have no such requirement and are not
    changed.
    
    Fixes: 34642650e5bc ("soc: Move brcmstb to bcm/brcmstb")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 113e03c5b977608e76feaace62b7b16604607701
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Sun Apr 7 14:19:07 2019 -0700

    soc: brcmstb: Fix error path for unsupported CPUs
    
    [ Upstream commit 490cad5a3ad6ef0bfd3168a5063140b982f3b22a ]
    
    In case setup_hifcpubiuctrl_regs() returns an error, because of e.g:
    an unsupported CPU type, just catch that error and return instead of
    blindly continuing with the initialization. This fixes a NULL pointer
    de-reference with the code continuing without having a proper array of
    registers to use.
    
    Fixes: 22f7a9116eba ("soc: brcmstb: Correct CPU_CREDIT_REG offset for Brahma-B53 CPUs")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9009b798b514e23e8b548d00fd0b24a81db79206
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Tue May 21 13:34:08 2019 +0000

    crypto: talitos - rename alternative AEAD algos.
    
    commit a1a42f84011fae6ff08441a91aefeb7febc984fc upstream.
    
    The talitos driver has two ways to perform AEAD depending on the
    HW capability. Some HW support both. It is needed to give them
    different names to distingish which one it is for instance when
    a test fails.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Fixes: 7405c8d7ff97 ("crypto: talitos - templates for AEAD using HMAC_SNOOP_NO_AFEU")
    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 043b0ea769aac0dd5524ced016cbf83323468db6
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu May 30 10:53:08 2019 -0700

    crypto: lrw - use correct alignmask
    
    commit 20a0f9761343fba9b25ea46bd3a3e5e533d974f8 upstream.
    
    Commit c778f96bf347 ("crypto: lrw - Optimize tweak computation")
    incorrectly reduced the alignmask of LRW instances from
    '__alignof__(u64) - 1' to '__alignof__(__be32) - 1'.
    
    However, xor_tweak() and setkey() assume that the data and key,
    respectively, are aligned to 'be128', which has u64 alignment.
    
    Fix the alignmask to be at least '__alignof__(be128) - 1'.
    
    Fixes: c778f96bf347 ("crypto: lrw - Optimize tweak computation")
    Cc: <stable@vger.kernel.org> # v4.20+
    Cc: Ondrej Mosnacek <omosnace@redhat.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>