commit 7748091a31277b35d55bffa6fecda439d8526366
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jul 21 21:20:20 2022 +0200

    Linux 5.10.132
    
    Link: https://lore.kernel.org/r/20220719114626.156073229@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Hulk Robot <hulkrobot@huawei.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06a5dc3911a3b29acefd53470bdeccb88deb155e
Author: Juergen Gross <jgross@suse.com>
Date:   Fri Jul 8 15:14:56 2022 +0200

    x86/pat: Fix x86_has_pat_wp()
    
    commit 230ec83d4299b30c51a1c133b4f2a669972cc08a upstream.
    
    x86_has_pat_wp() is using a wrong test, as it relies on the normal
    PAT configuration used by the kernel. In case the PAT MSR has been
    setup by another entity (e.g. Xen hypervisor) it might return false
    even if the PAT configuration is allowing WP mappings. This due to the
    fact that when running as Xen PV guest the PAT MSR is setup by the
    hypervisor and cannot be changed by the guest. This results in the WP
    related entry to be at a different position when running as Xen PV
    guest compared to the bare metal or fully virtualized case.
    
    The correct way to test for WP support is:
    
    1. Get the PTE protection bits needed to select WP mode by reading
       __cachemode2pte_tbl[_PAGE_CACHE_MODE_WP] (depending on the PAT MSR
       setting this might return protection bits for a stronger mode, e.g.
       UC-)
    2. Translate those bits back into the real cache mode selected by those
       PTE bits by reading __pte2cachemode_tbl[__pte2cm_idx(prot)]
    3. Test for the cache mode to be _PAGE_CACHE_MODE_WP
    
    Fixes: f88a68facd9a ("x86/mm: Extend early_memremap() support with additional attrs")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org> # 4.14
    Link: https://lore.kernel.org/r/20220503132207.17234-1-jgross@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9cb6fabc90102f9e61fe35bd0160db88f4f53b4
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Wed Jun 29 12:48:41 2022 +0300

    serial: 8250: Fix PM usage_count for console handover
    
    commit f9b11229b79c0fb2100b5bb4628a101b1d37fbf6 upstream.
    
    When console is enabled, univ8250_console_setup() calls
    serial8250_console_setup() before .dev is set to uart_port. Therefore,
    it will not call pm_runtime_get_sync(). Later, when the actual driver
    is going to take over univ8250_console_exit() is called. As .dev is
    already set, serial8250_console_exit() makes pm_runtime_put_sync() call
    with usage count being zero triggering PM usage count warning
    (extra debug for univ8250_console_setup(), univ8250_console_exit(), and
    serial8250_register_ports()):
    
    [    0.068987] univ8250_console_setup ttyS0 nodev
    [    0.499670] printk: console [ttyS0] enabled
    [    0.717955] printk: console [ttyS0] printing thread started
    [    1.960163] serial8250_register_ports assigned dev for ttyS0
    [    1.976830] printk: console [ttyS0] disabled
    [    1.976888] printk: console [ttyS0] printing thread stopped
    [    1.977073] univ8250_console_exit ttyS0 usage:0
    [    1.977075] serial8250 serial8250: Runtime PM usage count underflow!
    [    1.977429] dw-apb-uart.6: ttyS0 at MMIO 0x4010006000 (irq = 33, base_baud = 115200) is a 16550A
    [    1.977812] univ8250_console_setup ttyS0 usage:2
    [    1.978167] printk: console [ttyS0] printing thread started
    [    1.978203] printk: console [ttyS0] enabled
    
    To fix the issue, call pm_runtime_get_sync() in
    serial8250_register_ports() as soon as .dev is set for an uart_port
    if it has console enabled.
    
    This problem became apparent only recently because 82586a721595 ("PM:
    runtime: Avoid device usage count underflows") added the warning
    printout. I confirmed this problem also occurs with v5.18 (w/o the
    warning printout, obviously).
    
    Fixes: bedb404e91bb ("serial: 8250_port: Don't use power management for kernel console")
    Cc: stable <stable@kernel.org>
    Tested-by: Tony Lindgren <tony@atomide.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/b4f428e9-491f-daf2-2232-819928dc276e@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1bd94dd9e5c63ac7280d67e730061cf684125ba
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Tue Jun 14 10:56:37 2022 +0300

    serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle
    
    commit 211565b100993c90b53bf40851eacaefc830cfe0 upstream.
    
    The driver must provide throttle and unthrottle in uart_ops when it
    sets UPSTAT_AUTORTS. Add them using existing stop_rx &
    enable_interrupts functions.
    
    Fixes: 2a76fa283098 (serial: pl011: Adopt generic flag to store auto RTS status)
    Cc: stable <stable@kernel.org>
    Cc: Lukas Wunner <lukas@wunner.de>
    Reported-by: Nuno Gonçalves <nunojpg@gmail.com>
    Tested-by: Nuno Gonçalves <nunojpg@gmail.com>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20220614075637.8558-1-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8c4661126568b8cd3e18908b920c3f83eba28e1
Author: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Date:   Mon Jun 27 18:07:52 2022 +0300

    serial: stm32: Clear prev values before setting RTS delays
    
    commit 5c5f44e36217de5ead789ff25da71c31c2331c96 upstream.
    
    The code lacks clearing of previous DEAT/DEDT values. Thus, changing
    values on the fly results in garbage delays tending towards the maximum
    value as more and more bits are ORed together. (Leaving RS485 mode
    would have cleared the old values though).
    
    Fixes: 1bcda09d2910 ("serial: stm32: add support for RS485 hardware control mode")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Link: https://lore.kernel.org/r/20220627150753.34510-1-ilpo.jarvinen@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 039ffe436ae55dabfaa4f46be39a7214c910cacc
Author: Yi Yang <yiyang13@huawei.com>
Date:   Tue Jun 28 16:35:15 2022 +0800

    serial: 8250: fix return error code in serial8250_request_std_resource()
    
    commit 6e690d54cfa802f939cefbd2fa2c91bd0b8bd1b6 upstream.
    
    If port->mapbase = NULL in serial8250_request_std_resource() , it need
    return a error code instead of 0. If uart_set_info() fail to request new
    regions by serial8250_request_std_resource() but the return value of
    serial8250_request_std_resource() is 0, The system incorrectly considers
    that the resource application is successful and does not attempt to
    restore the old setting. A null pointer reference is triggered when the
    port resource is later invoked.
    
    Signed-off-by: Yi Yang <yiyang13@huawei.com>
    Cc: stable <stable@kernel.org>
    Link: https://lore.kernel.org/r/20220628083515.64138-1-yiyang13@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfee93c9a6c395f9aa62268f1cedf64999844926
Author: Yangxi Xiang <xyangxi5@gmail.com>
Date:   Tue Jun 28 17:33:22 2022 +0800

    vt: fix memory overlapping when deleting chars in the buffer
    
    commit 39cdb68c64d84e71a4a717000b6e5de208ee60cc upstream.
    
    A memory overlapping copy occurs when deleting a long line. This memory
    overlapping copy can cause data corruption when scr_memcpyw is optimized
    to memcpy because memcpy does not ensure its behavior if the destination
    buffer overlaps with the source buffer. The line buffer is not always
    broken, because the memcpy utilizes the hardware acceleration, whose
    result is not deterministic.
    
    Fix this problem by using replacing the scr_memcpyw with scr_memmovew.
    
    Fixes: 81732c3b2fed ("tty vt: Fix line garbage in virtual console on command line edition")
    Cc: stable <stable@kernel.org>
    Signed-off-by: Yangxi Xiang <xyangxi5@gmail.com>
    Link: https://lore.kernel.org/r/20220628093322.5688-1-xyangxi5@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5450430199e319446d6b7a0ec963e3c951b121ab
Author: Chanho Park <chanho61.park@samsung.com>
Date:   Mon Jun 27 15:51:13 2022 +0900

    tty: serial: samsung_tty: set dma burst_size to 1
    
    commit f7e35e4bf1e8dc2c8cbd5e0955dc1bd58558dae0 upstream.
    
    The src_maxburst and dst_maxburst have been changed to 1 but the settings
    of the UCON register aren't changed yet. They should be changed as well
    according to the dmaengine slave config.
    
    Fixes: aa2f80e752c7 ("serial: samsung: fix maxburst parameter for DMA transactions")
    Cc: stable <stable@kernel.org>
    Cc: Marek Szyprowski <m.szyprowski@samsung.com>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Chanho Park <chanho61.park@samsung.com>
    Link: https://lore.kernel.org/r/20220627065113.139520-1-chanho61.park@samsung.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e5668ed7b7aaab4a53126daeef0258c5c573d5d
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Mon Jun 27 18:41:19 2022 -0700

    usb: dwc3: gadget: Fix event pending check
    
    commit 7441b273388b9a59d8387a03ffbbca9d5af6348c upstream.
    
    The DWC3_EVENT_PENDING flag is used to protect against invalid call to
    top-half interrupt handler, which can occur when there's a delay in
    software detection of the interrupt line deassertion.
    
    However, the clearing of this flag was done prior to unmasking the
    interrupt line, creating opportunity where the top-half handler can
    come. This breaks the serialization and creates a race between the
    top-half and bottom-half handler, resulting in losing synchronization
    between the controller and the driver when processing events.
    
    To fix this, make sure the clearing of the DWC3_EVENT_PENDING is done at
    the end of the bottom-half handler.
    
    Fixes: d325a1de49d6 ("usb: dwc3: gadget: Prevent losing events in event cache")
    Cc: stable@vger.kernel.org
    Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Link: https://lore.kernel.org/r/8670aaf1cf52e7d1e6df2a827af2d77263b93b75.1656380429.git.Thinh.Nguyen@synopsys.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1e01a42dcbde7d210a1b0688e6a07b1bb6b45f7
Author: Linyu Yuan <quic_linyyuan@quicinc.com>
Date:   Fri Jul 1 16:08:54 2022 +0800

    usb: typec: add missing uevent when partner support PD
    
    commit 6fb9e1d94789e8ee5a258a23bc588693f743fd6c upstream.
    
    System like Android allow user control power role from UI, it is possible
    to implement application base on typec uevent to refresh UI, but found
    there is chance that UI show different state from typec attribute file.
    
    In typec_set_pwr_opmode(), when partner support PD, there is no uevent
    send to user space which cause the problem.
    
    Fix it by sending uevent notification when change power mode to PD.
    
    Fixes: bdecb33af34f ("usb: typec: API for controlling USB Type-C Multiplexers")
    Cc: stable@vger.kernel.org
    Signed-off-by: Linyu Yuan <quic_linyyuan@quicinc.com>
    Link: https://lore.kernel.org/r/1656662934-10226-1-git-send-email-quic_linyyuan@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61ab5d644e16f0e27d31c8e2d33cbf6f570c3714
Author: Lucien Buchmann <lucien.buchmann@gmx.net>
Date:   Sat Jun 25 02:17:44 2022 +0200

    USB: serial: ftdi_sio: add Belimo device ids
    
    commit 7c239a071d1f04b7137789810807b4108d475c72 upstream.
    
    Those two product ids are known.
    
    Signed-off-by: Lucien Buchmann <lucien.buchmann@gmx.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58b94325ee80c709f57b15f762bf3b25d8a534f1
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Jul 6 12:20:59 2022 -0700

    signal handling: don't use BUG_ON() for debugging
    
    [ Upstream commit a382f8fee42ca10c9bfce0d2352d4153f931f5dc ]
    
    These are indeed "should not happen" situations, but it turns out recent
    changes made the 'task_is_stopped_or_trace()' case trigger (fix for that
    exists, is pending more testing), and the BUG_ON() makes it
    unnecessarily hard to actually debug for no good reason.
    
    It's been that way for a long time, but let's make it clear: BUG_ON() is
    not good for debugging, and should never be used in situations where you
    could just say "this shouldn't happen, but we can continue".
    
    Use WARN_ON_ONCE() instead to make sure it gets logged, and then just
    continue running.  Instead of making the system basically unusuable
    because you crashed the machine while potentially holding some very core
    locks (eg this function is commonly called while holding 'tasklist_lock'
    for writing).
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e75f692b79b477826296841d1535dae6e3eaa8bb
Author: Keith Busch <kbusch@kernel.org>
Date:   Tue Jul 5 10:21:02 2022 -0700

    nvme-pci: phison e16 has bogus namespace ids
    
    [ Upstream commit 73029c9b23cf1213e5f54c2b59efce08665199e7 ]
    
    Add the quirk.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216049
    Reported-by: Chris Egolf <cegolf@ugholf.net>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54bf0b8c75af7663ce802178c93163e6695dbe39
Author: Srinivas Neeli <srinivas.neeli@xilinx.com>
Date:   Thu Jun 9 13:54:32 2022 +0530

    Revert "can: xilinx_can: Limit CANFD brp to 2"
    
    [ Upstream commit c6da4590fe819dfe28a4f8037a8dc1e056542fb4 ]
    
    This reverts commit 05ca14fdb6fe65614e0652d03e44b02748d25af7.
    
    On early silicon engineering samples observed bit shrinking issue when
    we use brp as 1. Hence updated brp_min as 2. As in production silicon
    this issue is fixed, so reverting the patch.
    
    Link: https://lore.kernel.org/all/20220609082433.1191060-2-srinivas.neeli@xilinx.com
    Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 35ce2c64e57e51be166f575330968b6b31298d6d
Author: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Date:   Fri Jun 24 11:27:13 2022 +0200

    ARM: dts: stm32: use the correct clock source for CEC on stm32mp151
    
    [ Upstream commit 78ece8cce1ba0c3f3e5a7c6c1b914b3794f04c44 ]
    
    The peripheral clock of CEC is not LSE but CEC.
    
    Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
    Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 227ee155eaf528e3b446b976e08b8698d2ad683a
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun Jun 26 09:43:15 2022 +0200

    soc: ixp4xx/npe: Fix unused match warning
    
    [ Upstream commit 620f83b8326ce9706b1118334f0257ae028ce045 ]
    
    The kernel test robot found this inconsistency:
    
      drivers/soc/ixp4xx/ixp4xx-npe.c:737:34: warning:
      'ixp4xx_npe_of_match' defined but not used [-Wunused-const-variable=]
         737 | static const struct of_device_id ixp4xx_npe_of_match[] = {
    
    This is because the match is enclosed in the of_match_ptr()
    which compiles into NULL when OF is disabled and this
    is unnecessary.
    
    Fix it by dropping of_match_ptr() around the match.
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20220626074315.61209-1-linus.walleij@linaro.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 136d7987fcfdeca73ee3c6a29e48f99fdd0f4d87
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Jun 30 09:14:40 2022 +0200

    x86: Clear .brk area at early boot
    
    [ Upstream commit 38fa5479b41376dc9d7f57e71c83514285a25ca0 ]
    
    The .brk section has the same properties as .bss: it is an alloc-only
    section and should be cleared before being used.
    
    Not doing so is especially a problem for Xen PV guests, as the
    hypervisor will validate page tables (check for writable page tables
    and hypervisor private bits) before accepting them to be used.
    
    Make sure .brk is initially zero by letting clear_bss() clear the brk
    area, too.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20220630071441.28576-3-jgross@suse.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd830d8dd59a8040a9c3009c8d6e175c3f23637c
Author: Stafford Horne <shorne@gmail.com>
Date:   Wed Jun 15 08:54:26 2022 +0900

    irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
    
    [ Upstream commit 8520501346ed8d1c4a6dfa751cb57328a9c843f1 ]
    
    The mask_ack operation clears the interrupt by writing to the PICSR
    register.  This we don't want for level triggered interrupt because
    it does not actually clear the interrupt on the source hardware.
    
    This was causing issues in qemu with multi core setups where
    interrupts would continue to fire even though they had been cleared in
    PICSR.
    
    Just remove the mask_ack operation.
    
    Acked-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dae43b37925c7acead2ae0e4a1b64ec813c22321
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Thu Jun 23 11:51:19 2022 +0100

    ASoC: madera: Fix event generation for rate controls
    
    [ Upstream commit 980555e95f7cabdc9c80a07107622b097ba23703 ]
    
    madera_adsp_rate_put always returns zero regardless of if the control
    value was updated. This results in missing notifications to user-space
    of the control change. Update the handling to return 1 when the
    value is changed.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220623105120.1981154-5-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cae4b78f3c7d0874c05f01474ad8a84ec3533a45
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Thu Jun 23 11:51:18 2022 +0100

    ASoC: madera: Fix event generation for OUT1 demux
    
    [ Upstream commit e3cabbef3db8269207a6b8808f510137669f8deb ]
    
    madera_out1_demux_put returns the value of
    snd_soc_dapm_mux_update_power, which returns a 1 if a path was found for
    the kcontrol. This is obviously different to the expected return a 1 if
    the control was updated value. This results in spurious notifications to
    user-space. Update the handling to only return a 1 when the value is
    changed.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220623105120.1981154-4-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7634527cb231ddc6049bc90608c6a2b309bdc25
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Thu Jun 23 11:51:17 2022 +0100

    ASoC: cs47l15: Fix event generation for low power mux control
    
    [ Upstream commit 7f103af4a10f375b9b346b4d0b730f6a66b8c451 ]
    
    cs47l15_in1_adc_put always returns zero regardless of if the control
    value was updated. This results in missing notifications to user-space
    of the control change. Update the handling to return 1 when the value is
    changed.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220623105120.1981154-3-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41f97b0ecfb345c98db4e7d7db21793bd1ae0920
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Thu Jun 23 11:51:15 2022 +0100

    ASoC: dapm: Initialise kcontrol data for mux/demux controls
    
    [ Upstream commit 11d7a12f7f50baa5af9090b131c9b03af59503e7 ]
    
    DAPM keeps a copy of the current value of mux/demux controls,
    however this value is only initialised in the case of autodisable
    controls. This leads to false notification events when first
    modifying a DAPM kcontrol that has a non-zero default.
    
    Autodisable controls are left as they are, since they already
    initialise the value, and there would be more work required to
    support autodisable muxes where the first option isn't disabled
    and/or that isn't the default.
    
    Technically this issue could affect mixer/switch elements as well,
    although not on any of the devices I am currently running. There
    is also a little more work to do to address the issue there due to
    that side supporting stereo controls, so that has not been tackled
    in this patch.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220623105120.1981154-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11a14e4f31b73adc90b9f55277343080bfe311a5
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Tue Jun 21 11:20:39 2022 +0100

    ASoC: wm5110: Fix DRE control
    
    [ Upstream commit 0bc0ae9a5938d512fd5d44f11c9c04892dcf4961 ]
    
    The DRE controls on wm5110 should return a value of 1 if the DRE state
    is actually changed, update to fix this.
    
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20220621102041.1713504-2-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6cbbe59fdc7e01a614481831fbd61ff143140947
Author: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Date:   Thu Jun 9 11:59:49 2022 +0300

    ASoC: SOF: Intel: hda-loader: Clarify the cl_dsp_init() flow
    
    [ Upstream commit bbfef046c6613404c01aeb9e9928bebb78dd327a ]
    
    Update the comment for the cl_dsp_init() to clarify what is done by the
    function and use the chip->init_core_mask instead of BIT(0) when
    unstalling/running the init core.
    
    Complements: 2a68ff846164 ("ASoC: SOF: Intel: hda: Revisit IMR boot sequence")
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Link: https://lore.kernel.org/r/20220609085949.29062-4-peter.ujfalusi@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef1e38532f4b2f0f3b460e938a2e7076c3bed5ee
Author: Haowen Bai <baihaowen@meizu.com>
Date:   Thu Apr 21 10:26:59 2022 +0800

    pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux()
    
    [ Upstream commit 84a85d3fef2e75b1fe9fc2af6f5267122555a1ed ]
    
    pdesc could be null but still dereference pdesc->name and it will lead to
    a null pointer access. So we move a null check before dereference.
    
    Signed-off-by: Haowen Bai <baihaowen@meizu.com>
    Link: https://lore.kernel.org/r/1650508019-22554-1-git-send-email-baihaowen@meizu.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13fb9105cfc9693d1218ab8a6dbf7a51abd1333d
Author: Mark Brown <broonie@kernel.org>
Date:   Sat Jun 4 11:52:46 2022 +0100

    ASoC: ops: Fix off by one in range control validation
    
    [ Upstream commit 5871321fb4558c55bf9567052b618ff0be6b975e ]
    
    We currently report that range controls accept a range of 0..(max-min) but
    accept writes in the range 0..(max-min+1). Remove that extra +1.
    
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20220604105246.4055214-1-broonie@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67dc32542a1fb7790d0853cf4a5cf859ac6a2002
Author: Jianglei Nie <niejianglei2021@163.com>
Date:   Wed Jun 29 15:55:50 2022 +0800

    net: sfp: fix memory leak in sfp_probe()
    
    [ Upstream commit 0a18d802d65cf662644fd1d369c86d84a5630652 ]
    
    sfp_probe() allocates a memory chunk from sfp with sfp_alloc(). When
    devm_add_action() fails, sfp is not freed, which leads to a memory leak.
    
    We should use devm_add_action_or_reset() instead of devm_add_action().
    
    Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Link: https://lore.kernel.org/r/20220629075550.2152003-1-niejianglei2021@163.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 104594de27789971e086aa92fb3f1b1da4887ede
Author: Ruozhu Li <liruozhu@huawei.com>
Date:   Thu Jun 23 14:45:39 2022 +0800

    nvme: fix regression when disconnect a recovering ctrl
    
    [ Upstream commit f7f70f4aa09dc43d7455c060143e86a017c30548 ]
    
    We encountered a problem that the disconnect command hangs.
    After analyzing the log and stack, we found that the triggering
    process is as follows:
    CPU0                          CPU1
                                    nvme_rdma_error_recovery_work
                                      nvme_rdma_teardown_io_queues
    nvme_do_delete_ctrl                 nvme_stop_queues
      nvme_remove_namespaces
      --clear ctrl->namespaces
                                        nvme_start_queues
                                        --no ns in ctrl->namespaces
        nvme_ns_remove                  return(because ctrl is deleting)
          blk_freeze_queue
            blk_mq_freeze_queue_wait
            --wait for ns to unquiesce to clean infligt IO, hang forever
    
    This problem was not found in older kernels because we will flush
    err work in nvme_stop_ctrl before nvme_remove_namespaces.It does not
    seem to be modified for functional reasons, the patch can be revert
    to solve the problem.
    
    Revert commit 794a4cb3d2f7 ("nvme: remove the .stop_ctrl callout")
    
    Signed-off-by: Ruozhu Li <liruozhu@huawei.com>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5504e63832e7eb72607149ab5a83b155efd35d14
Author: Sagi Grimberg <sagi@grimberg.me>
Date:   Sun Jun 26 12:24:51 2022 +0300

    nvme-tcp: always fail a request when sending it failed
    
    [ Upstream commit 41d07df7de841bfbc32725ce21d933ad358f2844 ]
    
    queue stoppage and inflight requests cancellation is fully fenced from
    io_work and thus failing a request from this context. Hence we don't
    need to try to guess from the socket retcode if this failure is because
    the queue is about to be torn down or not.
    
    We are perfectly safe to just fail it, the request will not be cancelled
    later on.
    
    This solves possible very long shutdown delays when the users issues a
    'nvme disconnect-all'
    
    Reported-by: Daniel Wagner <dwagner@suse.de>
    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 de876f36f9a34eaa2fbcfab0123975970f9db1fa
Author: Michael Walle <michael@walle.cc>
Date:   Mon Jun 27 19:06:43 2022 +0200

    NFC: nxp-nci: don't print header length mismatch on i2c error
    
    [ Upstream commit 9577fc5fdc8b07b891709af6453545db405e24ad ]
    
    Don't print a misleading header length mismatch error if the i2c call
    returns an error. Instead just return the error code without any error
    message.
    
    Signed-off-by: Michael Walle <michael@walle.cc>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit efa78f2ae363428525fb4981bb63c555ee79f3c7
Author: Hangyu Hua <hbh25y@gmail.com>
Date:   Wed Jun 29 14:34:18 2022 +0800

    net: tipc: fix possible refcount leak in tipc_sk_create()
    
    [ Upstream commit 00aff3590fc0a73bddd3b743863c14e76fd35c0c ]
    
    Free sk in case tipc_sk_insert() fails.
    
    Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
    Reviewed-by: Tung Nguyen <tung.q.nguyen@dektech.com.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bacfef0bf2fa26e7386a08d02235957a0e2a54b5
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Tue Jun 28 20:37:26 2022 +0800

    platform/x86: hp-wmi: Ignore Sanitization Mode event
    
    [ Upstream commit 9ab762a84b8094540c18a170e5ddd6488632c456 ]
    
    After system resume the hp-wmi driver may complain:
    [ 702.620180] hp_wmi: Unknown event_id - 23 - 0x0
    
    According to HP it means 'Sanitization Mode' and it's harmless to just
    ignore the event.
    
    Cc: Jorge Lopez <jorge.lopez2@hp.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20220628123726.250062-1-kai.heng.feng@canonical.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ea9dbf7c2f436952bca331c6f5d72f75aca224e
Author: Liang He <windhl@126.com>
Date:   Sat Jun 18 10:25:45 2022 +0800

    cpufreq: pmac32-cpufreq: Fix refcount leak bug
    
    [ Upstream commit ccd7567d4b6cf187fdfa55f003a9e461ee629e36 ]
    
    In pmac_cpufreq_init_MacRISC3(), we need to add corresponding
    of_node_put() for the three node pointers whose refcount have
    been incremented by of_find_node_by_name().
    
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 24cd0b9bfdff126c066032b0d40ab0962d35e777
Author: John Garry <john.garry@huawei.com>
Date:   Thu Jun 23 20:41:59 2022 +0800

    scsi: hisi_sas: Limit max hw sectors for v3 HW
    
    [ Upstream commit fce54ed027577517df1e74b7d54dc2b1bd536887 ]
    
    If the controller is behind an IOMMU then the IOMMU IOVA caching range can
    affect performance, as discussed in [0].
    
    Limit the max HW sectors to not exceed this limit. We need to hardcode the
    value until a proper DMA mapping API is available.
    
    [0] https://lore.kernel.org/linux-iommu/20210129092120.1482-1-thunder.leizhen@huawei.com/
    
    Link: https://lore.kernel.org/r/1655988119-223714-1-git-send-email-john.garry@huawei.com
    Signed-off-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c458ebd6591e4dea76849ddfe62bf3c623e09b19
Author: Florian Westphal <fw@strlen.de>
Date:   Tue Jun 21 18:26:03 2022 +0200

    netfilter: br_netfilter: do not skip all hooks with 0 priority
    
    [ Upstream commit c2577862eeb0be94f151f2f1fff662b028061b00 ]
    
    When br_netfilter module is loaded, skbs may be diverted to the
    ipv4/ipv6 hooks, just like as if we were routing.
    
    Unfortunately, bridge filter hooks with priority 0 may be skipped
    in this case.
    
    Example:
    1. an nftables bridge ruleset is loaded, with a prerouting
       hook that has priority 0.
    2. interface is added to the bridge.
    3. no tcp packet is ever seen by the bridge prerouting hook.
    4. flush the ruleset
    5. load the bridge ruleset again.
    6. tcp packets are processed as expected.
    
    After 1) the only registered hook is the bridge prerouting hook, but its
    not called yet because the bridge hasn't been brought up yet.
    
    After 2), hook order is:
       0 br_nf_pre_routing // br_netfilter internal hook
       0 chain bridge f prerouting // nftables bridge ruleset
    
    The packet is diverted to br_nf_pre_routing.
    If call-iptables is off, the nftables bridge ruleset is called as expected.
    
    But if its enabled, br_nf_hook_thresh() will skip it because it assumes
    that all 0-priority hooks had been called previously in bridge context.
    
    To avoid this, check for the br_nf_pre_routing hook itself, we need to
    resume directly after it, even if this hook has a priority of 0.
    
    Unfortunately, this still results in different packet flow.
    With this fix, the eval order after in 3) is:
    1. br_nf_pre_routing
    2. ip(6)tables (if enabled)
    3. nftables bridge
    
    but after 5 its the much saner:
    1. nftables bridge
    2. br_nf_pre_routing
    3. ip(6)tables (if enabled)
    
    Unfortunately I don't see a solution here:
    It would be possible to move br_nf_pre_routing to a higher priority
    so that it will be called later in the pipeline, but this also impacts
    ebtables evaluation order, and would still result in this very ordering
    problem for all nftables-bridge hooks with the same priority as the
    br_nf_pre_routing one.
    
    Searching back through the git history I don't think this has
    ever behaved in any other way, hence, no fixes-tag.
    
    Reported-by: Radim Hrazdil <rhrazdil@redhat.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 93135dca8c4c4a107ea8125ace32ea3c08fe3d84
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Tue Jun 21 13:06:21 2022 +0200

    virtio_mmio: Restore guest page size on resume
    
    [ Upstream commit e0c2ce8217955537dd5434baeba061f209797119 ]
    
    Virtio devices might lose their state when the VMM is restarted
    after a suspend to disk (hibernation) cycle. This means that the
    guest page size register must be restored for the virtio_mmio legacy
    interface, since otherwise the virtio queues are not functional.
    
    This is particularly problematic for QEMU that currently still defaults
    to using the legacy interface for virtio_mmio. Write the guest page
    size register again in virtio_mmio_restore() to make legacy virtio_mmio
    devices work correctly after hibernation.
    
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Message-Id: <20220621110621.3638025-3-stephan.gerhold@kernkonzept.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d6115800325c984f51532b67c6e8420704583101
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Tue Jun 21 13:06:20 2022 +0200

    virtio_mmio: Add missing PM calls to freeze/restore
    
    [ Upstream commit ed7ac37fde33ccd84e4bd2b9363c191f925364c7 ]
    
    Most virtio drivers provide freeze/restore callbacks to finish up
    device usage before suspend and to reinitialize the virtio device after
    resume. However, these callbacks are currently only called when using
    virtio_pci. virtio_mmio does not have any PM ops defined.
    
    This causes problems for example after suspend to disk (hibernation),
    since the virtio devices might lose their state after the VMM is
    restarted. Calling virtio_device_freeze()/restore() ensures that
    the virtio devices are re-initialized correctly.
    
    Fix this by implementing the dev_pm_ops for virtio_mmio,
    similar to virtio_pci_common.
    
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Message-Id: <20220621110621.3638025-2-stephan.gerhold@kernkonzept.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 31e16a5e113fd843785194b28cbb16c1541e65ba
Author: Muchun Song <songmuchun@bytedance.com>
Date:   Thu Jun 9 18:40:32 2022 +0800

    mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE
    
    [ Upstream commit 43b5240ca6b33108998810593248186b1e3ae34a ]
    
    "numa_stat" should not be included in the scope of CONFIG_HUGETLB_PAGE, if
    CONFIG_HUGETLB_PAGE is not configured even if CONFIG_NUMA is configured,
    "numa_stat" is missed form /proc. Move it out of CONFIG_HUGETLB_PAGE to
    fix it.
    
    Fixes: 4518085e127d ("mm, sysctl: make NUMA stats configurable")
    Signed-off-by: Muchun Song <songmuchun@bytedance.com>
    Cc: <stable@vger.kernel.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Mel Gorman <mgorman@techsingularity.net>
    Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c713de1d80a5d7035dc7f667b485bded83b4e74a
