commit b56da4caac598e69d707ee64bf6f6c7b832cc807
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed May 26 11:29:09 2021 +0200

    Linux 4.9.270
    
    Link: https://lore.kernel.org/r/20210524152324.158146731@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6555a006b21ab49090b9a7b36e92d0421db19328
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Wed Mar 10 14:13:08 2021 -0800

    Bluetooth: SMP: Fail if remote and local public keys are identical
    
    commit 6d19628f539fccf899298ff02ee4c73e4bf6df3f upstream.
    
    This fails the pairing procedure when both remote and local non-debug
    public keys are identical.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb0c5c0cf242b9d8eec77cb229dab06f829d8ea7
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Mon May 17 00:57:14 2021 +0530

    video: hgafb: correctly handle card detect failure during probe
    
    commit 02625c965239b71869326dd0461615f27307ecb3 upstream.
    
    The return value of hga_card_detect() is not properly handled causing
    the probe to succeed even though hga_card_detect() failed. Since probe
    succeeds, hgafb_open() can be called which will end up operating on an
    unmapped hga_vram. This results in an out-of-bounds access as reported
    by kernel test robot [1].
    
    To fix this, correctly detect failure of hga_card_detect() by checking
    for a non-zero error code.
    
    [1]: https://lore.kernel.org/lkml/20210516150019.GB25903@xsang-OptiPlex-9020/
    
    Fixes: dc13cac4862c ("video: hgafb: fix potential NULL pointer dereference")
    Cc: stable <stable@vger.kernel.org>
    Reported-by: kernel test robot <oliver.sang@intel.com>
    Reviewed-by: Igor Matheus Andrade Torrente <igormtorrente@gmail.com>
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/r/20210516192714.25823-1-mail@anirudhrb.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85093a02be2d35d5685360a695eb050068151d56
Author: Colin Ian King <colin.king@canonical.com>
Date:   Fri May 7 19:30:41 2021 +0100

    iio: tsl2583: Fix division by a zero lux_val
    
    commit af0e1871d79cfbb91f732d2c6fa7558e45c31038 upstream.
    
    The lux_val returned from tsl2583_get_lux can potentially be zero,
    so check for this to avoid a division by zero and an overflowed
    gain_trim_val.
    
    Fixes clang scan-build warning:
    
    drivers/iio/light/tsl2583.c:345:40: warning: Either the
    condition 'lux_val<0' is redundant or there is division
    by zero at line 345. [zerodivcond]
    
    Fixes: ac4f6eee8fe8 ("staging: iio: TAOS tsl258x: Device driver")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    [Colin Ian King: minor context adjustments for 4.9.y]
    Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51a17f52f297d6a2a09928d72bb00dfcd73a5131
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Sat May 15 03:00:37 2021 +0000

    tty: vt: always invoke vc->vc_sw->con_resize callback
    
    commit ffb324e6f874121f7dce5bdae5e05d02baae7269 upstream.
    
    syzbot is reporting OOB write at vga16fb_imageblit() [1], for
    resize_screen() from ioctl(VT_RESIZE) returns 0 without checking whether
    requested rows/columns fit the amount of memory reserved for the graphical
    screen if current mode is KD_GRAPHICS.
    
    ----------
      #include <sys/types.h>
      #include <sys/stat.h>
      #include <fcntl.h>
      #include <sys/ioctl.h>
      #include <linux/kd.h>
      #include <linux/vt.h>
    
      int main(int argc, char *argv[])
      {
            const int fd = open("/dev/char/4:1", O_RDWR);
            struct vt_sizes vt = { 0x4100, 2 };
    
            ioctl(fd, KDSETMODE, KD_GRAPHICS);
            ioctl(fd, VT_RESIZE, &vt);
            ioctl(fd, KDSETMODE, KD_TEXT);
            return 0;
      }
    ----------
    
    Allow framebuffer drivers to return -EINVAL, by moving vc->vc_mode !=
    KD_GRAPHICS check from resize_screen() to fbcon_resize().
    
    Link: https://syzkaller.appspot.com/bug?extid=1f29e126cf461c4de3b3 [1]
    Reported-by: syzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: syzbot <syzbot+1f29e126cf461c4de3b3@syzkaller.appspotmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3bd3a8ca5a7b1530f463b6e1cc811c085e6ffa01
