commit b16a5334ed1211bf961c5883eb0f3ce35e90b4df
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri May 31 06:48:32 2019 -0700

    Linux 4.9.180

commit e658aba58f03a040586e5e12ad6ca20f3b1694e6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 4 09:23:28 2017 +0100

    drm: Wake up next in drm_read() chain if we are forced to putback the event
    
    [ Upstream commit 60b801999c48b6c1dd04e653a38e2e613664264e ]
    
    After an event is sent, we try to copy it into the user buffer of the
    first waiter in drm_read() and if the user buffer doesn't have enough
    room we put it back onto the list. However, we didn't wake up any
    subsequent waiter, so that event may sit on the list until either a new
    vblank event is sent or a new waiter appears. Rare, but in the worst
    case may lead to a stuck process.
    
    Testcase: igt/drm_read/short-buffer-wakeup
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170804082328.17173-1-chris@chris-wilson.co.uk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 00cefe3441d5f97657f2a3b86fe1368ea9a4bfcd
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Mar 7 11:11:30 2019 +0100

    ASoC: davinci-mcasp: Fix clang warning without CONFIG_PM
    
    [ Upstream commit 8ca5104715cfd14254ea5aecc390ae583b707607 ]
    
    Building with clang shows a variable that is only used by the
    suspend/resume functions but defined outside of their #ifdef block:
    
    sound/soc/ti/davinci-mcasp.c:48:12: error: variable 'context_regs' is not needed and will not be emitted
    
    We commonly fix these by marking the PM functions as __maybe_unused,
    but here that would grow the davinci_mcasp structure, so instead
    add another #ifdef here.
    
    Fixes: 1cc0c054f380 ("ASoC: davinci-mcasp: Convert the context save/restore to use array")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dbf40db10413af60f9f05cbb824a17fe703a6351