Author: Tariq Toukan <tariqt@nvidia.com>
Date:   Thu Jul 14 10:07:54 2022 +0300

    net/tls: Check for errors in tls_device_init
    
    [ Upstream commit 3d8c51b25a235e283e37750943bbf356ef187230 ]
    
    Add missing error checks in tls_device_init.
    
    Fixes: e8f69799810c ("net/tls: Add generic NIC offload infrastructure")
    Reported-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Link: https://lore.kernel.org/r/20220714070754.1428-1-tariqt@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb58fd350a851b5cda9f4c9a2cefb15c7ccf33f3
Author: Vitaly Kuznetsov <vkuznets@redhat.com>
Date:   Fri Jul 8 14:51:47 2022 +0200

    KVM: x86: Fully initialize 'struct kvm_lapic_irq' in kvm_pv_kick_cpu_op()
    
    [ Upstream commit 8a414f943f8b5f94bbaafdec863d6f3dbef33f8a ]
    
    'vector' and 'trig_mode' fields of 'struct kvm_lapic_irq' are left
    uninitialized in kvm_pv_kick_cpu_op(). While these fields are normally
    not needed for APIC_DM_REMRD, they're still referenced by
    __apic_accept_irq() for trace_kvm_apic_accept_irq(). Fully initialize
    the structure to avoid consuming random stack memory.
    
    Fixes: a183b638b61c ("KVM: x86: make apic_accept_irq tracepoint more generic")
    Reported-by: syzbot+d6caa905917d353f0d07@syzkaller.appspotmail.com
    Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Message-Id: <20220708125147.593975-1-vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2978d0124f26e453ed30fda6a37f62d8c7f19cb