Author: Maciej W. Rozycki <macro@orcam.me.uk>
Date:   Thu May 13 11:51:50 2021 +0200

    vt: Fix character height handling with VT_RESIZEX
    
    commit 860dafa902595fb5f1d23bbcce1215188c3341e6 upstream.
    
    Restore the original intent of the VT_RESIZEX ioctl's `v_clin' parameter
    which is the number of pixel rows per character (cell) rather than the
    height of the font used.
    
    For framebuffer devices the two values are always the same, because the
    former is inferred from the latter one.  For VGA used as a true text
    mode device these two parameters are independent from each other: the
    number of pixel rows per character is set in the CRT controller, while
    font height is in fact hardwired to 32 pixel rows and fonts of heights
    below that value are handled by padding their data with blanks when
    loaded to hardware for use by the character generator.  One can change
    the setting in the CRT controller and it will update the screen contents
    accordingly regardless of the font loaded.
    
    The `v_clin' parameter is used by the `vgacon' driver to set the height
    of the character cell and then the cursor position within.  Make the
    parameter explicit then, by defining a new `vc_cell_height' struct
    member of `vc_data', set it instead of `vc_font.height' from `v_clin' in
    the VT_RESIZEX ioctl, and then use it throughout the `vgacon' driver
    except where actual font data is accessed which as noted above is
    independent from the CRTC setting.
    
    This way the framebuffer console driver is free to ignore the `v_clin'
    parameter as irrelevant, as it always should have, avoiding any issues
    attempts to give the parameter a meaning there could have caused, such
    as one that has led to commit 988d0763361b ("vt_ioctl: make VT_RESIZEX
    behave like VT_RESIZE"):
    
     "syzbot is reporting UAF/OOB read at bit_putcs()/soft_cursor() [1][2],
      for vt_resizex() from ioctl(VT_RESIZEX) allows setting font height
      larger than actual font height calculated by con_font_set() from
      ioctl(PIO_FONT). Since fbcon_set_font() from con_font_set() allocates
      minimal amount of memory based on actual font height calculated by
      con_font_set(), use of vt_resizex() can cause UAF/OOB read for font
      data."
    
    The problem first appeared around Linux 2.5.66 which predates our repo
    history, but the origin could be identified with the old MIPS/Linux repo
    also at: <git://git.kernel.org/pub/scm/linux/kernel/git/ralf/linux.git>
    as commit 9736a3546de7 ("Merge with Linux 2.5.66."), where VT_RESIZEX
    code in `vt_ioctl' was updated as follows:
    
                    if (clin)
    -                       video_font_height = clin;
    +                       vc->vc_font.height = clin;
    
    making the parameter apply to framebuffer devices as well, perhaps due
    to the use of "font" in the name of the original `video_font_height'
    variable.  Use "cell" in the new struct member then to avoid ambiguity.
    
    References:
    
    [1] https://syzkaller.appspot.com/bug?id=32577e96d88447ded2d3b76d71254fb855245837
    [2] https://syzkaller.appspot.com/bug?id=6b8355d27b2b94fb5cedf4655e3a59162d9e48e3
    
    Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable@vger.kernel.org # v2.6.12+
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a48e9382cffdd022bd9c448c29265b858133d84d
Author: Maciej W. Rozycki <macro@orcam.me.uk>
Date:   Thu May 13 11:51:41 2021 +0200

    vgacon: Record video mode changes with VT_RESIZEX
    
    commit d4d0ad57b3865795c4cde2fb5094c594c2e8f469 upstream.
    
    Fix an issue with VGA console font size changes made after the initial
    video text mode has been changed with a user tool like `svgatextmode'
    calling the VT_RESIZEX ioctl.  As it stands in that case the original
    screen geometry continues being used to validate further VT resizing.
    
    Consequently when the video adapter is firstly reprogrammed from the
    original say 80x25 text mode using a 9x16 character cell (720x400 pixel
    resolution) to say 80x37 text mode and the same character cell (720x592
    pixel resolution), and secondly the CRTC character cell updated to 9x8
    (by loading a suitable font with the KD_FONT_OP_SET request of the
    KDFONTOP ioctl), the VT geometry does not get further updated from 80x37
    and only upper half of the screen is used for the VT, with the lower
    half showing rubbish corresponding to whatever happens to be there in
    the video memory that maps to that part of the screen.  Of course the
    proportions change according to text mode geometries and font sizes
    chosen.
    
    Address the problem then, by updating the text mode geometry defaults
    rather than checking against them whenever the VT is resized via a user
    ioctl.
    
    Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
    Fixes: e400b6ec4ede ("vt/vgacon: Check if screen resize request comes from userspace")
    Cc: stable@vger.kernel.org # v2.6.24+
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a09e55bead3c54a68dfe64f9682c92803644a8d
Author: Igor Matheus Andrade Torrente <igormtorrente@gmail.com>
Date:   Mon May 3 13:57:06 2021 +0200

    video: hgafb: fix potential NULL pointer dereference
    
    commit dc13cac4862cc68ec74348a80b6942532b7735fa upstream.
    
    The return of ioremap if not checked, and can lead to a NULL to be
    assigned to hga_vram. Potentially leading to a NULL pointer
    dereference.
    
    The fix adds code to deal with this case in the error label and
    changes how the hgafb_probe handles the return of hga_card_detect.
    
    Cc: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Igor Matheus Andrade Torrente <igormtorrente@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-40-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7399a2b60d949a11451d57c88aa7ed1ed98d4eb0
Author: Tom Seewald <tseewald@gmail.com>
Date:   Mon May 3 13:56:52 2021 +0200

    qlcnic: Add null check after calling netdev_alloc_skb
    
    commit 84460f01cba382553199bc1361f69a872d5abed4 upstream.
    
    The function qlcnic_dl_lb_test() currently calls netdev_alloc_skb()
    without checking afterwards that the allocation succeeded. Fix this by
    checking if the skb is NULL and returning an error in such a case.
    Breaking out of the loop if the skb is NULL is not correct as no error
    would be reported to the caller and no message would be printed for the
    user.
    
    Cc: David S. Miller <davem@davemloft.net>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Tom Seewald <tseewald@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-26-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73ed4b691f256b8ff3adf5462e993794c554af88
