commit dce0f88600e49746b4bda873965b671a23ff4313
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jul 9 09:37:13 2020 +0200

    Linux 4.19.132

commit f1b17512894145ace91401386d7724442c1d4023
Author: Peter Jones <pjones@redhat.com>
Date:   Mon Jun 15 16:24:08 2020 -0400

    efi: Make it possible to disable efivar_ssdt entirely
    
    commit 435d1a471598752446a72ad1201b3c980526d869 upstream.
    
    In most cases, such as CONFIG_ACPI_CUSTOM_DSDT and
    CONFIG_ACPI_TABLE_UPGRADE, boot-time modifications to firmware tables
    are tied to specific Kconfig options.  Currently this is not the case
    for modifying the ACPI SSDT via the efivar_ssdt kernel command line
    option and associated EFI variable.
    
    This patch adds CONFIG_EFI_CUSTOM_SSDT_OVERLAYS, which defaults
    disabled, in order to allow enabling or disabling that feature during
    the build.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Peter Jones <pjones@redhat.com>
    Link: https://lore.kernel.org/r/20200615202408.2242614-1-pjones@redhat.com
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de07529a9aad73bae29563097372aeda1a3f31c6
Author: Hou Tao <houtao1@huawei.com>
Date:   Mon Jun 15 11:33:23 2020 +0800

    dm zoned: assign max_io_len correctly
    
    commit 7b2377486767503d47265e4d487a63c651f6b55d upstream.
    
    The unit of max_io_len is sector instead of byte (spotted through
    code review), so fix it.
    
    Fixes: 3b1a94c88b79 ("dm zoned: drive-managed zoned block device target")
    Cc: stable@vger.kernel.org
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cc6b87df34c49cade22a459774f074bce7ddf97
Author: Marc Zyngier <maz@kernel.org>
Date:   Sun Jun 21 14:43:15 2020 +0100

    irqchip/gic: Atomically update affinity
    
    commit 005c34ae4b44f085120d7f371121ec7ded677761 upstream.
    
    The GIC driver uses a RMW sequence to update the affinity, and
    relies on the gic_lock_irqsave/gic_unlock_irqrestore sequences
    to update it atomically.
    
    But these sequences only expand into anything meaningful if
    the BL_SWITCHER option is selected, which almost never happens.
    
    It also turns out that using a RMW and locks is just as silly,
    as the GIC distributor supports byte accesses for the GICD_TARGETRn
    registers, which when used make the update atomic by definition.
    
    Drop the terminally broken code and replace it by a byte write.
    
    Fixes: 04c8b0f82c7d ("irqchip/gic: Make locking a BL_SWITCHER only feature")
    Cc: stable@vger.kernel.org
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30ed723d74076285f33cf8209383587e1085b83a
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date:   Fri Jul 3 00:53:34 2020 +0200

    MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
    
    commit fcec538ef8cca0ad0b84432235dccd9059c8e6f8 upstream.
    
    This resolves the hazard between the mtc0 in the change_c0_status() and
    the mfc0 in configure_exception_vector(). Without resolving this hazard
    configure_exception_vector() could read an old value and would restore
    this old value again. This would revert the changes change_c0_status()
    did. I checked this by printing out the read_c0_status() at the end of
    per_cpu_trap_init() and the ST0_MX is not set without this patch.
    
    The hazard is documented in the MIPS Architecture Reference Manual Vol.
    III: MIPS32/microMIPS32 Privileged Resource Architecture (MD00088), rev
    6.03 table 8.1 which includes:
    
       Producer | Consumer | Hazard
      ----------|----------|----------------------------
       mtc0     | mfc0     | any coprocessor 0 register
    
    I saw this hazard on an Atheros AR9344 rev 2 SoC with a MIPS 74Kc CPU.
    There the change_c0_status() function would activate the DSPen by
    setting ST0_MX in the c0_status register. This was reverted and then the
    system got a DSP exception when the DSP registers were saved in
    save_dsp() in the first process switch. The crash looks like this:
    
    [    0.089999] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
    [    0.097796] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
    [    0.107070] Kernel panic - not syncing: Unexpected DSP exception
    [    0.113470] Rebooting in 1 seconds..
    
    We saw this problem in OpenWrt only on the MIPS 74Kc based Atheros SoCs,
    not on the 24Kc based SoCs. We only saw it with kernel 5.4 not with
    kernel 4.19, in addition we had to use GCC 8.4 or 9.X, with GCC 8.3 it
    did not happen.
    
    In the kernel I bisected this problem to commit 9012d011660e ("compiler:
    allow all arches to enable CONFIG_OPTIMIZE_INLINING"), but when this was
    reverted it also happened after commit 172dcd935c34b ("MIPS: Always
    allocate exception vector for MIPSr2+").
    
    Commit 0b24cae4d535 ("MIPS: Add missing EHB in mtc0 -> mfc0 sequence.")
    does similar changes to a different file. I am not sure if there are
    more places affected by this problem.
    
    Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1afc2c1baa5df7c85d460085207e5a9280af2a4
Author: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
Date:   Sun Jun 28 21:06:38 2020 -0400

    cifs: Fix the target file was deleted when rename failed.
    
    commit 9ffad9263b467efd8f8dc7ae1941a0a655a2bab2 upstream.
    
    When xfstest generic/035, we found the target file was deleted
    if the rename return -EACESS.
    
    In cifs_rename2, we unlink the positive target dentry if rename
    failed with EACESS or EEXIST, even if the target dentry is positived
    before rename. Then the existing file was deleted.
    
    We should just delete the target file which created during the
    rename.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f9e471d62aed7246fb9f7f5808b235cb8feda24
Author: Paul Aurich <paul@darkrain42.org>
Date:   Fri Jun 26 12:58:07 2020 -0700

    SMB3: Honor lease disabling for multiuser mounts
    
    commit ad35f169db6cd5a4c5c0a5a42fb0cad3efeccb83 upstream.
    
    Fixes: 3e7a02d47872 ("smb3: allow disabling requesting leases")
    Signed-off-by: Paul Aurich <paul@darkrain42.org>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da6845a443dcf46fd073687df2048e1d9641395b
Author: Paul Aurich <paul@darkrain42.org>
Date:   Fri Jun 26 12:58:06 2020 -0700

    SMB3: Honor persistent/resilient handle flags for multiuser mounts
    
    commit 00dfbc2f9c61185a2e662f27c45a0bb29b2a134f upstream.
    
    Without this:
    
    - persistent handles will only be enabled for per-user tcons if the
      server advertises the 'Continuous Availabity' capability
    - resilient handles would never be enabled for per-user tcons
    
    Signed-off-by: Paul Aurich <paul@darkrain42.org>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0651cd829ee130563d096926f93e9d99afae70b
Author: Paul Aurich <paul@darkrain42.org>
Date:   Fri Jun 26 12:58:05 2020 -0700

    SMB3: Honor 'seal' flag for multiuser mounts
    
    commit cc15461c73d7d044d56c47e869a215e49bd429c8 upstream.
    
    Ensure multiuser SMB3 mounts use encryption for all users' tcons if the
    mount options are configured to require encryption. Without this, only
    the primary tcon and IPC tcons are guaranteed to be encrypted. Per-user
    tcons would only be encrypted if the server was configured to require
    encryption.
    
    Signed-off-by: Paul Aurich <paul@darkrain42.org>
    CC: Stable <stable@vger.kernel.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4dc012b027c9eb101583011089dea14d744e314
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jul 7 14:42:38 2020 +0200

    Revert "ALSA: usb-audio: Improve frames size computation"
    
    This reverts commit 2d50acd7dbd0682a56968ad9551341d7fc5b6eaf which is
    commit f0bd62b64016508938df9babe47f65c2c727d25c upstream.
    
    It causes a number of reported issues and a fix for it has not hit
    Linus's tree yet.  Revert this to resolve those problems.
    
    Cc: Alexander Tsoy <alexander@tsoy.me>
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Hans de Goede <jwrdegoede@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b3faab744b04de198aee4ed8dd74fca7a2a8306
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Jun 16 16:43:18 2020 -0400

    nfsd: apply umask on fs without ACL support
    
    commit 22cf8419f1319ff87ec759d0ebdff4cbafaee832 upstream.
    
    The server is failing to apply the umask when creating new objects on
    filesystems without ACL support.
    
    To reproduce this, you need to use NFSv4.2 and a client and server
    recent enough to support umask, and you need to export a filesystem that
    lacks ACL support (for example, ext4 with the "noacl" mount option).
    
    Filesystems with ACL support are expected to take care of the umask
    themselves (usually by calling posix_acl_create).
    
    For filesystems without ACL support, this is up to the caller of
    vfs_create(), vfs_mknod(), or vfs_mkdir().
    
    Reported-by: Elliott Mitchell <ehem+debian@m5p.com>
    Reported-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Fixes: 47057abde515 ("nfsd: add support for the umask attribute")
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3779a6c2adf66ac5e2f06395b2e51e6b8f4f401
Author: Wolfram Sang <wsa+renesas@sang-engineering.com>
Date:   Sun Jun 28 13:52:44 2020 +0200

    i2c: mlxcpld: check correct size of maximum RECV_LEN packet
    
    [ Upstream commit 597911287fcd13c3a4b4aa3e0a52b33d431e0a8e ]
    
    I2C_SMBUS_BLOCK_MAX defines already the maximum number as defined in the
    SMBus 2.0 specs. I don't see a reason to add 1 here. Also, fix the errno
    to what is suggested for this error.
    
    Fixes: c9bfdc7c16cb ("i2c: mlxcpld: Add support for smbus block read transaction")
    Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Reviewed-by: Michael Shych <michaelsh@mellanox.com>
    Tested-by: Michael Shych <michaelsh@mellanox.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6b239e3fef600a04d1cb20d8c73447003e21edd
Author: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date:   Thu Jul 2 10:39:11 2020 +1200

    i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
    
    [ Upstream commit cd217f2300793a106b49c7dfcbfb26e348bc7593 ]
    
    The PCA9665 datasheet says that I2CSTA = 78h indicates that SCL is stuck
    low, this differs to the PCA9564 which uses 90h for this indication.
    Treat either 0x78 or 0x90 as an indication that the SCL line is stuck.
    
    Based on looking through the PCA9564 and PCA9665 datasheets this should
    be safe for both chips. The PCA9564 should not return 0x78 for any valid
    state and the PCA9665 should not return 0x90.
    
    Fixes: eff9ec95efaa ("i2c-algo-pca: Add PCA9665 support")
    Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f7d0fddff15a2fffa1fa2007eef42e160813062
Author: Christoph Hellwig <hch@lst.de>
Date:   Mon Jun 29 16:30:19 2020 +0200

    nvme: fix a crash in nvme_mpath_add_disk
    
    [ Upstream commit 72d447113bb751ded97b2e2c38f886e4a4139082 ]
    
    For private namespaces ns->head_disk is NULL, so add a NULL check
    before updating the BDI capabilities.
    
    Fixes: b2ce4d90690b ("nvme-multipath: set bdi capabilities once")
    Reported-by: Avinash M N <Avinash.M.N@wdc.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fa012710599fdf42aba5ced3fec5836c92d564d
Author: Paul Aurich <paul@darkrain42.org>
Date:   Fri Jun 26 12:58:09 2020 -0700

    SMB3: Honor 'posix' flag for multiuser mounts
    
    [ Upstream commit 5391b8e1b7b7e5cfa2dd4ffdc4b8c6b64dfd1866 ]
    
    The flag from the primary tcon needs to be copied into the volume info
    so that cifs_get_tcon will try to enable extensions on the per-user
    tcon. At that point, since posix extensions must have already been
    enabled on the superblock, don't try to needlessly adjust the mount
    flags.
    
    Fixes: ce558b0e17f8 ("smb3: Add posix create context for smb3.11 posix mounts")
    Fixes: b326614ea215 ("smb3: allow "posix" mount option to enable new SMB311 protocol extensions")
    Signed-off-by: Paul Aurich <paul@darkrain42.org>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Reviewed-by: Aurelien Aptel <aaptel@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a8c7823274e608903f8d72d72d18e6a4aee45c83
Author: Hou Tao <houtao1@huawei.com>
Date:   Mon Jun 15 12:14:59 2020 +0800

    virtio-blk: free vblk-vqs in error path of virtblk_probe()
    
    [ Upstream commit e7eea44eefbdd5f0345a0a8b80a3ca1c21030d06 ]
    
    Else there will be memory leak if alloc_disk() fails.
    
    Fixes: 6a27b656fc02 ("block: virtio-blk: support multi virt queues per virtio-blk device")
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1788e4dde47ed7f083e6aa57094f55414bf57fd1
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Mon Jun 29 14:00:32 2020 +0800

    drm: sun4i: hdmi: Remove extra HPD polling
    
    [ Upstream commit bda8eaa6dee7525f4dac950810a85a88bf6c2ba0 ]
    
    The HPD sense mechanism in Allwinner's old HDMI encoder hardware is more
    or less an input-only GPIO. Other GPIO-based HPD implementations
    directly return the current state, instead of polling for a specific
    state and returning the other if that times out.
    
    Remove the I/O polling from sun4i_hdmi_connector_detect() and directly
    return a known state based on the current reading. This also gets rid
    of excessive CPU usage by kworker as reported on Stack Exchange [1] and
    Armbian forums [2].
    
     [1] https://superuser.com/questions/1515001/debian-10-buster-on-cubietruck-with-bug-in-sun4i-drm-hdmi
     [2] https://forum.armbian.com/topic/14282-headless-systems-and-sun4i_drm_hdmi-a10a20/
    
    Fixes: 9c5681011a0c ("drm/sun4i: Add HDMI support")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200629060032.24134-1-wens@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e210d910f0b77a594d350c92aa815f60283a64a5
Author: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
Date:   Thu Jun 25 13:32:42 2020 +0900

    hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
    
    [ Upstream commit 8b97f9922211c44a739c5cbd9502ecbb9f17f6d1 ]
    
    Although it rarely happens, we should call free_capabilities()
    if error happens after read_capabilities() to free allocated strings.
    
    Fixes: de584afa5e188 ("hwmon driver for ACPI 4.0 power meters")
    Signed-off-by: Misono Tomohiro <misono.tomohiro@jp.fujitsu.com>
    Link: https://lore.kernel.org/r/20200625043242.31175-1-misono.tomohiro@jp.fujitsu.com
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cbec0023eb85a55f24554b7f2df53ca37deff1b9
Author: Chu Lin <linchuyuan@google.com>
Date:   Tue Jun 23 22:13:08 2020 +0000

    hwmon: (max6697) Make sure the OVERT mask is set correctly
    
    [ Upstream commit 016983d138cbe99a5c0aaae0103ee88f5300beb3 ]
    
    Per the datasheet for max6697, OVERT mask and ALERT mask are different.
    For example, the 7th bit of OVERT is the local channel but for alert
    mask, the 6th bit is the local channel. Therefore, we can't apply the
    same mask for both registers. In addition to that, the max6697 driver
    is supposed to be compatibale with different models. I manually went over
    all the listed chips and made sure all chip types have the same layout.
    
    Testing;
        mask value of 0x9 should map to 0x44 for ALERT and 0x84 for OVERT.
        I used iotool to read the reg value back to verify. I only tested this
        change on max6581.
    
    Reference:
    https://datasheets.maximintegrated.com/en/ds/MAX6581.pdf
    https://datasheets.maximintegrated.com/en/ds/MAX6697.pdf
    https://datasheets.maximintegrated.com/en/ds/MAX6699.pdf
    
    Signed-off-by: Chu Lin <linchuyuan@google.com>
    Fixes: 5372d2d71c46e ("hwmon: Driver for Maxim MAX6697 and compatibles")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 844900c736779ed38b19d509e84ea4761861b777
Author: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Date:   Wed Jun 24 01:51:37 2020 +0530

    cxgb4: fix SGE queue dump destination buffer context
    
    [ Upstream commit 1992ded5d111997877a9a25205976d8d03c46814 ]
    
    The data in destination buffer is expected to be be parsed in big
    endian. So, use the right context.
    
    Fixes following sparse warning:
    cudbg_lib.c:2041:44: warning: incorrect type in assignment (different
    base types)
    cudbg_lib.c:2041:44:    expected unsigned long long [usertype]
    cudbg_lib.c:2041:44:    got restricted __be64 [usertype]
    
    Fixes: 736c3b94474e ("cxgb4: collect egress and ingress SGE queue contexts")
    Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit adc91f3d192b67de98d00a0df489aaca53697dde
Author: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Date:   Wed Jun 24 01:51:36 2020 +0530

    cxgb4: use correct type for all-mask IP address comparison
    
    [ Upstream commit f286dd8eaad5a2758750f407ab079298e0bcc8a5 ]
    
    Use correct type to check for all-mask exact match IP addresses.
    
    Fixes following sparse warnings due to big endian value checks
    against 0xffffffff in is_addr_all_mask():
    cxgb4_filter.c:977:25: warning: restricted __be32 degrades to integer
    cxgb4_filter.c:983:37: warning: restricted __be32 degrades to integer
    cxgb4_filter.c:984:37: warning: restricted __be32 degrades to integer
    cxgb4_filter.c:985:37: warning: restricted __be32 degrades to integer
    cxgb4_filter.c:986:37: warning: restricted __be32 degrades to integer
    
    Fixes: 3eb8b62d5a26 ("cxgb4: add support to create hash-filters via tc-flower offload")
    Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a03acbd64bcb2ee58ba5b51c1fb1d30be6bd3651
Author: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Date:   Wed Jun 24 01:51:34 2020 +0530

    cxgb4: parse TC-U32 key values and masks natively
    
    [ Upstream commit 27f78cb245abdb86735529c13b0a579f57829e71 ]
    
    TC-U32 passes all keys values and masks in __be32 format. The parser
    already expects this and hence pass the value and masks in __be32
    natively to the parser.
    
    Fixes following sparse warnings in several places:
    cxgb4_tc_u32.c:57:21: warning: incorrect type in assignment (different base
    types)
    cxgb4_tc_u32.c:57:21:    expected unsigned int [usertype] val
    cxgb4_tc_u32.c:57:21:    got restricted __be32 [usertype] val
    cxgb4_tc_u32_parse.h:48:24: warning: cast to restricted __be32
    
    Fixes: 2e8aad7bf203 ("cxgb4: add parser to translate u32 filters to internal spec")
    Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 638232fa97978d2c2c3331560346402797e08fb4
Author: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Date:   Wed Jun 24 01:51:33 2020 +0530

    cxgb4: use unaligned conversion for fetching timestamp
    
    [ Upstream commit 589b1c9c166dce120e27b32a83a78f55464a7ef9 ]
    
    Use get_unaligned_be64() to fetch the timestamp needed for ns_to_ktime()
    conversion.
    
    Fixes following sparse warning:
    sge.c:3282:43: warning: cast to restricted __be64
    
    Fixes: a456950445a0 ("cxgb4: time stamping interface for PTP")
    Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0dc5df49d2b5d718ba12b6fc5a4093ac1843f85d
Author: Chen Tao <chentao107@huawei.com>
Date:   Mon Jun 8 09:48:59 2020 +0800

    drm/msm/dpu: fix error return code in dpu_encoder_init
    
    [ Upstream commit aa472721c8dbe1713cf510f56ffbc56ae9e14247 ]
    
    Fix to return negative error code -ENOMEM with the use of
    ERR_PTR from dpu_encoder_init.
    
    Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support")
    Signed-off-by: Chen Tao <chentao107@huawei.com>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a8ecc6a3ebe625eddd6e96f419762b198de93ce
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Mon Jun 8 16:48:43 2020 +1000

    crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
    
    commit 34c86f4c4a7be3b3e35aa48bd18299d4c756064d upstream.
    
    The locking in af_alg_release_parent is broken as the BH socket
    lock can only be taken if there is a code-path to handle the case
    where the lock is owned by process-context.  Instead of adding
    such handling, we can fix this by changing the ref counts to
    atomic_t.
    
    This patch also modifies the main refcnt to include both normal
    and nokey sockets.  This way we don't have to fudge the nokey
    ref count when a socket changes from nokey to normal.
    
    Credits go to Mauricio Faria de Oliveira who diagnosed this bug
    and sent a patch for it:
    
    https://lore.kernel.org/linux-crypto/20200605161657.535043-1-mfo@canonical.com/
    
    Reported-by: Brian Moyles <bmoyles@netflix.com>
    Reported-by: Mauricio Faria de Oliveira <mfo@canonical.com>
    Fixes: 37f96694cf73 ("crypto: af_alg - Use bh_lock_sock in...")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a464152c184dde346628114659bd6729c5f75c8f
Author: Douglas Anderson <dianders@chromium.org>
Date:   Tue Jun 2 15:47:39 2020 -0700

    kgdb: Avoid suspicious RCU usage warning
    
    [ Upstream commit 440ab9e10e2e6e5fd677473ee6f9e3af0f6904d6 ]
    
    At times when I'm using kgdb I see a splat on my console about
    suspicious RCU usage.  I managed to come up with a case that could
    reproduce this that looked like this:
    
      WARNING: suspicious RCU usage
      5.7.0-rc4+ #609 Not tainted
      -----------------------------
      kernel/pid.c:395 find_task_by_pid_ns() needs rcu_read_lock() protection!
    
      other info that might help us debug this:
    
        rcu_scheduler_active = 2, debug_locks = 1
      3 locks held by swapper/0/1:
       #0: ffffff81b6b8e988 (&dev->mutex){....}-{3:3}, at: __device_attach+0x40/0x13c
       #1: ffffffd01109e9e8 (dbg_master_lock){....}-{2:2}, at: kgdb_cpu_enter+0x20c/0x7ac
       #2: ffffffd01109ea90 (dbg_slave_lock){....}-{2:2}, at: kgdb_cpu_enter+0x3ec/0x7ac
    
      stack backtrace:
      CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.7.0-rc4+ #609
      Hardware name: Google Cheza (rev3+) (DT)
      Call trace:
       dump_backtrace+0x0/0x1b8
       show_stack+0x1c/0x24
       dump_stack+0xd4/0x134
       lockdep_rcu_suspicious+0xf0/0x100
       find_task_by_pid_ns+0x5c/0x80
       getthread+0x8c/0xb0
       gdb_serial_stub+0x9d4/0xd04
       kgdb_cpu_enter+0x284/0x7ac
       kgdb_handle_exception+0x174/0x20c
       kgdb_brk_fn+0x24/0x30
       call_break_hook+0x6c/0x7c
       brk_handler+0x20/0x5c
       do_debug_exception+0x1c8/0x22c
       el1_sync_handler+0x3c/0xe4
       el1_sync+0x7c/0x100
       rpmh_rsc_probe+0x38/0x420
       platform_drv_probe+0x94/0xb4
       really_probe+0x134/0x300
       driver_probe_device+0x68/0x100
       __device_attach_driver+0x90/0xa8
       bus_for_each_drv+0x84/0xcc
       __device_attach+0xb4/0x13c
       device_initial_probe+0x18/0x20
       bus_probe_device+0x38/0x98
       device_add+0x38c/0x420
    
    If I understand properly we should just be able to blanket kgdb under
    one big RCU read lock and the problem should go away.  We'll add it to
    the beast-of-a-function known as kgdb_cpu_enter().
    
    With this I no longer get any splats and things seem to work fine.
    
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Link: https://lore.kernel.org/r/20200602154729.v2.1.I70e0d4fd46d5ed2aaf0c98a355e8e1b7a5bb7e4e@changeid
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 460a7b7e86399ddd91988627d3c82b83d02cc13a
Author: Anton Eidelman <anton@lightbitslabs.com>
Date:   Wed Jun 24 01:53:09 2020 -0700

    nvme-multipath: fix deadlock between ana_work and scan_work
    
    [ Upstream commit 489dd102a2c7c94d783a35f9412eb085b8da1aa4 ]
    
    When scan_work calls nvme_mpath_add_disk() this holds ana_lock
    and invokes nvme_parse_ana_log(), which may issue IO
    in device_add_disk() and hang waiting for an accessible path.
    While nvme_mpath_set_live() only called when nvme_state_is_live(),
    a transition may cause NVME_SC_ANA_TRANSITION and requeue the IO.
    
    In order to recover and complete the IO ana_work on the same ctrl
    should be able to update the path state and remove NVME_NS_ANA_PENDING.
    
    The deadlock occurs because scan_work keeps holding ana_lock,
    so ana_work hangs [1].
    
    Fix:
    Now nvme_mpath_add_disk() uses nvme_parse_ana_log() to obtain a copy
    of the ANA group desc, and then calls nvme_update_ns_ana_state() without
    holding ana_lock.
    
    [1]:
    kernel: Workqueue: nvme-wq nvme_scan_work [nvme_core]
    kernel: Call Trace:
    kernel:  __schedule+0x2b9/0x6c0
    kernel:  schedule+0x42/0xb0
    kernel:  io_schedule+0x16/0x40
    kernel:  do_read_cache_page+0x438/0x830
    kernel:  read_cache_page+0x12/0x20
    kernel:  read_dev_sector+0x27/0xc0
    kernel:  read_lba+0xc1/0x220
    kernel:  efi_partition+0x1e6/0x708
    kernel:  check_partition+0x154/0x244
    kernel:  rescan_partitions+0xae/0x280
    kernel:  __blkdev_get+0x40f/0x560
    kernel:  blkdev_get+0x3d/0x140
    kernel:  __device_add_disk+0x388/0x480
    kernel:  device_add_disk+0x13/0x20
    kernel:  nvme_mpath_set_live+0x119/0x140 [nvme_core]
    kernel:  nvme_update_ns_ana_state+0x5c/0x60 [nvme_core]
    kernel:  nvme_set_ns_ana_state+0x1e/0x30 [nvme_core]
    kernel:  nvme_parse_ana_log+0xa1/0x180 [nvme_core]
    kernel:  nvme_mpath_add_disk+0x47/0x90 [nvme_core]
    kernel:  nvme_validate_ns+0x396/0x940 [nvme_core]
    kernel:  nvme_scan_work+0x24f/0x380 [nvme_core]
    kernel:  process_one_work+0x1db/0x380
    kernel:  worker_thread+0x249/0x400
    kernel:  kthread+0x104/0x140
    
    kernel: Workqueue: nvme-wq nvme_ana_work [nvme_core]
    kernel: Call Trace:
    kernel:  __schedule+0x2b9/0x6c0
    kernel:  schedule+0x42/0xb0
    kernel:  schedule_preempt_disabled+0xe/0x10
    kernel:  __mutex_lock.isra.0+0x182/0x4f0
    kernel:  ? __switch_to_asm+0x34/0x70
    kernel:  ? select_task_rq_fair+0x1aa/0x5c0
    kernel:  ? kvm_sched_clock_read+0x11/0x20
    kernel:  ? sched_clock+0x9/0x10
    kernel:  __mutex_lock_slowpath+0x13/0x20
    kernel:  mutex_lock+0x2e/0x40
    kernel:  nvme_read_ana_log+0x3a/0x100 [nvme_core]
    kernel:  nvme_ana_work+0x15/0x20 [nvme_core]
    kernel:  process_one_work+0x1db/0x380
    kernel:  worker_thread+0x4d/0x400
    kernel:  kthread+0x104/0x140
    kernel:  ? process_one_work+0x380/0x380
    kernel:  ? kthread_park+0x80/0x80
    kernel:  ret_from_fork+0x35/0x40
    
    Fixes: 0d0b660f214d ("nvme: add ANA support")
    Signed-off-by: Anton Eidelman <anton@lightbitslabs.com>
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0d70b94ffc06de6543766511bbd54eced17597b8
Author: Keith Busch <kbusch@kernel.org>
Date:   Thu Apr 9 09:09:04 2020 -0700

    nvme-multipath: set bdi capabilities once
    
    [ Upstream commit b2ce4d90690bd29ce5b554e203cd03682dd59697 ]
    
    The queues' backing device info capabilities don't change with each
    namespace revalidation. Set it only when each path's request_queue
    is initially added to a multipath queue.
    
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34035e7842f041df22992cd62d4df64c8b38b576
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Tue Mar 31 05:57:23 2020 -0400

    s390/debug: avoid kernel warning on too large number of pages
    
    [ Upstream commit 827c4913923e0b441ba07ba4cc41e01181102303 ]
    
    When specifying insanely large debug buffers a kernel warning is
    printed. The debug code does handle the error gracefully, though.
    Instead of duplicating the check let us silence the warning to
    avoid crashes when panic_on_warn is used.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b0f1f89a0dd6e257367eddc840179e85195ca18
Author: Zqiang <qiang.zhang@windriver.com>
Date:   Fri Jun 12 11:52:10 2020 +0800

    usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
    
    [ Upstream commit 28ebeb8db77035e058a510ce9bd17c2b9a009dba ]
    
    BUG: memory leak
    unreferenced object 0xffff888055046e00 (size 256):
      comm "kworker/2:9", pid 2570, jiffies 4294942129 (age 1095.500s)
      hex dump (first 32 bytes):
        00 70 04 55 80 88 ff ff 18 bb 5a 81 ff ff ff ff  .p.U......Z.....
        f5 96 78 81 ff ff ff ff 37 de 8e 81 ff ff ff ff  ..x.....7.......
      backtrace:
        [<00000000d121dccf>] kmemleak_alloc_recursive
    include/linux/kmemleak.h:43 [inline]
        [<00000000d121dccf>] slab_post_alloc_hook mm/slab.h:586 [inline]
        [<00000000d121dccf>] slab_alloc_node mm/slub.c:2786 [inline]
        [<00000000d121dccf>] slab_alloc mm/slub.c:2794 [inline]
        [<00000000d121dccf>] kmem_cache_alloc_trace+0x15e/0x2d0 mm/slub.c:2811
        [<000000005c3c3381>] kmalloc include/linux/slab.h:555 [inline]
        [<000000005c3c3381>] usbtest_probe+0x286/0x19d0
    drivers/usb/misc/usbtest.c:2790
        [<000000001cec6910>] usb_probe_interface+0x2bd/0x870
    drivers/usb/core/driver.c:361
        [<000000007806c118>] really_probe+0x48d/0x8f0 drivers/base/dd.c:551
        [<00000000a3308c3e>] driver_probe_device+0xfc/0x2a0 drivers/base/dd.c:724
        [<000000003ef66004>] __device_attach_driver+0x1b6/0x240
    drivers/base/dd.c:831
        [<00000000eee53e97>] bus_for_each_drv+0x14e/0x1e0 drivers/base/bus.c:431
        [<00000000bb0648d0>] __device_attach+0x1f9/0x350 drivers/base/dd.c:897
        [<00000000838b324a>] device_initial_probe+0x1a/0x20 drivers/base/dd.c:944
        [<0000000030d501c1>] bus_probe_device+0x1e1/0x280 drivers/base/bus.c:491
        [<000000005bd7adef>] device_add+0x131d/0x1c40 drivers/base/core.c:2504
        [<00000000a0937814>] usb_set_configuration+0xe84/0x1ab0
    drivers/usb/core/message.c:2030
        [<00000000e3934741>] generic_probe+0x6a/0xe0 drivers/usb/core/generic.c:210
        [<0000000098ade0f1>] usb_probe_device+0x90/0xd0
    drivers/usb/core/driver.c:266
        [<000000007806c118>] really_probe+0x48d/0x8f0 drivers/base/dd.c:551
        [<00000000a3308c3e>] driver_probe_device+0xfc/0x2a0 drivers/base/dd.c:724
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: Kyungtae Kim <kt0755@gmail.com>
    Signed-off-by: Zqiang <qiang.zhang@windriver.com>
    Link: https://lore.kernel.org/r/20200612035210.20494-1-qiang.zhang@windriver.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e632652e3dc186d61d584258becf9ca69ae2f3a
Author: Qian Cai <cai@lca.pw>
Date:   Mon Jun 1 21:45:57 2020 -0700

    mm/slub: fix stack overruns with SLUB_STATS
    
    [ Upstream commit a68ee0573991e90af2f1785db309206408bad3e5 ]
    
    There is no need to copy SLUB_STATS items from root memcg cache to new
    memcg cache copies.  Doing so could result in stack overruns because the
    store function only accepts 0 to clear the stat and returns an error for
    everything else while the show method would print out the whole stat.
    
    Then, the mismatch of the lengths returns from show and store methods
    happens in memcg_propagate_slab_attrs():
    
            else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf))
                    buf = mbuf;
    
    max_attr_size is only 2 from slab_attr_store(), then, it uses mbuf[64]
    in show_stat() later where a bounch of sprintf() would overrun the stack
    variable.  Fix it by always allocating a page of buffer to be used in
    show_stat() if SLUB_STATS=y which should only be used for debug purpose.
    
      # echo 1 > /sys/kernel/slab/fs_cache/shrink
      BUG: KASAN: stack-out-of-bounds in number+0x421/0x6e0
      Write of size 1 at addr ffffc900256cfde0 by task kworker/76:0/53251
    
      Hardware name: HPE ProLiant DL385 Gen10/ProLiant DL385 Gen10, BIOS A40 07/10/2019
      Workqueue: memcg_kmem_cache memcg_kmem_cache_create_func
      Call Trace:
        number+0x421/0x6e0
        vsnprintf+0x451/0x8e0
        sprintf+0x9e/0xd0
        show_stat+0x124/0x1d0
        alloc_slowpath_show+0x13/0x20
        __kmem_cache_create+0x47a/0x6b0
    
      addr ffffc900256cfde0 is located in stack of task kworker/76:0/53251 at offset 0 in frame:
       process_one_work+0x0/0xb90
    
      this frame has 1 object:
       [32, 72) 'lockdep_map'
    
      Memory state around the buggy address:
       ffffc900256cfc80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       ffffc900256cfd00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      >ffffc900256cfd80: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
                                                             ^
       ffffc900256cfe00: 00 00 00 00 00 f2 f2 f2 00 00 00 00 00 00 00 00
       ffffc900256cfe80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ==================================================================
      Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: __kmem_cache_create+0x6ac/0x6b0
      Workqueue: memcg_kmem_cache memcg_kmem_cache_create_func
      Call Trace:
        __kmem_cache_create+0x6ac/0x6b0
    
    Fixes: 107dab5c92d5 ("slub: slub-specific propagation changes")
    Signed-off-by: Qian Cai <cai@lca.pw>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Glauber Costa <glauber@scylladb.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Link: http://lkml.kernel.org/r/20200429222356.4322-1-cai@lca.pw
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6c09755c02642ea3727a87c994a1d9fab32aa8f4
Author: Dongli Zhang <dongli.zhang@oracle.com>
Date:   Mon Jun 1 21:45:47 2020 -0700

    mm/slub.c: fix corrupted freechain in deactivate_slab()
    
    [ Upstream commit 52f23478081ae0dcdb95d1650ea1e7d52d586829 ]
    
    The slub_debug is able to fix the corrupted slab freelist/page.
    However, alloc_debug_processing() only checks the validity of current
    and next freepointer during allocation path.  As a result, once some
    objects have their freepointers corrupted, deactivate_slab() may lead to
    page fault.
    
    Below is from a test kernel module when 'slub_debug=PUF,kmalloc-128
    slub_nomerge'.  The test kernel corrupts the freepointer of one free
    object on purpose.  Unfortunately, deactivate_slab() does not detect it
    when iterating the freechain.
    
      BUG: unable to handle page fault for address: 00000000123456f8
      #PF: supervisor read access in kernel mode
      #PF: error_code(0x0000) - not-present page
      PGD 0 P4D 0
      Oops: 0000 [#1] SMP PTI
      ... ...
      RIP: 0010:deactivate_slab.isra.92+0xed/0x490
      ... ...
      Call Trace:
       ___slab_alloc+0x536/0x570
       __slab_alloc+0x17/0x30
       __kmalloc+0x1d9/0x200
       ext4_htree_store_dirent+0x30/0xf0
       htree_dirblock_to_tree+0xcb/0x1c0
       ext4_htree_fill_tree+0x1bc/0x2d0
       ext4_readdir+0x54f/0x920
       iterate_dir+0x88/0x190
       __x64_sys_getdents+0xa6/0x140
       do_syscall_64+0x49/0x170
       entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Therefore, this patch adds extra consistency check in deactivate_slab().
    Once an object's freepointer is corrupted, all following objects
    starting at this object are isolated.
    
    [akpm@linux-foundation.org: fix build with CONFIG_SLAB_DEBUG=n]
    Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Joe Jin <joe.jin@oracle.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Link: http://lkml.kernel.org/r/20200331031450.12182-1-dongli.zhang@oracle.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a72aabdc4cb35c2f513713a23345de355fb3373
Author: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date:   Sun Jun 21 13:43:26 2020 +0300

    usbnet: smsc95xx: Fix use-after-free after removal
    
    [ Upstream commit b835a71ef64a61383c414d6bf2896d2c0161deca ]
    
    Syzbot reports an use-after-free in workqueue context:
    
    BUG: KASAN: use-after-free in mutex_unlock+0x19/0x40 kernel/locking/mutex.c:737
     mutex_unlock+0x19/0x40 kernel/locking/mutex.c:737
     __smsc95xx_mdio_read drivers/net/usb/smsc95xx.c:217 [inline]
     smsc95xx_mdio_read+0x583/0x870 drivers/net/usb/smsc95xx.c:278
     check_carrier+0xd1/0x2e0 drivers/net/usb/smsc95xx.c:644
     process_one_work+0x777/0xf90 kernel/workqueue.c:2274
     worker_thread+0xa8f/0x1430 kernel/workqueue.c:2420
     kthread+0x2df/0x300 kernel/kthread.c:255
    
    It looks like that smsc95xx_unbind() is freeing the structures that are
    still in use by the concurrently running workqueue callback. Thus switch
    to using cancel_delayed_work_sync() to ensure the work callback really
    is no longer active.
    
    Reported-by: syzbot+29dc7d4ae19b703ff947@syzkaller.appspotmail.com
    Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0b3103d7c897db89604b59249dbe64ddc4a2111
Author: Borislav Petkov <bp@suse.de>
Date:   Thu Jun 18 20:25:25 2020 +0200

    EDAC/amd64: Read back the scrub rate PCI register on F15h
    
    [ Upstream commit ee470bb25d0dcdf126f586ec0ae6dca66cb340a4 ]
    
    Commit:
    
      da92110dfdfa ("EDAC, amd64_edac: Extend scrub rate support to F15hM60h")
    
    added support for F15h, model 0x60 CPUs but in doing so, missed to read
    back SCRCTRL PCI config register on F15h CPUs which are *not* model
    0x60. Add that read so that doing
    
      $ cat /sys/devices/system/edac/mc/mc0/sdram_scrub_rate
    
    can show the previously set DRAM scrub rate.
    
    Fixes: da92110dfdfa ("EDAC, amd64_edac: Extend scrub rate support to F15hM60h")
    Reported-by: Anders Andersson <pipatron@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org> #v4.4..
    Link: https://lkml.kernel.org/r/CAKkunMbNWppx_i6xSdDHLseA2QQmGJqj_crY=NF-GZML5np4Vw@mail.gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa11088c6f75f8da2e20dd2b80105b67f0e4f117
Author: Hugh Dickins <hughd@google.com>
Date:   Thu Jun 25 20:29:59 2020 -0700

    mm: fix swap cache node allocation mask
    
    [ Upstream commit 243bce09c91b0145aeaedd5afba799d81841c030 ]
    
    Chris Murphy reports that a slightly overcommitted load, testing swap
    and zram along with i915, splats and keeps on splatting, when it had
    better fail less noisily:
    
      gnome-shell: page allocation failure: order:0,
      mode:0x400d0(__GFP_IO|__GFP_FS|__GFP_COMP|__GFP_RECLAIMABLE),
      nodemask=(null),cpuset=/,mems_allowed=0
      CPU: 2 PID: 1155 Comm: gnome-shell Not tainted 5.7.0-1.fc33.x86_64 #1
      Call Trace:
        dump_stack+0x64/0x88
        warn_alloc.cold+0x75/0xd9
        __alloc_pages_slowpath.constprop.0+0xcfa/0xd30
        __alloc_pages_nodemask+0x2df/0x320
        alloc_slab_page+0x195/0x310
        allocate_slab+0x3c5/0x440
        ___slab_alloc+0x40c/0x5f0
        __slab_alloc+0x1c/0x30
        kmem_cache_alloc+0x20e/0x220
        xas_nomem+0x28/0x70
        add_to_swap_cache+0x321/0x400
        __read_swap_cache_async+0x105/0x240
        swap_cluster_readahead+0x22c/0x2e0
        shmem_swapin+0x8e/0xc0
        shmem_swapin_page+0x196/0x740
        shmem_getpage_gfp+0x3a2/0xa60
        shmem_read_mapping_page_gfp+0x32/0x60
        shmem_get_pages+0x155/0x5e0 [i915]
        __i915_gem_object_get_pages+0x68/0xa0 [i915]
        i915_vma_pin+0x3fe/0x6c0 [i915]
        eb_add_vma+0x10b/0x2c0 [i915]
        i915_gem_do_execbuffer+0x704/0x3430 [i915]
        i915_gem_execbuffer2_ioctl+0x1ea/0x3e0 [i915]
        drm_ioctl_kernel+0x86/0xd0 [drm]
        drm_ioctl+0x206/0x390 [drm]
        ksys_ioctl+0x82/0xc0
        __x64_sys_ioctl+0x16/0x20
        do_syscall_64+0x5b/0xf0
        entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Reported on 5.7, but it goes back really to 3.1: when
    shmem_read_mapping_page_gfp() was implemented for use by i915, and
    allowed for __GFP_NORETRY and __GFP_NOWARN flags in most places, but
    missed swapin's "& GFP_KERNEL" mask for page tree node allocation in
    __read_swap_cache_async() - that was to mask off HIGHUSER_MOVABLE bits
    from what page cache uses, but GFP_RECLAIM_MASK is now what's needed.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=208085
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2006151330070.11064@eggly.anvils
    Fixes: 68da9f055755 ("tmpfs: pass gfp to shmem_getpage_gfp")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reported-by: Chris Murphy <lists@colorremedies.com>
    Analyzed-by: Vlastimil Babka <vbabka@suse.cz>
    Analyzed-by: Matthew Wilcox <willy@infradead.org>
    Tested-by: Chris Murphy <lists@colorremedies.com>
    Cc: <stable@vger.kernel.org>    [3.1+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3317a799ffd32880b7bc6429c53dc1c4532cc3f
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jun 1 19:12:06 2020 +0100

    btrfs: fix a block group ref counter leak after failure to remove block group
    
    [ Upstream commit 9fecd13202f520f3f25d5b1c313adb740fe19773 ]
    
    When removing a block group, if we fail to delete the block group's item
    from the extent tree, we jump to the 'out' label and end up decrementing
    the block group's reference count once only (by 1), resulting in a counter
    leak because the block group at that point was already removed from the
    block group cache rbtree - so we have to decrement the reference count
    twice, once for the rbtree and once for our lookup at the start of the
    function.
    
    There is a second bug where if removing the free space tree entries (the
    call to remove_block_group_free_space()) fails we end up jumping to the
    'out_put_group' label but end up decrementing the reference count only
    once, when we should have done it twice, since we have already removed
    the block group from the block group cache rbtree. This happens because
    the reference count decrement for the rbtree reference happens after
    attempting to remove the free space tree entries, which is far away from
    the place where we remove the block group from the rbtree.
    
    To make things less error prone, decrement the reference count for the
    rbtree immediately after removing the block group from it. This also
    eleminates the need for two different exit labels on error, renaming
    'out_put_label' to just 'out' and removing the old 'out'.
    
    Fixes: f6033c5e333238 ("btrfs: fix block group leak when removing fails")
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>