Author: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
Date:   Wed Jul 13 19:12:24 2022 +0800

    net: atlantic: remove aq_nic_deinit() when resume
    
    [ Upstream commit 2e15c51fefaffaf9f72255eaef4fada05055e4c5 ]
    
    aq_nic_deinit() has been called while suspending, so we don't have to call
    it again on resume.
    Actually, call it again leads to another hang issue when resuming from
    S3.
    
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992345] Call Trace:
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992346] <TASK>
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992348] aq_nic_deinit+0xb4/0xd0 [atlantic]
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992356] aq_pm_thaw+0x7f/0x100 [atlantic]
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992362] pci_pm_resume+0x5c/0x90
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992366] ? pci_pm_thaw+0x80/0x80
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992368] dpm_run_callback+0x4e/0x120
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992371] device_resume+0xad/0x200
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992373] async_resume+0x1e/0x40
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992374] async_run_entry_fn+0x33/0x120
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992377] process_one_work+0x220/0x3c0
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992380] worker_thread+0x4d/0x3f0
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992382] ? process_one_work+0x3c0/0x3c0
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992384] kthread+0x12a/0x150
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992386] ? set_kthread_struct+0x40/0x40
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992387] ret_from_fork+0x22/0x30
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992391] </TASK>
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992392] ---[ end trace 1ec8c79604ed5e0d ]---
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992394] PM: dpm_run_callback(): pci_pm_resume+0x0/0x90 returns -110
    Jul 8 03:09:44 u-Precision-7865-Tower kernel: [ 5910.992397] atlantic 0000:02:00.0: PM: failed to resume async: error -110
    
    Fixes: 1809c30b6e5a ("net: atlantic: always deep reset on pm op, fixing up my null deref regression")
    Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
    Link: https://lore.kernel.org/r/20220713111224.1535938-2-acelan.kao@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38e081ee06cb5892d1bb9a4565518485d435bbd1
Author: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
Date:   Wed Jul 13 19:12:23 2022 +0800

    net: atlantic: remove deep parameter on suspend/resume functions
    
    [ Upstream commit 0f33250760384e05c36466b0a2f92f3c6007ba92 ]
    
    Below commit claims that atlantic NIC requires to reset the device on pm
    op, and had set the deep to true for all suspend/resume functions.
    commit 1809c30b6e5a ("net: atlantic: always deep reset on pm op, fixing up my null deref regression")
    So, we could remove deep parameter on suspend/resume functions without
    any functional change.
    
    Fixes: 1809c30b6e5a ("net: atlantic: always deep reset on pm op, fixing up my null deref regression")
    Signed-off-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com>
    Link: https://lore.kernel.org/r/20220713111224.1535938-1-acelan.kao@canonical.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b82e4ad58a7fb72456503958a93060f87896e629