Author: Phillip Potter <phil@philpotter.co.uk>
Date:   Mon May 3 13:56:36 2021 +0200

    leds: lp5523: check return value of lp5xx_read and jump to cleanup code
    
    commit 6647f7a06eb030a2384ec71f0bb2e78854afabfe upstream.
    
    Check return value of lp5xx_read and if non-zero, jump to code at end of
    the function, causing lp5523_stop_all_engines to be executed before
    returning the error value up the call chain. This fixes the original
    commit (248b57015f35) which was reverted due to the University of Minnesota
    problems.
    
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
    Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
    Link: https://lore.kernel.org/r/20210503115736.2104747-10-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bde0d2c1bea086dd44ca51aa57b1dbfd37f5941d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:40 2021 +0200

    net: rtlwifi: properly check for alloc_workqueue() failure
    
    commit 30b0e0ee9d02b97b68705c46b41444786effc40c upstream.
    
    If alloc_workqueue() fails, properly catch this and propagate the error
    to the calling functions, so that the devuce initialization will
    properly error out.
    
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: Bryan Brattlof <hello@bryanbrattlof.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-14-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c892f137047bf31d6d5c3802eaf7c51eeba9d33
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Mon May 3 13:56:48 2021 +0200

    net: stmicro: handle clk_prepare() failure during init
    
    commit 0c32a96d000f260b5ebfabb4145a86ae1cd71847 upstream.
    
    In case clk_prepare() fails, capture and propagate the error code up the
    stack. If regulator_enable() was called earlier, properly unwind it by
    calling regulator_disable().
    
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-22-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b3aa39062b0d9ff41e518fb9ff832298a11ab06
Author: Du Cheng <ducheng2@gmail.com>
Date:   Mon May 3 13:56:50 2021 +0200

    ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
    
    commit e6e337708c22f80824b82d4af645f20715730ad0 upstream.
    
    niu_pci_eeprom_read() may fail, so add checks to its return value and
    propagate the error up the callstack.
    
    An examination of the callstack up to niu_pci_eeprom_read shows that:
    
    niu_pci_eeprom_read() // returns int
        niu_pci_vpd_scan_props() // returns int
            niu_pci_vpd_fetch() // returns *void*
                niu_get_invariants() // returns int
    
    since niu_pci_vpd_fetch() returns void which breaks the bubbling up,
    change its return type to int so that error is propagated upwards.
    
    Signed-off-by: Du Cheng <ducheng2@gmail.com>
    Cc: Shannon Nelson <shannon.lee.nelson@gmail.com>
    Cc: David S. Miller <davem@davemloft.net>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-24-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ff4a3587bb84826420145020ebb8212807e0026
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:49 2021 +0200

    Revert "niu: fix missing checks of niu_pci_eeprom_read"
    
    commit 7930742d6a0ff091c85b92ef4e076432d8d8cb79 upstream.
    
    This reverts commit 26fd962bde0b15e54234fe762d86bc0349df1de4.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The change here was incorrect.  While it is nice to check if
    niu_pci_eeprom_read() succeeded or not when using the data, any error
    that might have happened was not propagated upwards properly, causing
    the kernel to assume that these reads were successful, which results in
    invalid data in the buffer that was to contain the successfully read
    data.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Shannon Nelson <shannon.lee.nelson@gmail.com>
    Cc: David S. Miller <davem@davemloft.net>
    Fixes: 26fd962bde0b ("niu: fix missing checks of niu_pci_eeprom_read")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-23-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96ae6d0e8765cd2791c107dbff398f0169c72095
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:51 2021 +0200

    Revert "qlcnic: Avoid potential NULL pointer dereference"
    
    commit b95b57dfe7a142bf2446548eb7f49340fd73e78b upstream.
    
    This reverts commit 5bf7295fe34a5251b1d241b9736af4697b590670.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    This commit does not properly detect if an error happens because the
    logic after this loop will not detect that there was a failed
    allocation.
    
    Cc: Aditya Pakki <pakki001@umn.edu>
    Cc: David S. Miller <davem@davemloft.net>
    Fixes: 5bf7295fe34a ("qlcnic: Avoid potential NULL pointer dereference")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-25-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfb2059d1e51a7e87da3c714bc82a07d38781fa0
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:39 2021 +0200

    Revert "rtlwifi: fix a potential NULL pointer dereference"
    
    commit 68c5634c4a7278672a3bed00eb5646884257c413 upstream.
    
    This reverts commit 765976285a8c8db3f0eb7f033829a899d0c2786e.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    This commit is not correct, it should not have used unlikely() and is
    not propagating the error properly to the calling function, so it should
    be reverted at this point in time.  Also, if the check failed, the
    work queue was still assumed to be allocated, so further accesses would
    have continued to fail, meaning this patch does nothing to solve the
    root issues at all.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: Bryan Brattlof <hello@bryanbrattlof.com>
    Fixes: 765976285a8c ("rtlwifi: fix a potential NULL pointer dereference")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-13-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2daacd6418c3fa2a9d2732063948312835328b33
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu May 6 16:00:47 2021 +0200

    cdrom: gdrom: initialize global variable at init time
    
    commit 9183f01b5e6e32eb3f17b5f3f8d5ad5ac9786c49 upstream.
    
    As Peter points out, if we were to disconnect and then reconnect this
    driver from a device, the "global" state of the device would contain odd
    values and could cause problems.  Fix this up by just initializing the
    whole thing to 0 at probe() time.
    
    Ideally this would be a per-device variable, but given the age and the
    total lack of users of it, that would require a lot of s/./->/g changes
    for really no good reason.
    
    Reported-by: Peter Rosin <peda@axentia.se>
    Cc: Jens Axboe <axboe@kernel.dk>
    Reviewed-by: Peter Rosin <peda@axentia.se>
    Link: https://lore.kernel.org/r/YJP2j6AU82MqEY2M@kroah.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be1971350d54967622a53866688dffd73069e139