Author: Chris Lesiak <chris.lesiak@licor.com>
Date:   Thu Mar 7 20:39:00 2019 +0000

    spi: Fix zero length xfer bug
    
    [ Upstream commit 5442dcaa0d90fc376bdfc179a018931a8f43dea4 ]
    
    This fixes a bug for messages containing both zero length and
    unidirectional xfers.
    
    The function spi_map_msg will allocate dummy tx and/or rx buffers
    for use with unidirectional transfers when the hardware can only do
    a bidirectional transfer.  That dummy buffer will be used in place
    of a NULL buffer even when the xfer length is 0.
    
    Then in the function __spi_map_msg, if he hardware can dma,
    the zero length xfer will have spi_map_buf called on the dummy
    buffer.
    
    Eventually, __sg_alloc_table is called and returns -EINVAL
    because nents == 0.
    
    This fix prevents the error by not using the dummy buffer when
    the xfer length is zero.
    
    Signed-off-by: Chris Lesiak <chris.lesiak@licor.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fba13bf9906c82c05b0de8baf04bdd36efc3801f
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Mar 12 19:45:13 2019 +0100

    spi: rspi: Fix sequencer reset during initialization
    
    [ Upstream commit 26843bb128590edd7eba1ad7ce22e4b9f1066ce3 ]
    
    While the sequencer is reset after each SPI message since commit
    880c6d114fd79a69 ("spi: rspi: Add support for Quad and Dual SPI
    Transfers on QSPI"), it was never reset for the first message, thus
    relying on reset state or bootloader settings.
    
    Fix this by initializing it explicitly during configuration.
    
    Fixes: 0b2182ddac4b8837 ("spi: add support for Renesas RSPI")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b764a801663a9cb6594bc1a4070b57e760f26780
Author: Aditya Pakki <pakki001@umn.edu>
Date:   Wed Mar 13 11:55:41 2019 -0500

    spi : spi-topcliff-pch: Fix to handle empty DMA buffers
    
    [ Upstream commit f37d8e67f39e6d3eaf4cc5471e8a3d21209843c6 ]
    
    pch_alloc_dma_buf allocated tx, rx DMA buffers which can fail. Further,
    these buffers are used without a check. The patch checks for these
    failures and sends the error upstream.
    
    Signed-off-by: Aditya Pakki <pakki001@umn.edu>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a042865724d999842b8da435e3b3fa46e377cdc5
Author: James Smart <jsmart2021@gmail.com>
Date:   Tue Mar 12 16:30:07 2019 -0700

    scsi: lpfc: Fix SLI3 commands being issued on SLI4 devices
    
    [ Upstream commit c95a3b4b0fb8d351e2329a96f87c4fc96a149505 ]
    
    During debug, it was seen that the driver is issuing commands specific to
    SLI3 on SLI4 devices. Although the adapter correctly rejected the command,
    this should not be done.
    
    Revise the code to stop sending these commands on a SLI4 adapter.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3136091b44d2109f7ffff9f079486bd543e427b9
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Feb 19 12:01:56 2019 -0500

    media: saa7146: avoid high stack usage with clang
    
    [ Upstream commit 03aa4f191a36f33fce015387f84efa0eee94408e ]
    
    Two saa7146/hexium files contain a construct that causes a warning
    when built with clang:
    
    drivers/media/pci/saa7146/hexium_orion.c:210:12: error: stack frame size of 2272 bytes in function 'hexium_probe'
          [-Werror,-Wframe-larger-than=]
    static int hexium_probe(struct saa7146_dev *dev)
               ^
    drivers/media/pci/saa7146/hexium_gemini.c:257:12: error: stack frame size of 2304 bytes in function 'hexium_attach'
          [-Werror,-Wframe-larger-than=]
    static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
               ^
    
    This one happens regardless of KASAN, and the problem is that a
    constructor to initialize a dynamically allocated structure leads
    to a copy of that structure on the stack, whereas gcc initializes
    it in place.
    
    Link: https://bugs.llvm.org/show_bug.cgi?id=40776
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    [hverkuil-cisco@xs4all.nl: fix checkpatch warnings]
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa28bee632af520e3c795eaccb7889c73eab2ac5
Author: James Smart <jsmart2021@gmail.com>
Date:   Tue Mar 12 16:30:20 2019 -0700

    scsi: lpfc: Fix FDMI manufacturer attribute value
    
    [ Upstream commit d67f935b79a76ac9d86dde1a27bdd413feb5d987 ]
    
    The FDMI manufacturer value being reported on Linux is inconsistent with
    other OS's.
    
    Set the value to "Emulex Corporation" for consistency.
    
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90b5be682cae747850a9591b84151fcd4e6655e9
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Feb 19 12:01:58 2019 -0500

    media: go7007: avoid clang frame overflow warning with KASAN
    
    [ Upstream commit ed713a4a1367aca5c0f2f329579465db00c17995 ]
    
    clang-8 warns about one function here when KASAN is enabled, even
    without the 'asan-stack' option:
    
    drivers/media/usb/go7007/go7007-fw.c:1551:5: warning: stack frame size of 2656 bytes in function
    
    I have reported this issue in the llvm bugzilla, but to make
    it work with the clang-8 release, a small annotation is still
    needed.
    
    Link: https://bugs.llvm.org/show_bug.cgi?id=38809
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    [hverkuil-cisco@xs4all.nl: fix checkpatch warning]
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 326326f0302b6eea10e464085da2802d14016cc5
Author: James Hutchinson <jahutchinson99@googlemail.com>
Date:   Sun Jan 13 16:13:47 2019 -0500

    media: m88ds3103: serialize reset messages in m88ds3103_set_frontend
    
    [ Upstream commit 981fbe3da20a6f35f17977453bce7dfc1664d74f ]
    
    Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323
    
    Users are experiencing problems with the DVBSky S960/S960C USB devices
    since the following commit:
    
    9d659ae: ("locking/mutex: Add lock handoff to avoid starvation")
    
    The device malfunctions after running for an indeterminable period of
    time, and the problem can only be cleared by rebooting the machine.
    
    It is possible to encourage the problem to surface by blocking the
    signal to the LNB.
    
    Further debugging revealed the cause of the problem.
    
    In the following capture:
    - thread #1325 is running m88ds3103_set_frontend
    - thread #42 is running ts2020_stat_work
    
    a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80
       [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
    b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00
       [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
       [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66
       [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
       [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
       [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
       [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b
       [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
    
    Two i2c messages are sent to perform a reset in m88ds3103_set_frontend:
    
      a. 0x07, 0x80
      b. 0x07, 0x00
    
    However, as shown in the capture, the regmap mutex is being handed over
    to another thread (ts2020_stat_work) in between these two messages.
    
    >From here, the device responds to every i2c message with an 07 message,
    and will only return to normal operation following a power cycle.
    
    Use regmap_multi_reg_write to group the two reset messages, ensuring
    both are processed before the regmap mutex is unlocked.
    
    Signed-off-by: James Hutchinson <jahutchinson99@googlemail.com>
    Reviewed-by: Antti Palosaari <crope@iki.fi>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e7df1de060e8a0cbd146fcf1b4bdba222d453fb9
Author: Sameer Pujar <spujar@nvidia.com>
Date:   Wed Mar 13 17:02:36 2019 +0530

    dmaengine: tegra210-adma: use devm_clk_*() helpers
    
    [ Upstream commit f6ed6491d565c336a360471e0c29228e34f4380e ]
    
    adma driver is using pm_clk_*() interface for managing clock resources.
    With this it is observed that clocks remain ON always. This happens on
    Tegra devices which use BPMP co-processor to manage clock resources,
    where clocks are enabled during prepare phase. This is necessary because
    clocks to BPMP are always blocking. When pm_clk_*() interface is used on
    such Tegra devices, clock prepare count is not balanced till remove call
    happens for the driver and hence clocks are seen ON always. Thus this
    patch replaces pm_clk_*() with devm_clk_*() framework.
    
    Suggested-by: Mohan Kumar D <mkumard@nvidia.com>
    Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
    Signed-off-by: Sameer Pujar <spujar@nvidia.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 309fefba1c7705dfe351a39171257f8fe30d0220
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Mar 22 15:25:03 2019 +0100

    scsi: qla4xxx: avoid freeing unallocated dma memory
    
    [ Upstream commit 608f729c31d4caf52216ea00d20092a80959256d ]
    
    Clang -Wuninitialized notices that on is_qla40XX we never allocate any DMA
    memory in get_fw_boot_info() but attempt to free it anyway:
    
    drivers/scsi/qla4xxx/ql4_os.c:5915:7: error: variable 'buf_dma' is used uninitialized whenever 'if' condition is false
          [-Werror,-Wsometimes-uninitialized]
                    if (!(val & 0x07)) {
                        ^~~~~~~~~~~~~
    drivers/scsi/qla4xxx/ql4_os.c:5985:47: note: uninitialized use occurs here
            dma_free_coherent(&ha->pdev->dev, size, buf, buf_dma);
                                                         ^~~~~~~
    drivers/scsi/qla4xxx/ql4_os.c:5915:3: note: remove the 'if' if its condition is always true
                    if (!(val & 0x07)) {
                    ^~~~~~~~~~~~~~~~~~~
    drivers/scsi/qla4xxx/ql4_os.c:5885:20: note: initialize the variable 'buf_dma' to silence this warning
            dma_addr_t buf_dma;
                              ^
                               = 0
    
    Skip the call to dma_free_coherent() here.
    
    Fixes: 2a991c215978 ("[SCSI] qla4xxx: Boot from SAN support for open-iscsi")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b62dfb54e304e7b1ebad1959652bbf3b538900b7
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Mar 22 14:54:05 2019 -0700

    usb: core: Add PM runtime calls to usb_hcd_platform_shutdown
    
    [ Upstream commit 8ead7e817224d7832fe51a19783cb8fcadc79467 ]
    
    If ohci-platform is runtime suspended, we can currently get an "imprecise
    external abort" on reboot with ohci-platform loaded when PM runtime
    is implemented for the SoC.
    
    Let's fix this by adding PM runtime support to usb_hcd_platform_shutdown.
    
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 090eb578b9e6c99041e067d64b81d7a212604156
Author: Paul E. McKenney <paulmck@linux.ibm.com>
Date:   Thu Mar 21 10:26:41 2019 -0700

    rcuperf: Fix cleanup path for invalid perf_type strings
    
    [ Upstream commit ad092c027713a68a34168942a5ef422e42e039f4 ]
    
    If the specified rcuperf.perf_type is not in the rcu_perf_init()
    function's perf_ops[] array, rcuperf prints some console messages and
    then invokes rcu_perf_cleanup() to set state so that a future torture
    test can run.  However, rcu_perf_cleanup() also attempts to end the
    test that didn't actually start, and in doing so relies on the value
    of cur_ops, a value that is not particularly relevant in this case.
    This can result in confusing output or even follow-on failures due to
    attempts to use facilities that have not been properly initialized.
    
    This commit therefore sets the value of cur_ops to NULL in this case and
    inserts a check near the beginning of rcu_perf_cleanup(), thus avoiding
    relying on an irrelevant cur_ops value.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b447e75c2c35a8509aba93e1adc0bfedafb53b6
Author: Paul E. McKenney <paulmck@linux.ibm.com>
Date:   Thu Mar 21 09:27:28 2019 -0700

    rcutorture: Fix cleanup path for invalid torture_type strings
    
    [ Upstream commit b813afae7ab6a5e91b4e16cc567331d9c2ae1f04 ]
    
    If the specified rcutorture.torture_type is not in the rcu_torture_init()
    function's torture_ops[] array, rcutorture prints some console messages
    and then invokes rcu_torture_cleanup() to set state so that a future
    torture test can run.  However, rcu_torture_cleanup() also attempts to
    end the test that didn't actually start, and in doing so relies on the
    value of cur_ops, a value that is not particularly relevant in this case.
    This can result in confusing output or even follow-on failures due to
    attempts to use facilities that have not been properly initialized.
    
    This commit therefore sets the value of cur_ops to NULL in this case
    and inserts a check near the beginning of rcu_torture_cleanup(),
    thus avoiding relying on an irrelevant cur_ops value.
    
    Reported-by: kernel test robot <rong.a.chen@intel.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9305bac20f84c93ddcbe24f2f99e8a481c77841e
Author: Tony Luck <tony.luck@intel.com>
Date:   Tue Mar 12 10:09:38 2019 -0700

    x86/mce: Fix machine_check_poll() tests for error types
    
    [ Upstream commit f19501aa07f18268ab14f458b51c1c6b7f72a134 ]
    
    There has been a lurking "TBD" in the machine check poll routine ever
    since it was first split out from the machine check handler. The
    potential issue is that the poll routine may have just begun a read from
    the STATUS register in a machine check bank when the hardware logs an
    error in that bank and signals a machine check.
    
    That race used to be pretty small back when machine checks were
    broadcast, but the addition of local machine check means that the poll
    code could continue running and clear the error from the bank before the
    local machine check handler on another CPU gets around to reading it.
    
    Fix the code to be sure to only process errors that need to be processed
    in the poll code, leaving other logged errors alone for the machine
    check handler to find and process.
    
     [ bp: Massage a bit and flip the "== 0" check to the usual !(..) test. ]
    
    Fixes: b79109c3bbcf ("x86, mce: separate correct machine check poller and fatal exception handler")
    Fixes: ed7290d0ee8f ("x86, mce: implement new status bits")
    Reported-by: Ashok Raj <ashok.raj@intel.com>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86-ml <x86@kernel.org>
    Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>
    Link: https://lkml.kernel.org/r/20190312170938.GA23035@agluck-desk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b1c2f7d1f8b314f031428b71b19ca304bec9b380
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Mar 15 02:07:12 2019 -0500

    tty: ipwireless: fix missing checks for ioremap
    
    [ Upstream commit 1bbb1c318cd8a3a39e8c3e2e83d5e90542d6c3e3 ]
    
    ipw->attr_memory and ipw->common_memory are assigned with the
    return value of ioremap. ioremap may fail, but no checks
    are enforced. The fix inserts the checks to avoid potential
    NULL pointer dereferences.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6673b01c7f498b2a0770f58b020968c98a3cb49e
Author: Pankaj Gupta <pagupta@redhat.com>
Date:   Tue Mar 19 11:34:06 2019 +0530

    virtio_console: initialize vtermno value for ports
    
    [ Upstream commit 4b0a2c5ff7215206ea6135a405f17c5f6fca7d00 ]
    
    For regular serial ports we do not initialize value of vtermno
    variable. A garbage value is assigned for non console ports.
    The value can be observed as a random integer with [1].
    
    [1] vim /sys/kernel/debug/virtio-ports/vport*p*
    
    This patch initialize the value of vtermno for console serial
    ports to '1' and regular serial ports are initiaized to '0'.
    
    Reported-by: siliu@redhat.com
    Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b98acf18eb8429aaf8cf7513b7a078736ea9c1b
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Mar 26 01:12:07 2019 -0400

    media: wl128x: prevent two potential buffer overflows
    
    [ Upstream commit 9c2ccc324b3a6cbc865ab8b3e1a09e93d3c8ade9 ]
    
    Smatch marks skb->data as untrusted so it warns that "evt_hdr->dlen"
    can copy up to 255 bytes and we only have room for two bytes.  Even
    if this comes from the firmware and we trust it, the new policy
    generally is just to fix it as kernel hardenning.
    
    I can't test this code so I tried to be very conservative.  I considered
    not allowing "evt_hdr->dlen == 1" because it doesn't initialize the
    whole variable but in the end I decided to allow it and manually
    initialized "asic_id" and "asic_ver" to zero.
    
    Fixes: e8454ff7b9a4 ("[media] drivers:media:radio: wl128x: FM Driver Common sources")
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42dc6fdd2558d16621fb7cd63b8869787189aed9
Author: Sowjanya Komatineni <skomatineni@nvidia.com>
Date:   Tue Mar 26 22:56:32 2019 -0700

    spi: tegra114: reset controller on probe
    
    [ Upstream commit 019194933339b3e9b486639c8cb3692020844d65 ]
    
    Fixes: SPI driver can be built as module so perform SPI controller reset
    on probe to make sure it is in valid state before initiating transfer.
    
    Signed-off-by: Sowjanya Komatineni <skomatineni@nvidia.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6d2eb5e070e593248c8031e266c8444f1359825
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Fri Mar 29 10:27:26 2019 -0500

    cxgb3/l2t: Fix undefined behaviour
    
    [ Upstream commit 76497732932f15e7323dc805e8ea8dc11bb587cf ]
    
    The use of zero-sized array causes undefined behaviour when it is not
    the last member in a structure. As it happens to be in this case.
    
    Also, the current code makes use of a language extension to the C90
    standard, but the preferred mechanism to declare variable-length
    types such as this one is a flexible array member, introduced in
    C99:
    
    struct foo {
            int stuff;
            struct boo array[];
    };
    
    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last. Which is beneficial
    to cultivate a high-quality code.
    
    Fixes: e48f129c2f20 ("[SCSI] cxgb3i: convert cdev->l2opt to use rcu to prevent NULL dereference")
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8551f89acf0b87487901275c96d98cc2fdda4ee9
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Tue Feb 26 16:17:50 2019 +0800

    ASoC: fsl_utils: fix a leaked reference by adding missing of_node_put
    
    [ Upstream commit c705247136a523488eac806bd357c3e5d79a7acd ]
    
    The call to of_parse_phandle returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./sound/soc/fsl/fsl_utils.c:74:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 38, but without a corresponding     object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: Timur Tabi <timur@kernel.org>
    Cc: Nicolin Chen <nicoleotsuka@gmail.com>
    Cc: Xiubo Li <Xiubo.Lee@gmail.com>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: Liam Girdwood <lgirdwood@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Takashi Iwai <tiwai@suse.com>
    Cc: alsa-devel@alsa-project.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bac9fcee9b688ea176613978763fbf12cfd21cc8
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Tue Feb 26 16:17:51 2019 +0800

    ASoC: eukrea-tlv320: fix a leaked reference by adding missing of_node_put
    
    [ Upstream commit b820d52e7eed7b30b2dfef5f4213a2bc3cbea6f3 ]
    
    The call to of_parse_phandle returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./sound/soc/fsl/eukrea-tlv320.c:121:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 102, but without a correspo    nding object release within this function.
    ./sound/soc/fsl/eukrea-tlv320.c:127:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 102, but without a correspo    nding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: Liam Girdwood <lgirdwood@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Jaroslav Kysela <perex@perex.cz>
    Cc: Takashi Iwai <tiwai@suse.com>
    Cc: alsa-devel@alsa-project.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1410277e190084f1de51f8656215d508d9132086
Author: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date:   Wed Mar 27 11:18:48 2019 +0100

    HID: core: move Usage Page concatenation to Main item
    
    [ Upstream commit 58e75155009cc800005629955d3482f36a1e0eec ]
    
    As seen on some USB wireless keyboards manufactured by Primax, the HID
    parser was using some assumptions that are not always true. In this case
    it's s the fact that, inside the scope of a main item, an Usage Page
    will always precede an Usage.
    
    The spec is not pretty clear as 6.2.2.7 states "Any usage that follows
    is interpreted as a Usage ID and concatenated with the Usage Page".
    While 6.2.2.8 states "When the parser encounters a main item it
    concatenates the last declared Usage Page with a Usage to form a
    complete usage value." Being somewhat contradictory it was decided to
    match Window's implementation, which follows 6.2.2.8.
    
    In summary, the patch moves the Usage Page concatenation from the local
    item parsing function to the main item parsing function.
    
    Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Reviewed-by: Terry Junge <terry.junge@poly.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb22efcb872b8108131a38399ae910dcb0304770
Author: Chengguang Xu <cgxu519@gmx.com>
Date:   Fri Feb 15 20:27:11 2019 +0800

    chardev: add additional check for minor range overlap
    
    [ Upstream commit de36e16d1557a0b6eb328bc3516359a12ba5c25c ]
    
    Current overlap checking cannot correctly handle
    a case which is baseminor < existing baseminor &&
    baseminor + minorct > existing baseminor + minorct.
    
    Signed-off-by: Chengguang Xu <cgxu519@gmx.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit de90525fbe776d0faa3073aec11e6718eced518e
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Mon Feb 25 12:56:35 2019 +0100

    x86/ia32: Fix ia32_restore_sigcontext() AC leak
    
    [ Upstream commit 67a0514afdbb8b2fc70b771b8c77661a9cb9d3a9 ]
    
    Objtool spotted that we call native_load_gs_index() with AC set.
    Re-arrange the code to avoid that.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8fb42b7b5019ecac1f9dc7fa6a3aa557facaeb7
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Apr 3 09:39:48 2019 +0200

    x86/uaccess, signal: Fix AC=1 bloat
    
    [ Upstream commit 88e4718275c1bddca6f61f300688b4553dc8584b ]
    
    Occasionally GCC is less agressive with inlining and the following is
    observed:
    
      arch/x86/kernel/signal.o: warning: objtool: restore_sigcontext()+0x3cc: call to force_valid_ss.isra.5() with UACCESS enabled
      arch/x86/kernel/signal.o: warning: objtool: do_signal()+0x384: call to frame_uc_flags.isra.0() with UACCESS enabled
    
    Cure this by moving this code out of the AC=1 region, since it really
    isn't needed for the user access.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e07fb7e7dd437330fd62420979e18b4ea3d0eb20
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Tue Mar 5 19:34:05 2019 +0800

    arm64: cpu_ops: fix a leaked reference by adding missing of_node_put
    
    [ Upstream commit 92606ec9285fb84cd9b5943df23f07d741384bfc ]
    
    The call to of_get_next_child returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
      ./arch/arm64/kernel/cpu_ops.c:102:1-7: ERROR: missing of_node_put;
      acquired a node pointer with refcount incremented on line 69, but
      without a corresponding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41761299d1401a9311d3f70563a4308e01c8d6ad
Author: Stanley Chu <stanley.chu@mediatek.com>
Date:   Thu Mar 28 17:16:24 2019 +0800

    scsi: ufs: Avoid configuring regulator with undefined voltage range
    
    [ Upstream commit 3b141e8cfd54ba3e5c610717295b2a02aab26a05 ]
    
    For regulators used by UFS, vcc, vccq and vccq2 will have voltage range
    initialized by ufshcd_populate_vreg(), however other regulators may have
    undefined voltage range if dt-bindings have no such definition.
    
    In above undefined case, both "min_uV" and "max_uV" fields in ufs_vreg
    struct will be zero values and these values will be configured on
    regulators in different power modes.
    
    Currently this may have no harm if both "min_uV" and "max_uV" always keep
    "zero values" because regulator_set_voltage() will always bypass such
    invalid values and return "good" results.
    
    However improper values shall be fixed to avoid potential bugs.  Simply
    bypass voltage configuration if voltage range is not defined.
    
    Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Acked-by: Alim Akhtar <alim.akhtar@samsung.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 75246f5711d9c7a2dd9d07ce5084eed7b29be5ed
Author: Stanley Chu <stanley.chu@mediatek.com>
Date:   Thu Mar 28 17:16:25 2019 +0800

    scsi: ufs: Fix regulator load and icc-level configuration
    
    [ Upstream commit 0487fff76632ec023d394a05b82e87a971db8c03 ]
    
    Currently if a regulator has "<name>-fixed-regulator" property in device
    tree, it will skip current limit initialization.  This lead to a zero
    "max_uA" value in struct ufs_vreg.
    
    However, "regulator_set_load" operation shall be required on regulators
    which have valid current limits, otherwise a zero "max_uA" set by
    "regulator_set_load" may cause unexpected behavior when this regulator is
    enabled or set as high power mode.
    
    Similarly, in device's icc_level configuration flow, the target icc_level
    shall be updated if regulator also has valid current limit, otherwise a
    wrong icc_level will be calculated by zero "max_uA" and thus causes
    unexpected results after it is written to device.
    
    Signed-off-by: Stanley Chu <stanley.chu@mediatek.com>
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Acked-by: Alim Akhtar <alim.akhtar@samsung.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 638b996ec156c241491933ce424d7ed7b5f0a99e
Author: Piotr Figiel <p.figiel@camlintechnologies.com>
Date:   Wed Mar 13 09:52:01 2019 +0000

    brcmfmac: fix Oops when bringing up interface during USB disconnect
    
    [ Upstream commit 24d413a31afaee9bbbf79226052c386b01780ce2 ]
    
    Fix a race which leads to an Oops with NULL pointer dereference.  The
    dereference is in brcmf_config_dongle() when cfg_to_ndev() attempts to get
    net_device structure of interface with index 0 via if2bss mapping. This
    shouldn't fail because of check for bus being ready in brcmf_netdev_open(),
    but it's not synchronised with USB disconnect and there is a race: after
    the check the bus can be marked down and the mapping for interface 0 may be
    gone.
    
    Solve this by modifying disconnect handling so that the removal of mapping
    of ifidx to brcmf_if structure happens after netdev removal (which is
    synchronous with brcmf_netdev_open() thanks to rtln being locked in
    devinet_ioctl()). This assures brcmf_netdev_open() returns before the
    mapping is removed during disconnect.
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000008
    pgd = bcae2612
    [00000008] *pgd=8be73831
    Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    Modules linked in: brcmfmac brcmutil nf_log_ipv4 nf_log_common xt_LOG xt_limit
    iptable_mangle xt_connmark xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6
    nf_defrag_ipv4 iptable_filter ip_tables x_tables usb_f_mass_storage usb_f_rndis
    u_ether usb_serial_simple usbserial cdc_acm smsc95xx usbnet ci_hdrc_imx ci_hdrc
    usbmisc_imx ulpi 8250_exar 8250_pci 8250 8250_base libcomposite configfs
    udc_core [last unloaded: brcmutil]
    CPU: 2 PID: 24478 Comm: ifconfig Not tainted 4.19.23-00078-ga62866d-dirty #115
    Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    PC is at brcmf_cfg80211_up+0x94/0x29c [brcmfmac]
    LR is at brcmf_cfg80211_up+0x8c/0x29c [brcmfmac]
    pc : [<7f26a91c>]    lr : [<7f26a914>]    psr: a0070013
    sp : eca99d28  ip : 00000000  fp : ee9c6c00
    r10: 00000036  r9 : 00000000  r8 : ece4002c
    r7 : edb5b800  r6 : 00000000  r5 : 80f08448  r4 : edb5b968
    r3 : ffffffff  r2 : 00000000  r1 : 00000002  r0 : 00000000
    Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    Control: 10c5387d  Table: 7ca0c04a  DAC: 00000051
    Process ifconfig (pid: 24478, stack limit = 0xd9e85a0e)
    Stack: (0xeca99d28 to 0xeca9a000)
    9d20:                   00000000 80f873b0 0000000d 80f08448 eca99d68 50d45f32
    9d40: 7f27de94 ece40000 80f08448 80f08448 7f27de94 ece4002c 00000000 00000036
    9d60: ee9c6c00 7f27262c 00001002 50d45f32 ece40000 00000000 80f08448 80772008
    9d80: 00000001 00001043 00001002 ece40000 00000000 50d45f32 ece40000 00000001
    9da0: 80f08448 00001043 00001002 807723d0 00000000 50d45f32 80f08448 eca99e58
    9dc0: 80f87113 50d45f32 80f08448 ece40000 ece40138 00001002 80f08448 00000000
    9de0: 00000000 80772434 edbd5380 eca99e58 edbd5380 80f08448 ee9c6c0c 80805f70
    9e00: 00000000 ede08e00 00008914 ece40000 00000014 ee9c6c0c 600c0013 00001043
    9e20: 0208a8c0 ffffffff 00000000 50d45f32 eca98000 80f08448 7ee9fc38 00008914
    9e40: 80f68e40 00000051 eca98000 00000036 00000003 80808b9c 6e616c77 00000030
    9e60: 00000000 00000000 00001043 0208a8c0 ffffffff 00000000 80f08448 00000000
    9e80: 00000000 816d8b20 600c0013 00000001 ede09320 801763d4 00000000 50d45f32
    9ea0: eca98000 80f08448 7ee9fc38 50d45f32 00008914 80f08448 7ee9fc38 80f68e40
    9ec0: ed531540 8074721c 00000800 00000001 00000000 6e616c77 00000030 00000000
    9ee0: 00000000 00001002 0208a8c0 ffffffff 00000000 50d45f32 80f08448 7ee9fc38
    9f00: ed531560 ec8fc900 80285a6c 80285138 edb910c0 00000000 ecd91008 ede08e00
    9f20: 80f08448 00000000 00000000 816d8b20 600c0013 00000001 ede09320 801763d4
    9f40: 00000000 50d45f32 00021000 edb91118 edb910c0 80f08448 01b29000 edb91118
    9f60: eca99f7c 50d45f32 00021000 ec8fc900 00000003 ec8fc900 00008914 7ee9fc38
    9f80: eca98000 00000036 00000003 80285a6c 00086364 7ee9fe1c 000000c3 00000036
    9fa0: 801011c4 80101000 00086364 7ee9fe1c 00000003 00008914 7ee9fc38 00086364
    9fc0: 00086364 7ee9fe1c 000000c3 00000036 0008630c 7ee9fe1c 7ee9fc38 00000003
    9fe0: 000a42b8 7ee9fbd4 00019914 76e09acc 600c0010 00000003 00000000 00000000
    [<7f26a91c>] (brcmf_cfg80211_up [brcmfmac]) from [<7f27262c>] (brcmf_netdev_open+0x74/0xe8 [brcmfmac])
    [<7f27262c>] (brcmf_netdev_open [brcmfmac]) from [<80772008>] (__dev_open+0xcc/0x150)
    [<80772008>] (__dev_open) from [<807723d0>] (__dev_change_flags+0x168/0x1b4)
    [<807723d0>] (__dev_change_flags) from [<80772434>] (dev_change_flags+0x18/0x48)
    [<80772434>] (dev_change_flags) from [<80805f70>] (devinet_ioctl+0x67c/0x79c)
    [<80805f70>] (devinet_ioctl) from [<80808b9c>] (inet_ioctl+0x210/0x3d4)
    [<80808b9c>] (inet_ioctl) from [<8074721c>] (sock_ioctl+0x350/0x524)
    [<8074721c>] (sock_ioctl) from [<80285138>] (do_vfs_ioctl+0xb0/0x9b0)
    [<80285138>] (do_vfs_ioctl) from [<80285a6c>] (ksys_ioctl+0x34/0x5c)
    [<80285a6c>] (ksys_ioctl) from [<80101000>] (ret_fast_syscall+0x0/0x28)
    Exception stack(0xeca99fa8 to 0xeca99ff0)
    9fa0:                   00086364 7ee9fe1c 00000003 00008914 7ee9fc38 00086364
    9fc0: 00086364 7ee9fe1c 000000c3 00000036 0008630c 7ee9fe1c 7ee9fc38 00000003
    9fe0: 000a42b8 7ee9fbd4 00019914 76e09acc
    Code: e5970328 eb002021 e1a02006 e3a01002 (e5909008)
    ---[ end trace 5cbac2333f3ac5df ]---
    
    Signed-off-by: Piotr Figiel <p.figiel@camlintechnologies.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d857a7a203654d65e2d8f0a69191df432f10ddde
Author: Piotr Figiel <p.figiel@camlintechnologies.com>
Date:   Fri Mar 8 15:25:04 2019 +0000

    brcmfmac: fix race during disconnect when USB completion is in progress
    
    [ Upstream commit db3b9e2e1d58080d0754bdf9293dabf8c6491b67 ]
    
    It was observed that rarely during USB disconnect happening shortly after
    connect (before full initialization completes) usb_hub_wq would wait
    forever for the dev_init_lock to be unlocked. dev_init_lock would remain
    locked though because of infinite wait during usb_kill_urb:
    
    [ 2730.656472] kworker/0:2     D    0   260      2 0x00000000
    [ 2730.660700] Workqueue: events request_firmware_work_func
    [ 2730.664807] [<809dca20>] (__schedule) from [<809dd164>] (schedule+0x4c/0xac)
    [ 2730.670587] [<809dd164>] (schedule) from [<8069af44>] (usb_kill_urb+0xdc/0x114)
    [ 2730.676815] [<8069af44>] (usb_kill_urb) from [<7f258b50>] (brcmf_usb_free_q+0x34/0xa8 [brcmfmac])
    [ 2730.684833] [<7f258b50>] (brcmf_usb_free_q [brcmfmac]) from [<7f2517d4>] (brcmf_detach+0xa0/0xb8 [brcmfmac])
    [ 2730.693557] [<7f2517d4>] (brcmf_detach [brcmfmac]) from [<7f251a34>] (brcmf_attach+0xac/0x3d8 [brcmfmac])
    [ 2730.702094] [<7f251a34>] (brcmf_attach [brcmfmac]) from [<7f2587ac>] (brcmf_usb_probe_phase2+0x468/0x4a0 [brcmfmac])
    [ 2730.711601] [<7f2587ac>] (brcmf_usb_probe_phase2 [brcmfmac]) from [<7f252888>] (brcmf_fw_request_done+0x194/0x220 [brcmfmac])
    [ 2730.721795] [<7f252888>] (brcmf_fw_request_done [brcmfmac]) from [<805748e4>] (request_firmware_work_func+0x4c/0x88)
    [ 2730.731125] [<805748e4>] (request_firmware_work_func) from [<80141474>] (process_one_work+0x228/0x808)
    [ 2730.739223] [<80141474>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564)
    [ 2730.746105] [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c)
    [ 2730.752227] [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20)
    
    [ 2733.099695] kworker/0:3     D    0  1065      2 0x00000000
    [ 2733.103926] Workqueue: usb_hub_wq hub_event
    [ 2733.106914] [<809dca20>] (__schedule) from [<809dd164>] (schedule+0x4c/0xac)
    [ 2733.112693] [<809dd164>] (schedule) from [<809e2a8c>] (schedule_timeout+0x214/0x3e4)
    [ 2733.119621] [<809e2a8c>] (schedule_timeout) from [<809dde2c>] (wait_for_common+0xc4/0x1c0)
    [ 2733.126810] [<809dde2c>] (wait_for_common) from [<7f258d00>] (brcmf_usb_disconnect+0x1c/0x4c [brcmfmac])
    [ 2733.135206] [<7f258d00>] (brcmf_usb_disconnect [brcmfmac]) from [<8069e0c8>] (usb_unbind_interface+0x5c/0x1e4)
    [ 2733.143943] [<8069e0c8>] (usb_unbind_interface) from [<8056d3e8>] (device_release_driver_internal+0x164/0x1fc)
    [ 2733.152769] [<8056d3e8>] (device_release_driver_internal) from [<8056c078>] (bus_remove_device+0xd0/0xfc)
    [ 2733.161138] [<8056c078>] (bus_remove_device) from [<8056977c>] (device_del+0x11c/0x310)
    [ 2733.167939] [<8056977c>] (device_del) from [<8069cba8>] (usb_disable_device+0xa0/0x1cc)
    [ 2733.174743] [<8069cba8>] (usb_disable_device) from [<8069507c>] (usb_disconnect+0x74/0x1dc)
    [ 2733.181823] [<8069507c>] (usb_disconnect) from [<80695e88>] (hub_event+0x478/0xf88)
    [ 2733.188278] [<80695e88>] (hub_event) from [<80141474>] (process_one_work+0x228/0x808)
    [ 2733.194905] [<80141474>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564)
    [ 2733.201724] [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c)
    [ 2733.207913] [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20)
    
    It was traced down to a case where usb_kill_urb would be called on an URB
    structure containing more or less random data, including large number in
    its use_count. During the debugging it appeared that in brcmf_usb_free_q()
    the traversal over URBs' lists is not synchronized with operations on those
    lists in brcmf_usb_rx_complete() leading to handling
    brcmf_usbdev_info structure (holding lists' head) as lists' element and in
    result causing above problem.
    
    Fix it by walking through all URBs during brcmf_cancel_all_urbs using the
    arrays of requests instead of linked lists.
    
    Signed-off-by: Piotr Figiel <p.figiel@camlintechnologies.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d696d385993c83ffa5debbf5200de8303a036cb6
Author: Piotr Figiel <p.figiel@camlintechnologies.com>
Date:   Wed Mar 13 09:52:42 2019 +0000

    brcmfmac: convert dev_init_lock mutex to completion
    
    [ Upstream commit a9fd0953fa4a62887306be28641b4b0809f3b2fd ]
    
    Leaving dev_init_lock mutex locked in probe causes BUG and a WARNING when
    kernel is compiled with CONFIG_PROVE_LOCKING. Convert mutex to completion
    which silences those warnings and improves code readability.
    
    Fix below errors when connecting the USB WiFi dongle:
    
    brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43143 for chip BCM43143/2
    BUG: workqueue leaked lock or atomic: kworker/0:2/0x00000000/434
         last function: hub_event
    1 lock held by kworker/0:2/434:
     #0: 18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac]
    CPU: 0 PID: 434 Comm: kworker/0:2 Not tainted 4.19.23-00084-g454a789-dirty #123
    Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    Workqueue: usb_hub_wq hub_event
    [<8011237c>] (unwind_backtrace) from [<8010d74c>] (show_stack+0x10/0x14)
    [<8010d74c>] (show_stack) from [<809c4324>] (dump_stack+0xa8/0xd4)
    [<809c4324>] (dump_stack) from [<8014195c>] (process_one_work+0x710/0x808)
    [<8014195c>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564)
    [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c)
    [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20)
    Exception stack(0xed1d9fb0 to 0xed1d9ff8)
    9fa0:                                     00000000 00000000 00000000 00000000
    9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
    
    ======================================================
    WARNING: possible circular locking dependency detected
    4.19.23-00084-g454a789-dirty #123 Not tainted
    ------------------------------------------------------
    kworker/0:2/434 is trying to acquire lock:
    e29cf799 ((wq_completion)"events"){+.+.}, at: process_one_work+0x174/0x808
    
    but task is already holding lock:
    18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac]
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #2 (&devinfo->dev_init_lock){+.+.}:
           mutex_lock_nested+0x1c/0x24
           brcmf_usb_probe+0x78/0x550 [brcmfmac]
           usb_probe_interface+0xc0/0x1bc
           really_probe+0x228/0x2c0
           __driver_attach+0xe4/0xe8
           bus_for_each_dev+0x68/0xb4
           bus_add_driver+0x19c/0x214
           driver_register+0x78/0x110
           usb_register_driver+0x84/0x148
           process_one_work+0x228/0x808
           worker_thread+0x2c/0x564
           kthread+0x13c/0x16c
           ret_from_fork+0x14/0x20
             (null)
    
    -> #1 (brcmf_driver_work){+.+.}:
           worker_thread+0x2c/0x564
           kthread+0x13c/0x16c
           ret_from_fork+0x14/0x20
             (null)
    
    -> #0 ((wq_completion)"events"){+.+.}:
           process_one_work+0x1b8/0x808
           worker_thread+0x2c/0x564
           kthread+0x13c/0x16c
           ret_from_fork+0x14/0x20
             (null)
    
    other info that might help us debug this:
    
    Chain exists of:
      (wq_completion)"events" --> brcmf_driver_work --> &devinfo->dev_init_lock
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&devinfo->dev_init_lock);
                                   lock(brcmf_driver_work);
                                   lock(&devinfo->dev_init_lock);
      lock((wq_completion)"events");
    
     *** DEADLOCK ***
    
    1 lock held by kworker/0:2/434:
     #0: 18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac]
    
    stack backtrace:
    CPU: 0 PID: 434 Comm: kworker/0:2 Not tainted 4.19.23-00084-g454a789-dirty #123
    Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    Workqueue: events request_firmware_work_func
    [<8011237c>] (unwind_backtrace) from [<8010d74c>] (show_stack+0x10/0x14)
    [<8010d74c>] (show_stack) from [<809c4324>] (dump_stack+0xa8/0xd4)
    [<809c4324>] (dump_stack) from [<80172838>] (print_circular_bug+0x210/0x330)
    [<80172838>] (print_circular_bug) from [<80175940>] (__lock_acquire+0x160c/0x1a30)
    [<80175940>] (__lock_acquire) from [<8017671c>] (lock_acquire+0xe0/0x268)
    [<8017671c>] (lock_acquire) from [<80141404>] (process_one_work+0x1b8/0x808)
    [<80141404>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564)
    [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c)
    [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20)
    Exception stack(0xed1d9fb0 to 0xed1d9ff8)
    9fa0:                                     00000000 00000000 00000000 00000000
    9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
    
    Signed-off-by: Piotr Figiel <p.figiel@camlintechnologies.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 66fb5810f1adf906441f7b3aa91745b0a1d9884a
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Mar 22 15:37:02 2019 +0100

    b43: shut up clang -Wuninitialized variable warning
    
    [ Upstream commit d825db346270dbceef83b7b750dbc29f1d7dcc0e ]
    
    Clang warns about what is clearly a case of passing an uninitalized
    variable into a static function:
    
    drivers/net/wireless/broadcom/b43/phy_lp.c:1852:23: error: variable 'gains' is uninitialized when used here
          [-Werror,-Wuninitialized]
                    lpphy_papd_cal(dev, gains, 0, 1, 30);
                                        ^~~~~
    drivers/net/wireless/broadcom/b43/phy_lp.c:1838:2: note: variable 'gains' is declared here
            struct lpphy_tx_gains gains, oldgains;
            ^
    1 error generated.
    
    However, this function is empty, and its arguments are never evaluated,
    so gcc in contrast does not warn here. Both compilers behave in a
    reasonable way as far as I can tell, so we should change the code
    to avoid the warning everywhere.
    
    We could just eliminate the lpphy_papd_cal() function entirely,
    given that it has had the TODO comment in it for 10 years now
    and is rather unlikely to ever get done. I'm doing a simpler
    change here, and just pass the 'oldgains' variable in that has
    been initialized, based on the guess that this is what was
    originally meant.
    
    Fixes: 2c0d6100da3e ("b43: LP-PHY: Begin implementing calibration & software RFKILL support")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d647661f8537891db2548f8a27072f5354ca49a7
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Mar 15 12:04:32 2019 -0500

    brcmfmac: fix missing checks for kmemdup
    
    [ Upstream commit 46953f97224d56a12ccbe9c6acaa84ca0dab2780 ]
    
    In case kmemdup fails, the fix sets conn_info->req_ie_len and
    conn_info->resp_ie_len to zero to avoid buffer overflows.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ff8545c6abda22e70728a69fcb4c8cc3ce87880
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Tue Mar 12 15:03:58 2019 +0800

    mwifiex: Fix mem leak in mwifiex_tm_cmd
    
    [ Upstream commit 003b686ace820ce2d635a83f10f2d7f9c147dabc ]
    
    'hostcmd' is alloced by kzalloc, should be freed before
    leaving from the error handling cases, otherwise it will
    cause mem leak.
    
    Fixes: 3935ccc14d2c ("mwifiex: add cfg80211 testmode support")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 088c9aa3ce6a6cddb38f3c7b561e5aadd4ca2f09
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Tue Mar 12 02:56:33 2019 -0500

    rtlwifi: fix a potential NULL pointer dereference
    
    [ Upstream commit 765976285a8c8db3f0eb7f033829a899d0c2786e ]
    
    In case alloc_workqueue fails, the fix reports the error and
    returns to avoid NULL pointer dereference.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0ef67afb865c7e7e4a3d2492c9b2491e4520e93
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Mar 7 14:45:46 2019 -0700

    iio: common: ssp_sensors: Initialize calculated_time in ssp_common_process_data
    
    [ Upstream commit 6f9ca1d3eb74b81f811a87002de2d51640d135b1 ]
    
    When building with -Wsometimes-uninitialized, Clang warns:
    
    drivers/iio/common/ssp_sensors/ssp_iio.c:95:6: warning: variable
    'calculated_time' is used uninitialized whenever 'if' condition is false
    [-Wsometimes-uninitialized]
    
    While it isn't wrong, this will never be a problem because
    iio_push_to_buffers_with_timestamp only uses calculated_time
    on the same condition that it is assigned (when scan_timestamp
    is not zero). While iio_push_to_buffers_with_timestamp is marked
    as inline, Clang does inlining in the optimization stage, which
    happens after the semantic analysis phase (plus inline is merely
    a hint to the compiler).
    
    Fix this by just zero initializing calculated_time.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/394
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2fd9d6a0fd6944360ad05c8646ed11c87671d6bf
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Sat Mar 16 17:08:33 2019 -0500

    iio: hmc5843: fix potential NULL pointer dereferences
    
    [ Upstream commit 536cc27deade8f1ec3c1beefa60d5fbe0f6fcb28 ]
    
    devm_regmap_init_i2c may fail and return NULL. The fix returns
    the error when it fails.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ce6473c392b014072142dc5cc0eed2375c8a4fd
Author: Lars-Peter Clausen <lars@metafoo.de>
Date:   Tue Mar 19 13:37:55 2019 +0200

    iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion
    
    [ Upstream commit df1d80aee963480c5c2938c64ec0ac3e4a0df2e0 ]
    
    For devices from the SigmaDelta family we need to keep CS low when doing a
    conversion, since the device will use the MISO line as a interrupt to
    indicate that the conversion is complete.
    
    This is why the driver locks the SPI bus and when the SPI bus is locked
    keeps as long as a conversion is going on. The current implementation gets
    one small detail wrong though. CS is only de-asserted after the SPI bus is
    unlocked. This means it is possible for a different SPI device on the same
    bus to send a message which would be wrongfully be addressed to the
    SigmaDelta device as well. Make sure that the last SPI transfer that is
    done while holding the SPI bus lock de-asserts the CS signal.
    
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Alexandru Ardelean <Alexandru.Ardelean@analog.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c5e8fa7f725ac44ce7b66fe6322d50cd3a7b8a70
Author: Kees Cook <keescook@chromium.org>
Date:   Thu Apr 4 14:40:27 2019 -0700

    x86/build: Keep local relocations with ld.lld
    
    [ Upstream commit 7c21383f3429dd70da39c0c7f1efa12377a47ab6 ]
    
    The LLVM linker (ld.lld) defaults to removing local relocations, which
    causes KASLR boot failures. ld.bfd and ld.gold already handle this
    correctly. This adds the explicit instruction "--discard-none" during
    the link phase. There is no change in output for ld.bfd and ld.gold,
    but ld.lld now produces an image with all the needed relocations.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: clang-built-linux@googlegroups.com
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20190404214027.GA7324@beast
    Link: https://github.com/ClangBuiltLinux/linux/issues/404
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7296978b4925e6116d59e4d708bc3c8e6df9701d
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Mon Apr 1 09:37:53 2019 +0800

    cpufreq: pmac32: fix possible object reference leak
    
    [ Upstream commit 8d10dc28a9ea6e8c02e825dab28699f3c72b02d9 ]
    
    The call to of_find_node_by_name returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./drivers/cpufreq/pmac32-cpufreq.c:557:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 552, but without a corresponding object release within this function.
    ./drivers/cpufreq/pmac32-cpufreq.c:569:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 552, but without a corresponding object release within this function.
    ./drivers/cpufreq/pmac32-cpufreq.c:598:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 587, but without a corresponding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: linux-pm@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bf1ff11b3fb7e8ebd5b2cef8265a4d4d58007c89
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Mon Apr 1 09:37:52 2019 +0800

    cpufreq/pasemi: fix possible object reference leak
    
    [ Upstream commit a9acc26b75f652f697e02a9febe2ab0da648a571 ]
    
    The call to of_get_cpu_node returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./drivers/cpufreq/pasemi-cpufreq.c:212:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 147, but without a corresponding object release within this function.
    ./drivers/cpufreq/pasemi-cpufreq.c:220:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 147, but without a corresponding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-pm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5a5e3e7e6d8a659c3e30caad194b6498f2916ece
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Mon Apr 1 09:37:54 2019 +0800

    cpufreq: ppc_cbe: fix possible object reference leak
    
    [ Upstream commit 233298032803f2802fe99892d0de4ab653bfece4 ]
    
    The call to of_get_cpu_node returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./drivers/cpufreq/ppc_cbe_cpufreq.c:89:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 76, but without a corresponding object release within this function.
    ./drivers/cpufreq/ppc_cbe_cpufreq.c:89:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 76, but without a corresponding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: linux-pm@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f16886fa4b36f82644eaab0e13040838a7614658
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Apr 8 23:26:20 2019 +0200

    s390: cio: fix cio_irb declaration
    
    [ Upstream commit e91012ee855ad9f5ef2ab106a3de51db93fe4d0c ]
    
    clang points out that the declaration of cio_irb does not match the
    definition exactly, it is missing the alignment attribute:
    
    ../drivers/s390/cio/cio.c:50:1: warning: section does not match previous declaration [-Wsection]
    DEFINE_PER_CPU_ALIGNED(struct irb, cio_irb);
    ^
    ../include/linux/percpu-defs.h:150:2: note: expanded from macro 'DEFINE_PER_CPU_ALIGNED'
            DEFINE_PER_CPU_SECTION(type, name, PER_CPU_ALIGNED_SECTION)     \
            ^
    ../include/linux/percpu-defs.h:93:9: note: expanded from macro 'DEFINE_PER_CPU_SECTION'
            extern __PCPU_ATTRS(sec) __typeof__(type) name;                 \
                   ^
    ../include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS'
            __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))     \
                                    ^
    ../drivers/s390/cio/cio.h:118:1: note: previous attribute is here
    DECLARE_PER_CPU(struct irb, cio_irb);
    ^
    ../include/linux/percpu-defs.h:111:2: note: expanded from macro 'DECLARE_PER_CPU'
            DECLARE_PER_CPU_SECTION(type, name, "")
            ^
    ../include/linux/percpu-defs.h:87:9: note: expanded from macro 'DECLARE_PER_CPU_SECTION'
            extern __PCPU_ATTRS(sec) __typeof__(type) name
                   ^
    ../include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS'
            __percpu __attribute__((section(PER_CPU_BASE_SECTION sec)))     \
                                    ^
    Use DECLARE_PER_CPU_ALIGNED() here, to make the two match.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffd48ee82f428594ccb0029e9eb01a86e4bbc813
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Thu Apr 4 17:33:56 2019 +0100

    extcon: arizona: Disable mic detect if running when driver is removed
    
    [ Upstream commit 00053de52231117ddc154042549f2256183ffb86 ]
    
    Microphone detection provides the button detection features on the
    Arizona CODECs as such it will be running if the jack is currently
    inserted. If the driver is unbound whilst the jack is still inserted
    this will cause warnings from the regulator framework as the MICVDD
    regulator is put but was never disabled.
    
    Correct this by disabling microphone detection on driver removal and if
    the microphone detection was running disable the regulator and put the
    runtime reference that was currently held.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f4bb904143a5dd41383bc0e4d96760a2aa2b8fcf
Author: Ulf Hansson <ulf.hansson@linaro.org>
Date:   Wed Apr 10 11:55:16 2019 +0200

    PM / core: Propagate dev->power.wakeup_path when no callbacks
    
    [ Upstream commit dc351d4c5f4fe4d0f274d6d660227be0c3a03317 ]
    
    The dev->power.direct_complete flag may become set in device_prepare() in
    case the device don't have any PM callbacks (dev->power.no_pm_callbacks is
    set). This leads to a broken behaviour, when there is child having wakeup
    enabled and relies on its parent to be used in the wakeup path.
    
    More precisely, when the direct complete path becomes selected for the
    child in __device_suspend(), the propagation of the dev->power.wakeup_path
    becomes skipped as well.
    
    Let's address this problem, by checking if the device is a part the wakeup
    path or has wakeup enabled, then prevent the direct complete path from
    being used.
    
    Reported-by: Loic Pallardy <loic.pallardy@st.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    [ rjw: Comment cleanup ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6336b2f797f4c4e6c74571cec95d0ee8addb3576
Author: Yinbo Zhu <yinbo.zhu@nxp.com>
Date:   Mon Mar 11 02:16:40 2019 +0000

    mmc: sdhci-of-esdhc: add erratum eSDHC-A001 and A-008358 support
    
    [ Upstream commit 05cb6b2a66fa7837211a060878e91be5eb10cb07 ]
    
    eSDHC-A001: The data timeout counter (SYSCTL[DTOCV]) is not
    reliable for DTOCV values 0x4(2^17 SD clock), 0x8(2^21 SD clock),
    and 0xC(2^25 SD clock). The data timeout counter can count from
    2^13–2^27, but for values 2^17, 2^21, and 2^25, the timeout
    counter counts for only 2^13 SD clocks.
    A-008358: The data timeout counter value loaded into the timeout
    counter is less than expected and can result into early timeout
    error in case of eSDHC data transactions. The table below shows
    the expected vs actual timeout period for different values of
    SYSCTL[DTOCV]:
    these two erratum has the same quirk to control it, and set
    SDHCI_QUIRK_RESET_AFTER_REQUEST to fix above issue.
    
    Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84a163201a619619b6e974cc7475cc60b1680f55
Author: Yinbo Zhu <yinbo.zhu@nxp.com>
Date:   Mon Mar 11 02:16:36 2019 +0000

    mmc: sdhci-of-esdhc: add erratum eSDHC5 support
    
    [ Upstream commit a46e42712596b51874f04c73f1cdf1017f88df52 ]
    
    Software writing to the Transfer Type configuration register
    (system clock domain) can cause a setup/hold violation in the
    CRC flops (card clock domain), which can cause write accesses
    to be sent with corrupt CRC values. This issue occurs only for
    write preceded by read. this erratum is to fix this issue.
    
    Signed-off-by: Yinbo Zhu <yinbo.zhu@nxp.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb1962ff432a5d14810013c6afe27c89ca752ad0
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Mon Mar 11 00:53:33 2019 -0500

    mmc_spi: add a status check for spi_sync_locked
    
    [ Upstream commit 611025983b7976df0183390a63a2166411d177f1 ]
    
    In case spi_sync_locked fails, the fix reports the error and
    returns the error code upstream.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20ac710aaeae896e100b8bae8710f8e2b41e5b83
Author: Andrea Merello <andrea.merello@gmail.com>
Date:   Fri Apr 5 10:34:58 2019 +0200

    mmc: core: make pwrseq_emmc (partially) support sleepy GPIO controllers
    
    [ Upstream commit 002ee28e8b322d4d4b7b83234b5d0f4ebd428eda ]
    
    pwrseq_emmc.c implements a HW reset procedure for eMMC chip by driving a
    GPIO line.
    
    It registers the .reset() cb on mmc_pwrseq_ops and it registers a system
    restart notification handler; both of them perform reset by unconditionally
    calling gpiod_set_value().
    
    If the eMMC reset line is tied to a GPIO controller whose driver can sleep
    (i.e. I2C GPIO controller), then the kernel would spit warnings when trying
    to reset the eMMC chip by means of .reset() mmc_pwrseq_ops cb (that is
    exactly what I'm seeing during boot).
    
    Furthermore, on system reset we would gets to the system restart
    notification handler with disabled interrupts - local_irq_disable() is
    called in machine_restart() at least on ARM/ARM64 - and we would be in
    trouble when the GPIO driver tries to sleep (which indeed doesn't happen
    here, likely because in my case the machine specific code doesn't call
    do_kernel_restart(), I guess..).
    
    This patch fixes the .reset() cb to make use of gpiod_set_value_cansleep(),
    so that the eMMC gets reset on boot without complaints, while, since there
    isn't that much we can do, we avoid register the restart handler if the
    GPIO controller has a sleepy driver (and we spit a dev_notice() message to
    let people know)..
    
    This had been tested on a downstream 4.9 kernel with backported
    commit 83f37ee7ba33 ("mmc: pwrseq: Add reset callback to the struct
    mmc_pwrseq_ops") and commit ae60fb031cf2 ("mmc: core: Don't do eMMC HW
    reset when resuming the eMMC card"), because I couldn't boot my board
    otherwise. Maybe worth to RFT.
    
    Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 17d9e39b0211dc8a56d2e03ffa581ff6899da0a9
Author: John Garry <john.garry@huawei.com>
Date:   Fri Apr 12 16:57:56 2019 +0800

    scsi: libsas: Do discovery on empty PHY to update PHY info
    
    [ Upstream commit d8649fc1c5e40e691d589ed825998c36a947491c ]
    
    When we discover the PHY is empty in sas_rediscover_dev(), the PHY
    information (like negotiated linkrate) is not updated.
    
    As such, for a user examining sysfs for that PHY, they would see
    incorrect values:
    
    root@(none)$ cd /sys/class/sas_phy/phy-0:0:20
    root@(none)$ more negotiated_linkrate
    3.0 Gbit
    root@(none)$ echo 0 > enable
    root@(none)$ more negotiated_linkrate
    3.0 Gbit
    
    So fix this, simply discover the PHY again, even though we know it's empty;
    in the above example, this gives us:
    
    root@(none)$ more negotiated_linkrate
    Phy disabled
    
    We must do this after unregistering the device associated with the PHY
    (in sas_unregister_devs_sas_addr()).
    
    Signed-off-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f979e5bf2be536b4385c603b71bd039c074eaee
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Apr 4 10:52:43 2019 -0700

    hwmon: (f71805f) Use request_muxed_region for Super-IO accesses
    
    [ Upstream commit 73e6ff71a7ea924fb7121d576a2d41e3be3fc6b5 ]
    
    Super-IO accesses may fail on a system with no or unmapped LPC bus.
    
    Unable to handle kernel paging request at virtual address ffffffbffee0002e
    pgd = ffffffc1d68d4000
    [ffffffbffee0002e] *pgd=0000000000000000, *pud=0000000000000000
    Internal error: Oops: 94000046 [#1] PREEMPT SMP
    Modules linked in: f71805f(+) hwmon
    CPU: 3 PID: 1659 Comm: insmod Not tainted 4.5.0+ #88
    Hardware name: linux,dummy-virt (DT)
    task: ffffffc1f6665400 ti: ffffffc1d6418000 task.ti: ffffffc1d6418000
    PC is at f71805f_find+0x6c/0x358 [f71805f]
    
    Also, other drivers may attempt to access the LPC bus at the same time,
    resulting in undefined behavior.
    
    Use request_muxed_region() to ensure that IO access on the requested
    address space is supported, and to ensure that access by multiple
    drivers is synchronized.
    
    Fixes: e53004e20a58e ("hwmon: New f71805f driver")
    Reported-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Reported-by: John Garry <john.garry@huawei.com>
    Cc: John Garry <john.garry@huawei.com>
    Acked-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e1261a92248c07c5df4b3bc694122ef0f9de255
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Apr 4 11:16:20 2019 -0700

    hwmon: (pc87427) Use request_muxed_region for Super-IO accesses
    
    [ Upstream commit 755a9b0f8aaa5639ba5671ca50080852babb89ce ]
    
    Super-IO accesses may fail on a system with no or unmapped LPC bus.
    
    Also, other drivers may attempt to access the LPC bus at the same time,
    resulting in undefined behavior.
    
    Use request_muxed_region() to ensure that IO access on the requested
    address space is supported, and to ensure that access by multiple drivers
    is synchronized.
    
    Fixes: ba224e2c4f0a7 ("hwmon: New PC87427 hardware monitoring driver")
    Reported-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Reported-by: John Garry <john.garry@huawei.com>
    Cc: John Garry <john.garry@huawei.com>
    Acked-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7f8e2d504b500d6eca7e0b4992d6b05ceb59de0
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Apr 4 11:22:42 2019 -0700

    hwmon: (smsc47b397) Use request_muxed_region for Super-IO accesses
    
    [ Upstream commit 8c0826756744c0ac1df600a5e4cca1a341b13101 ]
    
    Super-IO accesses may fail on a system with no or unmapped LPC bus.
    
    Also, other drivers may attempt to access the LPC bus at the same time,
    resulting in undefined behavior.
    
    Use request_muxed_region() to ensure that IO access on the requested
    address space is supported, and to ensure that access by multiple drivers
    is synchronized.
    
    Fixes: 8d5d45fb1468 ("I2C: Move hwmon drivers (2/3)")
    Reported-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Reported-by: John Garry <john.garry@huawei.com>
    Cc: John Garry <john.garry@huawei.com>
    Acked-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac713a6f1379c1c34e206fce9222edd25436769a
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Thu Apr 4 11:28:37 2019 -0700

    hwmon: (smsc47m1) Use request_muxed_region for Super-IO accesses
    
    [ Upstream commit d6410408ad2a798c4cc685252c1baa713be0ad69 ]
    
    Super-IO accesses may fail on a system with no or unmapped LPC bus.
    
    Also, other drivers may attempt to access the LPC bus at the same time,
    resulting in undefined behavior.
    
    Use request_muxed_region() to ensure that IO access on the requested
    address space is supported, and to ensure that access by multiple drivers
    is synchronized.
    
    Fixes: 8d5d45fb1468 ("I2C: Move hwmon drivers (2/3)")
    Reported-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Reported-by: John Garry <john.garry@huawei.com>
    Cc: John Garry <john.garry@huawei.com>
    Acked-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f418d00bc5c3527d6ffed0a4073be77f000252c1
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Fri Apr 5 08:53:08 2019 -0700

    hwmon: (vt1211) Use request_muxed_region for Super-IO accesses
    
    [ Upstream commit 14b97ba5c20056102b3dd22696bf17b057e60976 ]
    
    Super-IO accesses may fail on a system with no or unmapped LPC bus.
    
    Also, other drivers may attempt to access the LPC bus at the same time,
    resulting in undefined behavior.
    
    Use request_muxed_region() to ensure that IO access on the requested
    address space is supported, and to ensure that access by multiple drivers
    is synchronized.
    
    Fixes: 2219cd81a6cd ("hwmon/vt1211: Add probing of alternate config index port")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b82ce17cea914ffc53ba15ae7c6f542d4ec6d9c
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sat Apr 13 17:00:26 2019 +0100

    RDMA/cxgb4: Fix null pointer dereference on alloc_skb failure
    
    [ Upstream commit a6d2a5a92e67d151c98886babdc86d530d27111c ]
    
    Currently if alloc_skb fails to allocate the skb a null skb is passed to
    t4_set_arp_err_handler and this ends up dereferencing the null skb.  Avoid
    the NULL pointer dereference by checking for a NULL skb and returning
    early.
    
    Addresses-Coverity: ("Dereference null return")
    Fixes: b38a0ad8ec11 ("RDMA/cxgb4: Set arp error handler for PASS_ACCEPT_RPL messages")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Acked-by: Potnuri Bharat Teja <bharat@chelsio.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f641ee2b749d57b4672e4c28f4dba9523923ac4
Author: Vincenzo Frascino <vincenzo.frascino@arm.com>
Date:   Tue Apr 16 17:14:30 2019 +0100

    arm64: vdso: Fix clock_getres() for CLOCK_REALTIME
    
    [ Upstream commit 81fb8736dd81da3fe94f28968dac60f392ec6746 ]
    
    clock_getres() in the vDSO library has to preserve the same behaviour
    of posix_get_hrtimer_res().
    
    In particular, posix_get_hrtimer_res() does:
    
        sec = 0;
        ns = hrtimer_resolution;
    
    where 'hrtimer_resolution' depends on whether or not high resolution
    timers are enabled, which is a runtime decision.
    
    The vDSO incorrectly returns the constant CLOCK_REALTIME_RES. Fix this
    by exposing 'hrtimer_resolution' in the vDSO datapage and returning that
    instead.
    
    Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
    [will: Use WRITE_ONCE(), move adr off COARSE path, renumber labels, use 'w' reg]
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f64615a8573059ad5c0602266a8b8c9f7ecaff02
Author: Nicholas Nunley <nicholas.d.nunley@intel.com>
Date:   Wed Feb 6 15:08:17 2019 -0800

    i40e: don't allow changes to HW VLAN stripping on active port VLANs
    
    [ Upstream commit bfb0ebed53857cfc57f11c63fa3689940d71c1c8 ]
    
    Modifying the VLAN stripping options when a port VLAN is configured
    will break traffic for the VSI, and conceptually doesn't make sense,
    so don't allow this.
    
    Signed-off-by: Nicholas Nunley <nicholas.d.nunley@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fad8d76deeac5a29041e91f805186e0875624eaf
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Sun Apr 14 17:59:38 2019 +0200

    x86/irq/64: Limit IST stack overflow check to #DB stack
    
    [ Upstream commit 7dbcf2b0b770eeb803a416ee8dcbef78e6389d40 ]
    
    Commit
    
      37fe6a42b343 ("x86: Check stack overflow in detail")
    
    added a broad check for the full exception stack area, i.e. it considers
    the full exception stack area as valid.
    
    That's wrong in two aspects:
    
     1) It does not check the individual areas one by one
    
     2) #DF, NMI and #MCE are not enabling interrupts which means that a
        regular device interrupt cannot happen in their context. In fact if a
        device interrupt hits one of those IST stacks that's a bug because some
        code path enabled interrupts while handling the exception.
    
    Limit the check to the #DB stack and consider all other IST stacks as
    'overflow' or invalid.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Mitsuo Hayasaka <mitsuo.hayasaka.hu@hitachi.com>
    Cc: Nicolai Stange <nstange@suse.de>
    Cc: Sean Christopherson <sean.j.christopherson@intel.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20190414160143.682135110@linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9105d1125cce6f14b59c7f5f94f07982da950ac5
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Tue Apr 16 10:50:01 2019 -0400

    USB: core: Don't unbind interfaces following device reset failure
    
    [ Upstream commit 381419fa720060ba48b7bbc483be787d5b1dca6f ]
    
    The SCSI core does not like to have devices or hosts unregistered
    while error recovery is in progress.  Trying to do so can lead to
    self-deadlock: Part of the removal code tries to obtain a lock already
    held by the error handler.
    
    This can cause problems for the usb-storage and uas drivers, because
    their error handler routines perform a USB reset, and if the reset
    fails then the USB core automatically goes on to unbind all drivers
    from the device's interfaces -- all while still in the context of the
    SCSI error handler.
    
    As it turns out, practically all the scenarios leading to a USB reset
    failure end up causing a device disconnect (the main error pathway in
    usb_reset_and_verify_device(), at the end of the routine, calls
    hub_port_logical_disconnect() before returning).  As a result, the
    hub_wq thread will soon become aware of the problem and will unbind
    all the device's drivers in its own context, not in the
    error-handler's context.
    
    This means that usb_reset_device() does not need to call
    usb_unbind_and_rebind_marked_interfaces() in cases where
    usb_reset_and_verify_device() has returned an error, because hub_wq
    will take care of everything anyway.
    
    This particular problem was observed in somewhat artificial
    circumstances, by using usbfs to tell a hub to power-down a port
    connected to a USB-3 mass storage device using the UAS protocol.  With
    the port turned off, the currently executing command timed out and the
    error handler started running.  The USB reset naturally failed,
    because the hub port was off, and the error handler deadlocked as
    described above.  Not carrying out the call to
    usb_unbind_and_rebind_marked_interfaces() fixes this issue.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Kento Kobayashi <Kento.A.Kobayashi@sony.com>
    Tested-by: Kento Kobayashi <Kento.A.Kobayashi@sony.com>
    CC: Bart Van Assche <bvanassche@acm.org>
    CC: Martin K. Petersen <martin.petersen@oracle.com>
    CC: Jacky Cao <Jacky.Cao@sony.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c58f0e847bdca07ec4f0fe33ea1d61394d522f42
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Wed Feb 27 11:10:18 2019 +0300

    sched/core: Handle overflow in cpu_shares_write_u64
    
    [ Upstream commit 5b61d50ab4ef590f5e1d4df15cd2cea5f5715308 ]
    
    Bit shift in scale_load() could overflow shares. This patch saturates
    it to MAX_SHARES like following sched_group_set_shares().
    
    Example:
    
     # echo 9223372036854776832 > cpu.shares
     # cat cpu.shares
    
    Before patch: 1024
    After pattch: 262144
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/155125501891.293431.3345233332801109696.stgit@buzz
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e4ea98f521605fe55141cf711f769eaddd6511b
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Wed Feb 27 11:10:20 2019 +0300

    sched/core: Check quota and period overflow at usec to nsec conversion
    
    [ Upstream commit 1a8b4540db732ca16c9e43ac7c08b1b8f0b252d8 ]
    
    Large values could overflow u64 and pass following sanity checks.
    
     # echo 18446744073750000 > cpu.cfs_period_us
     # cat cpu.cfs_period_us
     40448
    
     # echo 18446744073750000 > cpu.cfs_quota_us
     # cat cpu.cfs_quota_us
     40448
    
    After this patch they will fail with -EINVAL.
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/155125502079.293431.3947497929372138600.stgit@buzz
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fe5872d65d35d147bdbbe5870519e46980d443b
Author: Nathan Lynch <nathanl@linux.ibm.com>
Date:   Thu Apr 18 13:56:57 2019 -0500

    powerpc/numa: improve control of topology updates
    
    [ Upstream commit 2d4d9b308f8f8dec68f6dbbff18c68ec7c6bd26f ]
    
    When booted with "topology_updates=no", or when "off" is written to
    /proc/powerpc/topology_updates, NUMA reassignments are inhibited for
    PRRN and VPHN events. However, migration and suspend unconditionally
    re-enable reassignments via start_topology_update(). This is
    incoherent.
    
    Check the topology_updates_enabled flag in
    start/stop_topology_update() so that callers of those APIs need not be
    aware of whether reassignments are enabled. This allows the
    administrative decision on reassignments to remain in force across
    migrations and suspensions.
    
    Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f67ca2aad22db1c4bda31e3717e4868352014b1
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Apr 8 05:52:38 2019 -0400

    media: pvrusb2: Prevent a buffer overflow
    
    [ Upstream commit c1ced46c7b49ad7bc064e68d966e0ad303f917fb ]
    
    The ctrl_check_input() function is called from pvr2_ctrl_range_check().
    It's supposed to validate user supplied input and return true or false
    depending on whether the input is valid or not.  The problem is that
    negative shifts or shifts greater than 31 are undefined in C.  In
    practice with GCC they result in shift wrapping so this function returns
    true for some inputs which are not valid and this could result in a
    buffer overflow:
    
        drivers/media/usb/pvrusb2/pvrusb2-ctrl.c:205 pvr2_ctrl_get_valname()
        warn: uncapped user index 'names[val]'
    
    The cptr->hdw->input_allowed_mask mask is configured in pvr2_hdw_create()
    and the highest valid bit is BIT(4).
    
    Fixes: 7fb20fa38caa ("V4L/DVB (7299): pvrusb2: Improve logic which handles input choice availability")
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e70d90cda457e38ceb38f626522c4ac3b24659cf
Author: Shuah Khan <shuah@kernel.org>
Date:   Mon Apr 1 20:43:17 2019 -0400

    media: au0828: Fix NULL pointer dereference in au0828_analog_stream_enable()
    
    [ Upstream commit 898bc40bfcc26abb6e06e960d6d4754c36c58b50 ]
    
    Fix au0828_analog_stream_enable() to check if device is in the right
    state first. When unbind happens while bind is in progress, usbdev
    pointer could be invalid in au0828_analog_stream_enable() and a call
    to usb_ifnum_to_if() will result in the null pointer dereference.
    
    This problem is found with the new media_dev_allocator.sh test.
    
    kernel: [  590.359623] BUG: unable to handle kernel NULL pointer dereference at 00000000000004e8
    kernel: [  590.359627] #PF error: [normal kernel read fault]
    kernel: [  590.359629] PGD 0 P4D 0
    kernel: [  590.359632] Oops: 0000 [#1] SMP PTI
    kernel: [  590.359634] CPU: 3 PID: 1458 Comm: v4l_id Not tainted 5.1.0-rc2+ #30
    kernel: [  590.359636] Hardware name: Dell Inc. OptiPlex 7 90/0HY9JP, BIOS A18 09/24/2013
    kernel: [  590.359641] RIP: 0010:usb_ifnum_to_if+0x6/0x60
    kernel: [  590.359643] Code: 5d 41 5e 41 5f 5d c3 48 83 c4
     10 b8 fa ff ff ff 5b 41 5c 41 5d 41 5e 41 5f 5d c3 b8 fa ff ff ff c3 0f 1f 00 6
    6 66 66 66 90 55 <48> 8b 97 e8 04 00 00 48 89 e5 48 85 d2 74 41 0f b6 4a 04 84 c
    9 74
    kernel: [  590.359645] RSP: 0018:ffffad3cc3c1fc00 EFLAGS: 00010246
    kernel: [  590.359646] RAX: 0000000000000000 RBX: ffff8ded b1f3c000 RCX: 1f377e4500000000
    kernel: [  590.359648] RDX: ffff8dedfa3a6b50 RSI: 00000000 00000000 RDI: 0000000000000000
    kernel: [  590.359649] RBP: ffffad3cc3c1fc28 R08: 00000000 8574acc2 R09: ffff8dedfa3a6b50
    kernel: [  590.359650] R10: 0000000000000001 R11: 00000000 00000000 R12: 0000000000000000
    kernel: [  590.359652] R13: ffff8dedb1f3f0f0 R14: ffffffff adcf7ec0 R15: 0000000000000000
    kernel: [  590.359654] FS:  00007f7917198540(0000) GS:ffff 8dee258c0000(0000) knlGS:0000000000000000
    kernel: [  590.359655] CS:  0010 DS: 0000 ES: 0000 CR0: 00 00000080050033
    kernel: [  590.359657] CR2: 00000000000004e8 CR3: 00000001 a388e002 CR4: 00000000000606e0
    kernel: [  590.359658] Call Trace:
    kernel: [  590.359664]  ? au0828_analog_stream_enable+0x2c/0x180
    kernel: [  590.359666]  au0828_v4l2_open+0xa4/0x110
    kernel: [  590.359670]  v4l2_open+0x8b/0x120
    kernel: [  590.359674]  chrdev_open+0xa6/0x1c0
    kernel: [  590.359676]  ? cdev_put.part.3+0x20/0x20
    kernel: [  590.359678]  do_dentry_open+0x1f6/0x360
    kernel: [  590.359681]  vfs_open+0x2f/0x40
    kernel: [  590.359684]  path_openat+0x299/0xc20
    kernel: [  590.359688]  do_filp_open+0x9b/0x110
    kernel: [  590.359695]  ? _raw_spin_unlock+0x27/0x40
    kernel: [  590.359697]  ? __alloc_fd+0xb2/0x160
    kernel: [  590.359700]  do_sys_open+0x1ba/0x260
    kernel: [  590.359702]  ? do_sys_open+0x1ba/0x260
    kernel: [  590.359712]  __x64_sys_openat+0x20/0x30
    kernel: [  590.359715]  do_syscall_64+0x5a/0x120
    kernel: [  590.359718]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Signed-off-by: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51e088baae2bb197238231009c016a02093079ea
Author: Wenwen Wang <wang6495@umn.edu>
Date:   Fri Apr 19 20:49:29 2019 -0500

    audit: fix a memory leak bug
    
    [ Upstream commit 70c4cf17e445264453bc5323db3e50aa0ac9e81f ]
    
    In audit_rule_change(), audit_data_to_entry() is firstly invoked to
    translate the payload data to the kernel's rule representation. In
    audit_data_to_entry(), depending on the audit field type, an audit tree may
    be created in audit_make_tree(), which eventually invokes kmalloc() to
    allocate the tree.  Since this tree is a temporary tree, it will be then
    freed in the following execution, e.g., audit_add_rule() if the message
    type is AUDIT_ADD_RULE or audit_del_rule() if the message type is
    AUDIT_DEL_RULE. However, if the message type is neither AUDIT_ADD_RULE nor
    AUDIT_DEL_RULE, i.e., the default case of the switch statement, this
    temporary tree is not freed.
    
    To fix this issue, only allocate the tree when the type is AUDIT_ADD_RULE
    or AUDIT_DEL_RULE.
    
    Signed-off-by: Wenwen Wang <wang6495@umn.edu>
    Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 32696debee684d0c569ffc13a4c8ef5dee93f281
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Sat Mar 30 10:01:31 2019 -0400

    media: ov2659: make S_FMT succeed even if requested format doesn't match
    
    [ Upstream commit bccb89cf9cd07a0690d519696a00c00a973b3fe4 ]
    
    This driver returns an error if unsupported media bus pixel code is
    requested by VIDIOC_SUBDEV_S_FMT.
    
    But according to Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst,
    
    Drivers must not return an error solely because the requested format
    doesn't match the device capabilities. They must instead modify the
    format to match what the hardware can provide.
    
    So select default format code and return success in that case.
    
    This is detected by v4l2-compliance.
    
    Cc: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f84c1010c0cdd991f60c1b13530420829bb9bdaa
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Tue Apr 2 03:24:15 2019 -0400

    media: au0828: stop video streaming only when last user stops
    
    [ Upstream commit f604f0f5afb88045944567f604409951b5eb6af8 ]
    
    If the application was streaming from both videoX and vbiX, and streaming
    from videoX was stopped, then the vbi streaming also stopped.
    
    The cause being that stop_streaming for video stopped the subdevs as well,
    instead of only doing that if dev->streaming_users reached 0.
    
    au0828_stop_vbi_streaming was also wrong since it didn't stop the subdevs
    at all when dev->streaming_users reached 0.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Tested-by: Shuah Khan <shuah@kernel.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d539dc266c4fd5e1857a2ca0b50ac60acb5e1769
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Fri Mar 29 21:06:09 2019 -0400

    media: ov6650: Move v4l2_clk_get() to ov6650_video_probe() helper
    
    [ Upstream commit ccdd85d518d8b9320ace1d87271f0ba2175f21fa ]
    
    In preparation for adding asynchronous subdevice support to the driver,
    don't acquire v4l2_clk from the driver .probe() callback as that may
    fail if the clock is provided by a bridge driver which may be not yet
    initialized.  Move the v4l2_clk_get() to ov6650_video_probe() helper
    which is going to be converted to v4l2_subdev_internal_ops.registered()
    callback, executed only when the bridge driver is ready.
    
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 109f7097216cb27f2ab91c3a89b6db642b62dae4
Author: Philipp Zabel <p.zabel@pengutronix.de>
Date:   Mon Apr 8 08:32:49 2019 -0400

    media: coda: clear error return value before picture run
    
    [ Upstream commit bbeefa7357a648afe70e7183914c87c3878d528d ]
    
    The error return value is not written by some firmware codecs, such as
    MPEG-2 decode on CodaHx4. Clear the error return value before starting
    the picture run to avoid misinterpreting unrelated values returned by
    sequence initialization as error return value.
    
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c1c6e26d582b1ca4e2e662e5c05cdc146eff3de
Author: Nicolas Ferre <nicolas.ferre@microchip.com>
Date:   Wed Apr 3 12:23:57 2019 +0200

    dmaengine: at_xdmac: remove BUG_ON macro in tasklet
    
    [ Upstream commit e2c114c06da2d9ffad5b16690abf008d6696f689 ]
    
    Even if this case shouldn't happen when controller is properly programmed,
    it's still better to avoid dumping a kernel Oops for this.
    As the sequence may happen only for debugging purposes, log the error and
    just finish the tasklet call.
    
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2da57fa0a2c72e1d5c443ab722bbdb70240bcb54
Author: Wen Yang <wen.yang99@zte.com.cn>
Date:   Fri Apr 12 14:02:19 2019 +0800

    pinctrl: pistachio: fix leaked of_node references
    
    [ Upstream commit 44a4455ac2c6b0981eace683a2b6eccf47689022 ]
    
    The call to of_get_child_by_name returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    Detected by coccinelle with the following warnings:
    ./drivers/pinctrl/pinctrl-pistachio.c:1422:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1360, but without a corresponding object release within this function.
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: linux-gpio@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2cde780dadc399fffb18964058a297880a584dc
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 20 13:22:10 2019 +0200

    HID: logitech-hidpp: use RAP instead of FAP to get the protocol version
    
    [ Upstream commit 096377525cdb8251e4656085efc988bdf733fb4c ]
    
    According to the logitech_hidpp_2.0_specification_draft_2012-06-04.pdf doc:
    https://lekensteyn.nl/files/logitech/logitech_hidpp_2.0_specification_draft_2012-06-04.pdf
    
    We should use a register-access-protocol request using the short input /
    output report ids. This is necessary because 27MHz HID++ receivers have
    a max-packetsize on their HIP++ endpoint of 8, so they cannot support
    long reports. Using a feature-access-protocol request (which is always
    long or very-long) with these will cause a timeout error, followed by
    the hidpp driver treating the device as not being HID++ capable.
    
    This commit fixes this by switching to using a rap request to get the
    protocol version.
    
    Besides being tested with a (046d:c517) 27MHz receiver with various
    27MHz keyboards and mice, this has also been tested to not cause
    regressions on a non-unifying dual-HID++ nano receiver (046d:c534) with
    k270 and m185 HID++-2.0 devices connected and on a unifying/dj receiver
    (046d:c52b) with a HID++-2.0 Logitech Rechargeable Touchpad T650.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50013eadda59b9bbbc48eee40ecbfccefc875cc6
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Apr 24 09:19:25 2019 +0200

    mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions
    
    [ Upstream commit 29da93fea3ea39ab9b12270cc6be1b70ef201c9e ]
    
    Randy reported objtool triggered on his (GCC-7.4) build:
    
      lib/strncpy_from_user.o: warning: objtool: strncpy_from_user()+0x315: call to __ubsan_handle_add_overflow() with UACCESS enabled
      lib/strnlen_user.o: warning: objtool: strnlen_user()+0x337: call to __ubsan_handle_sub_overflow() with UACCESS enabled
    
    This is due to UBSAN generating signed-overflow-UB warnings where it
    should not. Prior to GCC-8 UBSAN ignored -fwrapv (which the kernel
    uses through -fno-strict-overflow).
    
    Make the functions use 'unsigned long' throughout.
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: luto@kernel.org
    Link: http://lkml.kernel.org/r/20190424072208.754094071@infradead.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f08f10f79267eb5d79aab724dcf6d8f60dcc2f6d
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Wed Apr 24 09:04:57 2019 +0200

    x86/mm: Remove in_nmi() warning from 64-bit implementation of vmalloc_fault()
    
    [ Upstream commit a65c88e16f32aa9ef2e8caa68ea5c29bd5eb0ff0 ]
    
    In-NMI warnings have been added to vmalloc_fault() via:
    
      ebc8827f75 ("x86: Barf when vmalloc and kmemcheck faults happen in NMI")
    
    back in the time when our NMI entry code could not cope with nested NMIs.
    
    These days, it's perfectly fine to take a fault in NMI context and we
    don't have to care about the fact that IRET from the fault handler might
    cause NMI nesting.
    
    This warning has already been removed from 32-bit implementation of
    vmalloc_fault() in:
    
      6863ea0cda8 ("x86/mm: Remove in_nmi() warning from vmalloc_fault()")
    
    but the 64-bit version was omitted.
    
    Remove the bogus warning also from 64-bit implementation of vmalloc_fault().
    
    Reported-by: Nicolai Stange <nstange@suse.de>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Joerg Roedel <jroedel@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 6863ea0cda8 ("x86/mm: Remove in_nmi() warning from vmalloc_fault()")
    Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1904240902280.9803@cbobk.fhfr.pm
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5f3559f30cf16d893df0e552f8c6a543a6c3128
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Wed Apr 24 10:52:53 2019 +0200

    smpboot: Place the __percpu annotation correctly
    
    [ Upstream commit d4645d30b50d1691c26ff0f8fa4e718b08f8d3bb ]
    
    The test robot reported a wrong assignment of a per-CPU variable which
    it detected by using sparse and sent a report. The assignment itself is
    correct. The annotation for sparse was wrong and hence the report.
    The first pointer is a "normal" pointer and points to the per-CPU memory
    area. That means that the __percpu annotation has to be moved.
    
    Move the __percpu annotation to pointer which points to the per-CPU
    area. This change affects only the sparse tool (and is ignored by the
    compiler).
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Paul E. McKenney <paulmck@linux.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: f97f8f06a49fe ("smpboot: Provide infrastructure for percpu hotplug threads")
    Link: http://lkml.kernel.org/r/20190424085253.12178-1-bigeasy@linutronix.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 87386764dac1e8dde46ad792e072bd8e8004ee00
Author: Kees Cook <keescook@chromium.org>
Date:   Tue Apr 23 11:38:27 2019 -0700

    x86/build: Move _etext to actual end of .text
    
    [ Upstream commit 392bef709659abea614abfe53cf228e7a59876a4 ]
    
    When building x86 with Clang LTO and CFI, CFI jump regions are
    automatically added to the end of the .text section late in linking. As a
    result, the _etext position was being labelled before the appended jump
    regions, causing confusion about where the boundaries of the executable
    region actually are in the running kernel, and broke at least the fault
    injection code. This moves the _etext mark to outside (and immediately
    after) the .text area, as it already the case on other architectures
    (e.g. arm64, arm).
    
    Reported-and-tested-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20190423183827.GA4012@beast
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 56df2dbea3893b4a8bf00f53ea0d2b87a31c5877
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Apr 25 00:48:28 2019 +0800

    bcache: avoid clang -Wunintialized warning
    
    [ Upstream commit 78d4eb8ad9e1d413449d1b7a060f50b6efa81ebd ]
    
    clang has identified a code path in which it thinks a
    variable may be unused:
    
    drivers/md/bcache/alloc.c:333:4: error: variable 'bucket' is used uninitialized whenever 'if' condition is false
          [-Werror,-Wsometimes-uninitialized]
                            fifo_pop(&ca->free_inc, bucket);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop'
     #define fifo_pop(fifo, i)       fifo_pop_front(fifo, (i))
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
    drivers/md/bcache/util.h:189:6: note: expanded from macro 'fifo_pop_front'
            if (_r) {                                                       \
                ^~
    drivers/md/bcache/alloc.c:343:46: note: uninitialized use occurs here
                            allocator_wait(ca, bch_allocator_push(ca, bucket));
                                                                      ^~~~~~
    drivers/md/bcache/alloc.c:287:7: note: expanded from macro 'allocator_wait'
                    if (cond)                                               \
                        ^~~~
    drivers/md/bcache/alloc.c:333:4: note: remove the 'if' if its condition is always true
                            fifo_pop(&ca->free_inc, bucket);
                            ^
    drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop'
     #define fifo_pop(fifo, i)       fifo_pop_front(fifo, (i))
                                    ^
    drivers/md/bcache/util.h:189:2: note: expanded from macro 'fifo_pop_front'
            if (_r) {                                                       \
            ^
    drivers/md/bcache/alloc.c:331:15: note: initialize the variable 'bucket' to silence this warning
                            long bucket;
                                       ^
    
    This cannot happen in practice because we only enter the loop
    if there is at least one element in the list.
    
    Slightly rearranging the code makes this clearer to both the
    reader and the compiler, which avoids the warning.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Coly Li <colyli@suse.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 282ae1e8bd9a55b97a129b994da81921dfbd4df7
Author: Coly Li <colyli@suse.de>
Date:   Thu Apr 25 00:48:34 2019 +0800

    bcache: add failure check to run_cache_set() for journal replay
    
    [ Upstream commit ce3e4cfb59cb382f8e5ce359238aa580d4ae7778 ]
    
    Currently run_cache_set() has no return value, if there is failure in
    bch_journal_replay(), the caller of run_cache_set() has no idea about
    such failure and just continue to execute following code after
    run_cache_set().  The internal failure is triggered inside
    bch_journal_replay() and being handled in async way. This behavior is
    inefficient, while failure handling inside bch_journal_replay(), cache
    register code is still running to start the cache set. Registering and
    unregistering code running as same time may introduce some rare race
    condition, and make the code to be more hard to be understood.
    
    This patch adds return value to run_cache_set(), and returns -EIO if
    bch_journal_rreplay() fails. Then caller of run_cache_set() may detect
    such failure and stop registering code flow immedidately inside
    register_cache_set().
    
    If journal replay fails, run_cache_set() can report error immediately
    to register_cache_set(). This patch makes the failure handling for
    bch_journal_replay() be in synchronized way, easier to understand and
    debug, and avoid poetential race condition for register-and-unregister
    in same time.
    
    Signed-off-by: Coly Li <colyli@suse.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit abc77ba7deec0006106d8d9f2405d6f99fc9a5d1
Author: Tang Junhui <tang.junhui.linux@gmail.com>
Date:   Thu Apr 25 00:48:41 2019 +0800

    bcache: fix failure in journal relplay
    
    [ Upstream commit 631207314d88e9091be02fbdd1fdadb1ae2ed79a ]
    
    journal replay failed with messages:
    Sep 10 19:10:43 ceph kernel: bcache: error on
    bb379a64-e44e-4812-b91d-a5599871a3b1: bcache: journal entries
    2057493-2057567 missing! (replaying 2057493-2076601), disabling
    caching
    
    The reason is in journal_reclaim(), when discard is enabled, we send
    discard command and reclaim those journal buckets whose seq is old
    than the last_seq_now, but before we write a journal with last_seq_now,
    the machine is restarted, so the journal with the last_seq_now is not
    written to the journal bucket, and the last_seq_wrote in the newest
    journal is old than last_seq_now which we expect to be, so when we doing
    replay, journals from last_seq_wrote to last_seq_now are missing.
    
    It's hard to write a journal immediately after journal_reclaim(),
    and it harmless if those missed journal are caused by discarding
    since those journals are already wrote to btree node. So, if miss
    seqs are started from the beginning journal, we treat it as normal,
    and only print a message to show the miss journal, and point out
    it maybe caused by discarding.
    
    Patch v2 add a judgement condition to ignore the missed journal
    only when discard enabled as Coly suggested.
    
    (Coly Li: rebase the patch with other changes in bch_journal_replay())
    
    Signed-off-by: Tang Junhui <tang.junhui.linux@gmail.com>
    Tested-by: Dennis Schridde <devurandom@gmx.net>
    Signed-off-by: Coly Li <colyli@suse.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e7321da1203f0a8fe2cffbfd6a5349b9a4377776
Author: Coly Li <colyli@suse.de>
Date:   Thu Apr 25 00:48:36 2019 +0800

    bcache: return error immediately in bch_journal_replay()
    
    [ Upstream commit 68d10e6979a3b59e3cd2e90bfcafed79c4cf180a ]
    
    When failure happens inside bch_journal_replay(), calling
    cache_set_err_on() and handling the failure in async way is not a good
    idea. Because after bch_journal_replay() returns, registering code will
    continue to execute following steps, and unregistering code triggered
    by cache_set_err_on() is running in same time. First it is unnecessary
    to handle failure and unregister cache set in an async way, second there
    might be potential race condition to run register and unregister code
    for same cache set.
    
    So in this patch, if failure happens in bch_journal_replay(), we don't
    call cache_set_err_on(), and just print out the same error message to
    kernel message buffer, then return -EIO immediately caller. Then caller
    can detect such failure and handle it in synchrnozied way.
    
    Signed-off-by: Coly Li <colyli@suse.de>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ed24236b933603bc25f843c5da9e48b96dd98c4
Author: Corentin Labbe <clabbe.montjoie@gmail.com>
Date:   Thu Apr 18 10:17:34 2019 +0200

    crypto: sun4i-ss - Fix invalid calculation of hash end
    
    [ Upstream commit f87391558acf816b48f325a493d81d45dec40da0 ]
    
    When nbytes < 4, end is wronlgy set to a negative value which, due to
    uint, is then interpreted to a large value leading to a deadlock in the
    following code.
    
    This patch fix this problem.
    
    Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator")
    Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f3201b23b69bbae2f9fec18648b45df5cd93960
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Tue Mar 12 03:05:02 2019 -0500

    net: cw1200: fix a NULL pointer dereference
    
    [ Upstream commit 0ed2a005347400500a39ea7c7318f1fea57fb3ca ]
    
    In case create_singlethread_workqueue fails, the fix free the
    hardware and returns NULL to avoid NULL pointer dereference.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc2c8535a6b412eba45bc11ea34521309ba00b35
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Apr 4 11:44:23 2019 +0300

    mwifiex: prevent an array overflow
    
    [ Upstream commit b4c35c17227fe437ded17ce683a6927845f8c4a4 ]
    
    The "rate_index" is only used as an index into the phist_data->rx_rate[]
    array in the mwifiex_hist_data_set() function.  That array has
    MWIFIEX_MAX_AC_RX_RATES (74) elements and it's used to generate some
    debugfs information.  The "rate_index" variable comes from the network
    skb->data[] and it is a u8 so it's in the 0-255 range.  We need to cap
    it to prevent an array overflow.
    
    Fixes: cbf6e05527a7 ("mwifiex: add rx histogram statistics support")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 043a7a249da15df7459787a721adbaaa5cb893d1
Author: Daniel Baluta <daniel.baluta@nxp.com>
Date:   Sun Apr 21 19:39:08 2019 +0000

    ASoC: fsl_sai: Update is_slave_mode with correct value
    
    [ Upstream commit ddb351145a967ee791a0fb0156852ec2fcb746ba ]
    
    is_slave_mode defaults to false because sai structure
    that contains it is kzalloc'ed.
    
    Anyhow, if we decide to set the following configuration
    SAI slave -> SAI master, is_slave_mode will remain set on true
    although SAI being master it should be set to false.
    
    Fix this by updating is_slave_mode for each call of
    fsl_sai_set_dai_fmt.
    
    Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
    Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5c17240084798c25dd470ae3b2ec898264c7fe1
Author: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Date:   Tue Mar 26 09:27:37 2019 +0000

    mac80211/cfg80211: update bss channel on channel switch
    
    [ Upstream commit 5dc8cdce1d722c733f8c7af14c5fb595cfedbfa8 ]
    
    FullMAC STAs have no way to update bss channel after CSA channel switch
    completion. As a result, user-space tools may provide inconsistent
    channel info. For instance, consider the following two commands:
    $ sudo iw dev wlan0 link
    $ sudo iw dev wlan0 info
    The latter command gets channel info from the hardware, so most probably
    its output will be correct. However the former command gets channel info
    from scan cache, so its output will contain outdated channel info.
    In fact, current bss channel info will not be updated until the
    next [re-]connect.
    
    Note that mac80211 STAs have a workaround for this, but it requires
    access to internal cfg80211 data, see ieee80211_chswitch_work:
    
            /* XXX: shouldn't really modify cfg80211-owned data! */
            ifmgd->associated->channel = sdata->csa_chandef.chan;
    
    This patch suggests to convert mac80211 workaround into cfg80211 behavior
    and to update current bss channel in cfg80211_ch_switch_notify.
    
    Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ab53d0549101182909ff8d6613da93d9bf81c476
Author: Sugar Zhang <sugar.zhang@rock-chips.com>
Date:   Wed Apr 3 19:06:22 2019 +0800

    dmaengine: pl330: _stop: clear interrupt status
    
    [ Upstream commit 2da254cc7908105a60a6bb219d18e8dced03dcb9 ]
    
    This patch kill instructs the DMAC to immediately terminate
    execution of a thread. and then clear the interrupt status,
    at last, stop generating interrupts for DMA_SEV. to guarantee
    the next dma start is clean. otherwise, one interrupt maybe leave
    to next start and make some mistake.
    
    we can reporduce the problem as follows:
    
    DMASEV: modify the event-interrupt resource, and if the INTEN sets
    function as interrupt, the DMAC will set irq<event_num> HIGH to
    generate interrupt. write INTCLR to clear interrupt.
    
            DMA EXECUTING INSTRUCTS         DMA TERMINATE
                    |                               |
                    |                               |
                   ...                            _stop
                    |                               |
                    |                       spin_lock_irqsave
                 DMASEV                             |
                    |                               |
                    |                           mask INTEN
                    |                               |
                    |                            DMAKILL
                    |                               |
                    |                       spin_unlock_irqrestore
    
    in above case, a interrupt was left, and if we unmask INTEN, the DMAC
    will set irq<event_num> HIGH to generate interrupt.
    
    to fix this, do as follows:
    
            DMA EXECUTING INSTRUCTS         DMA TERMINATE
                    |                               |
                    |                               |
                   ...                            _stop
                    |                               |
                    |                       spin_lock_irqsave
                 DMASEV                             |
                    |                               |
                    |                            DMAKILL
                    |                               |
                    |                          clear INTCLR
                    |                           mask INTEN
                    |                               |
                    |                       spin_unlock_irqrestore
    
    Signed-off-by: Sugar Zhang <sugar.zhang@rock-chips.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f7f676b383fceef37663a5632c20669ac17554a
Author: Mariusz Bialonczyk <manio@skyboo.net>
Date:   Thu Mar 21 11:52:55 2019 +0100

    w1: fix the resume command API
    
    [ Upstream commit 62909da8aca048ecf9fbd7e484e5100608f40a63 ]
    
    >From the DS2408 datasheet [1]:
    "Resume Command function checks the status of the RC flag and, if it is set,
     directly transfers control to the control functions, similar to a Skip ROM
     command. The only way to set the RC flag is through successfully executing
     the Match ROM, Search ROM, Conditional Search ROM, or Overdrive-Match ROM
     command"
    
    The function currently works perfectly fine in a multidrop bus, but when we
    have only a single slave connected, then only a Skip ROM is used and Match
    ROM is not called at all. This is leading to problems e.g. with single one
    DS2408 connected, as the Resume Command is not working properly and the
    device is responding with failing results after the Resume Command.
    
    This commit is fixing this by using a Skip ROM instead in those cases.
    The bandwidth / performance advantage is exactly the same.
    
    Refs:
    [1] https://datasheets.maximintegrated.com/en/ds/DS2408.pdf
    
    Signed-off-by: Mariusz Bialonczyk <manio@skyboo.net>
    Reviewed-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8685a298979f01cbc0d8e83d015d28dacf89932e
Author: Sven Van Asbroeck <thesven73@gmail.com>
Date:   Fri Apr 26 14:36:35 2019 -0400

    rtc: 88pm860x: prevent use-after-free on device remove
    
    [ Upstream commit f22b1ba15ee5785aa028384ebf77dd39e8e47b70 ]
    
    The device's remove() attempts to shut down the delayed_work scheduled
    on the kernel-global workqueue by calling flush_scheduled_work().
    
    Unfortunately, flush_scheduled_work() does not prevent the delayed_work
    from re-scheduling itself. The delayed_work might run after the device
    has been removed, and touch the already de-allocated info structure.
    This is a potential use-after-free.
    
    Fix by calling cancel_delayed_work_sync() during remove(): this ensures
    that the delayed work is properly cancelled, is no longer running, and
    is not able to re-schedule itself.
    
    This issue was detected with the help of Coccinelle.
    
    Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af73fb33aed1b4b57ac79b853eef9c2a820cf0f6
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Mar 5 10:31:11 2019 +0100

    iwlwifi: pcie: don't crash on invalid RX interrupt
    
    [ Upstream commit 30f24eabab8cd801064c5c37589d803cb4341929 ]
    
    If for some reason the device gives us an RX interrupt before we're
    ready for it, perhaps during device power-on with misconfigured IRQ
    causes mapping or so, we can crash trying to access the queues.
    
    Prevent that by checking that we actually have RXQs and that they
    were properly allocated.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9375939fea96f10e51a2050cd39dc3078de1b156
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Apr 17 14:44:24 2019 -0700

    scsi: qla2xxx: Fix a qla24xx_enable_msix() error path
    
    [ Upstream commit 24afabdbd0b3553963a2bbf465895492b14d1107 ]
    
    Make sure that the allocated interrupts are freed if allocating memory for
    the msix_entries array fails.
    
    Cc: Himanshu Madhani <hmadhani@marvell.com>
    Cc: Giridhar Malavali <gmalavali@marvell.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e0c06e0cf6dd0aae93b8de16b79be9d740b2682
Author: Viresh Kumar <viresh.kumar@linaro.org>
Date:   Tue Apr 30 11:35:52 2019 +0530

    sched/cpufreq: Fix kobject memleak
    
    [ Upstream commit 9a4f26cc98d81b67ecc23b890c28e2df324e29f3 ]
    
    Currently the error return path from kobject_init_and_add() is not
    followed by a call to kobject_put() - which means we are leaking
    the kobject.
    
    Fix it by adding a call to kobject_put() in the error path of
    kobject_init_and_add().
    
    Signed-off-by: Tobin C. Harding <tobin@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tobin C. Harding <tobin@kernel.org>
    Cc: Vincent Guittot <vincent.guittot@linaro.org>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Link: http://lkml.kernel.org/r/20190430001144.24890-1-tobin@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5b14bf24c0ac19d143074fda4b998d736b855ba
Author: Qian Cai <cai@lca.pw>
Date:   Mon Apr 29 13:37:01 2019 -0400

    arm64: Fix compiler warning from pte_unmap() with -Wunused-but-set-variable
    
    [ Upstream commit 74dd022f9e6260c3b5b8d15901d27ebcc5f21eda ]
    
    When building with -Wunused-but-set-variable, the compiler shouts about
    a number of pte_unmap() users, since this expands to an empty macro on
    arm64:
    
      | mm/gup.c: In function 'gup_pte_range':
      | mm/gup.c:1727:16: warning: variable 'ptem' set but not used
      | [-Wunused-but-set-variable]
      | mm/gup.c: At top level:
      | mm/memory.c: In function 'copy_pte_range':
      | mm/memory.c:821:24: warning: variable 'orig_dst_pte' set but not used
      | [-Wunused-but-set-variable]
      | mm/memory.c:821:9: warning: variable 'orig_src_pte' set but not used
      | [-Wunused-but-set-variable]
      | mm/swap_state.c: In function 'swap_ra_info':
      | mm/swap_state.c:641:15: warning: variable 'orig_pte' set but not used
      | [-Wunused-but-set-variable]
      | mm/madvise.c: In function 'madvise_free_pte_range':
      | mm/madvise.c:318:9: warning: variable 'orig_pte' set but not used
      | [-Wunused-but-set-variable]
    
    Rewrite pte_unmap() as a static inline function, which silences the
    warnings.
    
    Signed-off-by: Qian Cai <cai@lca.pw>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79940ddbd08866e556e8c8da59e25754e1d89462
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Mon Apr 8 16:49:01 2019 +0100

    ARM: vdso: Remove dependency with the arch_timer driver internals
    
    [ Upstream commit 1f5b62f09f6b314c8d70b9de5182dae4de1f94da ]
    
    The VDSO code uses the kernel helper that was originally designed
    to abstract the access between 32 and 64bit systems. It worked so
    far because this function is declared as 'inline'.
    
    As we're about to revamp that part of the code, the VDSO would
    break. Let's fix it by doing what should have been done from
    the start, a proper system register access.
    
    Reviewed-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 146579dd0cfb76d5177f23a82f441e103d0ca120
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Apr 24 12:52:18 2019 +0300

    brcm80211: potential NULL dereference in brcmf_cfg80211_vndr_cmds_dcmd_handler()
    
    [ Upstream commit e025da3d7aa4770bb1d1b3b0aa7cc4da1744852d ]
    
    If "ret_len" is negative then it could lead to a NULL dereference.
    
    The "ret_len" value comes from nl80211_vendor_cmd(), if it's negative
    then we don't allocate the "dcmd_buf" buffer.  Then we pass "ret_len" to
    brcmf_fil_cmd_data_set() where it is cast to a very high u32 value.
    Most of the functions in that call tree check whether the buffer we pass
    is NULL but there are at least a couple places which don't such as
    brcmf_dbg_hex_dump() and brcmf_msgbuf_query_dcmd().  We memcpy() to and
    from the buffer so it would result in a NULL dereference.
    
    The fix is to change the types so that "ret_len" can't be negative.  (If
    we memcpy() zero bytes to NULL, that's a no-op and doesn't cause an
    issue).
    
    Fixes: 1bacb0487d0e ("brcmfmac: replace cfg80211 testmode with vendor command")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f31932a91a12766f2422e100038bff09503d515
Author: Flavio Suligoi <f.suligoi@asem.it>
Date:   Fri Apr 12 09:32:19 2019 +0200

    spi: pxa2xx: fix SCR (divisor) calculation
    
    [ Upstream commit 29f2133717c527f492933b0622a4aafe0b3cbe9e ]
    
    Calculate the divisor for the SCR (Serial Clock Rate), avoiding
    that the SSP transmission rate can be greater than the device rate.
    
    When the division between the SSP clock and the device rate generates
    a reminder, we have to increment by one the divisor.
    In this way the resulting SSP clock will never be greater than the
    device SPI max frequency.
    
    For example, with:
    
     - ssp_clk  = 50 MHz
     - dev freq = 15 MHz
    
    without this patch the SSP clock will be greater than 15 MHz:
    
     - 25 MHz for PXA25x_SSP and CE4100_SSP
     - 16,56 MHz for the others
    
    Instead, with this patch, we have in both case an SSP clock of 12.5MHz,
    so the max rate of the SPI device clock is respected.
    
    Signed-off-by: Flavio Suligoi <f.suligoi@asem.it>
    Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 68f630d8b3dd0098b6e0e9a1df4df3f6cad6280d
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Apr 16 15:12:23 2019 +0200

    ASoC: imx: fix fiq dependencies
    
    [ Upstream commit ea751227c813ab833609afecfeedaf0aa26f327e ]
    
    During randconfig builds, I occasionally run into an invalid configuration
    of the freescale FIQ sound support:
    
    WARNING: unmet direct dependencies detected for SND_SOC_IMX_PCM_FIQ
      Depends on [m]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_IMX_SOC [=m]
      Selected by [y]:
      - SND_SOC_FSL_SPDIF [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_IMX_SOC [=m]!=n && (MXC_TZIC [=n] || MXC_AVIC [=y])
    
    sound/soc/fsl/imx-ssi.o: In function `imx_ssi_remove':
    imx-ssi.c:(.text+0x28): undefined reference to `imx_pcm_fiq_exit'
    sound/soc/fsl/imx-ssi.o: In function `imx_ssi_probe':
    imx-ssi.c:(.text+0xa64): undefined reference to `imx_pcm_fiq_init'
    
    The Kconfig warning is a result of the symbol being defined inside of
    the "if SND_IMX_SOC" block, and is otherwise harmless. The link error
    is more tricky and happens with SND_SOC_IMX_SSI=y, which may or may not
    imply FIQ support. However, if SND_SOC_FSL_SSI is set to =m at the same
    time, that selects SND_SOC_IMX_PCM_FIQ as a loadable module dependency,
    which then causes a link failure from imx-ssi.
    
    The solution here is to make SND_SOC_IMX_PCM_FIQ built-in whenever
    one of its potential users is built-in.
    
    Fixes: ff40260f79dc ("ASoC: fsl: refine DMA/FIQ dependencies")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bfcbe50579658e6bbe8a5ef0287b37c822e9c8cc
Author: Bo YU <tsu.yubo@gmail.com>
Date:   Tue Oct 30 09:21:55 2018 -0400

    powerpc/boot: Fix missing check of lseek() return value
    
    [ Upstream commit 5d085ec04a000fefb5182d3b03ee46ca96d8389b ]
    
    This is detected by Coverity scan: CID: 1440481
    
    Signed-off-by: Bo YU <tsu.yubo@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da8db898f9204598d64bd6971d9c0701f1b95830
Author: Jerome Brunet <jbrunet@baylibre.com>
Date:   Mon Apr 29 15:29:39 2019 +0200

    ASoC: hdmi-codec: unlock the device on startup errors
    
    [ Upstream commit 30180e8436046344b12813dc954b2e01dfdcd22d ]
    
    If the hdmi codec startup fails, it should clear the current_substream
    pointer to free the device. This is properly done for the audio_startup()
    callback but for snd_pcm_hw_constraint_eld().
    
    Make sure the pointer cleared if an error is reported.
    
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b4ff6aeb67aa90e2716caf98fd96e78b90695f3
Author: Sameeh Jubran <sameehj@amazon.com>
Date:   Wed May 1 16:47:10 2019 +0300

    net: ena: gcc 8: fix compilation warning
    
    [ Upstream commit f913308879bc6ae437ce64d878c7b05643ddea44 ]
    
    GCC 8 contains a number of new warnings as well as enhancements to existing
    checkers. The warning - Wstringop-truncation - warns for calls to bounded
    string manipulation functions such as strncat, strncpy, and stpncpy that
    may either truncate the copied string or leave the destination unchanged.
    
    In our case the destination string length (32 bytes) is much shorter than
    the source string (64 bytes) which causes this warning to show up. In
    general the destination has to be at least a byte larger than the length
    of the source string with strncpy for this warning not to showup.
    
    This can be easily fixed by using strlcpy instead which already does the
    truncation to the string. Documentation for this function can be
    found here:
    
    https://elixir.bootlin.com/linux/latest/source/lib/string.c#L141
    
    Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
    Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 12ada5b2b8b72c4933af4a135fae760256836beb
Author: Sameer Pujar <spujar@nvidia.com>
Date:   Thu May 2 18:25:16 2019 +0530

    dmaengine: tegra210-dma: free dma controller in remove()
    
    [ Upstream commit f030e419501cb95e961e9ed35c493b5d46a04eca ]
    
    Following kernel panic is seen during DMA driver unload->load sequence
    ==========================================================================
    Unable to handle kernel paging request at virtual address ffffff8001198880
    Internal error: Oops: 86000007 [#1] PREEMPT SMP
    CPU: 0 PID: 5907 Comm: HwBinder:4123_1 Tainted: G C 4.9.128-tegra-g065839f
    Hardware name: galen (DT)
    task: ffffffc3590d1a80 task.stack: ffffffc3d0678000
    PC is at 0xffffff8001198880
    LR is at of_dma_request_slave_channel+0xd8/0x1f8
    pc : [<ffffff8001198880>] lr : [<ffffff8008746f30>] pstate: 60400045
    sp : ffffffc3d067b710
    x29: ffffffc3d067b710 x28: 000000000000002f
    x27: ffffff800949e000 x26: ffffff800949e750
    x25: ffffff800949e000 x24: ffffffbefe817d84
    x23: ffffff8009f77cb0 x22: 0000000000000028
    x21: ffffffc3ffda49c8 x20: 0000000000000029
    x19: 0000000000000001 x18: ffffffffffffffff
    x17: 0000000000000000 x16: ffffff80082b66a0
    x15: ffffff8009e78250 x14: 000000000000000a
    x13: 0000000000000038 x12: 0101010101010101
    x11: 0000000000000030 x10: 0101010101010101
    x9 : fffffffffffffffc x8 : 7f7f7f7f7f7f7f7f
    x7 : 62ff726b6b64622c x6 : 0000000000008064
    x5 : 6400000000000000 x4 : ffffffbefe817c44
    x3 : ffffffc3ffda3e08 x2 : ffffff8001198880
    x1 : ffffffc3d48323c0 x0 : ffffffc3d067b788
    
    Process HwBinder:4123_1 (pid: 5907, stack limit = 0xffffffc3d0678028)
    Call trace:
    [<ffffff8001198880>] 0xffffff8001198880
    [<ffffff80087459f8>] dma_request_chan+0x50/0x1f0
    [<ffffff8008745bc0>] dma_request_slave_channel+0x28/0x40
    [<ffffff8001552c44>] tegra_alt_pcm_open+0x114/0x170
    [<ffffff8008d65fa4>] soc_pcm_open+0x10c/0x878
    [<ffffff8008d18618>] snd_pcm_open_substream+0xc0/0x170
    [<ffffff8008d1878c>] snd_pcm_open+0xc4/0x240
    [<ffffff8008d189e0>] snd_pcm_playback_open+0x58/0x80
    [<ffffff8008cfc6d4>] snd_open+0xb4/0x178
    [<ffffff8008250628>] chrdev_open+0xb8/0x1d0
    [<ffffff8008246fdc>] do_dentry_open+0x214/0x318
    [<ffffff80082485d0>] vfs_open+0x58/0x88
    [<ffffff800825bce0>] do_last+0x450/0xde0
    [<ffffff800825c718>] path_openat+0xa8/0x368
    [<ffffff800825dd84>] do_filp_open+0x8c/0x110
    [<ffffff8008248a74>] do_sys_open+0x164/0x220
    [<ffffff80082b66dc>] compat_SyS_openat+0x3c/0x50
    [<ffffff8008083040>] el0_svc_naked+0x34/0x38
    ---[ end trace 67e6d544e65b5145 ]---
    Kernel panic - not syncing: Fatal exception
    ==========================================================================
    
    In device probe(), of_dma_controller_register() registers DMA controller.
    But when driver is removed, this is not freed. During driver reload this
    results in data abort and kernel panic. Add of_dma_controller_free() in
    driver remove path to fix the issue.
    
    Fixes: f46b195799b5 ("dmaengine: tegra-adma: Add support for Tegra210 ADMA")
    Signed-off-by: Sameer Pujar <spujar@nvidia.com>
    Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48b759f4ae02a3d5f40ce2884a34adb318a38dad
Author: Raul E Rangel <rrangel@chromium.org>
Date:   Mon Apr 29 11:32:39 2019 -0600

    mmc: core: Verify SD bus width
    
    [ Upstream commit 9e4be8d03f50d1b25c38e2b59e73b194c130df7d ]
    
    The SD Physical Layer Spec says the following: Since the SD Memory Card
    shall support at least the two bus modes 1-bit or 4-bit width, then any SD
    Card shall set at least bits 0 and 2 (SD_BUS_WIDTH="0101").
    
    This change verifies the card has specified a bus width.
    
    AMD SDHC Device 7806 can get into a bad state after a card disconnect
    where anything transferred via the DATA lines will always result in a
    zero filled buffer. Currently the driver will continue without error if
    the HC is in this condition. A block device will be created, but reading
    from it will result in a zero buffer. This makes it seem like the SD
    device has been erased, when in actuality the data is never getting
    copied from the DATA lines to the data buffer.
    
    SCR is the first command in the SD initialization sequence that uses the
    DATA lines. By checking that the response was invalid, we can abort
    mounting the card.
    
    Reviewed-by: Avri Altman <avri.altman@wdc.com>
    Signed-off-by: Raul E Rangel <rrangel@chromium.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af7632268d655902e6df8023cf82db1bf4504144
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Mon May 6 23:57:54 2019 +0800

    cxgb4: Fix error path in cxgb4_init_module
    
    [ Upstream commit a3147770bea76c8dbad73eca3a24c2118da5e719 ]
    
    BUG: unable to handle kernel paging request at ffffffffa016a270
    PGD 3270067 P4D 3270067 PUD 3271063 PMD 230bbd067 PTE 0
    Oops: 0000 [#1
    CPU: 0 PID: 6134 Comm: modprobe Not tainted 5.1.0+ #33
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
    RIP: 0010:atomic_notifier_chain_register+0x24/0x60
    Code: 1f 80 00 00 00 00 55 48 89 e5 41 54 49 89 f4 53 48 89 fb e8 ae b4 38 01 48 8b 53 38 48 8d 4b 38 48 85 d2 74 20 45 8b 44 24 10 <44> 3b 42 10 7e 08 eb 13 44 39 42 10 7c 0d 48 8d 4a 08 48 8b 52 08
    RSP: 0018:ffffc90000e2bc60 EFLAGS: 00010086
    RAX: 0000000000000292 RBX: ffffffff83467240 RCX: ffffffff83467278
    RDX: ffffffffa016a260 RSI: ffffffff83752140 RDI: ffffffff83467240
    RBP: ffffc90000e2bc70 R08: 0000000000000000 R09: 0000000000000001
    R10: 0000000000000000 R11: 00000000014fa61f R12: ffffffffa01c8260
    R13: ffff888231091e00 R14: 0000000000000000 R15: ffffc90000e2be78
    FS:  00007fbd8d7cd540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: ffffffffa016a270 CR3: 000000022c7e3000 CR4: 00000000000006f0
    Call Trace:
     register_inet6addr_notifier+0x13/0x20
     cxgb4_init_module+0x6c/0x1000 [cxgb4
     ? 0xffffffffa01d7000
     do_one_initcall+0x6c/0x3cc
     ? do_init_module+0x22/0x1f1
     ? rcu_read_lock_sched_held+0x97/0xb0
     ? kmem_cache_alloc_trace+0x325/0x3b0
     do_init_module+0x5b/0x1f1
     load_module+0x1db1/0x2690
     ? m_show+0x1d0/0x1d0
     __do_sys_finit_module+0xc5/0xd0
     __x64_sys_finit_module+0x15/0x20
     do_syscall_64+0x6b/0x1d0
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    If pci_register_driver fails, register inet6addr_notifier is
    pointless. This patch fix the error path in cxgb4_init_module.
    
    Fixes: b5a02f503caa ("cxgb4 : Update ipv6 address handling api")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b568ed385a18c0ddbe41862b69088b636550a04f
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Wed Mar 27 17:09:17 2019 +0000

    gfs2: Fix lru_count going negative
    
    [ Upstream commit 7881ef3f33bb80f459ea6020d1e021fc524a6348 ]
    
    Under certain conditions, lru_count may drop below zero resulting in
    a large amount of log spam like this:
    
    vmscan: shrink_slab: gfs2_dump_glock+0x3b0/0x630 [gfs2] \
        negative objects to delete nr=-1
    
    This happens as follows:
    1) A glock is moved from lru_list to the dispose list and lru_count is
       decremented.
    2) The dispose function calls cond_resched() and drops the lru lock.
    3) Another thread takes the lru lock and tries to add the same glock to
       lru_list, checking if the glock is on an lru list.
    4) It is on a list (actually the dispose list) and so it avoids
       incrementing lru_count.
    5) The glock is moved to lru_list.
    5) The original thread doesn't dispose it because it has been re-added
       to the lru list but the lru_count has still decreased by one.
    
    Fix by checking if the LRU flag is set on the glock rather than checking
    if the glock is on some list and rearrange the code so that the LRU flag
    is added/removed precisely when the glock is added/removed from lru_list.
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit abc261c8b99de79b7a249cfe05760565eab08e5f
Author: David Sterba <dsterba@suse.com>
Date:   Wed May 29 19:25:45 2019 +0200

    Revert "btrfs: Honour FITRIM range constraints during free space trim"
    
    This reverts commit 038ec2c13e0d1f7b9d45a081786f18f75b65f11b.
    
    There is currently no corresponding patch in master due to additional
    changes that would be significantly different from plain revert in the
    respective stable branch.
    
    The range argument was not handled correctly and could cause trim to
    overlap allocated areas or reach beyond the end of the device. The
    address space that fitrim normally operates on is in logical
    coordinates, while the discards are done on the physical device extents.
    This distinction cannot be made with the current ioctl interface and
    caused the confusion.
    
    The bug depends on the layout of block groups and does not always
    happen. The whole-fs trim (run by default by the fstrim tool) is not
    affected.
    
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f6644ff006bc9429c2f72dd8705b4fe46f49639
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Sep 25 10:55:59 2018 -0300

    tools include: Adopt linux/bits.h
    
    commit ba4aa02b417f08a0bee5e7b8ed70cac788a7c854 upstream.
    
    So that we reduce the difference of tools/include/linux/bitops.h to the
    original kernel file, include/linux/bitops.h, trying to remove the need
    to define BITS_PER_LONG, to avoid clashes with asm/bitsperlong.h.
    
    And the things removed from tools/include/linux/bitops.h are really in
    linux/bits.h, so that we can have a copy and then
    tools/perf/check_headers.sh will tell us when new stuff gets added to
    linux/bits.h so that we can check if it is useful and if any adjustment
    needs to be done to the tools/{include,arch}/ copies.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Sverdlin <alexander.sverdlin@nokia.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: https://lkml.kernel.org/n/tip-y1sqyydvfzo0bjjoj4zsl562@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    [bwh: Backported to 4.9 as dependency of "x86/msr-index: Cleanup bit defines";
     adjusted context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d31e3e39c68cf800c873c866cfdbd6aceb608207
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Tue Apr 18 11:42:23 2017 -0300

    perf tools: No need to include bitops.h in util.h
    
    commit 6dcca6df4b73d409628c7b4464c63d4eb9d4d13a upstream.
    
    When we switched to the kernel's roundup_pow_of_two we forgot to remove
    this include from util.h, do it now.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Fixes: 91529834d1de ("perf evlist: Use roundup_pow_of_two")
    Link: http://lkml.kernel.org/n/tip-kfye5rxivib6155cltx0bw4h@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    [bwh: Backported to 4.9 as dependency of "tools include: Adopt linux/bits.h";
     adjusted context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a186a933f9eca5fa7c10c975ba6d307a0ab1ba0a
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Mon Apr 8 11:45:29 2019 +0800

    at76c50x-usb: Don't register led_trigger if usb_register_driver failed
    
    commit 09ac2694b0475f96be895848687ebcbba97eeecf upstream.
    
    Syzkaller report this:
    
    [ 1213.468581] BUG: unable to handle kernel paging request at fffffbfff83bf338
    [ 1213.469530] #PF error: [normal kernel read fault]
    [ 1213.469530] PGD 237fe4067 P4D 237fe4067 PUD 237e60067 PMD 1c868b067 PTE 0
    [ 1213.473514] Oops: 0000 [#1] SMP KASAN PTI
    [ 1213.473514] CPU: 0 PID: 6321 Comm: syz-executor.0 Tainted: G         C        5.1.0-rc3+ #8
    [ 1213.473514] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    [ 1213.473514] RIP: 0010:strcmp+0x31/0xa0
    [ 1213.473514] Code: 00 00 00 00 fc ff df 55 53 48 83 ec 08 eb 0a 84 db 48 89 ef 74 5a 4c 89 e6 48 89 f8 48 89 fa 48 8d 6f 01 48 c1 e8 03 83 e2 07 <42> 0f b6 04 28 38 d0 7f 04 84 c0 75 50 48 89 f0 48 89 f2 0f b6 5d
    [ 1213.473514] RSP: 0018:ffff8881f2b7f950 EFLAGS: 00010246
    [ 1213.473514] RAX: 1ffffffff83bf338 RBX: ffff8881ea6f7240 RCX: ffffffff825350c6
    [ 1213.473514] RDX: 0000000000000000 RSI: ffffffffc1ee19c0 RDI: ffffffffc1df99c0
    [ 1213.473514] RBP: ffffffffc1df99c1 R08: 0000000000000001 R09: 0000000000000004
    [ 1213.473514] R10: 0000000000000000 R11: ffff8881de353f00 R12: ffff8881ee727900
    [ 1213.473514] R13: dffffc0000000000 R14: 0000000000000001 R15: ffffffffc1eeaaf0
    [ 1213.473514] FS:  00007fa66fa01700(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000
    [ 1213.473514] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 1213.473514] CR2: fffffbfff83bf338 CR3: 00000001ebb9e005 CR4: 00000000007606f0
    [ 1213.473514] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 1213.473514] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [ 1213.473514] PKRU: 55555554
    [ 1213.473514] Call Trace:
    [ 1213.473514]  led_trigger_register+0x112/0x3f0
    [ 1213.473514]  led_trigger_register_simple+0x7a/0x110
    [ 1213.473514]  ? 0xffffffffc1c10000
    [ 1213.473514]  at76_mod_init+0x77/0x1000 [at76c50x_usb]
    [ 1213.473514]  do_one_initcall+0xbc/0x47d
    [ 1213.473514]  ? perf_trace_initcall_level+0x3a0/0x3a0
    [ 1213.473514]  ? kasan_unpoison_shadow+0x30/0x40
    [ 1213.473514]  ? kasan_unpoison_shadow+0x30/0x40
    [ 1213.473514]  do_init_module+0x1b5/0x547
    [ 1213.473514]  load_module+0x6405/0x8c10
    [ 1213.473514]  ? module_frob_arch_sections+0x20/0x20
    [ 1213.473514]  ? kernel_read_file+0x1e6/0x5d0
    [ 1213.473514]  ? find_held_lock+0x32/0x1c0
    [ 1213.473514]  ? cap_capable+0x1ae/0x210
    [ 1213.473514]  ? __do_sys_finit_module+0x162/0x190
    [ 1213.473514]  __do_sys_finit_module+0x162/0x190
    [ 1213.473514]  ? __ia32_sys_init_module+0xa0/0xa0
    [ 1213.473514]  ? __mutex_unlock_slowpath+0xdc/0x690
    [ 1213.473514]  ? wait_for_completion+0x370/0x370
    [ 1213.473514]  ? vfs_write+0x204/0x4a0
    [ 1213.473514]  ? do_syscall_64+0x18/0x450
    [ 1213.473514]  do_syscall_64+0x9f/0x450
    [ 1213.473514]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [ 1213.473514] RIP: 0033:0x462e99
    [ 1213.473514] Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    [ 1213.473514] RSP: 002b:00007fa66fa00c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
    [ 1213.473514] RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    [ 1213.473514] RDX: 0000000000000000 RSI: 0000000020000300 RDI: 0000000000000003
    [ 1213.473514] RBP: 00007fa66fa00c70 R08: 0000000000000000 R09: 0000000000000000
    [ 1213.473514] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fa66fa016bc
    [ 1213.473514] R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004
    
    If usb_register failed, no need to call led_trigger_register_simple.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 1264b951463a ("at76c50x-usb: add driver")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c815115b5116132f58ee7967d753fba8bdab7cd
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Mar 6 19:56:58 2019 +0800

    ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit
    
    commit b2c01aab9646ed8ffb7c549afe55d5349c482425 upstream.
    
    Syzkaller report this:
    
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN PTI
    CPU: 0 PID: 4492 Comm: syz-executor.0 Not tainted 5.0.0-rc7+ #45
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    RIP: 0010:sysfs_remove_file_ns+0x27/0x70 fs/sysfs/file.c:468
    Code: 00 00 00 41 54 55 48 89 fd 53 49 89 d4 48 89 f3 e8 ee 76 9c ff 48 8d 7d 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 75 2d 48 89 da 48 b8 00 00 00 00 00 fc ff df 48 8b 6d
    RSP: 0018:ffff8881e9d9fc00 EFLAGS: 00010206
    RAX: dffffc0000000000 RBX: ffffffff900367e0 RCX: ffffffff81a95952
    RDX: 0000000000000006 RSI: ffffc90001405000 RDI: 0000000000000030
    RBP: 0000000000000000 R08: fffffbfff1fa22ed R09: fffffbfff1fa22ed
    R10: 0000000000000001 R11: fffffbfff1fa22ec R12: 0000000000000000
    R13: ffffffffc1abdac0 R14: 1ffff1103d3b3f8b R15: 0000000000000000
    FS:  00007fe409dc1700(0000) GS:ffff8881f1200000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b2d721000 CR3: 00000001e98b6005 CR4: 00000000007606f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     sysfs_remove_file include/linux/sysfs.h:519 [inline]
     driver_remove_file+0x40/0x50 drivers/base/driver.c:122
     pcmcia_remove_newid_file drivers/pcmcia/ds.c:163 [inline]
     pcmcia_unregister_driver+0x7d/0x2b0 drivers/pcmcia/ds.c:209
     ssb_modexit+0xa/0x1b [ssb]
     __do_sys_delete_module kernel/module.c:1018 [inline]
     __se_sys_delete_module kernel/module.c:961 [inline]
     __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007fe409dc0c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000200000c0
    RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe409dc16bc
    R13: 00000000004bccaa R14: 00000000006f6bc8 R15: 00000000ffffffff
    Modules linked in: ssb(-) 3c59x nvme_core macvlan tap pata_hpt3x3 rt2x00pci null_blk tsc40 pm_notifier_error_inject notifier_error_inject mdio cdc_wdm nf_reject_ipv4 ath9k_common ath9k_hw ath pppox ppp_generic slhc ehci_platform wl12xx wlcore tps6507x_ts ioc4 nf_synproxy_core ide_gd_mod ax25 can_dev iwlwifi can_raw atm tm2_touchkey can_gw can sundance adp5588_keys rt2800mmio rt2800lib rt2x00mmio rt2x00lib eeprom_93cx6 pn533 lru_cache elants_i2c ip_set nfnetlink gameport tipc hampshire nhc_ipv6 nhc_hop nhc_udp nhc_fragment nhc_routing nhc_mobility nhc_dest 6lowpan silead brcmutil nfc mt76_usb mt76 mac80211 iptable_security iptable_raw iptable_mangle iptable_nat nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_gre sit hsr veth vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon vcan bridge stp llc ip6_gre ip6_tunnel tunnel6 tun joydev mousedev serio_raw ide_pci_generic piix floppy ide_core sch_fq_codel ip_tables x_tables ipv6
     [last unloaded: 3c59x]
    Dumping ftrace buffer:
       (ftrace buffer empty)
    ---[ end trace 3913cbf8011e1c05 ]---
    
    In ssb_modinit, it does not fail SSB init when ssb_host_pcmcia_init failed,
    however in ssb_modexit, ssb_host_pcmcia_exit calls pcmcia_unregister_driver
    unconditionally, which may tigger a NULL pointer dereference issue as above.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 399500da18f7 ("ssb: pick PCMCIA host code support from b43 driver")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5c6631b46815636e69e3451a1f983f46a87a95e0
Author: Alexander Potapenko <glider@google.com>
Date:   Thu Apr 4 10:56:46 2019 -0400

    media: vivid: use vfree() instead of kfree() for dev->bitmap_cap
    
    commit dad7e270ba712ba1c99cd2d91018af6044447a06 upstream.
    
    syzkaller reported crashes on kfree() called from
    vivid_vid_cap_s_selection(). This looks like a simple typo, as
    dev->bitmap_cap is allocated with vzalloc() throughout the file.
    
    Fixes: ef834f7836ec0 ("[media] vivid: add the video capture and output
    parts")
    
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Reported-by: Syzbot <syzbot+6c0effb5877f6b0344e2@syzkaller.appspotmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14734c3c582387e84c4c7c8c9469c274b41ff2b3
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Mar 6 07:45:08 2019 -0500

    media: cpia2: Fix use-after-free in cpia2_exit
    
    commit dea37a97265588da604c6ba80160a287b72c7bfd upstream.
    
    Syzkaller report this:
    
    BUG: KASAN: use-after-free in sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468
    Read of size 8 at addr ffff8881f59a6b70 by task syz-executor.0/8363
    
    CPU: 0 PID: 8363 Comm: syz-executor.0 Not tainted 5.0.0-rc8+ #3
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xfa/0x1ce lib/dump_stack.c:113
     print_address_description+0x65/0x270 mm/kasan/report.c:187
     kasan_report+0x149/0x18d mm/kasan/report.c:317
     sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468
     sysfs_remove_file include/linux/sysfs.h:519 [inline]
     driver_remove_file+0x40/0x50 drivers/base/driver.c:122
     usb_remove_newid_files drivers/usb/core/driver.c:212 [inline]
     usb_deregister+0x12a/0x3b0 drivers/usb/core/driver.c:1005
     cpia2_exit+0xa/0x16 [cpia2]
     __do_sys_delete_module kernel/module.c:1018 [inline]
     __se_sys_delete_module kernel/module.c:961 [inline]
     __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007f86f3754c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000300
    RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007f86f37556bc
    R13: 00000000004bcca9 R14: 00000000006f6b48 R15: 00000000ffffffff
    
    Allocated by task 8363:
     set_track mm/kasan/common.c:85 [inline]
     __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:495
     kmalloc include/linux/slab.h:545 [inline]
     kzalloc include/linux/slab.h:740 [inline]
     bus_add_driver+0xc0/0x610 drivers/base/bus.c:651
     driver_register+0x1bb/0x3f0 drivers/base/driver.c:170
     usb_register_driver+0x267/0x520 drivers/usb/core/driver.c:965
     0xffffffffc1b4817c
     do_one_initcall+0xfa/0x5ca init/main.c:887
     do_init_module+0x204/0x5f6 kernel/module.c:3460
     load_module+0x66b2/0x8570 kernel/module.c:3808
     __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Freed by task 8363:
     set_track mm/kasan/common.c:85 [inline]
     __kasan_slab_free+0x130/0x180 mm/kasan/common.c:457
     slab_free_hook mm/slub.c:1430 [inline]
     slab_free_freelist_hook mm/slub.c:1457 [inline]
     slab_free mm/slub.c:3005 [inline]
     kfree+0xe1/0x270 mm/slub.c:3957
     kobject_cleanup lib/kobject.c:662 [inline]
     kobject_release lib/kobject.c:691 [inline]
     kref_put include/linux/kref.h:67 [inline]
     kobject_put+0x146/0x240 lib/kobject.c:708
     bus_remove_driver+0x10e/0x220 drivers/base/bus.c:732
     driver_unregister+0x6c/0xa0 drivers/base/driver.c:197
     usb_register_driver+0x341/0x520 drivers/usb/core/driver.c:980
     0xffffffffc1b4817c
     do_one_initcall+0xfa/0x5ca init/main.c:887
     do_init_module+0x204/0x5f6 kernel/module.c:3460
     load_module+0x66b2/0x8570 kernel/module.c:3808
     __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    The buggy address belongs to the object at ffff8881f59a6b40
     which belongs to the cache kmalloc-256 of size 256
    The buggy address is located 48 bytes inside of
     256-byte region [ffff8881f59a6b40, ffff8881f59a6c40)
    The buggy address belongs to the page:
    page:ffffea0007d66980 count:1 mapcount:0 mapping:ffff8881f6c02e00 index:0x0
    flags: 0x2fffc0000000200(slab)
    raw: 02fffc0000000200 dead000000000100 dead000000000200 ffff8881f6c02e00
    raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff8881f59a6a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
     ffff8881f59a6a80: 00 00 00 00 00 00 00 00 00 00 fc fc fc fc fc fc
    >ffff8881f59a6b00: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
                                                                 ^
     ffff8881f59a6b80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff8881f59a6c00: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
    
    cpia2_init does not check return value of cpia2_init, if it failed
    in usb_register_driver, there is already cleanup using driver_unregister.
    No need call cpia2_usb_cleanup on module exit.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0c04be9160162a05ac53d424bc193d9956db86c
Author: Jiufei Xue <jiufei.xue@linux.alibaba.com>
Date:   Thu Apr 11 19:25:12 2019 +0200

    fbdev: fix WARNING in __alloc_pages_nodemask bug
    
    commit 8c40292be9169a9cbe19aadd1a6fc60cbd1af82f upstream.
    
    Syzkaller hit 'WARNING in __alloc_pages_nodemask' bug.
    
    WARNING: CPU: 1 PID: 1473 at mm/page_alloc.c:4377
    __alloc_pages_nodemask+0x4da/0x2130
    Kernel panic - not syncing: panic_on_warn set ...
    
    Call Trace:
     alloc_pages_current+0xb1/0x1e0
     kmalloc_order+0x1f/0x60
     kmalloc_order_trace+0x1d/0x120
     fb_alloc_cmap_gfp+0x85/0x2b0
     fb_set_user_cmap+0xff/0x370
     do_fb_ioctl+0x949/0xa20
     fb_ioctl+0xdd/0x120
     do_vfs_ioctl+0x186/0x1070
     ksys_ioctl+0x89/0xa0
     __x64_sys_ioctl+0x74/0xb0
     do_syscall_64+0xc8/0x550
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    This is a warning about order >= MAX_ORDER and the order is from
    userspace ioctl. Add flag __NOWARN to silence this warning.
    
    Signed-off-by: Jiufei Xue <jiufei.xue@linux.alibaba.com>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0539c7018c7f9df819bb45274638d66318ebd48
Author: Mike Kravetz <mike.kravetz@oracle.com>
Date:   Mon May 13 17:19:41 2019 -0700

    hugetlb: use same fault hash key for shared and private mappings
    
    commit 1b426bac66e6cc83c9f2d92b96e4e72acf43419a upstream.
    
    hugetlb uses a fault mutex hash table to prevent page faults of the
    same pages concurrently.  The key for shared and private mappings is
    different.  Shared keys off address_space and file index.  Private keys
    off mm and virtual address.  Consider a private mappings of a populated
    hugetlbfs file.  A fault will map the page from the file and if needed
    do a COW to map a writable page.
    
    Hugetlbfs hole punch uses the fault mutex to prevent mappings of file
    pages.  It uses the address_space file index key.  However, private
    mappings will use a different key and could race with this code to map
    the file page.  This causes problems (BUG) for the page cache remove
    code as it expects the page to be unmapped.  A sample stack is:
    
    page dumped because: VM_BUG_ON_PAGE(page_mapped(page))
    kernel BUG at mm/filemap.c:169!
    ...
    RIP: 0010:unaccount_page_cache_page+0x1b8/0x200
    ...
    Call Trace:
    __delete_from_page_cache+0x39/0x220
    delete_from_page_cache+0x45/0x70
    remove_inode_hugepages+0x13c/0x380
    ? __add_to_page_cache_locked+0x162/0x380
    hugetlbfs_fallocate+0x403/0x540
    ? _cond_resched+0x15/0x30
    ? __inode_security_revalidate+0x5d/0x70
    ? selinux_file_permission+0x100/0x130
    vfs_fallocate+0x13f/0x270
    ksys_fallocate+0x3c/0x80
    __x64_sys_fallocate+0x1a/0x20
    do_syscall_64+0x5b/0x180
    entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    There seems to be another potential COW issue/race with this approach
    of different private and shared keys as noted in commit 8382d914ebf7
    ("mm, hugetlb: improve page-fault scalability").
    
    Since every hugetlb mapping (even anon and private) is actually a file
    mapping, just use the address_space index key for all mappings.  This
    results in potentially more hash collisions.  However, this should not
    be the common case.
    
    Link: http://lkml.kernel.org/r/20190328234704.27083-3-mike.kravetz@oracle.com
    Link: http://lkml.kernel.org/r/20190412165235.t4sscoujczfhuiyt@linux-r8p5
    Fixes: b5cec28d36f5 ("hugetlbfs: truncate_hugepages() takes a range of pages")
    Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
    Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Reviewed-by: Davidlohr Bueso <dbueso@suse.de>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45dbaee4387bbea3331806ee27a24aea4e9f8aca
Author: Shile Zhang <shile.zhang@linux.alibaba.com>
Date:   Mon Apr 1 17:47:00 2019 +0200

    fbdev: fix divide error in fb_var_to_videomode
    
    commit cf84807f6dd0be5214378e66460cfc9187f532f9 upstream.
    
    To fix following divide-by-zero error found by Syzkaller:
    
      divide error: 0000 [#1] SMP PTI
      CPU: 7 PID: 8447 Comm: test Kdump: loaded Not tainted 4.19.24-8.al7.x86_64 #1
      Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org 04/01/2014
      RIP: 0010:fb_var_to_videomode+0xae/0xc0
      Code: 04 44 03 46 78 03 4e 7c 44 03 46 68 03 4e 70 89 ce d1 ee 69 c0 e8 03 00 00 f6 c2 01 0f 45 ce 83 e2 02 8d 34 09 0f 45 ce 31 d2 <41> f7 f0 31 d2 f7 f1 89 47 08 f3 c3 66 0f 1f 44 00 00 0f 1f 44 00
      RSP: 0018:ffffb7e189347bf0 EFLAGS: 00010246
      RAX: 00000000e1692410 RBX: ffffb7e189347d60 RCX: 0000000000000000
      RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffb7e189347c10
      RBP: ffff99972a091c00 R08: 0000000000000000 R09: 0000000000000000
      R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000100
      R13: 0000000000010000 R14: 00007ffd66baf6d0 R15: 0000000000000000
      FS:  00007f2054d11740(0000) GS:ffff99972fbc0000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f205481fd20 CR3: 00000004288a0001 CR4: 00000000001606a0
      Call Trace:
       fb_set_var+0x257/0x390
       ? lookup_fast+0xbb/0x2b0
       ? fb_open+0xc0/0x140
       ? chrdev_open+0xa6/0x1a0
       do_fb_ioctl+0x445/0x5a0
       do_vfs_ioctl+0x92/0x5f0
       ? __alloc_fd+0x3d/0x160
       ksys_ioctl+0x60/0x90
       __x64_sys_ioctl+0x16/0x20
       do_syscall_64+0x5b/0x190
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
      RIP: 0033:0x7f20548258d7
      Code: 44 00 00 48 8b 05 b9 15 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 89 15 2d 00 f7 d8 64 89 01 48
    
    It can be triggered easily with following test code:
    
      #include <linux/fb.h>
      #include <fcntl.h>
      #include <sys/ioctl.h>
      int main(void)
      {
              struct fb_var_screeninfo var = {.activate = 0x100, .pixclock = 60};
              int fd = open("/dev/fb0", O_RDWR);
              if (fd < 0)
                      return 1;
    
              if (ioctl(fd, FBIOPUT_VSCREENINFO, &var))
                      return 1;
    
              return 0;
      }
    
    Signed-off-by: Shile Zhang <shile.zhang@linux.alibaba.com>
    Cc: Fredrik Noring <noring@nocrew.org>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0c26e8a838653e9e8c01645e31325e048a3b7ac
Author: Tobin C. Harding <tobin@kernel.org>
Date:   Mon May 13 13:39:12 2019 +1000

    btrfs: sysfs: don't leak memory when failing add fsid
    
    commit e32773357d5cc271b1d23550b3ed026eb5c2a468 upstream.
    
    A failed call to kobject_init_and_add() must be followed by a call to
    kobject_put().  Currently in the error path when adding fs_devices we
    are missing this call.  This could be fixed by calling
    btrfs_sysfs_remove_fsid() if btrfs_sysfs_add_fsid() returns an error or
    by adding a call to kobject_put() directly in btrfs_sysfs_add_fsid().
    Here we choose the second option because it prevents the slightly
    unusual error path handling requirements of kobject from leaking out
    into btrfs functions.
    
    Add a call to kobject_put() in the error path of kobject_add_and_init().
    This causes the release method to be called if kobject_init_and_add()
    fails.  open_tree() is the function that calls btrfs_sysfs_add_fsid()
    and the error code in this function is already written with the
    assumption that the release method is called during the error path of
    open_tree() (as seen by the call to btrfs_sysfs_remove_fsid() under the
    fail_fsdev_sysfs label).
    
    Cc: stable@vger.kernel.org # v4.4+
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Tobin C. Harding <tobin@kernel.org>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8852217434663c9e0cc39a409716e1d92b4080c2
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon May 6 16:44:02 2019 +0100

    Btrfs: fix race between ranged fsync and writeback of adjacent ranges
    
    commit 0c713cbab6200b0ab6473b50435e450a6e1de85d upstream.
    
    When we do a full fsync (the bit BTRFS_INODE_NEEDS_FULL_SYNC is set in the
    inode) that happens to be ranged, which happens during a msync() or writes
    for files opened with O_SYNC for example, we can end up with a corrupt log,
    due to different file extent items representing ranges that overlap with
    each other, or hit some assertion failures.
    
    When doing a ranged fsync we only flush delalloc and wait for ordered
    exents within that range. If while we are logging items from our inode
    ordered extents for adjacent ranges complete, we end up in a race that can
    make us insert the file extent items that overlap with others we logged
    previously and the assertion failures.
    
    For example, if tree-log.c:copy_items() receives a leaf that has the
    following file extents items, all with a length of 4K and therefore there
    is an implicit hole in the range 68K to 72K - 1:
    
      (257 EXTENT_ITEM 64K), (257 EXTENT_ITEM 72K), (257 EXTENT_ITEM 76K), ...
    
    It copies them to the log tree. However due to the need to detect implicit
    holes, it may release the path, in order to look at the previous leaf to
    detect an implicit hole, and then later it will search again in the tree
    for the first file extent item key, with the goal of locking again the
    leaf (which might have changed due to concurrent changes to other inodes).
    
    However when it locks again the leaf containing the first key, the key
    corresponding to the extent at offset 72K may not be there anymore since
    there is an ordered extent for that range that is finishing (that is,
    somewhere in the middle of btrfs_finish_ordered_io()), and it just
    removed the file extent item but has not yet replaced it with a new file
    extent item, so the part of copy_items() that does hole detection will
    decide that there is a hole in the range starting from 68K to 76K - 1,
    and therefore insert a file extent item to represent that hole, having
    a key offset of 68K. After that we now have a log tree with 2 different
    extent items that have overlapping ranges:
    
     1) The file extent item copied before copy_items() released the path,
        which has a key offset of 72K and a length of 4K, representing the
        file range 72K to 76K - 1.
    
     2) And a file extent item representing a hole that has a key offset of
        68K and a length of 8K, representing the range 68K to 76K - 1. This
        item was inserted after releasing the path, and overlaps with the
        extent item inserted before.
    
    The overlapping extent items can cause all sorts of unpredictable and
    incorrect behaviour, either when replayed or if a fast (non full) fsync
    happens later, which can trigger a BUG_ON() when calling
    btrfs_set_item_key_safe() through __btrfs_drop_extents(), producing a
    trace like the following:
    
      [61666.783269] ------------[ cut here ]------------
      [61666.783943] kernel BUG at fs/btrfs/ctree.c:3182!
      [61666.784644] invalid opcode: 0000 [#1] PREEMPT SMP
      (...)
      [61666.786253] task: ffff880117b88c40 task.stack: ffffc90008168000
      [61666.786253] RIP: 0010:btrfs_set_item_key_safe+0x7c/0xd2 [btrfs]
      [61666.786253] RSP: 0018:ffffc9000816b958 EFLAGS: 00010246
      [61666.786253] RAX: 0000000000000000 RBX: 000000000000000f RCX: 0000000000030000
      [61666.786253] RDX: 0000000000000000 RSI: ffffc9000816ba4f RDI: ffffc9000816b937
      [61666.786253] RBP: ffffc9000816b998 R08: ffff88011dae2428 R09: 0000000000001000
      [61666.786253] R10: 0000160000000000 R11: 6db6db6db6db6db7 R12: ffff88011dae2418
      [61666.786253] R13: ffffc9000816ba4f R14: ffff8801e10c4118 R15: ffff8801e715c000
      [61666.786253] FS:  00007f6060a18700(0000) GS:ffff88023f5c0000(0000) knlGS:0000000000000000
      [61666.786253] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [61666.786253] CR2: 00007f6060a28000 CR3: 0000000213e69000 CR4: 00000000000006e0
      [61666.786253] Call Trace:
      [61666.786253]  __btrfs_drop_extents+0x5e3/0xaad [btrfs]
      [61666.786253]  ? time_hardirqs_on+0x9/0x14
      [61666.786253]  btrfs_log_changed_extents+0x294/0x4e0 [btrfs]
      [61666.786253]  ? release_extent_buffer+0x38/0xb4 [btrfs]
      [61666.786253]  btrfs_log_inode+0xb6e/0xcdc [btrfs]
      [61666.786253]  ? lock_acquire+0x131/0x1c5
      [61666.786253]  ? btrfs_log_inode_parent+0xee/0x659 [btrfs]
      [61666.786253]  ? arch_local_irq_save+0x9/0xc
      [61666.786253]  ? btrfs_log_inode_parent+0x1f5/0x659 [btrfs]
      [61666.786253]  btrfs_log_inode_parent+0x223/0x659 [btrfs]
      [61666.786253]  ? arch_local_irq_save+0x9/0xc
      [61666.786253]  ? lockref_get_not_zero+0x2c/0x34
      [61666.786253]  ? rcu_read_unlock+0x3e/0x5d
      [61666.786253]  btrfs_log_dentry_safe+0x60/0x7b [btrfs]
      [61666.786253]  btrfs_sync_file+0x317/0x42c [btrfs]
      [61666.786253]  vfs_fsync_range+0x8c/0x9e
      [61666.786253]  SyS_msync+0x13c/0x1c9
      [61666.786253]  entry_SYSCALL_64_fastpath+0x18/0xad
    
    A sample of a corrupt log tree leaf with overlapping extents I got from
    running btrfs/072:
    
          item 14 key (295 108 200704) itemoff 2599 itemsize 53
                  extent data disk bytenr 0 nr 0
                  extent data offset 0 nr 458752 ram 458752
          item 15 key (295 108 659456) itemoff 2546 itemsize 53
                  extent data disk bytenr 4343541760 nr 770048
                  extent data offset 606208 nr 163840 ram 770048
          item 16 key (295 108 663552) itemoff 2493 itemsize 53
                  extent data disk bytenr 4343541760 nr 770048
                  extent data offset 610304 nr 155648 ram 770048
          item 17 key (295 108 819200) itemoff 2440 itemsize 53
                  extent data disk bytenr 4334788608 nr 4096
                  extent data offset 0 nr 4096 ram 4096
    
    The file extent item at offset 659456 (item 15) ends at offset 823296
    (659456 + 163840) while the next file extent item (item 16) starts at
    offset 663552.
    
    Another different problem that the race can trigger is a failure in the
    assertions at tree-log.c:copy_items(), which expect that the first file
    extent item key we found before releasing the path exists after we have
    released path and that the last key we found before releasing the path
    also exists after releasing the path:
    
      $ cat -n fs/btrfs/tree-log.c
      4080          if (need_find_last_extent) {
      4081                  /* btrfs_prev_leaf could return 1 without releasing the path */
      4082                  btrfs_release_path(src_path);
      4083                  ret = btrfs_search_slot(NULL, inode->root, &first_key,
      4084                                  src_path, 0, 0);
      4085                  if (ret < 0)
      4086                          return ret;
      4087                  ASSERT(ret == 0);
      (...)
      4103                  if (i >= btrfs_header_nritems(src_path->nodes[0])) {
      4104                          ret = btrfs_next_leaf(inode->root, src_path);
      4105                          if (ret < 0)
      4106                                  return ret;
      4107                          ASSERT(ret == 0);
      4108                          src = src_path->nodes[0];
      4109                          i = 0;
      4110                          need_find_last_extent = true;
      4111                  }
      (...)
    
    The second assertion implicitly expects that the last key before the path
    release still exists, because the surrounding while loop only stops after
    we have found that key. When this assertion fails it produces a stack like
    this:
    
      [139590.037075] assertion failed: ret == 0, file: fs/btrfs/tree-log.c, line: 4107
      [139590.037406] ------------[ cut here ]------------
      [139590.037707] kernel BUG at fs/btrfs/ctree.h:3546!
      [139590.038034] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC PTI
      [139590.038340] CPU: 1 PID: 31841 Comm: fsstress Tainted: G        W         5.0.0-btrfs-next-46 #1
      (...)
      [139590.039354] RIP: 0010:assfail.constprop.24+0x18/0x1a [btrfs]
      (...)
      [139590.040397] RSP: 0018:ffffa27f48f2b9b0 EFLAGS: 00010282
      [139590.040730] RAX: 0000000000000041 RBX: ffff897c635d92c8 RCX: 0000000000000000
      [139590.041105] RDX: 0000000000000000 RSI: ffff897d36a96868 RDI: ffff897d36a96868
      [139590.041470] RBP: ffff897d1b9a0708 R08: 0000000000000000 R09: 0000000000000000
      [139590.041815] R10: 0000000000000008 R11: 0000000000000000 R12: 0000000000000013
      [139590.042159] R13: 0000000000000227 R14: ffff897cffcbba88 R15: 0000000000000001
      [139590.042501] FS:  00007f2efc8dee80(0000) GS:ffff897d36a80000(0000) knlGS:0000000000000000
      [139590.042847] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [139590.043199] CR2: 00007f8c064935e0 CR3: 0000000232252002 CR4: 00000000003606e0
      [139590.043547] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [139590.043899] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [139590.044250] Call Trace:
      [139590.044631]  copy_items+0xa3f/0x1000 [btrfs]
      [139590.045009]  ? generic_bin_search.constprop.32+0x61/0x200 [btrfs]
      [139590.045396]  btrfs_log_inode+0x7b3/0xd70 [btrfs]
      [139590.045773]  btrfs_log_inode_parent+0x2b3/0xce0 [btrfs]
      [139590.046143]  ? do_raw_spin_unlock+0x49/0xc0
      [139590.046510]  btrfs_log_dentry_safe+0x4a/0x70 [btrfs]
      [139590.046872]  btrfs_sync_file+0x3b6/0x440 [btrfs]
      [139590.047243]  btrfs_file_write_iter+0x45b/0x5c0 [btrfs]
      [139590.047592]  __vfs_write+0x129/0x1c0
      [139590.047932]  vfs_write+0xc2/0x1b0
      [139590.048270]  ksys_write+0x55/0xc0
      [139590.048608]  do_syscall_64+0x60/0x1b0
      [139590.048946]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      [139590.049287] RIP: 0033:0x7f2efc4be190
      (...)
      [139590.050342] RSP: 002b:00007ffe743243a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
      [139590.050701] RAX: ffffffffffffffda RBX: 0000000000008d58 RCX: 00007f2efc4be190
      [139590.051067] RDX: 0000000000008d58 RSI: 00005567eca0f370 RDI: 0000000000000003
      [139590.051459] RBP: 0000000000000024 R08: 0000000000000003 R09: 0000000000008d60
      [139590.051863] R10: 0000000000000078 R11: 0000000000000246 R12: 0000000000000003
      [139590.052252] R13: 00000000003d3507 R14: 00005567eca0f370 R15: 0000000000000000
      (...)
      [139590.055128] ---[ end trace 193f35d0215cdeeb ]---
    
    So fix this race between a full ranged fsync and writeback of adjacent
    ranges by flushing all delalloc and waiting for all ordered extents to
    complete before logging the inode. This is the simplest way to solve the
    problem because currently the full fsync path does not deal with ranges
    at all (it assumes a full range from 0 to LLONG_MAX) and it always needs
    to look at adjacent ranges for hole detection. For use cases of ranged
    fsyncs this can make a few fsyncs slower but on the other hand it can
    make some following fsyncs to other ranges do less work or no need to do
    anything at all. A full fsync is rare anyway and happens only once after
    loading/creating an inode and once after less common operations such as a
    shrinking truncate.
    
    This is an issue that exists for a long time, and was often triggered by
    generic/127, because it does mmap'ed writes and msync (which triggers a
    ranged fsync). Adding support for the tree checker to detect overlapping
    extents (next patch in the series) and trigger a WARN() when such cases
    are found, and then calling btrfs_check_leaf_full() at the end of
    btrfs_insert_file_extent() made the issue much easier to detect. Running
    btrfs/072 with that change to the tree checker and making fsstress open
    files always with O_SYNC made it much easier to trigger the issue (as
    triggering it with generic/127 is very rare).
    
    CC: stable@vger.kernel.org # 3.16+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d2ceb477f2b709a956f6e3c16d781cd4c38397a2
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Apr 29 13:08:14 2019 +0100

    Btrfs: do not abort transaction at btrfs_update_root() after failure to COW path
    
    commit 72bd2323ec87722c115a5906bc6a1b31d11e8f54 upstream.
    
    Currently when we fail to COW a path at btrfs_update_root() we end up
    always aborting the transaction. However all the current callers of
    btrfs_update_root() are able to deal with errors returned from it, many do
    end up aborting the transaction themselves (directly or not, such as the
    transaction commit path), other BUG_ON() or just gracefully cancel whatever
    they were doing.
    
    When syncing the fsync log, we call btrfs_update_root() through
    tree-log.c:update_log_root(), and if it returns an -ENOSPC error, the log
    sync code does not abort the transaction, instead it gracefully handles
    the error and returns -EAGAIN to the fsync handler, so that it falls back
    to a transaction commit. Any other error different from -ENOSPC, makes the
    log sync code abort the transaction.
    
    So remove the transaction abort from btrfs_update_log() when we fail to
    COW a path to update the root item, so that if an -ENOSPC failure happens
    we avoid aborting the current transaction and have a chance of the fsync
    succeeding after falling back to a transaction commit.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203413
    Fixes: 79787eaab46121 ("btrfs: replace many BUG_ONs with proper error handling")
    Cc: stable@vger.kernel.org # 4.4+
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f22537fe00c1bd7d42214a86ac433f67567da96e
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Fri May 17 19:18:43 2019 +0100

    gfs2: Fix sign extension bug in gfs2_update_stats
    
    commit 5a5ec83d6ac974b12085cd99b196795f14079037 upstream.
    
    Commit 4d207133e9c3 changed the types of the statistic values in struct
    gfs2_lkstats from s64 to u64.  Because of that, what should be a signed
    value in gfs2_update_stats turned into an unsigned value.  When shifted
    right, we end up with a large positive value instead of a small negative
    value, which results in an incorrect variance estimate.
    
    Fixes: 4d207133e9c3 ("gfs2: Make statistics unsigned, suitable for use with do_div()")
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 235aeafb93e96b7540338952dc62d893a00dc7f6
Author: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Date:   Mon Apr 8 18:17:19 2019 +0100

    arm64: Save and restore OSDLR_EL1 across suspend/resume
    
    commit 827a108e354db633698f0b4a10c1ffd2b1f8d1d0 upstream.
    
    When the CPU comes out of suspend, the firmware may have modified the OS
    Double Lock Register. Save it in an unused slot of cpu_suspend_ctx, and
    restore it on resume.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef27496f4165ec1c9605314a73180ea9743ea7d2
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Tue Apr 30 21:51:21 2019 -0700

    libnvdimm/namespace: Fix label tracking error
    
    commit c4703ce11c23423d4b46e3d59aef7979814fd608 upstream.
    
    Users have reported intermittent occurrences of DIMM initialization
    failures due to duplicate allocations of address capacity detected in
    the labels, or errors of the form below, both have the same root cause.
    
        nd namespace1.4: failed to track label: 0
        WARNING: CPU: 17 PID: 1381 at drivers/nvdimm/label.c:863
    
        RIP: 0010:__pmem_label_update+0x56c/0x590 [libnvdimm]
        Call Trace:
         ? nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm]
         nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm]
         uuid_store+0x17e/0x190 [libnvdimm]
         kernfs_fop_write+0xf0/0x1a0
         vfs_write+0xb7/0x1b0
         ksys_write+0x57/0xd0
         do_syscall_64+0x60/0x210
    
    Unfortunately those reports were typically with a busy parallel
    namespace creation / destruction loop making it difficult to see the
    components of the bug. However, Jane provided a simple reproducer using
    the work-in-progress sub-section implementation.
    
    When ndctl is reconfiguring a namespace it may take an existing defunct
    / disabled namespace and reconfigure it with a new uuid and other
    parameters. Critically namespace_update_uuid() takes existing address
    resources and renames them for the new namespace to use / reconfigure as
    it sees fit. The bug is that this rename only happens in the resource
    tracking tree. Existing labels with the old uuid are not reaped leading
    to a scenario where multiple active labels reference the same span of
    address range.
    
    Teach namespace_update_uuid() to flag any references to the old uuid for
    reaping at the next label update attempt.
    
    Cc: <stable@vger.kernel.org>
    Fixes: bf9bccc14c05 ("libnvdimm: pmem label sets and namespace instantiation")
    Link: https://github.com/pmem/ndctl/issues/91
    Reported-by: Jane Chu <jane.chu@oracle.com>
    Reported-by: Jeff Moyer <jmoyer@redhat.com>
    Reported-by: Erwin Tsaur <erwin.tsaur@oracle.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42fee5b32c7245ef7a6a79c184e716a9301b2f29
Author: Suthikulpanit, Suravee <Suravee.Suthikulpanit@amd.com>
Date:   Tue May 14 15:49:52 2019 +0000

    kvm: svm/avic: fix off-by-one in checking host APIC ID
    
    commit c9bcd3e3335d0a29d89fabd2c385e1b989e6f1b0 upstream.
    
    Current logic does not allow VCPU to be loaded onto CPU with
    APIC ID 255. This should be allowed since the host physical APIC ID
    field in the AVIC Physical APIC table entry is an 8-bit value,
    and APIC ID 255 is valid in system with x2APIC enabled.
    Instead, do not allow VCPU load if the host APIC ID cannot be
    represented by an 8-bit value.
    
    Also, use the more appropriate AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK
    instead of AVIC_MAX_PHYSICAL_ID_COUNT.
    
    Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c636a885ae31b7e2e2a62e01d53eb949e0b5c6ba
Author: Daniel Axtens <dja@axtens.net>
Date:   Wed May 15 20:24:50 2019 +1000

    crypto: vmx - CTR: always increment IV as quadword
    
    commit 009b30ac7444c17fae34c4f435ebce8e8e2b3250 upstream.
    
    The kernel self-tests picked up an issue with CTR mode:
    alg: skcipher: p8_aes_ctr encryption test failed (wrong result) on test vector 3, cfg="uneven misaligned splits, may sleep"
    
    Test vector 3 has an IV of FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD, so
    after 3 increments it should wrap around to 0.
    
    In the aesp8-ppc code from OpenSSL, there are two paths that
    increment IVs: the bulk (8 at a time) path, and the individual
    path which is used when there are fewer than 8 AES blocks to
    process.
    
    In the bulk path, the IV is incremented with vadduqm: "Vector
    Add Unsigned Quadword Modulo", which does 128-bit addition.
    
    In the individual path, however, the IV is incremented with
    vadduwm: "Vector Add Unsigned Word Modulo", which instead
    does 4 32-bit additions. Thus the IV would instead become
    FFFFFFFFFFFFFFFFFFFFFFFF00000000, throwing off the result.
    
    Use vadduqm.
    
    This was probably a typo originally, what with q and w being
    adjacent. It is a pretty narrow edge case: I am really
    impressed by the quality of the kernel self-tests!
    
    Fixes: 5c380d623ed3 ("crypto: vmx - Add support for VMS instructions by ASM")
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Acked-by: Nayna Jain <nayna@linux.ibm.com>
    Tested-by: Nayna Jain <nayna@linux.ibm.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33d816ad625d56b1aaef679321870e25ab12b895
Author: Martin K. Petersen <martin.petersen@oracle.com>
Date:   Mon May 20 10:57:18 2019 -0400

    Revert "scsi: sd: Keep disk read-only when re-reading partition"
    
    commit 8acf608e602f6ec38b7cc37b04c80f1ce9a1a6cc upstream.
    
    This reverts commit 20bd1d026aacc5399464f8328f305985c493cde3.
    
    This patch introduced regressions for devices that come online in
    read-only state and subsequently switch to read-write.
    
    Given how the partition code is currently implemented it is not
    possible to persist the read-only flag across a device revalidate
    call. This may need to get addressed in the future since it is common
    for user applications to proactively call BLKRRPART.
    
    Reverting this commit will re-introduce a regression where a
    device-initiated revalidate event will cause the admin state to be
    forgotten. A separate patch will address this issue.
    
    Fixes: 20bd1d026aac ("scsi: sd: Keep disk read-only when re-reading partition")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6aab0ad9a4aef44cb596fbffbca4d956ce6fec4d
Author: Andrea Parri <andrea.parri@amarulasolutions.com>
Date:   Mon May 20 19:23:56 2019 +0200

    bio: fix improper use of smp_mb__before_atomic()
    
    commit f381c6a4bd0ae0fde2d6340f1b9bb0f58d915de6 upstream.
    
    This barrier only applies to the read-modify-write operations; in
    particular, it does not apply to the atomic_set() primitive.
    
    Replace the barrier with an smp_mb().
    
    Fixes: dac56212e8127 ("bio: skip atomic inc/dec of ->bi_cnt for most use cases")
    Cc: stable@vger.kernel.org
    Reported-by: "Paul E. McKenney" <paulmck@linux.ibm.com>
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Andrea Parri <andrea.parri@amarulasolutions.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Ming Lei <ming.lei@redhat.com>
    Cc: linux-block@vger.kernel.org
    Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11cf36c387762d730c63d589da848281bacc8791
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Fri May 24 21:52:46 2019 +0200

    KVM: x86: fix return value for reserved EFER
    
    commit 66f61c92889ff3ca365161fb29dd36d6354682ba upstream.
    
    Commit 11988499e62b ("KVM: x86: Skip EFER vs. guest CPUID checks for
    host-initiated writes", 2019-04-02) introduced a "return false" in a
    function returning int, and anyway set_efer has a "nonzero on error"
    conventon so it should be returning 1.
    
    Reported-by: Pavel Machek <pavel@denx.de>
    Fixes: 11988499e62b ("KVM: x86: Skip EFER vs. guest CPUID checks for host-initiated writes")
    Cc: Sean Christopherson <sean.j.christopherson@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e386c0272b0ff2968655b3af81810b892dc7aa3d
Author: Jan Kara <jack@suse.cz>
Date:   Thu May 23 23:35:28 2019 -0400

    ext4: do not delete unlinked inode from orphan list on failed truncate
    
    commit ee0ed02ca93ef1ecf8963ad96638795d55af2c14 upstream.
    
    It is possible that unlinked inode enters ext4_setattr() (e.g. if
    somebody calls ftruncate(2) on unlinked but still open file). In such
    case we should not delete the inode from the orphan list if truncate
    fails. Note that this is mostly a theoretical concern as filesystem is
    corrupted if we reach this path anyway but let's be consistent in our
    orphan handling.
    
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>