Author: Íñigo Huguet <ihuguet@redhat.com>
Date:   Wed Jul 13 11:21:16 2022 +0200

    sfc: fix kernel panic when creating VF
    
    [ Upstream commit ada74c5539eba06cf8b47d068f92e0b3963a9a6e ]
    
    When creating VFs a kernel panic can happen when calling to
    efx_ef10_try_update_nic_stats_vf.
    
    When releasing a DMA coherent buffer, sometimes, I don't know in what
    specific circumstances, it has to unmap memory with vunmap. It is
    disallowed to do that in IRQ context or with BH disabled. Otherwise, we
    hit this line in vunmap, causing the crash:
      BUG_ON(in_interrupt());
    
    This patch reenables BH to release the buffer.
    
    Log messages when the bug is hit:
     kernel BUG at mm/vmalloc.c:2727!
     invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
     CPU: 6 PID: 1462 Comm: NetworkManager Kdump: loaded Tainted: G          I      --------- ---  5.14.0-119.el9.x86_64 #1
     Hardware name: Dell Inc. PowerEdge R740/06WXJT, BIOS 2.8.2 08/27/2020
     RIP: 0010:vunmap+0x2e/0x30
     ...skip...
     Call Trace:
      __iommu_dma_free+0x96/0x100
      efx_nic_free_buffer+0x2b/0x40 [sfc]
      efx_ef10_try_update_nic_stats_vf+0x14a/0x1c0 [sfc]
      efx_ef10_update_stats_vf+0x18/0x40 [sfc]
      efx_start_all+0x15e/0x1d0 [sfc]
      efx_net_open+0x5a/0xe0 [sfc]
      __dev_open+0xe7/0x1a0
      __dev_change_flags+0x1d7/0x240
      dev_change_flags+0x21/0x60
      ...skip...
    
    Fixes: d778819609a2 ("sfc: DMA the VF stats only when requested")
    Reported-by: Ma Yuying <yuma@redhat.com>
    Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
    Acked-by: Edward Cree <ecree.xilinx@gmail.com>
    Link: https://lore.kernel.org/r/20220713092116.21238-1-ihuguet@redhat.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d4efc9a0e853400dd9e453c63bf5e16aee2c399
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Tue Jul 12 19:58:37 2022 +0200

    seg6: bpf: fix skb checksum in bpf_push_seg6_encap()
    
    [ Upstream commit 4889fbd98deaf243c3baadc54e296d71c6af1eb0 ]
    
    Both helper functions bpf_lwt_seg6_action() and bpf_lwt_push_encap() use
    the bpf_push_seg6_encap() to encapsulate the packet in an IPv6 with Segment
    Routing Header (SRH) or insert an SRH between the IPv6 header and the
    payload.
    To achieve this result, such helper functions rely on bpf_push_seg6_encap()
    which, in turn, leverages seg6_do_srh_{encap,inline}() to perform the
    required operation (i.e. encap/inline).
    
    This patch removes the initialization of the IPv6 header payload length
    from bpf_push_seg6_encap(), as it is now handled properly by
    seg6_do_srh_{encap,inline}() to prevent corruption of the skb checksum.
    
    Fixes: fe94cc290f53 ("bpf: Add IPv6 Segment Routing helpers")
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b38df59a8f4119e1c9d83922f28c67fac9291d8
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Tue Jul 12 19:58:36 2022 +0200

    seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors
    
    [ Upstream commit f048880fc77058d864aff5c674af7918b30f312a ]
    
    The SRv6 End.B6 and End.B6.Encaps behaviors rely on functions
    seg6_do_srh_{encap,inline}() to, respectively: i) encapsulate the
    packet within an outer IPv6 header with the specified Segment Routing
    Header (SRH); ii) insert the specified SRH directly after the IPv6
    header of the packet.
    
    This patch removes the initialization of the IPv6 header payload length
    from the input_action_end_b6{_encap}() functions, as it is now handled
    properly by seg6_do_srh_{encap,inline}() to avoid corruption of the skb
    checksum.
    
    Fixes: 140f04c33bbc ("ipv6: sr: implement several seg6local actions")
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 834fa0a22fe827ec443543ddab8939fb5d58d1f1
Author: Andrea Mayer <andrea.mayer@uniroma2.it>
Date:   Tue Jul 12 19:58:35 2022 +0200

    seg6: fix skb checksum evaluation in SRH encapsulation/insertion
    
    [ Upstream commit df8386d13ea280d55beee1b95f61a59234a3798b ]
    
    Support for SRH encapsulation and insertion was introduced with
    commit 6c8702c60b88 ("ipv6: sr: add support for SRH encapsulation and
    injection with lwtunnels"), through the seg6_do_srh_encap() and
    seg6_do_srh_inline() functions, respectively.
    The former encapsulates the packet in an outer IPv6 header along with
    the SRH, while the latter inserts the SRH between the IPv6 header and
    the payload. Then, the headers are initialized/updated according to the
    operating mode (i.e., encap/inline).
    Finally, the skb checksum is calculated to reflect the changes applied
    to the headers.
    
    The IPv6 payload length ('payload_len') is not initialized
    within seg6_do_srh_{inline,encap}() but is deferred in seg6_do_srh(), i.e.
    the caller of seg6_do_srh_{inline,encap}().
    However, this operation invalidates the skb checksum, since the
    'payload_len' is updated only after the checksum is evaluated.
    
    To solve this issue, the initialization of the IPv6 payload length is
    moved from seg6_do_srh() directly into the seg6_do_srh_{inline,encap}()
    functions and before the skb checksum update takes place.
    
    Fixes: 6c8702c60b88 ("ipv6: sr: add support for SRH encapsulation and injection with lwtunnels")
    Reported-by: Paolo Abeni <pabeni@redhat.com>
    Link: https://lore.kernel.org/all/20220705190727.69d532417be7438b15404ee1@uniroma2.it
    Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2240500817b3b4b996cdf2a461a3a5679f49b94
Author: Íñigo Huguet <ihuguet@redhat.com>
Date:   Tue Jul 12 08:26:42 2022 +0200

    sfc: fix use after free when disabling sriov
    
    [ Upstream commit ebe41da5d47ac0fff877e57bd14c54dccf168827 ]
    
    Use after free is detected by kfence when disabling sriov. What was read
    after being freed was vf->pci_dev: it was freed from pci_disable_sriov
    and later read in efx_ef10_sriov_free_vf_vports, called from
    efx_ef10_sriov_free_vf_vswitching.
    
    Set the pointer to NULL at release time to not trying to read it later.
    
    Reproducer and dmesg log (note that kfence doesn't detect it every time):
    $ echo 1 > /sys/class/net/enp65s0f0np0/device/sriov_numvfs
    $ echo 0 > /sys/class/net/enp65s0f0np0/device/sriov_numvfs
    
     BUG: KFENCE: use-after-free read in efx_ef10_sriov_free_vf_vswitching+0x82/0x170 [sfc]
    
     Use-after-free read at 0x00000000ff3c1ba5 (in kfence-#224):
      efx_ef10_sriov_free_vf_vswitching+0x82/0x170 [sfc]
      efx_ef10_pci_sriov_disable+0x38/0x70 [sfc]
      efx_pci_sriov_configure+0x24/0x40 [sfc]
      sriov_numvfs_store+0xfe/0x140
      kernfs_fop_write_iter+0x11c/0x1b0
      new_sync_write+0x11f/0x1b0
      vfs_write+0x1eb/0x280
      ksys_write+0x5f/0xe0
      do_syscall_64+0x5c/0x80
      entry_SYSCALL_64_after_hwframe+0x44/0xae
    
     kfence-#224: 0x00000000edb8ef95-0x00000000671f5ce1, size=2792, cache=kmalloc-4k
    
     allocated by task 6771 on cpu 10 at 3137.860196s:
      pci_alloc_dev+0x21/0x60
      pci_iov_add_virtfn+0x2a2/0x320
      sriov_enable+0x212/0x3e0
      efx_ef10_sriov_configure+0x67/0x80 [sfc]
      efx_pci_sriov_configure+0x24/0x40 [sfc]
      sriov_numvfs_store+0xba/0x140
      kernfs_fop_write_iter+0x11c/0x1b0
      new_sync_write+0x11f/0x1b0
      vfs_write+0x1eb/0x280
      ksys_write+0x5f/0xe0
      do_syscall_64+0x5c/0x80
      entry_SYSCALL_64_after_hwframe+0x44/0xae
    
     freed by task 6771 on cpu 12 at 3170.991309s:
      device_release+0x34/0x90
      kobject_cleanup+0x3a/0x130
      pci_iov_remove_virtfn+0xd9/0x120
      sriov_disable+0x30/0xe0
      efx_ef10_pci_sriov_disable+0x57/0x70 [sfc]
      efx_pci_sriov_configure+0x24/0x40 [sfc]
      sriov_numvfs_store+0xfe/0x140
      kernfs_fop_write_iter+0x11c/0x1b0
      new_sync_write+0x11f/0x1b0
      vfs_write+0x1eb/0x280
      ksys_write+0x5f/0xe0
      do_syscall_64+0x5c/0x80
      entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: 3c5eb87605e85 ("sfc: create vports for VFs and assign random MAC addresses")
    Reported-by: Yanghang Liu <yanghliu@redhat.com>
    Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
    Acked-by: Martin Habets <habetsm.xilinx@gmail.com>
    Link: https://lore.kernel.org/r/20220712062642.6915-1-ihuguet@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c1d9702ceb4a091da6bee380627596d1fba09274
Author: Jianglei Nie <niejianglei2021@163.com>
Date:   Tue Jul 12 09:10:37 2022 +0800

    ima: Fix potential memory leak in ima_init_crypto()
    
    [ Upstream commit 067d2521874135267e681c19d42761c601d503d6 ]
    
    On failure to allocate the SHA1 tfm, IMA fails to initialize and exits
    without freeing the ima_algo_array. Add the missing kfree() for
    ima_algo_array to avoid the potential memory leak.
    
    Signed-off-by: Jianglei Nie <niejianglei2021@163.com>
    Fixes: 6d94809af6b0 ("ima: Allocate and initialize tfm for each PCR bank")
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb360267e1e972475023d06546e18365a222698c
Author: Coiby Xu <coxu@redhat.com>
Date:   Wed Jul 13 15:21:11 2022 +0800

    ima: force signature verification when CONFIG_KEXEC_SIG is configured
    
    [ Upstream commit af16df54b89dee72df253abc5e7b5e8a6d16c11c ]
    
    Currently, an unsigned kernel could be kexec'ed when IMA arch specific
    policy is configured unless lockdown is enabled. Enforce kernel
    signature verification check in the kexec_file_load syscall when IMA
    arch specific policy is configured.
    
    Fixes: 99d5cadfde2b ("kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE")
    Reported-and-suggested-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Coiby Xu <coxu@redhat.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29c6a632f8193b0a4b40156afb823371d1d4c05a
Author: Liang He <windhl@126.com>
Date:   Tue Jul 12 14:14:17 2022 +0800

    net: ftgmac100: Hold reference returned by of_get_child_by_name()
    
    [ Upstream commit 49b9f431ff0d845a36be0b3ede35ec324f2e5fee ]
    
    In ftgmac100_probe(), we should hold the refernece returned by
    of_get_child_by_name() and use it to call of_node_put() for
    reference balance.
    
    Fixes: 39bfab8844a0 ("net: ftgmac100: Add support for DT phy-handle property")
    Signed-off-by: Liang He <windhl@126.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a51040d4b120f3520df64fb0b9c63b31d69bea9b
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:33 2022 -0700

    nexthop: Fix data-races around nexthop_compat_mode.
    
    [ Upstream commit bdf00bf24bef9be1ca641a6390fd5487873e0d2e ]
    
    While reading nexthop_compat_mode, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 4f80116d3df3 ("net: ipv4: add sysctl for nexthop api compatibility mode")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c56958de89b9a2efdb19310e3f11a6b97254d39
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:32 2022 -0700

    ipv4: Fix data-races around sysctl_ip_dynaddr.
    
    [ Upstream commit e49e4aff7ec19b2d0d0957ee30e93dade57dab9e ]
    
    While reading sysctl_ip_dynaddr, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 038a87b3e460d2ee579c8b1bd3890d816d6687b1
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:29 2022 -0700

    raw: Fix a data-race around sysctl_raw_l3mdev_accept.
    
    [ Upstream commit 1dace014928e6e385363032d359a04dee9158af0 ]
    
    While reading sysctl_raw_l3mdev_accept, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 6897445fb194 ("net: provide a sysctl raw_l3mdev_accept for raw socket lookup with VRFs")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 38d78c7b4be7759555d45181213a7845aad279e2
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:28 2022 -0700

    icmp: Fix a data-race around sysctl_icmp_ratemask.
    
    [ Upstream commit 1ebcb25ad6fc3d50fca87350acf451b9a66dd31e ]
    
    While reading sysctl_icmp_ratemask, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ebf26153215cbc3826d5ec57f051c3ec6c95b22
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:27 2022 -0700

    icmp: Fix a data-race around sysctl_icmp_ratelimit.
    
    [ Upstream commit 2a4eb714841f288cf51c7d942d98af6a8c6e4b01 ]
    
    While reading sysctl_icmp_ratelimit, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8871d9186029458786f62e8f8ef72543ea274ac
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 11 17:15:20 2022 -0700

    sysctl: Fix data-races in proc_dointvec_ms_jiffies().
    
    [ Upstream commit 7d1025e559782b58824b36cb8ad547a69f2e4b31 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_dointvec_ms_jiffies() to use READ_ONCE() and
    WRITE_ONCE() internally to fix data-races on the sysctl side.  For now,
    proc_dointvec_ms_jiffies() itself is tolerant to a data-race, but we still
    need to add annotations on the other subsystem's side.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2744e302e752fe3538dfefa406f382cd90681963
Author: Chris Wilson <chris.p.wilson@intel.com>
Date:   Tue Jul 12 16:21:33 2022 +0100

    drm/i915/gt: Serialize TLB invalidates with GT resets
    
    [ Upstream commit a1c5a7bf79c1faa5633b918b5c0666545e84c4d1 ]
    
    Avoid trying to invalidate the TLB in the middle of performing an
    engine reset, as this may result in the reset timing out. Currently,
    the TLB invalidate is only serialised by its own mutex, forgoing the
    uncore lock, but we can take the uncore->lock as well to serialise
    the mmio access, thereby serialising with the GDRST.
    
    Tested on a NUC5i7RYB, BIOS RYBDWi35.86A.0380.2019.0517.1530 with
    i915 selftest/hangcheck.
    
    Cc: stable@vger.kernel.org  # v4.4 and upper
    Fixes: 7938d61591d3 ("drm/i915: Flush TLBs before releasing backing store")
    Reported-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Tested-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Reviewed-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Chris Wilson <chris.p.wilson@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
    Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
    Acked-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/1e59a7c45dd919a530256b9ac721ac6ea86c0677.1657639152.git.mchehab@kernel.org
    (cherry picked from commit 33da97894758737895e90c909f16786052680ef4)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 636e5dbaf097aaf66b6234f0b10598d44ccc8a87
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Jul 8 12:41:04 2022 +0300

    drm/i915/selftests: fix a couple IS_ERR() vs NULL tests
    
    [ Upstream commit 896dcabd1f8f613c533d948df17408c41f8929f5 ]
    
    The shmem_pin_map() function doesn't return error pointers, it returns
    NULL.
    
    Fixes: be1cb55a07bf ("drm/i915/gt: Keep a no-frills swappable copy of the default context state")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Signed-off-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220708094104.GL2316@kadam
    (cherry picked from commit d50f5a109cf4ed50c5b575c1bb5fc3bd17b23308)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 359f2bca798968f6e680b0dcb79776abb2a205c6
Author: Michal Suchanek <msuchanek@suse.de>
Date:   Fri Jul 8 19:45:29 2022 +0200

    ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero
    
    [ Upstream commit 884b66976a7279ee889ba885fe364244d50b79e7 ]
    
    The device tree should include generic "jedec,spi-nor" compatible, and a
    manufacturer-specific one.
    The macronix part is what is shipped on the boards that come with a
    flash chip.
    
    Fixes: 45857ae95478 ("ARM: dts: orange-pi-zero: add node for SPI NOR")
    Signed-off-by: Michal Suchanek <msuchanek@suse.de>
    Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Link: https://lore.kernel.org/r/20220708174529.3360-1-msuchanek@suse.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e1aa73454ab4134c86b63b9cb805f5a0bc40f310
Author: Ryan Wanner <Ryan.Wanner@microchip.com>
Date:   Thu Jul 7 14:58:12 2022 -0700

    ARM: dts: at91: sama5d2: Fix typo in i2s1 node
    
    [ Upstream commit 2fdf15b50a46e366740df4cccbe2343269b4ff55 ]
    
    Fix typo in i2s1 causing errors in dt binding validation.
    Change assigned-parrents to assigned-clock-parents
    to match i2s0 node formatting.
    
    Fixes: 1ca81883c557 ("ARM: dts: at91: sama5d2: add nodes for I2S controllers")
    Signed-off-by: Ryan Wanner <Ryan.Wanner@microchip.com>
    [claudiu.beznea: use imperative addressing in commit description, remove
     blank line after fixes tag, fix typo in commit message]
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Link: https://lore.kernel.org/r/20220707215812.193008-1-Ryan.Wanner@microchip.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 418b191d5f223a8cb6cab09eae1f72c04ba6adf2
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:40:03 2022 -0700

    ipv4: Fix a data-race around sysctl_fib_sync_mem.
    
    [ Upstream commit 73318c4b7dbd0e781aaababff17376b2894745c0 ]
    
    While reading sysctl_fib_sync_mem, it can be changed concurrently.
    So, we need to add READ_ONCE() to avoid a data-race.
    
    Fixes: 9ab948a91b2c ("ipv4: Allow amount of dirty memory from fib resizing to be controllable")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e088ceb73c24ab4774da391d54a6426f4bfaefce
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:40:02 2022 -0700

    icmp: Fix data-races around sysctl.
    
    [ Upstream commit 48d7ee321ea5182c6a70782aa186422a70e67e22 ]
    
    While reading icmp sysctl variables, they can be changed concurrently.
    So, we need to add READ_ONCE() to avoid data-races.
    
    Fixes: 4cdf507d5452 ("icmp: add a global rate limitation")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fe2a35fa2c4f9c8ce5ef970eb927031387f9446a
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:40:01 2022 -0700

    cipso: Fix data-races around sysctl.
    
    [ Upstream commit dd44f04b9214adb68ef5684ae87a81ba03632250 ]
    
    While reading cipso sysctl variables, they can be changed concurrently.
    So, we need to add READ_ONCE() to avoid data-races.
    
    Fixes: 446fda4f2682 ("[NetLabel]: CIPSOv4 engine")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5811b8df2b97abb2a0c8936cdbdc4dc4457a9c2
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:40:00 2022 -0700

    net: Fix data-races around sysctl_mem.
    
    [ Upstream commit 310731e2f1611d1d13aae237abcf8e66d33345d5 ]
    
    While reading .sysctl_mem, it can be changed concurrently.
    So, we need to add READ_ONCE() to avoid data-races.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d54b6ef53cbcc40c61e83e7410451e19a038e6b0
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:59 2022 -0700

    inetpeer: Fix data-races around sysctl.
    
    [ Upstream commit 3d32edf1f3c38d3301f6434e56316f293466d7fb ]
    
    While reading inetpeer sysctl variables, they can be changed
    concurrently.  So, we need to add READ_ONCE() to avoid data-races.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6481a8a72a746dc96e3aa70a9f9f6d3daf0f88c2
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:58 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_max_orphans.
    
    [ Upstream commit 47e6ab24e8c6e3ca10ceb5835413f401f90de4bf ]
    
    While reading sysctl_tcp_max_orphans, it can be changed concurrently.
    So, we need to add READ_ONCE() to avoid a data-race.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 609ce7ff75a75aff2c2301094bb1572544b3ffa7
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:57 2022 -0700

    sysctl: Fix data races in proc_dointvec_jiffies().
    
    [ Upstream commit e877820877663fbae8cb9582ea597a7230b94df3 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_dointvec_jiffies() to use READ_ONCE() and
    WRITE_ONCE() internally to fix data-races on the sysctl side.  For now,
    proc_dointvec_jiffies() itself is tolerant to a data-race, but we still
    need to add annotations on the other subsystem's side.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5ee448d388cdafb154c10bde41865fb9ccf76a4
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:56 2022 -0700

    sysctl: Fix data races in proc_doulongvec_minmax().
    
    [ Upstream commit c31bcc8fb89fc2812663900589c6325ba35d9a65 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_doulongvec_minmax() to use READ_ONCE() and
    WRITE_ONCE() internally to fix data-races on the sysctl side.  For now,
    proc_doulongvec_minmax() itself is tolerant to a data-race, but we still
    need to add annotations on the other subsystem's side.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3a2144b3b6bf9ecafd91087c8b8b48171ec19df
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:55 2022 -0700

    sysctl: Fix data races in proc_douintvec_minmax().
    
    [ Upstream commit 2d3b559df3ed39258737789aae2ae7973d205bc1 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_douintvec_minmax() to use READ_ONCE() and
    WRITE_ONCE() internally to fix data-races on the sysctl side.  For now,
    proc_douintvec_minmax() itself is tolerant to a data-race, but we still
    need to add annotations on the other subsystem's side.
    
    Fixes: 61d9b56a8920 ("sysctl: add unsigned int range support")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 71ddde27c2eba5223c350513dd7d524c3cf1d6a4
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:54 2022 -0700

    sysctl: Fix data races in proc_dointvec_minmax().
    
    [ Upstream commit f613d86d014b6375a4085901de39406598121e35 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_dointvec_minmax() to use READ_ONCE() and
    WRITE_ONCE() internally to fix data-races on the sysctl side.  For now,
    proc_dointvec_minmax() itself is tolerant to a data-race, but we still
    need to add annotations on the other subsystem's side.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d5d54714e329f646bd7af4994fc427d88ee68936
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:53 2022 -0700

    sysctl: Fix data races in proc_douintvec().
    
    [ Upstream commit 4762b532ec9539755aab61445d5da6e1926ccb99 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_douintvec() to use READ_ONCE() and WRITE_ONCE()
    internally to fix data-races on the sysctl side.  For now, proc_douintvec()
    itself is tolerant to a data-race, but we still need to add annotations on
    the other subsystem's side.
    
    Fixes: e7d316a02f68 ("sysctl: handle error writing UINT_MAX to u32 fields")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80cc28a4b4847894e450a591ea2883dead524214
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 6 16:39:52 2022 -0700

    sysctl: Fix data races in proc_dointvec().
    
    [ Upstream commit 1f1be04b4d48a2475ea1aab46a99221bfc5c0968 ]
    
    A sysctl variable is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    This patch changes proc_dointvec() to use READ_ONCE() and WRITE_ONCE()
    internally to fix data-races on the sysctl side.  For now, proc_dointvec()
    itself is tolerant to a data-race, but we still need to add annotations on
    the other subsystem's side.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9cc8edc571b871d974b3289868553f9ce544aba6
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Wed Jul 6 09:39:13 2022 +0100

    net: stmmac: dwc-qos: Disable split header for Tegra194
    
    [ Upstream commit 029c1c2059e9c4b38f97a06204cdecd10cfbeb8a ]
    
    There is a long-standing issue with the Synopsys DWC Ethernet driver
    for Tegra194 where random system crashes have been observed [0]. The
    problem occurs when the split header feature is enabled in the stmmac
    driver. In the bad case, a larger than expected buffer length is
    received and causes the calculation of the total buffer length to
    overflow. This results in a very large buffer length that causes the
    kernel to crash. Why this larger buffer length is received is not clear,
    however, the feedback from the NVIDIA design team is that the split
    header feature is not supported for Tegra194. Therefore, disable split
    header support for Tegra194 to prevent these random crashes from
    occurring.
    
    [0] https://lore.kernel.org/linux-tegra/b0b17697-f23e-8fa5-3757-604a86f3a095@nvidia.com/
    
    Fixes: 67afd6d1cfdf ("net: stmmac: Add Split Header support and enable it in XGMAC cores")
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20220706083913.13750-1-jonathanh@nvidia.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd201332cc397ab999a0af8ad3b4888f521b8a15
Author: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Date:   Thu Jun 30 09:56:38 2022 +0300

    ASoC: Intel: Skylake: Correct the handling of fmt_config flexible array
    
    [ Upstream commit fc976f5629afb4160ee77798b14a693eac903ffd ]
    
    The struct nhlt_format's fmt_config is a flexible array, it must not be
    used as normal array.
    When moving to the next nhlt_fmt_cfg we need to take into account the data
    behind the ->config.caps (indicated by ->config.size).
    
    The logic of the code also changed: it is no longer saves the _last_
    fmt_cfg for all found rates.
    
    Fixes: bc2bd45b1f7f3 ("ASoC: Intel: Skylake: Parse nhlt and register clock device")
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
    Link: https://lore.kernel.org/r/20220630065638.11183-3-peter.ujfalusi@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbb87a0ed216c48109fb3c8b502cc772b23a4290
Author: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Date:   Thu Jun 30 09:56:37 2022 +0300

    ASoC: Intel: Skylake: Correct the ssp rate discovery in skl_get_ssp_clks()
    
    [ Upstream commit 219af251bd1694bce1f627d238347d2eaf13de61 ]
    
    The present flag is only set once when one rate has been found to be saved.
    This will effectively going to ignore any rate discovered at later time and
    based on the code, this is not the intention.
    
    Fixes: bc2bd45b1f7f3 ("ASoC: Intel: Skylake: Parse nhlt and register clock device")
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
    Link: https://lore.kernel.org/r/20220630065638.11183-2-peter.ujfalusi@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb8bf8038771ba612000965915758cc364c4ca52
Author: Hector Martin <marcan@marcan.st>
Date:   Thu Jun 30 09:51:35 2022 +0200

    ASoC: tas2764: Fix amp gain register offset & default
    
    [ Upstream commit 1c4f29ec878bbf1cc0a1eb54ae7da5ff98e19641 ]
    
    The register default is 0x28 per the datasheet, and the amp gain field
    is supposed to be shifted left by one. With the wrong default, the ALSA
    controls lie about the power-up state. With the wrong shift, we get only
    half the gain we expect.
    
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Fixes: 827ed8a0fa50 ("ASoC: tas2764: Add the driver for the TAS2764")
    Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
    Link: https://lore.kernel.org/r/20220630075135.2221-4-povik+lin@cutebit.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1cd988de463cd464c6844aa6f24ee79e085f1fd
Author: Hector Martin <marcan@marcan.st>
Date:   Thu Jun 30 09:51:34 2022 +0200

    ASoC: tas2764: Correct playback volume range
    
    [ Upstream commit 3e99e5697e1f7120b5abc755e8a560b22612d6ed ]
    
    DVC value 0xc8 is -100dB and 0xc9 is mute; this needs to map to
    -100.5dB as far as the dB scale is concerned. Fix that and enable
    the mute flag, so alsamixer correctly shows the control as
    <0 dB .. -100 dB, mute>.
    
    Signed-off-by: Hector Martin <marcan@marcan.st>
    Fixes: 827ed8a0fa50 ("ASoC: tas2764: Add the driver for the TAS2764")
    Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
    Link: https://lore.kernel.org/r/20220630075135.2221-3-povik+lin@cutebit.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52d1b4250ca9d1090d4cdbc4cb35d6be64fe1cce
Author: Martin Povišer <povik+lin@cutebit.org>
Date:   Thu Jun 30 09:51:33 2022 +0200

    ASoC: tas2764: Fix and extend FSYNC polarity handling
    
    [ Upstream commit d1a10f1b48202e2d183cce144c218a211e98d906 ]
    
    Fix setting of FSYNC polarity in case of LEFT_J and DSP_A/B formats.
    Do NOT set the SCFG field as was previously done, because that is not
    correct and is also in conflict with the "ASI1 Source" control which
    sets the same SCFG field!
    
    Also add support for explicit polarity inversion.
    
    Fixes: 827ed8a0fa50 ("ASoC: tas2764: Add the driver for the TAS2764")
    Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
    Link: https://lore.kernel.org/r/20220630075135.2221-2-povik+lin@cutebit.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 249fe2d20d55d7bd01779ec802cc9967a758a092
Author: Martin Povišer <povik+lin@cutebit.org>
Date:   Thu Jun 30 09:51:32 2022 +0200

    ASoC: tas2764: Add post reset delays
    
    [ Upstream commit cd10bb89b0d57bca98eb75e0444854a1c129a14e ]
    
    Make sure there is at least 1 ms delay from reset to first command as
    is specified in the datasheet. This is a fix similar to commit
    307f31452078 ("ASoC: tas2770: Insert post reset delay").
    
    Fixes: 827ed8a0fa50 ("ASoC: tas2764: Add the driver for the TAS2764")
    Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
    Link: https://lore.kernel.org/r/20220630075135.2221-1-povik+lin@cutebit.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f160a1f97091dc52e66b319829e60c7eeebfc9d4
Author: Francesco Dolcini <francesco.dolcini@toradex.com>
Date:   Fri Jun 24 12:13:01 2022 +0200

    ASoC: sgtl5000: Fix noise on shutdown/remove
    
    [ Upstream commit 040e3360af3736348112d29425bf5d0be5b93115 ]
    
    Put the SGTL5000 in a silent/safe state on shutdown/remove, this is
    required since the SGTL5000 produces a constant noise on its output
    after it is configured and its clock is removed. Without this change
    this is happening every time the module is unbound/removed or from
    reboot till the clock is enabled again.
    
    The issue was experienced on both a Toradex Colibri/Apalis iMX6, but can
    be easily reproduced everywhere just playing something on the codec and
    after that removing/unbinding the driver.
    
    Fixes: 9b34e6cc3bc2 ("ASoC: Add Freescale SGTL5000 codec support")
    Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
    Reviewed-by: Fabio Estevam <festevam@denx.de>
    Link: https://lore.kernel.org/r/20220624101301.441314-1-francesco.dolcini@toradex.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 831e190175f10652be93b08436cc7bf2e62e4bb6
Author: Huaxin Lu <luhuaxin1@huawei.com>
Date:   Tue Jul 5 13:14:17 2022 +0800

    ima: Fix a potential integer overflow in ima_appraise_measurement
    
    [ Upstream commit d2ee2cfc4aa85ff6a2a3b198a3a524ec54e3d999 ]
    
    When the ima-modsig is enabled, the rc passed to evm_verifyxattr() may be
    negative, which may cause the integer overflow problem.
    
    Fixes: 39b07096364a ("ima: Implement support for module-style appended signatures")
    Signed-off-by: Huaxin Lu <luhuaxin1@huawei.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 592f3bad00b7e2a95a6fb7a4f9e742c061c9c3c1
Author: Hangyu Hua <hbh25y@gmail.com>
Date:   Fri Jun 24 06:04:06 2022 -0700

    drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector()
    
    [ Upstream commit 85144df9ff4652816448369de76897c57cbb1b93 ]
    
    If drm_connector_init fails, intel_connector_free will be called to take
    care of proper free. So it is necessary to drop the refcount of port
    before intel_connector_free.
    
    Fixes: 091a4f91942a ("drm/i915: Handle drm-layer errors in intel_dp_add_mst_connector")
    Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220624130406.17996-1-jose.souza@intel.com
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    (cherry picked from commit cea9ed611e85d36a05db52b6457bf584b7d969e2)
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4cb5c1950b7ad37f57ced2bea8c5b4bcb755b61a
Author: Gal Pressman <gal@nvidia.com>
Date:   Mon Jun 27 15:05:53 2022 +0300

    net/mlx5e: Fix capability check for updating vnic env counters
    
    [ Upstream commit 452133dd580811f184e76b1402983182ee425298 ]
    
    The existing capability check for vnic env counters only checks for
    receive steering discards, although we need the counters update for the
    exposed internal queue oob counter as well. This could result in the
    latter counter not being updated correctly when the receive steering
    discards counter is not supported.
    Fix that by checking whether any counter is supported instead of only
    the steering counter capability.
    
    Fixes: 0cfafd4b4ddf ("net/mlx5e: Add device out of buffer counter")
    Signed-off-by: Gal Pressman <gal@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6eb1d0c370afbfb717824ba148e67243c85cfa72
Author: Tariq Toukan <tariqt@nvidia.com>
Date:   Mon Jun 6 21:21:10 2022 +0300

    net/mlx5e: kTLS, Fix build time constant test in RX
    
    [ Upstream commit 2ec6cf9b742a5c18982861322fa5de6510f8f57e ]
    
    Use the correct constant (TLS_DRIVER_STATE_SIZE_RX) in the comparison
    against the size of the private RX TLS driver context.
    
    Fixes: 1182f3659357 ("net/mlx5e: kTLS, Add kTLS RX HW offload support")
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c87d5211be84e682b9d0ae781368446acf4f2639
Author: Tariq Toukan <tariqt@nvidia.com>
Date:   Mon Jun 6 21:20:29 2022 +0300

    net/mlx5e: kTLS, Fix build time constant test in TX
    
    [ Upstream commit 6cc2714e85754a621219693ea8aa3077d6fca0cb ]
    
    Use the correct constant (TLS_DRIVER_STATE_SIZE_TX) in the comparison
    against the size of the private TX TLS driver context.
    
    Fixes: df8d866770f9 ("net/mlx5e: kTLS, Use kernel API to extract private offload context")
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d6cab2e06c33533d45586cb6161cdc9a754b29a1
Author: Zhen Lei <thunder.leizhen@huawei.com>
Date:   Mon Jun 13 15:05:41 2022 +0100

    ARM: 9210/1: Mark the FDT_FIXED sections as shareable
    
    [ Upstream commit 598f0a99fa8a35be44b27106b43ddc66417af3b1 ]
    
    commit 7a1be318f579 ("ARM: 9012/1: move device tree mapping out of linear
    region") use FDT_FIXED_BASE to map the whole FDT_FIXED_SIZE memory area
    which contains fdt. But it only reserves the exact physical memory that
    fdt occupied. Unfortunately, this mapping is non-shareable. An illegal or
    speculative read access can bring the RAM content from non-fdt zone into
    cache, PIPT makes it to be hit by subsequently read access through
    shareable mapping(such as linear mapping), and the cache consistency
    between cores is lost due to non-shareable property.
    
    |<---------FDT_FIXED_SIZE------>|
    |                               |
     -------------------------------
    | <non-fdt> | <fdt> | <non-fdt> |
     -------------------------------
    
    1. CoreA read <non-fdt> through MT_ROM mapping, the old data is loaded
       into the cache.
    2. CoreB write <non-fdt> to update data through linear mapping. CoreA
       received the notification to invalid the corresponding cachelines, but
       the property non-shareable makes it to be ignored.
    3. CoreA read <non-fdt> through linear mapping, cache hit, the old data
       is read.
    
    To eliminate this risk, add a new memory type MT_MEMORY_RO. Compared to
    MT_ROM, it is shareable and non-executable.
    
    Here's an example:
      list_del corruption. prev->next should be c0ecbf74, but was c08410dc
      kernel BUG at lib/list_debug.c:53!
      ... ...
      PC is at __list_del_entry_valid+0x58/0x98
      LR is at __list_del_entry_valid+0x58/0x98
      psr: 60000093
      sp : c0ecbf30  ip : 00000000  fp : 00000001
      r10: c08410d0  r9 : 00000001  r8 : c0825e0c
      r7 : 20000013  r6 : c08410d0  r5 : c0ecbf74  r4 : c0ecbf74
      r3 : c0825d08  r2 : 00000000  r1 : df7ce6f4  r0 : 00000044
      ... ...
      Stack: (0xc0ecbf30 to 0xc0ecc000)
      bf20:                                     c0ecbf74 c0164fd0 c0ecbf70 c0165170
      bf40: c0eca000 c0840c00 c0840c00 c0824500 c0825e0c c0189bbc c088f404 60000013
      bf60: 60000013 c0e85100 000004ec 00000000 c0ebcdc0 c0ecbf74 c0ecbf74 c0825d08
      ... ...                                           <  next     prev  >
      (__list_del_entry_valid) from (__list_del_entry+0xc/0x20)
      (__list_del_entry) from (finish_swait+0x60/0x7c)
      (finish_swait) from (rcu_gp_kthread+0x560/0xa20)
      (rcu_gp_kthread) from (kthread+0x14c/0x15c)
      (kthread) from (ret_from_fork+0x14/0x24)
    
    The faulty list node to be deleted is a local variable, its address is
    c0ecbf74. The dumped stack shows that 'prev' = c0ecbf74, but its value
    before lib/list_debug.c:53 is c08410dc. A large amount of printing results
    in swapping out the cacheline containing the old data(MT_ROM mapping is
    read only, so the cacheline cannot be dirty), and the subsequent dump
    operation obtains new data from the DDR.
    
    Fixes: 7a1be318f579 ("ARM: 9012/1: move device tree mapping out of linear region")
    Suggested-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3d82fba7d3632475e8005298d52ebd0202f8e24d
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Tue May 31 09:53:42 2022 +0100

    ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle
    
    [ Upstream commit 0609e200246bfd3b7516091c491bec4308349055 ]
    
    Jon reports that the Spectre-BHB init code is filling up the kernel log
    with spurious notifications about which mitigation has been enabled,
    every time any CPU comes out of a low power state.
    
    Given that Spectre-BHB mitigations are system wide, only a single
    mitigation can be enabled, and we already print an error if two types of
    CPUs coexist in a single system that require different Spectre-BHB
    mitigations.
    
    This means that the pr_info() that describes the selected mitigation
    does not need to be emitted for each CPU anyway, and so we can simply
    emit it only once.
    
    In order to clarify the above in the log message, update it to describe
    that the selected mitigation will be enabled on all CPUs, including ones
    that are unaffected. If another CPU comes up later that is affected and
    requires a different mitigation, we report an error as before.
    
    Fixes: b9baf5c8c5c3 ("ARM: Spectre-BHB workaround")
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c300e294d1c8200d26d0eb561e93204cd868318
Author: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Date:   Wed Jul 6 13:06:22 2022 +0300

    spi: amd: Limit max transfer and message size
    
    [ Upstream commit 6ece49c56965544262523dae4a071ace3db63507 ]
    
    Enabling the SPI CS35L41 audio codec driver for Steam Deck [1]
    revealed a problem with the current AMD SPI controller driver
    implementation, consisting of an unrecoverable system hang.
    
    The issue can be prevented if we ensure the max transfer size
    and the max message size do not exceed the FIFO buffer size.
    
    According to the implementation of the downstream driver, the
    AMD SPI controller is not able to handle more than 70 bytes per
    transfer, which corresponds to the size of the FIFO buffer.
    
    Hence, let's fix this by setting the SPI limits mentioned above.
    
    [1] https://lore.kernel.org/r/20220621213819.262537-1-cristian.ciocaltea@collabora.com
    
    Reported-by: Anastasios Vacharakis <vacharakis@o2mail.de>
    Fixes: bbb336f39efc ("spi: spi-amd: Add AMD SPI controller driver support")
    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    Link: https://lore.kernel.org/r/20220706100626.1234731-2-cristian.ciocaltea@collabora.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8d42c92fe564ed9dad36a5b0dcfc3b12bfb7965
Author: Kris Bahnsen <kris@embeddedTS.com>
Date:   Thu Jun 30 14:03:27 2022 -0700

    ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count
    
    [ Upstream commit e95ea0f687e679fcb0a3a67d0755b81ee7d60db0 ]
    
    Device-tree incorrectly used "ngpio" which caused the driver to
    fallback to 32 ngpios.
    
    This platform has 62 GPIO registers.
    
    Fixes: 9ff8e9fccef9 ("ARM: dts: TS-7970: add basic device tree")
    Signed-off-by: Kris Bahnsen <kris@embeddedTS.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 91f90b571f1a23f5b8a9c2b68a9aa5d6981a3c3d
Author: Baokun Li <libaokun1@huawei.com>
Date:   Thu Apr 28 21:40:31 2022 +0800

    ext4: fix race condition between ext4_write and ext4_convert_inline_data
    
    commit f87c7a4b084afc13190cbb263538e444cb2b392a upstream.
    
    Hulk Robot reported a BUG_ON:
     ==================================================================
     EXT4-fs error (device loop3): ext4_mb_generate_buddy:805: group 0,
     block bitmap and bg descriptor inconsistent: 25 vs 31513 free clusters
     kernel BUG at fs/ext4/ext4_jbd2.c:53!
     invalid opcode: 0000 [#1] SMP KASAN PTI
     CPU: 0 PID: 25371 Comm: syz-executor.3 Not tainted 5.10.0+ #1
     RIP: 0010:ext4_put_nojournal fs/ext4/ext4_jbd2.c:53 [inline]
     RIP: 0010:__ext4_journal_stop+0x10e/0x110 fs/ext4/ext4_jbd2.c:116
     [...]
     Call Trace:
      ext4_write_inline_data_end+0x59a/0x730 fs/ext4/inline.c:795
      generic_perform_write+0x279/0x3c0 mm/filemap.c:3344
      ext4_buffered_write_iter+0x2e3/0x3d0 fs/ext4/file.c:270
      ext4_file_write_iter+0x30a/0x11c0 fs/ext4/file.c:520
      do_iter_readv_writev+0x339/0x3c0 fs/read_write.c:732
      do_iter_write+0x107/0x430 fs/read_write.c:861
      vfs_writev fs/read_write.c:934 [inline]
      do_pwritev+0x1e5/0x380 fs/read_write.c:1031
     [...]
     ==================================================================
    
    Above issue may happen as follows:
               cpu1                     cpu2
    __________________________|__________________________
    do_pwritev
     vfs_writev
      do_iter_write
       ext4_file_write_iter
        ext4_buffered_write_iter
         generic_perform_write
          ext4_da_write_begin
                               vfs_fallocate
                                ext4_fallocate
                                 ext4_convert_inline_data
                                  ext4_convert_inline_data_nolock
                                   ext4_destroy_inline_data_nolock
                                    clear EXT4_STATE_MAY_INLINE_DATA
                                   ext4_map_blocks
                                    ext4_ext_map_blocks
                                     ext4_mb_new_blocks
                                      ext4_mb_regular_allocator
                                       ext4_mb_good_group_nolock
                                        ext4_mb_init_group
                                         ext4_mb_init_cache
                                          ext4_mb_generate_buddy  --> error
           ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)
                                    ext4_restore_inline_data
                                     set EXT4_STATE_MAY_INLINE_DATA
           ext4_block_write_begin
          ext4_da_write_end
           ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA)
           ext4_write_inline_data_end
            handle=NULL
            ext4_journal_stop(handle)
             __ext4_journal_stop
              ext4_put_nojournal(handle)
               ref_cnt = (unsigned long)handle
               BUG_ON(ref_cnt == 0)  ---> BUG_ON
    
    The lock held by ext4_convert_inline_data is xattr_sem, but the lock
    held by generic_perform_write is i_rwsem. Therefore, the two locks can
    be concurrent.
    
    To solve above issue, we add inode_lock() for ext4_convert_inline_data().
    At the same time, move ext4_convert_inline_data() in front of
    ext4_punch_hole(), remove similar handling from ext4_punch_hole().
    
    Fixes: 0c8d414f163f ("ext4: let fallocate handle inline data correctly")
    Cc: stable@vger.kernel.org
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Baokun Li <libaokun1@huawei.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Link: https://lore.kernel.org/r/20220428134031.4153381-1-libaokun1@huawei.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d883b3f000d405d19b3484e3d8d97796e6854c6
Author: Xiu Jianfeng <xiujianfeng@huawei.com>
Date:   Fri May 27 19:17:26 2022 +0800

    Revert "evm: Fix memleak in init_desc"
    
    commit 51dd64bb99e4478fc5280171acd8e1b529eadaf7 upstream.
    
    This reverts commit ccf11dbaa07b328fa469415c362d33459c140a37.
    
    Commit ccf11dbaa07b ("evm: Fix memleak in init_desc") said there is
    memleak in init_desc. That may be incorrect, as we can see, tmp_tfm is
    saved in one of the two global variables hmac_tfm or evm_tfm[hash_algo],
    then if init_desc is called next time, there is no need to alloc tfm
    again, so in the error path of kmalloc desc or crypto_shash_init(desc),
    It is not a problem without freeing tmp_tfm.
    
    And also that commit did not reset the global variable to NULL after
    freeing tmp_tfm and this makes *tfm a dangling pointer which may cause a
    UAF issue.
    
    Reported-by: Guozihua (Scott) <guozihua@huawei.com>
    Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41007669fc3b4c968c54b81088c2bbc18d8affe4
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Jun 20 09:01:43 2022 +0200

    sh: convert nommu io{re,un}map() to static inline functions
    
    commit d684e0a52d36f8939eda30a0f31ee235ee4ee741 upstream.
    
    Recently, nommu iounmap() was converted from a static inline function to a
    macro again, basically reverting commit 4580ba4ad2e6b8dd ("sh: Convert
    iounmap() macros to inline functions").  With -Werror, this leads to build
    failures like:
    
        drivers/iio/adc/xilinx-ams.c: In function `ams_iounmap_ps':
        drivers/iio/adc/xilinx-ams.c:1195:14: error: unused variable `ams' [-Werror=unused-variable]
         1195 |  struct ams *ams = data;
              |              ^~~
    
    Fix this by replacing the macros for ioremap() and iounmap() by static
    inline functions, based on <asm-generic/io.h>.
    
    Link: https://lkml.kernel.org/r/8d1b1766260961799b04035e7bc39a7f59729f72.1655708312.git.geert+renesas@glider.be
    Fixes: 13f1fc870dd74713 ("sh: move the ioremap implementation out of line")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea4dbcfb9532a6ac79755e5043d988859961d29c
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Thu Jun 23 17:54:01 2022 +0900

    nilfs2: fix incorrect masking of permission flags for symlinks
    
    commit 5924e6ec1585445f251ea92713eb15beb732622a upstream.
    
    The permission flags of newly created symlinks are wrongly dropped on
    nilfs2 with the current umask value even though symlinks should have 777
    (rwxrwxrwx) permissions:
    
     $ umask
     0022
     $ touch file && ln -s file symlink; ls -l file symlink
     -rw-r--r--. 1 root root 0 Jun 23 16:29 file
     lrwxr-xr-x. 1 root root 4 Jun 23 16:29 symlink -> file
    
    This fixes the bug by inserting a missing check that excludes
    symlinks.
    
    Link: https://lkml.kernel.org/r/1655974441-5612-1-git-send-email-konishi.ryusuke@gmail.com
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Reported-by: Tommy Pettersson <ptp@lysator.liu.se>
    Reported-by: Ciprian Craciun <ciprian.craciun@gmail.com>
    Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14e63942d63e278d271aac211476b81b2c60aaf6
Author: Dave Chinner <dchinner@redhat.com>
Date:   Wed Jul 13 17:49:15 2022 +1000

    fs/remap: constrain dedupe of EOF blocks
    
    commit 5750676b64a561f7ec920d7c6ba130fc9c7378f3 upstream.
    
    If dedupe of an EOF block is not constrainted to match against only
    other EOF blocks with the same EOF offset into the block, it can
    match against any other block that has the same matching initial
    bytes in it, even if the bytes beyond EOF in the source file do
    not match.
    
    Fix this by constraining the EOF block matching to only match
    against other EOF blocks that have identical EOF offsets and data.
    This allows "whole file dedupe" to continue to work without allowing
    eof blocks to randomly match against partial full blocks with the
    same data.
    
    Reported-by: Ansgar Lößer <ansgar.loesser@tu-darmstadt.de>
    Fixes: 1383a7ed6749 ("vfs: check file ranges before cloning files")
    Link: https://lore.kernel.org/linux-fsdevel/a7c93559-4ba1-df2f-7a85-55a143696405@tu-darmstadt.de/
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0581613df7f9a4c5fac096ce1d5fb15b7b994240
Author: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Date:   Thu Jun 30 23:06:01 2022 +0300

    drm/panfrost: Fix shrinker list corruption by madvise IOCTL
    
    commit 9fc33eaaa979d112d10fea729edcd2a2e21aa912 upstream.
    
    Calling madvise IOCTL twice on BO causes memory shrinker list corruption
    and crashes kernel because BO is already on the list and it's added to
    the list again, while BO should be removed from the list before it's
    re-added. Fix it.
    
    Cc: stable@vger.kernel.org
    Fixes: 013b65101315 ("drm/panfrost: Add madvise and shrinker support")
    Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220630200601.1884120-3-dmitry.osipenko@collabora.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e760fe05d3ea5b5addb02691ec8a29e601dff56
Author: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Date:   Thu Jun 30 23:06:00 2022 +0300

    drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error
    
    commit fb6e0637ab7ebd8e61fe24f4d663c4bae99cfa62 upstream.
    
    When panfrost_mmu_map_fault_addr() fails, the BO's mapping should be
    unreferenced and not the shmem object which backs the mapping.
    
    Cc: stable@vger.kernel.org
    Fixes: bdefca2d8dc0 ("drm/panfrost: Add the panfrost_gem_mapping concept")
    Reviewed-by: Steven Price <steven.price@arm.com>
    Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    Signed-off-by: Steven Price <steven.price@arm.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220630200601.1884120-2-dmitry.osipenko@collabora.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1ea39a77cbdbcae0c34559b3506374915a2080d
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Jul 4 12:42:03 2022 +0100

    btrfs: return -EAGAIN for NOWAIT dio reads/writes on compressed and inline extents
    
    commit a4527e1853f8ff6e0b7c2dadad6268bd38427a31 upstream.
    
    When doing a direct IO read or write, we always return -ENOTBLK when we
    find a compressed extent (or an inline extent) so that we fallback to
    buffered IO. This however is not ideal in case we are in a NOWAIT context
    (io_uring for example), because buffered IO can block and we currently
    have no support for NOWAIT semantics for buffered IO, so if we need to
    fallback to buffered IO we should first signal the caller that we may
    need to block by returning -EAGAIN instead.
    
    This behaviour can also result in short reads being returned to user
    space, which although it's not incorrect and user space should be able
    to deal with partial reads, it's somewhat surprising and even some popular
    applications like QEMU (Link tag #1) and MariaDB (Link tag #2) don't
    deal with short reads properly (or at all).
    
    The short read case happens when we try to read from a range that has a
    non-compressed and non-inline extent followed by a compressed extent.
    After having read the first extent, when we find the compressed extent we
    return -ENOTBLK from btrfs_dio_iomap_begin(), which results in iomap to
    treat the request as a short read, returning 0 (success) and waiting for
    previously submitted bios to complete (this happens at
    fs/iomap/direct-io.c:__iomap_dio_rw()). After that, and while at
    btrfs_file_read_iter(), we call filemap_read() to use buffered IO to
    read the remaining data, and pass it the number of bytes we were able to
    read with direct IO. Than at filemap_read() if we get a page fault error
    when accessing the read buffer, we return a partial read instead of an
    -EFAULT error, because the number of bytes previously read is greater
    than zero.
    
    So fix this by returning -EAGAIN for NOWAIT direct IO when we find a
    compressed or an inline extent.
    
    Reported-by: Dominique MARTINET <dominique.martinet@atmark-techno.com>
    Link: https://lore.kernel.org/linux-btrfs/YrrFGO4A1jS0GI0G@atmark-techno.com/
    Link: https://jira.mariadb.org/browse/MDEV-27900?focusedCommentId=216582&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-216582
    Tested-by: Dominique MARTINET <dominique.martinet@atmark-techno.com>
    CC: stable@vger.kernel.org # 5.10+
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7657e3958535d101a24ab4400f9b8062b9107cc4
Author: Tejun Heo <tj@kernel.org>
Date:   Mon Jun 13 12:19:50 2022 -1000

    cgroup: Use separate src/dst nodes when preloading css_sets for migration
    
    commit 07fd5b6cdf3cc30bfde8fe0f644771688be04447 upstream.
    
    Each cset (css_set) is pinned by its tasks. When we're moving tasks around
    across csets for a migration, we need to hold the source and destination
    csets to ensure that they don't go away while we're moving tasks about. This
    is done by linking cset->mg_preload_node on either the
    mgctx->preloaded_src_csets or mgctx->preloaded_dst_csets list. Using the
    same cset->mg_preload_node for both the src and dst lists was deemed okay as
    a cset can't be both the source and destination at the same time.
    
    Unfortunately, this overloading becomes problematic when multiple tasks are
    involved in a migration and some of them are identity noop migrations while
    others are actually moving across cgroups. For example, this can happen with
    the following sequence on cgroup1:
    
     #1> mkdir -p /sys/fs/cgroup/misc/a/b
     #2> echo $$ > /sys/fs/cgroup/misc/a/cgroup.procs
     #3> RUN_A_COMMAND_WHICH_CREATES_MULTIPLE_THREADS &
     #4> PID=$!
     #5> echo $PID > /sys/fs/cgroup/misc/a/b/tasks
     #6> echo $PID > /sys/fs/cgroup/misc/a/cgroup.procs
    
    the process including the group leader back into a. In this final migration,
    non-leader threads would be doing identity migration while the group leader
    is doing an actual one.
    
    After #3, let's say the whole process was in cset A, and that after #4, the
    leader moves to cset B. Then, during #6, the following happens:
    
     1. cgroup_migrate_add_src() is called on B for the leader.
    
     2. cgroup_migrate_add_src() is called on A for the other threads.
    
     3. cgroup_migrate_prepare_dst() is called. It scans the src list.
    
     4. It notices that B wants to migrate to A, so it tries to A to the dst
        list but realizes that its ->mg_preload_node is already busy.
    
     5. and then it notices A wants to migrate to A as it's an identity
        migration, it culls it by list_del_init()'ing its ->mg_preload_node and
        putting references accordingly.
    
     6. The rest of migration takes place with B on the src list but nothing on
        the dst list.
    
    This means that A isn't held while migration is in progress. If all tasks
    leave A before the migration finishes and the incoming task pins it, the
    cset will be destroyed leading to use-after-free.
    
    This is caused by overloading cset->mg_preload_node for both src and dst
    preload lists. We wanted to exclude the cset from the src list but ended up
    inadvertently excluding it from the dst list too.
    
    This patch fixes the issue by separating out cset->mg_preload_node into
    ->mg_src_preload_node and ->mg_dst_preload_node, so that the src and dst
    preloadings don't interfere with each other.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Mukesh Ojha <quic_mojha@quicinc.com>
    Reported-by: shisiyuan <shisiyuan19870131@gmail.com>
    Link: http://lkml.kernel.org/r/1654187688-27411-1-git-send-email-shisiyuan@xiaomi.com
    Link: https://www.spinics.net/lists/cgroups/msg33313.html
    Fixes: f817de98513d ("cgroup: prepare migration path for unified hierarchy")
    Cc: stable@vger.kernel.org # v3.16+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e013ea2a51a94b903b396a8dff531a07d470335d
Author: Felix Fietkau <nbd@nbd.name>
Date:   Sat Jul 2 16:52:27 2022 +0200

    wifi: mac80211: fix queue selection for mesh/OCB interfaces
    
    commit 50e2ab39291947b6c6c7025cf01707c270fcde59 upstream.
    
    When using iTXQ, the code assumes that there is only one vif queue for
    broadcast packets, using the BE queue. Allowing non-BE queue marking
    violates that assumption and txq->ac == skb_queue_mapping is no longer
    guaranteed. This can cause issues with queue handling in the driver and
    also causes issues with the recent ATF change, resulting in an AQL
    underflow warning.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20220702145227.39356-1-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db6e8c30154f390348b5bd6e8028461b90c0876e
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Thu Jun 30 16:46:54 2022 +0100

    ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction
    
    commit e5c46fde75e43c15a29b40e5fc5641727f97ae47 upstream.
    
    After emulating a misaligned load or store issued in Thumb mode, we have
    to advance the IT state by hand, or it will get out of sync with the
    actual instruction stream, which means we'll end up applying the wrong
    condition code to subsequent instructions. This might corrupt the
    program state rather catastrophically.
    
    So borrow the it_advance() helper from the probing code, and use it on
    CPSR if the emulated instruction is Thumb.
    
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f851e4f40253f4f8b57cbee503806f2a7c16f7ce
Author: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Date:   Tue Jun 28 08:55:45 2022 +0100

    ARM: 9213/1: Print message about disabled Spectre workarounds only once
    
    commit e4ced82deb5fb17222fb82e092c3f8311955b585 upstream.
    
    Print the message about disabled Spectre workarounds only once. The
    message is printed each time CPU goes out from idling state on NVIDIA
    Tegra boards, causing storm in KMSG that makes system unusable.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa40bb3a5f0c380630923dbc9df6e5c8cf6591b4
Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date:   Wed Jul 13 13:48:52 2022 +0200

    ip: fix dflt addr selection for connected nexthop
    
    commit 747c14307214b55dbd8250e1ab44cad8305756f1 upstream.
    
    When a nexthop is added, without a gw address, the default scope was set
    to 'host'. Thus, when a source address is selected, 127.0.0.1 may be chosen
    but rejected when the route is used.
    
    When using a route without a nexthop id, the scope can be configured in the
    route, thus the problem doesn't exist.
    
    To explain more deeply: when a user creates a nexthop, it cannot specify
    the scope. To create it, the function nh_create_ipv4() calls fib_check_nh()
    with scope set to 0. fib_check_nh() calls fib_check_nh_nongw() wich was
    setting scope to 'host'. Then, nh_create_ipv4() calls
    fib_info_update_nhc_saddr() with scope set to 'host'. The src addr is
    chosen before the route is inserted.
    
    When a 'standard' route (ie without a reference to a nexthop) is added,
    fib_create_info() calls fib_info_update_nhc_saddr() with the scope set by
    the user. iproute2 set the scope to 'link' by default.
    
    Here is a way to reproduce the problem:
    ip netns add foo
    ip -n foo link set lo up
    ip netns add bar
    ip -n bar link set lo up
    sleep 1
    
    ip -n foo link add name eth0 type dummy
    ip -n foo link set eth0 up
    ip -n foo address add 192.168.0.1/24 dev eth0
    
    ip -n foo link add name veth0 type veth peer name veth1 netns bar
    ip -n foo link set veth0 up
    ip -n bar link set veth1 up
    
    ip -n bar address add 192.168.1.1/32 dev veth1
    ip -n bar route add default dev veth1
    
    ip -n foo nexthop add id 1 dev veth0
    ip -n foo route add 192.168.1.1 nhid 1
    
    Try to get/use the route:
    > $ ip -n foo route get 192.168.1.1
    > RTNETLINK answers: Invalid argument
    > $ ip netns exec foo ping -c1 192.168.1.1
    > ping: connect: Invalid argument
    
    Try without nexthop group (iproute2 sets scope to 'link' by dflt):
    ip -n foo route del 192.168.1.1
    ip -n foo route add 192.168.1.1 dev veth0
    
    Try to get/use the route:
    > $ ip -n foo route get 192.168.1.1
    > 192.168.1.1 dev veth0 src 192.168.0.1 uid 0
    >     cache
    > $ ip netns exec foo ping -c1 192.168.1.1
    > PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    > 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.039 ms
    >
    > --- 192.168.1.1 ping statistics ---
    > 1 packets transmitted, 1 received, 0% packet loss, time 0ms
    > rtt min/avg/max/mdev = 0.039/0.039/0.039/0.000 ms
    
    CC: stable@vger.kernel.org
    Fixes: 597cfe4fc339 ("nexthop: Add support for IPv4 nexthops")
    Reported-by: Edwin Brossette <edwin.brossette@6wind.com>
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Link: https://lore.kernel.org/r/20220713114853.29406-1-nicolas.dichtel@6wind.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d3e0fb05eec645a791c278a9c82e0a15a916aa8
Author: Steven Rostedt (Google) <rostedt@goodmis.org>
Date:   Wed Jul 6 10:50:40 2022 -0400

    net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale pointer
    
    commit 820b8963adaea34a87abbecb906d1f54c0aabfb7 upstream.
    
    The trace event sock_exceed_buf_limit saves the prot->sysctl_mem pointer
    and then dereferences it in the TP_printk() portion. This is unsafe as the
    TP_printk() portion is executed at the time the buffer is read. That is,
    it can be seconds, minutes, days, months, even years later. If the proto
    is freed, then this dereference will can also lead to a kernel crash.
    
    Instead, save the sysctl_mem array into the ring buffer and have the
    TP_printk() reference that instead. This is the proper and safe way to
    read pointers in trace events.
    
    Link: https://lore.kernel.org/all/20220706052130.16368-12-kuniyu@amazon.com/
    
    Cc: stable@vger.kernel.org
    Fixes: 3847ce32aea9f ("core: add tracepoints for queueing skb to rcvbuf")
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Acked-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78a1400c42ee11197eb1f0f85ba51df9a4fdfff0
Author: Zheng Yejian <zhengyejian1@huawei.com>
Date:   Mon Jul 11 09:47:31 2022 +0800

    tracing/histograms: Fix memory leak problem
    
    commit 7edc3945bdce9c39198a10d6129377a5c53559c2 upstream.
    
    This reverts commit 46bbe5c671e06f070428b9be142cc4ee5cedebac.
    
    As commit 46bbe5c671e0 ("tracing: fix double free") said, the
    "double free" problem reported by clang static analyzer is:
      > In parse_var_defs() if there is a problem allocating
      > var_defs.expr, the earlier var_defs.name is freed.
      > This free is duplicated by free_var_defs() which frees
      > the rest of the list.
    
    However, if there is a problem allocating N-th var_defs.expr:
      + in parse_var_defs(), the freed 'earlier var_defs.name' is
        actually the N-th var_defs.name;
      + then in free_var_defs(), the names from 0th to (N-1)-th are freed;
    
                            IF ALLOCATING PROBLEM HAPPENED HERE!!! -+
                                                                     \
                                                                      |
              0th           1th                 (N-1)-th      N-th    V
              +-------------+-------------+-----+-------------+-----------
    var_defs: | name | expr | name | expr | ... | name | expr | name | ///
              +-------------+-------------+-----+-------------+-----------
    
    These two frees don't act on same name, so there was no "double free"
    problem before. Conversely, after that commit, we get a "memory leak"
    problem because the above "N-th var_defs.name" is not freed.
    
    If enable CONFIG_DEBUG_KMEMLEAK and inject a fault at where the N-th
    var_defs.expr allocated, then execute on shell like:
      $ echo 'hist:key=call_site:val=$v1,$v2:v1=bytes_req,v2=bytes_alloc' > \
    /sys/kernel/debug/tracing/events/kmem/kmalloc/trigger
    
    Then kmemleak reports:
      unreferenced object 0xffff8fb100ef3518 (size 8):
        comm "bash", pid 196, jiffies 4295681690 (age 28.538s)
        hex dump (first 8 bytes):
          76 31 00 00 b1 8f ff ff                          v1......
        backtrace:
          [<0000000038fe4895>] kstrdup+0x2d/0x60
          [<00000000c99c049a>] event_hist_trigger_parse+0x206f/0x20e0
          [<00000000ae70d2cc>] trigger_process_regex+0xc0/0x110
          [<0000000066737a4c>] event_trigger_write+0x75/0xd0
          [<000000007341e40c>] vfs_write+0xbb/0x2a0
          [<0000000087fde4c2>] ksys_write+0x59/0xd0
          [<00000000581e9cdf>] do_syscall_64+0x3a/0x80
          [<00000000cf3b065c>] entry_SYSCALL_64_after_hwframe+0x46/0xb0
    
    Link: https://lkml.kernel.org/r/20220711014731.69520-1-zhengyejian1@huawei.com
    
    Cc: stable@vger.kernel.org
    Fixes: 46bbe5c671e0 ("tracing: fix double free")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Suggested-by: Steven Rostedt <rostedt@goodmis.org>
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com>
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 931dbcc2e02f0409c095b11e35490cade9ac14af
Author: Gowans, James <jgowans@amazon.com>
Date:   Thu Jun 23 05:24:03 2022 +0000

    mm: split huge PUD on wp_huge_pud fallback
    
    commit 14c99d65941538aa33edd8dc7b1bbbb593c324a2 upstream.
    
    Currently the implementation will split the PUD when a fallback is taken
    inside the create_huge_pud function.  This isn't where it should be done:
    the splitting should be done in wp_huge_pud, just like it's done for PMDs.
    Reason being that if a callback is taken during create, there is no PUD
    yet so nothing to split, whereas if a fallback is taken when encountering
    a write protection fault there is something to split.
    
    It looks like this was the original intention with the commit where the
    splitting was introduced, but somehow it got moved to the wrong place
    between v1 and v2 of the patch series.  Rebase mistake perhaps.
    
    Link: https://lkml.kernel.org/r/6f48d622eb8bce1ae5dd75327b0b73894a2ec407.camel@amazon.com
    Fixes: 327e9fd48972 ("mm: Split huge pages on write-notify or COW")
    Signed-off-by: James Gowans <jgowans@amazon.com>
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Jan H. Schönherr <jschoenh@amazon.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91530f675e88c6b27306c35ca4e482fb956794d1
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Mon Jul 11 18:16:25 2022 +0200

    fix race between exit_itimers() and /proc/pid/timers
    
    commit d5b36a4dbd06c5e8e36ca8ccc552f679069e2946 upstream.
    
    As Chris explains, the comment above exit_itimers() is not correct,
    we can race with proc_timers_seq_ops. Change exit_itimers() to clear
    signal->posix_timers with ->siglock held.
    
    Cc: <stable@vger.kernel.org>
    Reported-by: chris@accessvector.net
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9c32a6886af79d6e0ad87a7b01800ed079cdd02
Author: Juergen Gross <jgross@suse.com>
Date:   Wed Jul 13 15:53:22 2022 +0200

    xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue
    
    commit 94e8100678889ab428e68acadf042de723f094b9 upstream.
    
    xenvif_rx_next_skb() is expecting the rx queue not being empty, but
    in case the loop in xenvif_rx_action() is doing multiple iterations,
    the availability of another skb in the rx queue is not being checked.
    
    This can lead to crashes:
    
    [40072.537261] BUG: unable to handle kernel NULL pointer dereference at 0000000000000080
    [40072.537407] IP: xenvif_rx_skb+0x23/0x590 [xen_netback]
    [40072.537534] PGD 0 P4D 0
    [40072.537644] Oops: 0000 [#1] SMP NOPTI
    [40072.537749] CPU: 0 PID: 12505 Comm: v1-c40247-q2-gu Not tainted 4.12.14-122.121-default #1 SLE12-SP5
    [40072.537867] Hardware name: HP ProLiant DL580 Gen9/ProLiant DL580 Gen9, BIOS U17 11/23/2021
    [40072.537999] task: ffff880433b38100 task.stack: ffffc90043d40000
    [40072.538112] RIP: e030:xenvif_rx_skb+0x23/0x590 [xen_netback]
    [40072.538217] RSP: e02b:ffffc90043d43de0 EFLAGS: 00010246
    [40072.538319] RAX: 0000000000000000 RBX: ffffc90043cd7cd0 RCX: 00000000000000f7
    [40072.538430] RDX: 0000000000000000 RSI: 0000000000000006 RDI: ffffc90043d43df8
    [40072.538531] RBP: 000000000000003f R08: 000077ff80000000 R09: 0000000000000008
    [40072.538644] R10: 0000000000007ff0 R11: 00000000000008f6 R12: ffffc90043ce2708
    [40072.538745] R13: 0000000000000000 R14: ffffc90043d43ed0 R15: ffff88043ea748c0
    [40072.538861] FS: 0000000000000000(0000) GS:ffff880484600000(0000) knlGS:0000000000000000
    [40072.538988] CS: e033 DS: 0000 ES: 0000 CR0: 0000000080050033
    [40072.539088] CR2: 0000000000000080 CR3: 0000000407ac8000 CR4: 0000000000040660
    [40072.539211] Call Trace:
    [40072.539319] xenvif_rx_action+0x71/0x90 [xen_netback]
    [40072.539429] xenvif_kthread_guest_rx+0x14a/0x29c [xen_netback]
    
    Fix that by stopping the loop in case the rx queue becomes empty.
    
    Cc: stable@vger.kernel.org
    Fixes: 98f6d57ced73 ("xen-netback: process guest rx packets in batches")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Paul Durrant <paul@xen.org>
    Link: https://lore.kernel.org/r/20220713135322.19616-1-jgross@suse.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 782a6b07b12738f651d916ef62e67b4c2536142a
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Wed Jul 13 17:41:33 2022 +0800

    ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop
    
    commit 9b043a8f386485c74c0f8eea2c287d5bdbdf3279 upstream.
    
    The headset on this machine is not defined, after applying the quirk
    ALC256_FIXUP_ASUS_HEADSET_MIC, the headset-mic works well
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220713094133.9894-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cacac3e13a816c917ee35d6ac4c9c0a8536c9df2
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Wed Jul 13 14:33:32 2022 +0800

    ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221
    
    commit 4ba5c853d7945b3855c3dcb293f7f9f019db641e upstream.
    
    On a HP 288 Pro G2 MT (X9W02AV), the front mic could not be detected.
    In order to get it working, the pin configuration needs to be set
    correctly, and the ALC221_FIXUP_HP_288PRO_MIC_NO_PRESENCE fixup needs
    to be applied.
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220713063332.30095-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08ab39027a88279bec8e71ff6b4de13ddc7dd588
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Tue Jul 12 17:22:22 2022 +0800

    ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
    
    commit dbe75d314748e08fc6e4576d153d8a69621ee5ca upstream.
    
    On a HP 288 Pro G6, the front mic could not be detected.In order to
    get it working, the pin configuration needs to be set correctly, and
    the ALC671_FIXUP_HP_HEADSET_MIC2 fixup needs to be applied.
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220712092222.21738-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d0d15d1846784388a5444435f7ab8208ea7cfef
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Mon Jul 11 16:15:27 2022 +0800

    ALSA: hda/realtek: Fix headset mic for Acer SF313-51
    
    commit 5f3fe25e70559fa3b096ab17e13316c93ddb7020 upstream.
    
    The issue on Acer SWIFT SF313-51 is that headset microphone
    doesn't work. The following quirk fixed headset microphone issue.
    Note that the fixup of SF314-54/55 (ALC256_FIXUP_ACER_HEADSET_MIC)
    was not successful on my SF313-51.
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220711081527.6254-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b642a3476a348cc9fbc71fadb8fd2a6f9872bbbe
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Mon Jul 11 18:17:44 2022 +0800

    ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model
    
    commit d16d69bf5a25d91c6d8f3e29711be12551bf56cd upstream.
    
    There is another HP ProDesk 600 G3 model with the PCI SSID 103c:82b4
    that requires the quirk HP_MIC_NO_PRESENCE. Add the corresponding
    entry to the quirk table.
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220711101744.25189-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4486bbe92840d315c427393725ddfb670b7c0051
Author: Meng Tang <tangmeng@uniontech.com>
Date:   Tue Jul 12 14:00:05 2022 +0800

    ALSA: hda - Add fixup for Dell Latitidue E5430
    
    commit 841bdf85c226803a78a9319af9b2caa9bf3e2eda upstream.
    
    Another Dell model, another fixup entry: Latitude E5430 needs the same
    fixup as other Latitude E series as workaround for noise problems.
    
    Signed-off-by: Meng Tang <tangmeng@uniontech.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220712060005.20176-1-tangmeng@uniontech.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>