Author: Atul Gopinathan <atulgopinathan@gmail.com>
Date:   Mon May 3 13:56:54 2021 +0200

    cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
    
    commit d03d1021da6fe7f46efe9f2a7335564e7c9db5ab upstream.
    
    The fields, "toc" and "cd_info", of "struct gdrom_unit gd" are allocated
    in "probe_gdrom()". Prevent a memory leak by making sure "gd.cd_info" is
    deallocated in the "remove_gdrom()" function.
    
    Also prevent double free of the field "gd.toc" by moving it from the
    module's exit function to "remove_gdrom()". This is because, in
    "probe_gdrom()", the function makes sure to deallocate "gd.toc" in case
    of any errors, so the exit function invoked later would again free
    "gd.toc".
    
    The patch also maintains consistency by deallocating the above mentioned
    fields in "remove_gdrom()" along with another memory allocated field
    "gd.disk".
    
    Suggested-by: Jens Axboe <axboe@kernel.dk>
    Cc: Peter Rosin <peda@axentia.se>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Atul Gopinathan <atulgopinathan@gmail.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-28-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 42c91a5ca3896e119dabd3c21d8da689374e7060
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:53 2021 +0200

    Revert "gdrom: fix a memory leak bug"
    
    commit 257343d3ed557f11d580d0b7c515dc154f64a42b upstream.
    
    This reverts commit 093c48213ee37c3c3ff1cf5ac1aa2a9d8bc66017.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    Because of this, all submissions from this group must be reverted from
    the kernel tree and will need to be re-reviewed again to determine if
    they actually are a valid fix.  Until that work is complete, remove this
    change to ensure that no problems are being introduced into the
    codebase.
    
    Cc: Wenwen Wang <wang6495@umn.edu>
    Cc: Peter Rosin <peda@axentia.se>
    Cc: Jens Axboe <axboe@kernel.dk>
    Fixes: 093c48213ee3 ("gdrom: fix a memory leak bug")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-27-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f1aed55662f4438860fd2e8fa976301c0fe9964
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:15 2021 +0200

    Revert "ecryptfs: replace BUG_ON with error handling code"
    
    commit e1436df2f2550bc89d832ffd456373fdf5d5b5d7 upstream.
    
    This reverts commit 2c2a7552dd6465e8fde6bc9cccf8d66ed1c1eb72.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit log for this change was incorrect, no "error
    handling code" was added, things will blow up just as badly as before if
    any of these cases ever were true.  As this BUG_ON() never fired, and
    most of these checks are "obviously" never going to be true, let's just
    revert to the original code for now until this gets unwound to be done
    correctly in the future.
    
    Cc: Aditya Pakki <pakki001@umn.edu>
    Fixes: 2c2a7552dd64 ("ecryptfs: replace BUG_ON with error handling code")
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Tyler Hicks <code@tyhicks.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-49-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eadb0924f5a26549958a1e89e468484173e76fc7
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:33 2021 +0200

    Revert "video: imsttfb: fix potential NULL pointer dereferences"
    
    commit ed04fe8a0e87d7b5ea17d47f4ac9ec962b24814a upstream.
    
    This reverts commit 1d84353d205a953e2381044953b7fa31c8c9702d.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit here, while technically correct, did not fully
    handle all of the reported issues that the commit stated it was fixing,
    so revert it until it can be "fixed" fully.
    
    Note, ioremap() probably will never fail for old hardware like this, and
    if anyone actually used this hardware (a PowerMac era PCI display card),
    they would not be using fbdev anymore.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Aditya Pakki <pakki001@umn.edu>
    Cc: Finn Thain <fthain@telegraphics.com.au>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Fixes: 1d84353d205a ("video: imsttfb: fix potential NULL pointer dereferences")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-67-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6f00b713f05cef1c776189eb90f950f6384ba2b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:31 2021 +0200

    Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
    
    commit 99ae3417672a6d4a3bf68d4fc43d7c6ca074d477 upstream.
    
    This reverts commit 9aa3aa15f4c2f74f47afd6c5db4b420fadf3f315.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, it was determined that this commit is not needed at all so
    just revert it.  Also, the call to lm80_init_client() was not properly
    handled, so if error handling is needed in the lm80_probe() function,
    then it should be done properly, not half-baked like the commit being
    reverted here did.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Fixes: 9aa3aa15f4c2 ("hwmon: (lm80) fix a missing check of bus read in lm80 probe")
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20210503115736.2104747-5-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8f29fb421c95c40a466c94d6c13d2cb5e681333
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:35 2021 +0200

    Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
    
    commit 8d1beda5f11953ffe135a5213287f0b25b4da41b upstream.
    
    This reverts commit 248b57015f35c94d4eae2fdd8c6febf5cd703900.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit does not properly unwind if there is an error
    condition so it needs to be reverted at this point in time.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Fixes: 248b57015f35 ("leds: lp5523: fix a missing check of return value of lp55xx_read")
    Link: https://lore.kernel.org/r/20210503115736.2104747-9-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41ea6052ee5ce162fae1f93d8c1bf54139b3401e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:56:47 2021 +0200

    Revert "net: stmicro: fix a missing check of clk_prepare"
    
    commit bee1b0511844c8c79fccf1f2b13472393b6b91f7 upstream.
    
    This reverts commit f86a3b83833e7cfe558ca4d70b64ebc48903efec.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit causes a memory leak when it is trying to claim it
    is properly handling errors.  Revert this change and fix it up properly
    in a follow-on commit.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: David S. Miller <davem@davemloft.net>
    Fixes: f86a3b83833e ("net: stmicro: fix a missing check of clk_prepare")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-21-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f889bb3326634a2a240e68004f4c1886711507c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:05 2021 +0200

    Revert "video: hgafb: fix potential NULL pointer dereference"
    
    commit 58c0cc2d90f1e37c4eb63ae7f164c83830833f78 upstream.
    
    This reverts commit ec7f6aad57ad29e4e66cc2e18e1e1599ddb02542.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    This patch "looks" correct, but the driver keeps on running and will
    fail horribly right afterward if this error condition ever trips.
    
    So points for trying to resolve an issue, but a huge NEGATIVE value for
    providing a "fake" fix for the problem as nothing actually got resolved
    at all.  I'll go fix this up properly...
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Aditya Pakki <pakki001@umn.edu>
    Cc: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Fixes: ec7f6aad57ad ("video: hgafb: fix potential NULL pointer dereference")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-39-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d8ec847b76754b7e582afae7ce4b26333a97c30
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Mon May 10 14:49:05 2021 -0400

    dm snapshot: fix crash with transient storage and zero chunk size
    
    commit c699a0db2d62e3bbb7f0bf35c87edbc8d23e3062 upstream.
    
    The following commands will crash the kernel:
    
    modprobe brd rd_size=1048576
    dmsetup create o --table "0 `blockdev --getsize /dev/ram0` snapshot-origin /dev/ram0"
    dmsetup create s --table "0 `blockdev --getsize /dev/ram0` snapshot /dev/ram0 /dev/ram1 N 0"
    
    The reason is that when we test for zero chunk size, we jump to the label
    bad_read_metadata without setting the "r" variable. The function
    snapshot_ctr destroys all the structures and then exits with "r == 0". The
    kernel then crashes because it falsely believes that snapshot_ctr
    succeeded.
    
    In order to fix the bug, we set the variable "r" to -EINVAL.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f29f1cb290eb1c824b3d60c03d0ee2367ff9d062
Author: Jan Beulich <jbeulich@suse.com>
Date:   Tue May 18 18:14:07 2021 +0200

    xen-pciback: reconfigure also from backend watch handler
    
    commit c81d3d24602540f65256f98831d0a25599ea6b87 upstream.
    
    When multiple PCI devices get assigned to a guest right at boot, libxl
    incrementally populates the backend tree. The writes for the first of
    the devices trigger the backend watch. In turn xen_pcibk_setup_backend()
    will set the XenBus state to Initialised, at which point no further
    reconfigures would happen unless a device got hotplugged. Arrange for
    reconfigure to also get triggered from the backend watch handler.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Link: https://lore.kernel.org/r/2337cbd6-94b9-4187-9862-c03ea12e0c61@suse.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d7735454b8c2db5b32801529b31d0f9ac4d4526
Author: Anirudh Rayabharam <mail@anirudhrb.com>
Date:   Mon May 3 13:57:12 2021 +0200

    rapidio: handle create_workqueue() failure
    
    commit 69ce3ae36dcb03cdf416b0862a45369ddbf50fdf upstream.
    
    In case create_workqueue() fails, release all resources and return -ENOMEM
    to caller to avoid potential NULL pointer deref later. Move up the
    create_workequeue() call to return early and avoid unwinding the call to
    riocm_rx_fill().
    
    Cc: Alexandre Bounine <alex.bou9@gmail.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Anirudh Rayabharam <mail@anirudhrb.com>
    Link: https://lore.kernel.org/r/20210503115736.2104747-46-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 752580ffe1e1f0929b769fe0112f8f39ca52eb1d
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:11 2021 +0200

    Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails"
    
    commit 5e68b86c7b7c059c0f0ec4bf8adabe63f84a61eb upstream.
    
    This reverts commit 23015b22e47c5409620b1726a677d69e5cd032ba.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit has a memory leak on the error path here, it does
    not clean up everything properly.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Cc: Alexandre Bounine <alex.bou9@gmail.com>
    Cc: Matt Porter <mporter@kernel.crashing.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Fixes: 23015b22e47c ("rapidio: fix a NULL pointer dereference when create_workqueue() fails")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-45-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd3d39a158fb20b5b2311dabbb97ddbe39089666
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 3 13:57:01 2021 +0200

    Revert "ALSA: sb8: add a check for request_region"
    
    commit 94f88309f201821073f57ae6005caefa61bf7b7e upstream.
    
    This reverts commit dcd0feac9bab901d5739de51b3f69840851f8919.
    
    Because of recent interactions with developers from @umn.edu, all
    commits from them have been recently re-reviewed to ensure if they were
    correct or not.
    
    Upon review, this commit was found to be incorrect for the reasons
    below, so it must be reverted.  It will be fixed up "correctly" in a
    later kernel change.
    
    The original commit message for this change was incorrect as the code
    path can never result in a NULL dereference, alluding to the fact that
    whatever tool was used to "find this" is broken.  It's just an optional
    resource reservation, so removing this check is fine.
    
    Cc: Kangjie Lu <kjlu@umn.edu>
    Acked-by: Takashi Iwai <tiwai@suse.de>
    Fixes: dcd0feac9bab ("ALSA: sb8: add a check for request_region")
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210503115736.2104747-35-gregkh@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6810a6908fd8ee5b50ec204c8cae919e33ea4009
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Thu May 13 21:56:49 2021 +0900

    ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
    
    commit 0edabdfe89581669609eaac5f6a8d0ae6fe95e7f upstream.
    
    Mackie d.2 has an extension card for IEEE 1394 communication, which uses
    BridgeCo DM1000 ASIC. On the other hand, Mackie d.4 Pro has built-in
    function for IEEE 1394 communication by Oxford Semiconductor OXFW971,
    according to schematic diagram available in Mackie website. Although I
    misunderstood that Mackie d.2 Pro would be also a model with OXFW971,
    it's wrong. Mackie d.2 Pro is a model which includes the extension card
    as factory settings.
    
    This commit fixes entries in Kconfig and comment in ALSA OXFW driver.
    
    Cc: <stable@vger.kernel.org>
    Fixes: fd6f4b0dc167 ("ALSA: bebob: Add skelton for BeBoB based devices")
    Fixes: ec4dba5053e1 ("ALSA: oxfw: Add support for Behringer/Mackie devices")
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20210513125652.110249-3-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44a9a71cc408ecc2dd4190651d6e6753c6af63ef
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon May 10 17:06:59 2021 +0200

    ALSA: usb-audio: Validate MS endpoint descriptors
    
    commit e84749a78dc82bc545f12ce009e3dbcc2c5a8a91 upstream.
    
    snd_usbmidi_get_ms_info() may access beyond the border when a
    malformed descriptor is passed.  This patch adds the sanity checks of
    the given MS endpoint descriptors, and skips invalid ones.
    
    Reported-by: syzbot+6bb23a5d5548b93c94aa@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210510150659.17710-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02303132de22be08bc90e99b3e1eca20b8284493
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue May 18 10:39:39 2021 +0200

    ALSA: line6: Fix racy initialization of LINE6 MIDI
    
    commit 05ca447630334c323c9e2b788b61133ab75d60d3 upstream.
    
    The initialization of MIDI devices that are found on some LINE6
    drivers are currently done in a racy way; namely, the MIDI buffer
    instance is allocated and initialized in each private_init callback
    while the communication with the interface is already started via
    line6_init_cap_control() call before that point.  This may lead to
    Oops in line6_data_received() when a spurious event is received, as
    reported by syzkaller.
    
    This patch moves the MIDI initialization to line6_init_cap_control()
    as well instead of the too-lately-called private_init for avoiding the
    race.  Also this reduces slightly more lines, so it's a win-win
    change.
    
    Reported-by: syzbot+0d2b3feb0a2887862e06@syzkallerlkml..appspotmail.com
    Link: https://lore.kernel.org/r/000000000000a4be9405c28520de@google.com
    Link: https://lore.kernel.org/r/20210517132725.GA50495@hyeyoo
    Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20210518083939.1927-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5716a37020e08b3e93d2f4f7ed14ebf137029dd5
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Wed May 19 08:40:11 2021 +1000

    cifs: fix memory leak in smb2_copychunk_range
    
    commit d201d7631ca170b038e7f8921120d05eec70d7c5 upstream.
    
    When using smb2_copychunk_range() for large ranges we will
    run through several iterations of a loop calling SMB2_ioctl()
    but never actually free the returned buffer except for the final
    iteration.
    This leads to memory leaks everytime a large copychunk is requested.
    
    Fixes: 9bf0c9cd4314 ("CIFS: Fix SMB2/SMB3 Copy offload support (refcopy) for large files")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa039ddb54de538e32fb957693e6089c8576dfe3
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Wed May 12 15:33:08 2021 +0200

    ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
    
    [ Upstream commit dbb5afad100a828c97e012c6106566d99f041db6 ]
    
    Suppose we have 2 threads, the group-leader L and a sub-theread T,
    both parked in ptrace_stop(). Debugger tries to resume both threads
    and does
    
            ptrace(PTRACE_CONT, T);
            ptrace(PTRACE_CONT, L);
    
    If the sub-thread T execs in between, the 2nd PTRACE_CONT doesn not
    resume the old leader L, it resumes the post-exec thread T which was
    actually now stopped in PTHREAD_EVENT_EXEC. In this case the
    PTHREAD_EVENT_EXEC event is lost, and the tracer can't know that the
    tracee changed its pid.
    
    This patch makes ptrace() fail in this case until debugger does wait()
    and consumes PTHREAD_EVENT_EXEC which reports old_pid. This affects all
    ptrace requests except the "asynchronous" PTRACE_INTERRUPT/KILL.
    
    The patch doesn't add the new PTRACE_ option to not complicate the API,
    and I _hope_ this won't cause any noticeable regression:
    
            - If debugger uses PTRACE_O_TRACEEXEC and the thread did an exec
              and the tracer does a ptrace request without having consumed
              the exec event, it's 100% sure that the thread the ptracer
              thinks it is targeting does not exist anymore, or isn't the
              same as the one it thinks it is targeting.
    
            - To some degree this patch adds nothing new. In the scenario
              above ptrace(L) can fail with -ESRCH if it is called after the
              execing sub-thread wakes the leader up and before it "steals"
              the leader's pid.
    
    Test-case:
    
            #include <stdio.h>
            #include <unistd.h>
            #include <signal.h>
            #include <sys/ptrace.h>
            #include <sys/wait.h>
            #include <errno.h>
            #include <pthread.h>
            #include <assert.h>
    
            void *tf(void *arg)
            {
                    execve("/usr/bin/true", NULL, NULL);
                    assert(0);
    
                    return NULL;
            }
    
            int main(void)
            {
                    int leader = fork();
                    if (!leader) {
                            kill(getpid(), SIGSTOP);
    
                            pthread_t th;
                            pthread_create(&th, NULL, tf, NULL);
                            for (;;)
                                    pause();
    
                            return 0;
                    }
    
                    waitpid(leader, NULL, WSTOPPED);
    
                    ptrace(PTRACE_SEIZE, leader, 0,
                                    PTRACE_O_TRACECLONE | PTRACE_O_TRACEEXEC);
                    waitpid(leader, NULL, 0);
    
                    ptrace(PTRACE_CONT, leader, 0,0);
                    waitpid(leader, NULL, 0);
    
                    int status, thread = waitpid(-1, &status, 0);
                    assert(thread > 0 && thread != leader);
                    assert(status == 0x80137f);
    
                    ptrace(PTRACE_CONT, thread, 0,0);
                    /*
                     * waitid() because waitpid(leader, &status, WNOWAIT) does not
                     * report status. Why ????
                     *
                     * Why WEXITED? because we have another kernel problem connected
                     * to mt-exec.
                     */
                    siginfo_t info;
                    assert(waitid(P_PID, leader, &info, WSTOPPED|WEXITED|WNOWAIT) == 0);
                    assert(info.si_pid == leader && info.si_status == 0x0405);
    
                    /* OK, it sleeps in ptrace(PTRACE_EVENT_EXEC == 0x04) */
                    assert(ptrace(PTRACE_CONT, leader, 0,0) == -1);
                    assert(errno == ESRCH);
    
                    assert(leader == waitpid(leader, &status, WNOHANG));
                    assert(status == 0x04057f);
    
                    assert(ptrace(PTRACE_CONT, leader, 0,0) == 0);
    
                    return 0;
            }
    
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Reported-by: Simon Marchi <simon.marchi@efficios.com>
    Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Acked-by: Pedro Alves <palves@redhat.com>
    Acked-by: Simon Marchi <simon.marchi@efficios.com>
    Acked-by: Jan Kratochvil <jan.kratochvil@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42300783c07009cd1b4ab549bb51ea0155130ef1
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Fri May 14 17:09:52 2021 +0800

    scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
    
    [ Upstream commit 5cb289bf2d7c34ca1abd794ce116c4f19185a1d4 ]
    
    Fix to return a negative error code from the error handling case instead of
    0 as done elsewhere in this function.
    
    Link: https://lore.kernel.org/r/20210514090952.6715-1-thunder.leizhen@huawei.com
    Fixes: a9083016a531 ("[SCSI] qla2xxx: Add ISP82XX support.")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c65391dd9f0a47617e96e38bd27e277cbe1c40b0
Author: Leon Romanovsky <leon@kernel.org>
Date:   Tue May 11 10:26:03 2021 +0300

    RDMA/rxe: Clear all QP fields if creation failed
    
    [ Upstream commit 67f29896fdc83298eed5a6576ff8f9873f709228 ]
    
    rxe_qp_do_cleanup() relies on valid pointer values in QP for the properly
    created ones, but in case rxe_qp_from_init() failed it was filled with
    garbage and caused tot the following error.
    
      refcount_t: underflow; use-after-free.
      WARNING: CPU: 1 PID: 12560 at lib/refcount.c:28 refcount_warn_saturate+0x1d1/0x1e0 lib/refcount.c:28
      Modules linked in:
      CPU: 1 PID: 12560 Comm: syz-executor.4 Not tainted 5.12.0-syzkaller #0
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
      RIP: 0010:refcount_warn_saturate+0x1d1/0x1e0 lib/refcount.c:28
      Code: e9 db fe ff ff 48 89 df e8 2c c2 ea fd e9 8a fe ff ff e8 72 6a a7 fd 48 c7 c7 e0 b2 c1 89 c6 05 dc 3a e6 09 01 e8 ee 74 fb 04 <0f> 0b e9 af fe ff ff 0f 1f 84 00 00 00 00 00 41 56 41 55 41 54 55
      RSP: 0018:ffffc900097ceba8 EFLAGS: 00010286
      RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
      RDX: 0000000000040000 RSI: ffffffff815bb075 RDI: fffff520012f9d67
      RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
      R10: ffffffff815b4eae R11: 0000000000000000 R12: ffff8880322a4800
      R13: ffff8880322a4940 R14: ffff888033044e00 R15: 0000000000000000
      FS:  00007f6eb2be3700(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007fdbe5d41000 CR3: 000000001d181000 CR4: 00000000001506e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       __refcount_sub_and_test include/linux/refcount.h:283 [inline]
       __refcount_dec_and_test include/linux/refcount.h:315 [inline]
       refcount_dec_and_test include/linux/refcount.h:333 [inline]
       kref_put include/linux/kref.h:64 [inline]
       rxe_qp_do_cleanup+0x96f/0xaf0 drivers/infiniband/sw/rxe/rxe_qp.c:805
       execute_in_process_context+0x37/0x150 kernel/workqueue.c:3327
       rxe_elem_release+0x9f/0x180 drivers/infiniband/sw/rxe/rxe_pool.c:391
       kref_put include/linux/kref.h:65 [inline]
       rxe_create_qp+0x2cd/0x310 drivers/infiniband/sw/rxe/rxe_verbs.c:425
       _ib_create_qp drivers/infiniband/core/core_priv.h:331 [inline]
       ib_create_named_qp+0x2ad/0x1370 drivers/infiniband/core/verbs.c:1231
       ib_create_qp include/rdma/ib_verbs.h:3644 [inline]
       create_mad_qp+0x177/0x2d0 drivers/infiniband/core/mad.c:2920
       ib_mad_port_open drivers/infiniband/core/mad.c:3001 [inline]
       ib_mad_init_device+0xd6f/0x1400 drivers/infiniband/core/mad.c:3092
       add_client_context+0x405/0x5e0 drivers/infiniband/core/device.c:717
       enable_device_and_get+0x1cd/0x3b0 drivers/infiniband/core/device.c:1331
       ib_register_device drivers/infiniband/core/device.c:1413 [inline]
       ib_register_device+0x7c7/0xa50 drivers/infiniband/core/device.c:1365
       rxe_register_device+0x3d5/0x4a0 drivers/infiniband/sw/rxe/rxe_verbs.c:1147
       rxe_add+0x12fe/0x16d0 drivers/infiniband/sw/rxe/rxe.c:247
       rxe_net_add+0x8c/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:503
       rxe_newlink drivers/infiniband/sw/rxe/rxe.c:269 [inline]
       rxe_newlink+0xb7/0xe0 drivers/infiniband/sw/rxe/rxe.c:250
       nldev_newlink+0x30e/0x550 drivers/infiniband/core/nldev.c:1555
       rdma_nl_rcv_msg+0x36d/0x690 drivers/infiniband/core/netlink.c:195
       rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]
       rdma_nl_rcv+0x2ee/0x430 drivers/infiniband/core/netlink.c:259
       netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
       netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
       netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
       sock_sendmsg_nosec net/socket.c:654 [inline]
       sock_sendmsg+0xcf/0x120 net/socket.c:674
       ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
       ___sys_sendmsg+0xf3/0x170 net/socket.c:2404
       __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
       do_syscall_64+0x3a/0xb0 arch/x86/entry/common.c:47
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/7bf8d548764d406dbbbaf4b574960ebfd5af8387.1620717918.git.leonro@nvidia.com
    Reported-by: syzbot+36a7f280de4e11c6f04e@syzkaller.appspotmail.com
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Reviewed-by: Zhu Yanjun <zyjzyj2000@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30b34dcb632d6bde5a36217cec4a05305d971eda
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri Apr 23 17:09:28 2021 +0200

    openrisc: Fix a memory leak
    
    [ Upstream commit c019d92457826bb7b2091c86f36adb5de08405f9 ]
    
    'setup_find_cpu_node()' take a reference on the node it returns.
    This reference must be decremented when not needed anymore, or there will
    be a leak.
    
    Add the missing 'of_node_put(cpu)'.
    
    Note that 'setup_cpuinfo()' that also calls this function already has a
    correct 'of_node_put(cpu)' at its end.
    
    Fixes: 9d02a4283e9c ("OpenRISC: Boot code")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>