commit 9ef3ad40a81ff6b8b65ed870588b230f38812f2a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jun 29 08:58:50 2022 +0200

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

commit ceda71d49f6b397b2046c7e387ec16cf5adf4d0c
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Sat Jun 11 17:10:15 2022 +0200

    powerpc/pseries: wire up rng during setup_arch()
    
    commit e561e472a3d441753bd012333b057f48fef1045b upstream.
    
    The platform's RNG must be available before random_init() in order to be
    useful for initial seeding, which in turn means that it needs to be
    called from setup_arch(), rather than from an init call. Fortunately,
    each platform already has a setup_arch function pointer, which means
    it's easy to wire this up. This commit also removes some noisy log
    messages that don't add much.
    
    Fixes: a489043f4626 ("powerpc/pseries: Implement arch_get_random_long() based on H_RANDOM")
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220611151015.548325-4-Jason@zx2c4.com
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ece98389028789f76a08eab82aac38749818aa21
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Fri Jun 24 04:11:47 2022 +0900

    kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt)
    
    commit 53632ba87d9f302a8d97a11ec2f4f4eec7bb75ea upstream.
    
    If CONFIG_TRIM_UNUSED_KSYMS is enabled and the kernel is built from
    a pristine state, the vmlinux is linked twice.
    
    Commit 3fdc7d3fe4c0 ("kbuild: link vmlinux only once for
    CONFIG_TRIM_UNUSED_KSYMS") explains why this happens, but it did not fix
    the issue at all.
    
    Now I realized I had applied a wrong patch.
    
    In v1 patch [1], the autoksyms_recursive target correctly recurses to
    "$(MAKE) -f $(srctree)/Makefile autoksyms_recursive".
    
    In v2 patch [2], I accidentally dropped the diff line, and it recurses to
    "$(MAKE) -f $(srctree)/Makefile vmlinux".
    
    Restore the code I intended in v1.
    
    [1]: https://lore.kernel.org/linux-kbuild/1521045861-22418-8-git-send-email-yamada.masahiro@socionext.com/
    [2]: https://lore.kernel.org/linux-kbuild/1521166725-24157-8-git-send-email-yamada.masahiro@socionext.com/
    
    Fixes: 3fdc7d3fe4c0 ("kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Tested-by: Sami Tolvanen <samitolvanen@google.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a81e813141ea5d26ff1edb4241033e14bb507fb
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Mon Jun 20 11:03:48 2022 +0200

    random: update comment from copy_to_user() -> copy_to_iter()
    
    commit 63b8ea5e4f1a87dea4d3114293fc8e96a8f193d7 upstream.
    
    This comment wasn't updated when we moved from read() to read_iter(), so
    this patch makes the trivial fix.
    
    Fixes: 1b388e7765f2 ("random: convert to using fops->read_iter()")
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80f0038d757eb5d129a712188258db01b747fab0
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Sat Jun 11 03:32:30 2022 +0900

    modpost: fix section mismatch check for exported init/exit sections
    
    commit 28438794aba47a27e922857d27b31b74e8559143 upstream.
    
    Since commit f02e8a6596b7 ("module: Sort exported symbols"),
    EXPORT_SYMBOL* is placed in the individual section ___ksymtab(_gpl)+<sym>
    (3 leading underscores instead of 2).
    
    Since then, modpost cannot detect the bad combination of EXPORT_SYMBOL
    and __init/__exit.
    
    Fix the .fromsec field.
    
    Fixes: f02e8a6596b7 ("module: Sort exported symbols")
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1359e4129ad43e43972a28838b87291c51de23d
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Sun Jun 5 11:58:41 2022 +0400

    ARM: cns3xxx: Fix refcount leak in cns3xxx_init
    
    commit 1ba904b6b16e08de5aed7c1349838d9cd0d178c5 upstream.
    
    of_find_compatible_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when done.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 415f59142d9d ("ARM: cns3xxx: initial DT support")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Acked-by: Krzysztof Halasa <khalasa@piap.pl>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29ca9c4efacccdc15104a8d4bf10b5183fc92840
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Wed Jun 1 13:05:48 2022 +0400

    ARM: Fix refcount leak in axxia_boot_secondary
    
    commit 7c7ff68daa93d8c4cdea482da4f2429c0398fcde upstream.
    
    of_find_compatible_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when done.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 1d22924e1c4e ("ARM: Add platform support for LSI AXM55xx SoC")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220601090548.47616-1-linmq006@gmail.com'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 734a4d15142bb4c8ecad2d8ec70d7564e78ae34d
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Thu May 26 11:53:22 2022 +0400

    soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe
    
    commit 37d838de369b07b596c19ff3662bf0293fdb09ee upstream.
    
    of_find_matching_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    In brcmstb_init_sram, it pass dn to of_address_to_resource(),
    of_address_to_resource() will call of_find_device_by_node() to take
    reference, so we should release the reference returned by
    of_find_matching_node().
    
    Fixes: 0b741b8234c8 ("soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM)")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9b77a52937582a5b99a5a07e4ef1e2f48f87347
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon May 23 18:55:13 2022 +0400

    ARM: exynos: Fix refcount leak in exynos_map_pmu
    
    commit c4c79525042a4a7df96b73477feaf232fe44ae81 upstream.
    
    of_find_matching_node() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    of_node_put() checks null pointer.
    
    Fixes: fce9e5bb2526 ("ARM: EXYNOS: Add support for mapping PMU base address via DT")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220523145513.12341-1-linmq006@gmail.com
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 615907ccc4216f28e133b2275113655f8943fe74
Author: Lucas Stach <l.stach@pengutronix.de>
Date:   Wed May 11 18:08:23 2022 +0200

    ARM: dts: imx6qdl: correct PU regulator ramp delay
    
    commit 93a8ba2a619816d631bd69e9ce2172b4d7a481b8 upstream.
    
    Contrary to what was believed at the time, the ramp delay of 150us is not
    plenty for the PU LDO with the default step time of 512 pulses of the 24MHz
    clock. Measurements have shown that after enabling the LDO the voltage on
    VDDPU_CAP jumps to ~750mV in the first step and after that the regulator
    executes the normal ramp up as defined by the step size control.
    
    This means it takes the regulator between 360us and 370us to ramp up to
    the nominal 1.15V voltage for this power domain. With the old setting of
    the ramp delay the power up of the PU GPC domain would happen in the middle
    of the regulator ramp with the voltage being at around 900mV. Apparently
    this was enough for most units to properly power up the peripherals in the
    domain and execute the reset. Some units however, fail to power up properly,
    especially when the chip is at a low temperature. In that case any access
    to the GPU registers would yield an incorrect result with no way to recover
    from this situation.
    
    Change the ramp delay to 380us to cover the measured ramp up time with a
    bit of additional slack.
    
    Fixes: 40130d327f72 ("ARM: dts: imx6qdl: Allow disabling the PU regulator, add a enable ramp delay")
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93e6137d2a5b0d1385e98bf507100d8ac050e533
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Tue Jun 21 16:08:49 2022 +0200

    powerpc/powernv: wire up rng during setup_arch
    
    commit f3eac426657d985b97c92fa5f7ae1d43f04721f3 upstream.
    
    The platform's RNG must be available before random_init() in order to be
    useful for initial seeding, which in turn means that it needs to be
    called from setup_arch(), rather than from an init call.
    
    Complicating things, however, is that POWER8 systems need some per-cpu
    state and kmalloc, which isn't available at this stage. So we split
    things up into an early phase and a later opportunistic phase. This
    commit also removes some noisy log messages that don't add much.
    
    Fixes: a4da0d50b2a0 ("powerpc: Implement arch_get_random_long/int() for powernv")
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    [mpe: Add of_node_put(), use pnv naming, minor change log editing]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220621140849.127227-1-Jason@zx2c4.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97808c781721617c10b9a30e9022f639b21934cd
Author: Andrew Donnellan <ajd@linux.ibm.com>
Date:   Tue Jun 14 23:49:52 2022 +1000

    powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address
    
    commit 7bc08056a6dabc3a1442216daf527edf61ac24b6 upstream.
    
    Add a special case to block_rtas_call() to allow the ibm,platform-dump RTAS
    call through the RTAS filter if the buffer address is 0.
    
    According to PAPR, ibm,platform-dump is called with a null buffer address
    to notify the platform firmware that processing of a particular dump is
    finished.
    
    Without this, on a pseries machine with CONFIG_PPC_RTAS_FILTER enabled, an
    application such as rtas_errd that is attempting to retrieve a dump will
    encounter an error at the end of the retrieval process.
    
    Fixes: bd59380c5ba4 ("powerpc/rtas: Restrict RTAS requests from userspace")
    Cc: stable@vger.kernel.org
    Reported-by: Sathvika Vasireddy <sathvika@linux.ibm.com>
    Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
    Reviewed-by: Tyrel Datwyler <tyreld@linux.ibm.com>
    Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220614134952.156010-1-ajd@linux.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6232979320a4c5b493a2f9b93144e5c240d7315
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu Jun 9 16:03:28 2022 +0530

    powerpc: Enable execve syscall exit tracepoint
    
    commit ec6d0dde71d760aa60316f8d1c9a1b0d99213529 upstream.
    
    On execve[at], we are zero'ing out most of the thread register state
    including gpr[0], which contains the syscall number. Due to this, we
    fail to trigger the syscall exit tracepoint properly. Fix this by
    retaining gpr[0] in the thread register state.
    
    Before this patch:
      # tail /sys/kernel/debug/tracing/trace
                   cat-123     [000] .....    61.449351: sys_execve(filename:
      7fffa6b23448, argv: 7fffa6b233e0, envp: 7fffa6b233f8)
                   cat-124     [000] .....    62.428481: sys_execve(filename:
      7fffa6b23448, argv: 7fffa6b233e0, envp: 7fffa6b233f8)
                  echo-125     [000] .....    65.813702: sys_execve(filename:
      7fffa6b23378, argv: 7fffa6b233a0, envp: 7fffa6b233b0)
                  echo-125     [000] .....    65.822214: sys_execveat(fd: 0,
      filename: 1009ac48, argv: 7ffff65d0c98, envp: 7ffff65d0ca8, flags: 0)
    
    After this patch:
      # tail /sys/kernel/debug/tracing/trace
                   cat-127     [000] .....   100.416262: sys_execve(filename:
      7fffa41b3448, argv: 7fffa41b33e0, envp: 7fffa41b33f8)
                   cat-127     [000] .....   100.418203: sys_execve -> 0x0
                  echo-128     [000] .....   103.873968: sys_execve(filename:
      7fffa41b3378, argv: 7fffa41b33a0, envp: 7fffa41b33b0)
                  echo-128     [000] .....   103.875102: sys_execve -> 0x0
                  echo-128     [000] .....   103.882097: sys_execveat(fd: 0,
      filename: 1009ac48, argv: 7fffd10d2148, envp: 7fffd10d2158, flags: 0)
                  echo-128     [000] .....   103.883225: sys_execveat -> 0x0
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Tested-by: Sumit Dubey2 <Sumit.Dubey2@ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220609103328.41306-1-naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0701f150b28753a0d56dbd23e1d7e5c851c66be
Author: Helge Deller <deller@gmx.de>
Date:   Sun Jun 26 11:50:43 2022 +0200

    parisc: Enable ARCH_HAS_STRICT_MODULE_RWX
    
    commit 0a1355db36718178becd2bfe728a023933d73123 upstream.
    
    Fix a boot crash on a c8000 machine as reported by Dave.  Basically it changes
    patch_map() to return an alias mapping to the to-be-patched code in order to
    prevent writing to write-protected memory.
    
    Signed-off-by: Helge Deller <deller@gmx.de>
    Suggested-by: John David Anglin <dave.anglin@bell.net>
    Cc: stable@vger.kernel.org   # v5.2+
    Link: https://lore.kernel.org/all/e8ec39e8-25f8-e6b4-b7ed-4cb23efc756e@bell.net/
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5234a9d64a976abd134a14710dcd5188158a7c5
Author: Liang He <windhl@126.com>
Date:   Fri Jun 17 20:44:32 2022 +0800

    xtensa: Fix refcount leak bug in time.c
    
    commit a0117dc956429f2ede17b323046e1968d1849150 upstream.
    
    In calibrate_ccount(), of_find_compatible_node() will return a node
    pointer with refcount incremented. We should use of_node_put() when
    it is not used anymore.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Liang He <windhl@126.com>
    Message-Id: <20220617124432.4049006-1-windhl@126.com>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a52972ee706b438302eb0350e61f378eb191e3d1
Author: Liang He <windhl@126.com>
Date:   Fri Jun 17 19:53:23 2022 +0800

    xtensa: xtfpga: Fix refcount leak bug in setup
    
    commit 173940b3ae40114d4179c251a98ee039dc9cd5b3 upstream.
    
    In machine_setup(), of_find_compatible_node() will return a node
    pointer with refcount incremented. We should use of_node_put() when
    it is not used anymore.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Liang He <windhl@126.com>
    Message-Id: <20220617115323.4046905-1-windhl@126.com>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0fc7cdf5f19e33396323a7b300d317460e86c89
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Fri May 6 11:50:40 2022 +0200

    iio: adc: axp288: Override TS pin bias current for some models
    
    commit 048058399f19d43cf21de9f5d36cd8144337d004 upstream.
    
    Since commit 9bcf15f75cac ("iio: adc: axp288: Fix TS-pin handling") we
    preserve the bias current set by the firmware at boot. This fixes issues
    we were seeing on various models.
    
    Some models like the Nuvision Solo 10 Draw tablet actually need the
    old hardcoded 80ųA bias current for battery temperature monitoring
    to work properly.
    
    Add a quirk entry for the Nuvision Solo 10 Draw to the DMI quirk table
    to restore setting the bias current to 80ųA on this model.
    
    Fixes: 9bcf15f75cac ("iio: adc: axp288: Fix TS-pin handling")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215882
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220506095040.21008-1-hdegoede@redhat.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11c7ea38be91025ca741b365e18e40523f04ce6f
Author: Olivier Moysan <olivier.moysan@foss.st.com>
Date:   Thu Jun 9 11:52:34 2022 +0200

    iio: adc: stm32: fix maximum clock rate for stm32mp15x
    
    commit 990539486e7e311fb5dab1bf4d85d1a8973ae644 upstream.
    
    Change maximum STM32 ADC input clock rate to 36MHz, as specified
    in STM32MP15x datasheets.
    
    Fixes: d58c67d1d851 ("iio: adc: stm32-adc: add support for STM32MP1")
    Signed-off-by: Olivier Moysan <olivier.moysan@foss.st.com>
    Reviewed-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
    Link: https://lore.kernel.org/r/20220609095234.375925-1-olivier.moysan@foss.st.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e39397d60dacc7f5d81d442c1c958eaaaf31128
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date:   Thu May 19 11:19:25 2022 +0200

    iio: trigger: sysfs: fix use-after-free on remove
    
    commit 78601726d4a59a291acc5a52da1d3a0a6831e4e8 upstream.
    
    Ensure that the irq_work has completed before the trigger is freed.
    
     ==================================================================
     BUG: KASAN: use-after-free in irq_work_run_list
     Read of size 8 at addr 0000000064702248 by task python3/25
    
     Call Trace:
      irq_work_run_list
      irq_work_tick
      update_process_times
      tick_sched_handle
      tick_sched_timer
      __hrtimer_run_queues
      hrtimer_interrupt
    
     Allocated by task 25:
      kmem_cache_alloc_trace
      iio_sysfs_trig_add
      dev_attr_store
      sysfs_kf_write
      kernfs_fop_write_iter
      new_sync_write
      vfs_write
      ksys_write
      sys_write
    
     Freed by task 25:
      kfree
      iio_sysfs_trig_remove
      dev_attr_store
      sysfs_kf_write
      kernfs_fop_write_iter
      new_sync_write
      vfs_write
      ksys_write
      sys_write
    
     ==================================================================
    
    Fixes: f38bc926d022 ("staging:iio:sysfs-trigger: Use irq_work to properly active trigger")
    Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
    Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
    Link: https://lore.kernel.org/r/20220519091925.1053897-1-vincent.whitchurch@axis.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d2e68d02171898ae47813c1581c26293dea4954
Author: Zheyu Ma <zheyuma97@gmail.com>
Date:   Tue May 10 17:24:31 2022 +0800

    iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up()
    
    commit b2f5ad97645e1deb5ca9bcb7090084b92cae35d2 upstream.
    
    The driver should disable regulators when fails at regmap_update_bits().
    
    Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: <Stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220510092431.1711284-1-zheyuma97@gmail.com
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ad6d668543d4a9d68e6284d658e878c26afbab5
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Wed Jun 15 19:31:58 2022 +0800

    iio: accel: mma8452: ignore the return value of reset operation
    
    commit bf745142cc0a3e1723f9207fb0c073c88464b7b4 upstream.
    
    On fxls8471, after set the reset bit, the device will reset immediately,
    will not give ACK. So ignore the return value of this reset operation,
    let the following code logic to check whether the reset operation works.
    
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Fixes: ecabae713196 ("iio: mma8452: Initialise before activating")
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/1655292718-14287-1-git-send-email-haibo.chen@nxp.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a391bced840437f9161ed09a4851f80a4212aa42
Author: Dmitry Rokosov <DDRokosov@sberdevices.ru>
Date:   Tue May 24 18:14:43 2022 +0000

    iio:accel:mxc4005: rearrange iio trigger get and register
    
    commit 9354c224c9b4f55847a0de3e968cba2ebf15af3b upstream.
    
    IIO trigger interface function iio_trigger_get() should be called after
    iio_trigger_register() (or its devm analogue) strictly, because of
    iio_trigger_get() acquires module refcnt based on the trigger->owner
    pointer, which is initialized inside iio_trigger_register() to
    THIS_MODULE.
    If this call order is wrong, the next iio_trigger_put() (from sysfs
    callback or "delete module" path) will dereference "default" module
    refcnt, which is incorrect behaviour.
    
    Fixes: 47196620c82f ("iio: mxc4005: add data ready trigger for mxc4005")
    Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220524181150.9240-4-ddrokosov@sberdevices.ru
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23c158caa0327425e3aa5fb16b6b0b34ce917c8d
Author: Dmitry Rokosov <DDRokosov@sberdevices.ru>
Date:   Tue May 24 18:14:39 2022 +0000

    iio:accel:bma180: rearrange iio trigger get and register
    
    commit e5f3205b04d7f95a2ef43bce4b454a7f264d6923 upstream.
    
    IIO trigger interface function iio_trigger_get() should be called after
    iio_trigger_register() (or its devm analogue) strictly, because of
    iio_trigger_get() acquires module refcnt based on the trigger->owner
    pointer, which is initialized inside iio_trigger_register() to
    THIS_MODULE.
    If this call order is wrong, the next iio_trigger_put() (from sysfs
    callback or "delete module" path) will dereference "default" module
    refcnt, which is incorrect behaviour.
    
    Fixes: 0668a4e4d297 ("iio: accel: bma180: Fix indio_dev->trig assignment")
    Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220524181150.9240-2-ddrokosov@sberdevices.ru
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ea16a64aafc3045d52952030ac900054bc94c72
Author: Dmitry Rokosov <DDRokosov@sberdevices.ru>
Date:   Tue May 24 18:14:45 2022 +0000

    iio:chemical:ccs811: rearrange iio trigger get and register
    
    commit d710359c0b445e8c03e24f19ae2fb79ce7282260 upstream.
    
    IIO trigger interface function iio_trigger_get() should be called after
    iio_trigger_register() (or its devm analogue) strictly, because of
    iio_trigger_get() acquires module refcnt based on the trigger->owner
    pointer, which is initialized inside iio_trigger_register() to
    THIS_MODULE.
    If this call order is wrong, the next iio_trigger_put() (from sysfs
    callback or "delete module" path) will dereference "default" module
    refcnt, which is incorrect behaviour.
    
    Fixes: f1f065d7ac30 ("iio: chemical: ccs811: Add support for data ready trigger")
    Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Link: https://lore.kernel.org/r/20220524181150.9240-5-ddrokosov@sberdevices.ru
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2333db14d875919b523c6741c2adc019cc78e845
Author: Xu Yang <xu.yang_2@nxp.com>
Date:   Thu Jun 23 11:02:42 2022 +0800

    usb: chipidea: udc: check request status before setting device address
    
    commit b24346a240b36cfc4df194d145463874985aa29b upstream.
    
    The complete() function may be called even though request is not
    completed. In this case, it's necessary to check request status so
    as not to set device address wrongly.
    
    Fixes: 10775eb17bee ("usb: chipidea: udc: update gadget states according to ch9")
    cc: <stable@vger.kernel.org>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20220623030242.41796-1-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47e41b4dabbf4d0a64dd24117f8f0189ce8f3af7
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Thu Jun 23 14:19:43 2022 +0300

    xhci: turn off port power in shutdown
    
    commit 83810f84ecf11dfc5a9414a8b762c3501b328185 upstream.
    
    If ports are not turned off in shutdown then runtime suspended
    self-powered USB devices may survive in U3 link state over S5.
    
    During subsequent boot, if firmware sends an IPC command to program
    the port in DISCONNECT state, it will time out, causing significant
    delay in the boot time.
    
    Turning off roothub port power is also recommended in xhci
    specification 4.19.4 "Port Power" in the additional note.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20220623111945.1557702-3-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d62d1c606db036a5e8d5cef7df086f1c0b28f45d
Author: Baruch Siach <baruch@tkos.co.il>
Date:   Mon May 30 11:50:26 2022 +0300

    iio: adc: vf610: fix conversion mode sysfs node name
    
    [ Upstream commit f1a633b15cd5371a2a83f02c513984e51132dd68 ]
    
    The documentation missed the "in_" prefix for this IIO_SHARED_BY_DIR
    entry.
    
    Fixes: bf04c1a367e3 ("iio: adc: vf610: implement configurable conversion modes")
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    Acked-by: Haibo Chen <haibo.chen@nxp.com>
    Link: https://lore.kernel.org/r/560dc93fafe5ef7e9a409885fd20b6beac3973d8.1653900626.git.baruch@tkos.co.il
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 741b6c8363c2c5cad2ad53928a1d650d767ebbcc
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Fri Jun 10 15:19:00 2022 +0200

    s390/cpumf: Handle events cycles and instructions identical
    
    [ Upstream commit be857b7f77d130dbbd47c91fc35198b040f35865 ]
    
    Events CPU_CYCLES and INSTRUCTIONS can be submitted with two different
    perf_event attribute::type values:
     - PERF_TYPE_HARDWARE: when invoked via perf tool predefined events name
       cycles or cpu-cycles or instructions.
     - pmu->type: when invoked via perf tool event name cpu_cf/CPU_CYLCES/ or
       cpu_cf/INSTRUCTIONS/. This invocation also selects the PMU to which
       the event belongs.
    Handle both type of invocations identical for events CPU_CYLCES and
    INSTRUCTIONS. They address the same hardware.
    The result is different when event modifier exclude_kernel is also set.
    Invocation with event modifier for user space event counting fails.
    
    Output before:
    
     # perf stat -e cpum_cf/cpu_cycles/u -- true
    
     Performance counter stats for 'true':
    
       <not supported>      cpum_cf/cpu_cycles/u
    
           0.000761033 seconds time elapsed
    
           0.000076000 seconds user
           0.000725000 seconds sys
    
     #
    
    Output after:
     # perf stat -e cpum_cf/cpu_cycles/u -- true
    
     Performance counter stats for 'true':
    
               349,613      cpum_cf/cpu_cycles/u
    
           0.000844143 seconds time elapsed
    
           0.000079000 seconds user
           0.000800000 seconds sys
     #
    
    Fixes: 6a82e23f45fe ("s390/cpumf: Adjust registration of s390 PMU device drivers")
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
    [agordeev@linux.ibm.com corrected commit ID of Fixes commit]
    Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4837d1c81223fc89dd005e4136da670fa43744c3
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Jun 23 11:29:48 2022 +0300

    gpio: winbond: Fix error code in winbond_gpio_get()
    
    [ Upstream commit 9ca766eaea2e87b8b773bff04ee56c055cb76d4e ]
    
    This error path returns 1, but it should instead propagate the negative
    error code from winbond_sio_enter().
    
    Fixes: a0d65009411c ("gpio: winbond: Add driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb18ad00c0b77acff2d6d5d5dda10e233e9a48d2
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Mon Jun 20 12:13:52 2022 -0700

    Revert "net/tls: fix tls_sk_proto_close executed repeatedly"
    
    [ Upstream commit 1b205d948fbb06a7613d87dcea0ff5fd8a08ed91 ]
    
    This reverts commit 69135c572d1f84261a6de2a1268513a7e71753e2.
    
    This commit was just papering over the issue, ULP should not
    get ->update() called with its own sk_prot. Each ULP would
    need to add this check.
    
    Fixes: 69135c572d1f ("net/tls: fix tls_sk_proto_close executed repeatedly")
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: John Fastabend <john.fastabend@gmail.com>
    Link: https://lore.kernel.org/r/20220620191353.1184629-1-kuba@kernel.org
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c7a32b7c15555beddc5810c3334d9cefff061bf
Author: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Date:   Tue Jun 21 13:48:44 2022 +0200

    virtio_net: fix xdp_rxq_info bug after suspend/resume
    
    [ Upstream commit 8af52fe9fd3bf5e7478da99193c0632276e1dfce ]
    
    The following sequence currently causes a driver bug warning
    when using virtio_net:
    
      # ip link set eth0 up
      # echo mem > /sys/power/state (or e.g. # rtcwake -s 10 -m mem)
      <resume>
      # ip link set eth0 down
    
      Missing register, driver bug
      WARNING: CPU: 0 PID: 375 at net/core/xdp.c:138 xdp_rxq_info_unreg+0x58/0x60
      Call trace:
       xdp_rxq_info_unreg+0x58/0x60
       virtnet_close+0x58/0xac
       __dev_close_many+0xac/0x140
       __dev_change_flags+0xd8/0x210
       dev_change_flags+0x24/0x64
       do_setlink+0x230/0xdd0
       ...
    
    This happens because virtnet_freeze() frees the receive_queue
    completely (including struct xdp_rxq_info) but does not call
    xdp_rxq_info_unreg(). Similarly, virtnet_restore() sets up the
    receive_queue again but does not call xdp_rxq_info_reg().
    
    Actually, parts of virtnet_freeze_down() and virtnet_restore_up()
    are almost identical to virtnet_close() and virtnet_open(): only
    the calls to xdp_rxq_info_(un)reg() are missing. This means that
    we can fix this easily and avoid such problems in the future by
    just calling virtnet_close()/open() from the freeze/restore handlers.
    
    Aside from adding the missing xdp_rxq_info calls the only difference
    is that the refill work is only cancelled if netif_running(). However,
    this should not make any functional difference since the refill work
    should only be active if the network interface is actually up.
    
    Fixes: 754b8a21a96d ("virtio_net: setup xdp_rxq_info")
    Signed-off-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Link: https://lore.kernel.org/r/20220621114845.3650258-1-stephan.gerhold@kernkonzept.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28a78414f21edac0d7386ebf10b6eeccb46218b1
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Tue Jun 21 15:10:56 2022 -0700

    igb: Make DMA faster when CPU is active on the PCIe link
    
    [ Upstream commit 4e0effd9007ea0be31f7488611eb3824b4541554 ]
    
    Intel I210 on some Intel Alder Lake platforms can only achieve ~750Mbps
    Tx speed via iperf. The RR2DCDELAY shows around 0x2xxx DMA delay, which
    will be significantly lower when 1) ASPM is disabled or 2) SoC package
    c-state stays above PC3. When the RR2DCDELAY is around 0x1xxx the Tx
    speed can reach to ~950Mbps.
    
    According to the I210 datasheet "8.26.1 PCIe Misc. Register - PCIEMISC",
    "DMA Idle Indication" doesn't seem to tie to DMA coalesce anymore, so
    set it to 1b for "DMA is considered idle when there is no Rx or Tx AND
    when there are no TLPs indicating that CPU is active detected on the
    PCIe link (such as the host executes CSR or Configuration register read
    or write operation)" and performing Tx should also fall under "active
    CPU on PCIe link" case.
    
    In addition to that, commit b6e0c419f040 ("igb: Move DMA Coalescing init
    code to separate function.") seems to wrongly changed from enabling
    E1000_PCIEMISC_LX_DECISION to disabling it, also fix that.
    
    Fixes: b6e0c419f040 ("igb: Move DMA Coalescing init code to separate function.")
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20220621221056.604304-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a5ed066bc2461659acbbbaf788a5c327d666e81d
Author: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
Date:   Mon Jun 20 21:05:56 2022 +0100

    regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips
    
    [ Upstream commit 485037ae9a095491beb7f893c909a76cc4f9d1e7 ]
    
    When enabling a type_in_mask irq, the type_buf contents must be
    AND'd with the mask of the IRQ we're enabling to avoid enabling
    other IRQs by accident, which can happen if several type_in_mask
    irqs share a mask register.
    
    Fixes: bc998a730367 ("regmap: irq: handle HW using separate rising/falling edge interrupts")
    Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
    Link: https://lore.kernel.org/r/20220620200644.1961936-2-aidanmacdonald.0x0@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 844168a5dabf7453c9f2cb08f18564d4cdb8009f
Author: Anatolii Gerasymenko <anatolii.gerasymenko@intel.com>
Date:   Mon Jun 20 09:47:05 2022 +0200

    ice: ethtool: advertise 1000M speeds properly
    
    [ Upstream commit c3d184c83ff4b80167e34edfc3d21df424bf27ff ]
    
    In current implementation ice_update_phy_type enables all link modes
    for selected speed. This approach doesn't work for 1000M speeds,
    because both copper (1000baseT) and optical (1000baseX) standards
    cannot be enabled at once.
    
    Fix this, by adding the function `ice_set_phy_type_from_speed()`
    for 1000M speeds.
    
    Fixes: 48cb27f2fd18 ("ice: Implement handlers for ethtool PHY/link operations")
    Signed-off-by: Anatolii Gerasymenko <anatolii.gerasymenko@intel.com>
    Tested-by: Gurucharan <gurucharanx.g@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3a232e5767051483ffad4cef7d0a89d292a192b
Author: David Howells <dhowells@redhat.com>
Date:   Tue Jun 21 15:59:57 2022 +0100

    afs: Fix dynamic root getattr
    
    [ Upstream commit cb78d1b5efffe4cf97e16766329dd7358aed3deb ]
    
    The recent patch to make afs_getattr consult the server didn't account
    for the pseudo-inodes employed by the dynamic root-type afs superblock
    not having a volume or a server to access, and thus an oops occurs if
    such a directory is stat'd.
    
    Fix this by checking to see if the vnode->volume pointer actually points
    anywhere before following it in afs_getattr().
    
    This can be tested by stat'ing a directory in /afs.  It may be
    sufficient just to do "ls /afs" and the oops looks something like:
    
            BUG: kernel NULL pointer dereference, address: 0000000000000020
            ...
            RIP: 0010:afs_getattr+0x8b/0x14b
            ...
            Call Trace:
             <TASK>
             vfs_statx+0x79/0xf5
             vfs_fstatat+0x49/0x62
    
    Fixes: 2aeb8c86d499 ("afs: Fix afs_getattr() to refetch file status if callback break occurred")
    Reported-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
    Tested-by: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/165408450783.1031787.7941404776393751186.stgit@warthog.procyon.org.uk/
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cacab1e620e01dfbc61226d2056bcd9a2fc255ff
Author: huhai <huhai@kylinos.cn>
Date:   Fri Jun 10 19:14:20 2022 +0800

    MIPS: Remove repetitive increase irq_err_count
    
    [ Upstream commit c81aba8fde2aee4f5778ebab3a1d51bd2ef48e4c ]
    
    commit 979934da9e7a ("[PATCH] mips: update IRQ handling for vr41xx") added
    a function irq_dispatch, and it'll increase irq_err_count when the get_irq
    callback returns a negative value, but increase irq_err_count in get_irq
    was not removed.
    
    And also, modpost complains once gpio-vr41xx drivers become modules.
      ERROR: modpost: "irq_err_count" [drivers/gpio/gpio-vr41xx.ko] undefined!
    
    So it would be a good idea to remove repetitive increase irq_err_count in
    get_irq callback.
    
    Fixes: 27fdd325dace ("MIPS: Update VR41xx GPIO driver to use gpiolib")
    Fixes: 979934da9e7a ("[PATCH] mips: update IRQ handling for vr41xx")
    Reported-by: k2ci <kernel-bot@kylinos.cn>
    Signed-off-by: huhai <huhai@kylinos.cn>
    Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 788c954f194c6b32ade948c7bf4748dc7470771a
Author: Julien Grall <jgrall@amazon.com>
Date:   Fri Jun 17 11:30:37 2022 +0100

    x86/xen: Remove undefined behavior in setup_features()
    
    [ Upstream commit ecb6237fa397b7b810d798ad19322eca466dbab1 ]
    
    1 << 31 is undefined. So switch to 1U << 31.
    
    Fixes: 5ead97c84fa7 ("xen: Core Xen implementation")
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20220617103037.57828-1-julien@xen.org
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c7bdaad9cbfe17c83e4f56c7bb7a2d87d944f0fb
Author: Gerd Hoffmann <kraxel@redhat.com>
Date:   Mon Jun 20 09:15:47 2022 +0200

    udmabuf: add back sanity check
    
    [ Upstream commit 05b252cccb2e5c3f56119d25de684b4f810ba40a ]
    
    Check vm_fault->pgoff before using it.  When we removed the warning, we
    also removed the check.
    
    Fixes: 7b26e4e2119d ("udmabuf: drop WARN_ON() check.")
    Reported-by: zdi-disclosures@trendmicro.com
    Suggested-by: Linus Torvalds <torvalds@linuxfoundation.org>
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05c6c36c79311d9a00a79f88647f83a7cf009624
Author: Ziyang Xuan <william.xuanziyang@huawei.com>
Date:   Mon Jun 20 12:35:08 2022 +0800

    net/tls: fix tls_sk_proto_close executed repeatedly
    
    [ Upstream commit 69135c572d1f84261a6de2a1268513a7e71753e2 ]
    
    After setting the sock ktls, update ctx->sk_proto to sock->sk_prot by
    tls_update(), so now ctx->sk_proto->close is tls_sk_proto_close(). When
    close the sock, tls_sk_proto_close() is called for sock->sk_prot->close
    is tls_sk_proto_close(). But ctx->sk_proto->close() will be executed later
    in tls_sk_proto_close(). Thus tls_sk_proto_close() executed repeatedly
    occurred. That will trigger the following bug.
    
    =================================================================
    KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
    RIP: 0010:tls_sk_proto_close+0xd8/0xaf0 net/tls/tls_main.c:306
    Call Trace:
     <TASK>
     tls_sk_proto_close+0x356/0xaf0 net/tls/tls_main.c:329
     inet_release+0x12e/0x280 net/ipv4/af_inet.c:428
     __sock_release+0xcd/0x280 net/socket.c:650
     sock_close+0x18/0x20 net/socket.c:1365
    
    Updating a proto which is same with sock->sk_prot is incorrect. Add proto
    and sock->sk_prot equality check at the head of tls_update() to fix it.
    
    Fixes: 95fa145479fb ("bpf: sockmap/tls, close can race with map free")
    Reported-by: syzbot+29c3c12f3214b85ad081@syzkaller.appspotmail.com
    Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02da602bc2f353dccd9e489a604490034ded941e
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Jun 20 01:35:06 2022 -0700

    erspan: do not assume transport header is always set
    
    [ Upstream commit 301bd140ed0b24f0da660874c7e8a47dad8c8222 ]
    
    Rewrite tests in ip6erspan_tunnel_xmit() and
    erspan_fb_xmit() to not assume transport header is set.
    
    syzbot reported:
    
    WARNING: CPU: 0 PID: 1350 at include/linux/skbuff.h:2911 skb_transport_header include/linux/skbuff.h:2911 [inline]
    WARNING: CPU: 0 PID: 1350 at include/linux/skbuff.h:2911 ip6erspan_tunnel_xmit+0x15af/0x2eb0 net/ipv6/ip6_gre.c:963
    Modules linked in:
    CPU: 0 PID: 1350 Comm: aoe_tx0 Not tainted 5.19.0-rc2-syzkaller-00160-g274295c6e53f #0
    Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014
    RIP: 0010:skb_transport_header include/linux/skbuff.h:2911 [inline]
    RIP: 0010:ip6erspan_tunnel_xmit+0x15af/0x2eb0 net/ipv6/ip6_gre.c:963
    Code: 0f 47 f0 40 88 b5 7f fe ff ff e8 8c 16 4b f9 89 de bf ff ff ff ff e8 a0 12 4b f9 66 83 fb ff 0f 85 1d f1 ff ff e8 71 16 4b f9 <0f> 0b e9 43 f0 ff ff e8 65 16 4b f9 48 8d 85 30 ff ff ff ba 60 00
    RSP: 0018:ffffc90005daf910 EFLAGS: 00010293
    RAX: 0000000000000000 RBX: 000000000000ffff RCX: 0000000000000000
    RDX: ffff88801f032100 RSI: ffffffff882e8d3f RDI: 0000000000000003
    RBP: ffffc90005dafab8 R08: 0000000000000003 R09: 000000000000ffff
    R10: 000000000000ffff R11: 0000000000000000 R12: ffff888024f21d40
    R13: 000000000000a288 R14: 00000000000000b0 R15: ffff888025a2e000
    FS: 0000000000000000(0000) GS:ffff88802c800000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b2e425000 CR3: 000000006d099000 CR4: 0000000000152ef0
    Call Trace:
    <TASK>
    __netdev_start_xmit include/linux/netdevice.h:4805 [inline]
    netdev_start_xmit include/linux/netdevice.h:4819 [inline]
    xmit_one net/core/dev.c:3588 [inline]
    dev_hard_start_xmit+0x188/0x880 net/core/dev.c:3604
    sch_direct_xmit+0x19f/0xbe0 net/sched/sch_generic.c:342
    __dev_xmit_skb net/core/dev.c:3815 [inline]
    __dev_queue_xmit+0x14a1/0x3900 net/core/dev.c:4219
    dev_queue_xmit include/linux/netdevice.h:2994 [inline]
    tx+0x6a/0xc0 drivers/block/aoe/aoenet.c:63
    kthread+0x1e7/0x3b0 drivers/block/aoe/aoecmd.c:1229
    kthread+0x2e9/0x3a0 kernel/kthread.c:376
    ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:302
    </TASK>
    
    Fixes: d5db21a3e697 ("erspan: auto detect truncated ipv6 packets.")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: William Tu <u9012063@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1592d3e362cc59b29f15019707b16c695d70ca3
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Tue Jun 7 15:08:38 2022 +0400

    drm/msm/mdp4: Fix refcount leak in mdp4_modeset_init_intf
    
    [ Upstream commit b9cc4598607cb7f7eae5c75fc1e3209cd52ff5e0 ]
    
    of_graph_get_remote_node() returns remote device node pointer with
    refcount incremented, we should use of_node_put() on it
    when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 86418f90a4c1 ("drm: convert drivers to use of_graph_get_remote_node")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/488473/
    Link: https://lore.kernel.org/r/20220607110841.53889-1-linmq006@gmail.com
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1f9c2a5a3d98b2f14ac73e360d8c54b991d2f9d
Author: Peilin Ye <peilin.ye@bytedance.com>
Date:   Thu Jun 16 16:43:36 2022 -0700

    net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms
    
    [ Upstream commit a2b1a5d40bd12b44322c2ccd40bb0ec1699708b6 ]
    
    As reported by Yuming, currently tc always show a latency of UINT_MAX
    for netem Qdisc's on 32-bit platforms:
    
        $ tc qdisc add dev dummy0 root netem latency 100ms
        $ tc qdisc show dev dummy0
        qdisc netem 8001: root refcnt 2 limit 1000 delay 275s  275s
                                                   ^^^^^^^^^^^^^^^^
    
    Let us take a closer look at netem_dump():
    
            qopt.latency = min_t(psched_tdiff_t, PSCHED_NS2TICKS(q->latency,
                                 UINT_MAX);
    
    qopt.latency is __u32, psched_tdiff_t is signed long,
    (psched_tdiff_t)(UINT_MAX) is negative for 32-bit platforms, so
    qopt.latency is always UINT_MAX.
    
    Fix it by using psched_time_t (u64) instead.
    
    Note: confusingly, users have two ways to specify 'latency':
    
      1. normally, via '__u32 latency' in struct tc_netem_qopt;
      2. via the TCA_NETEM_LATENCY64 attribute, which is s64.
    
    For the second case, theoretically 'latency' could be negative.  This
    patch ignores that corner case, since it is broken (i.e. assigning a
    negative s64 to __u32) anyways, and should be handled separately.
    
    Thanks Ted Lin for the analysis [1] .
    
    [1] https://github.com/raspberrypi/linux/issues/3512
    
    Reported-by: Yuming Chen <chenyuming.junnan@bytedance.com>
    Fixes: 112f9cb65643 ("netem: convert to qdisc_watchdog_schedule_ns")
    Reviewed-by: Cong Wang <cong.wang@bytedance.com>
    Signed-off-by: Peilin Ye <peilin.ye@bytedance.com>
    Acked-by: Stephen Hemminger <stephen@networkplumber.org>
    Link: https://lore.kernel.org/r/20220616234336.2443-1-yepeilin.cs@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47d31b97bf47853093afe325986d3415c0c271b5
Author: Jay Vosburgh <jay.vosburgh@canonical.com>
Date:   Thu Jun 16 12:32:40 2022 -0700

    bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers
    
    [ Upstream commit 7a9214f3d88cfdb099f3896e102a306b316d8707 ]
    
    The bonding ARP monitor fails to decrement send_peer_notif, the
    number of peer notifications (gratuitous ARP or ND) to be sent. This
    results in a continuous series of notifications.
    
    Correct this by decrementing the counter for each notification.
    
    Reported-by: Jonathan Toppins <jtoppins@redhat.com>
    Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
    Fixes: b0929915e035 ("bonding: Fix RTNL: assertion failed at net/core/rtnetlink.c for ab arp monitor")
    Link: https://lore.kernel.org/netdev/b2fd4147-8f50-bebd-963a-1a3e8d1d9715@redhat.com/
    Tested-by: Jonathan Toppins <jtoppins@redhat.com>
    Reviewed-by: Jonathan Toppins <jtoppins@redhat.com>
    Link: https://lore.kernel.org/r/9400.1655407960@famine
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 104a59b74577cfb4be0964452573f39bc1b9d998
Author: Claudiu Manoil <claudiu.manoil@nxp.com>
Date:   Fri Jun 10 11:40:37 2022 +0300

    phy: aquantia: Fix AN when higher speeds than 1G are not advertised
    
    [ Upstream commit 9b7fd1670a94a57d974795acebde843a5c1a354e ]
    
    Even when the eth port is resticted to work with speeds not higher than 1G,
    and so the eth driver is requesting the phy (via phylink) to advertise up
    to 1000BASET support, the aquantia phy device is still advertising for 2.5G
    and 5G speeds.
    Clear these advertising defaults when requested.
    
    Cc: Ondrej Spacek <ondrej.spacek@nxp.com>
    Fixes: 09c4c57f7bc41 ("net: phy: aquantia: add support for auto-negotiation configuration")
    Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Link: https://lore.kernel.org/r/20220610084037.7625-1-claudiu.manoil@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ffe2e50e9678c8373027492035f094b130437f1
Author: Jon Maxwell <jmaxwell37@gmail.com>
Date:   Wed Jun 15 11:15:40 2022 +1000

    bpf: Fix request_sock leak in sk lookup helpers
    
    [ Upstream commit 3046a827316c0e55fc563b4fb78c93b9ca5c7c37 ]
    
    A customer reported a request_socket leak in a Calico cloud environment. We
    found that a BPF program was doing a socket lookup with takes a refcnt on
    the socket and that it was finding the request_socket but returning the parent
    LISTEN socket via sk_to_full_sk() without decrementing the child request socket
    1st, resulting in request_sock slab object leak. This patch retains the
    existing behaviour of returning full socks to the caller but it also decrements
    the child request_socket if one is present before doing so to prevent the leak.
    
    Thanks to Curtis Taylor for all the help in diagnosing and testing this. And
    thanks to Antoine Tenart for the reproducer and patch input.
    
    v2 of this patch contains, refactor as per Daniel Borkmann's suggestions to
    validate RCU flags on the listen socket so that it balances with bpf_sk_release()
    and update comments as per Martin KaFai Lau's suggestion. One small change to
    Daniels suggestion, put "sk = sk2" under "if (sk2 != sk)" to avoid an extra
    instruction.
    
    Fixes: f7355a6c0497 ("bpf: Check sk_fullsock() before returning from bpf_sk_lookup()")
    Fixes: edbf8c01de5a ("bpf: add skc_lookup_tcp helper")
    Co-developed-by: Antoine Tenart <atenart@kernel.org>
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Signed-off-by: Jon Maxwell <jmaxwell37@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Tested-by: Curtis Taylor <cutaylor-pub@yahoo.com>
    Cc: Martin KaFai Lau <kafai@fb.com>
    Link: https://lore.kernel.org/bpf/56d6f898-bde0-bb25-3427-12a330b29fb8@iogearbox.net
    Link: https://lore.kernel.org/bpf/20220615011540.813025-1-jmaxwell37@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f074ab2539887d051717b1495cffdd277ca9394c
Author: Macpaul Lin <macpaul.lin@mediatek.com>
Date:   Thu Jun 23 16:56:44 2022 +0800

    USB: serial: option: add Quectel RM500K module support
    
    commit 15b694e96c31807d8515aacfa687a1e8a4fbbadc upstream.
    
    Add usb product id of the Quectel RM500K module.
    
    RM500K provides 2 mandatory interfaces to Linux host after enumeration.
     - /dev/ttyUSB5: this is a serial interface for control path. User needs
       to write AT commands to this device node to query status, set APN,
       set PIN code, and enable/disable the data connection to 5G network.
     - ethX: this is the data path provided as a RNDIS devices. After the
       data connection has been established, Linux host can access 5G data
       network via this interface.
    
    "RNDIS": RNDIS + ADB + AT (/dev/ttyUSB5) + MODEM COMs
    
    usb-devices output for 0x7001:
    T:  Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
    D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=7001 Rev=00.01
    S:  Manufacturer=MediaTek Inc.
    S:  Product=USB DATA CARD
    S:  SerialNumber=869206050009672
    C:  #Ifs=10 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=ff Driver=rndis_host
    E:  Ad=82(I) Atr=03(Int.) MxPS=  64 Ivl=125us
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Co-developed-by: Ballon Shi <ballon.shi@quectel.com>
    Signed-off-by: Ballon Shi <ballon.shi@quectel.com>
    Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea7b23eadebca52f149395686646741809138407
Author: Yonglin Tan <yonglin.tan@outlook.com>
Date:   Tue Jun 21 20:37:53 2022 +0800

    USB: serial: option: add Quectel EM05-G modem
    
    commit 33b29dbb39bcbd0a96e440646396bbf670b914fa upstream.
    
    The EM05-G modem has 2 USB configurations that are configurable via the AT
    command AT+QCFG="usbnet",[ 0 | 2 ] which make the modem enumerate with
    the following interfaces, respectively:
    
    "RMNET" : AT + DIAG + NMEA + Modem + QMI
    "MBIM"  : MBIM + AT + DIAG + NMEA + Modem
    
    The detailed description of the USB configuration for each mode as follows:
    
    RMNET Mode
    --------------
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 21 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=030a Rev= 3.18
    S:  Manufacturer=Quectel
    S:  Product=Quectel EM05-G
    C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 6 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
    E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    MBIM Mode
    --------------
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 16 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2c7c ProdID=030a Rev= 3.18
    S:  Manufacturer=Quectel
    S:  Product=Quectel EM05-G
    C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
    A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
    I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
    E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
    I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Yonglin Tan <yonglin.tan@outlook.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 613c849d73df60b54fd1542fd9cb6cd667925ba3
Author: Carlo Lobrano <c.lobrano@gmail.com>
Date:   Tue Jun 14 09:56:23 2022 +0200

    USB: serial: option: add Telit LE910Cx 0x1250 composition
    
    commit 342fc0c3b345525da21112bd0478a0dc741598ea upstream.
    
    Add support for the following Telit LE910Cx composition:
    
    0x1250: rmnet, tty, tty, tty, tty
    
    Reviewed-by: Daniele Palmas <dnlplm@gmail.com>
    Signed-off-by: Carlo Lobrano <c.lobrano@gmail.com>
    Link: https://lore.kernel.org/r/20220614075623.2392607-1-c.lobrano@gmail.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae183969bd66d0e05a7a7f3803859345d561f291
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Jun 16 15:00:51 2022 +0200

    random: quiet urandom warning ratelimit suppression message
    
    commit c01d4d0a82b71857be7449380338bc53dde2da92 upstream.
    
    random.c ratelimits how much it warns about uninitialized urandom reads
    using __ratelimit(). When the RNG is finally initialized, it prints the
    number of missed messages due to ratelimiting.
    
    It has been this way since that functionality was introduced back in
    2018. Recently, cc1e127bfa95 ("random: remove ratelimiting for in-kernel
    unseeded randomness") put a bit more stress on the urandom ratelimiting,
    which teased out a bug in the implementation.
    
    Specifically, when under pressure, __ratelimit() will print its own
    message and reset the count back to 0, making the final message at the
    end less useful. Secondly, it does so as a pr_warn(), which apparently
    is undesirable for people's CI.
    
    Fortunately, __ratelimit() has the RATELIMIT_MSG_ON_RELEASE flag exactly
    for this purpose, so we set the flag.
    
    Fixes: 4e00b339e264 ("random: rate limit unseeded randomness warnings")
    Cc: stable@vger.kernel.org
    Reported-by: Jon Hunter <jonathanh@nvidia.com>
    Reported-by: Ron Economos <re@w6rz.net>
    Tested-by: Ron Economos <re@w6rz.net>
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06a24ddba93aa0ceabf05cd91f679ba5d20d4cbd
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Thu Jun 23 14:53:25 2022 -0400

    dm mirror log: clear log bits up to BITS_PER_LONG boundary
    
    commit 90736eb3232d208ee048493f371075e4272e0944 upstream.
    
    Commit 85e123c27d5c ("dm mirror log: round up region bitmap size to
    BITS_PER_LONG") introduced a regression on 64-bit architectures in the
    lvm testsuite tests: lvcreate-mirror, mirror-names and vgsplit-operation.
    
    If the device is shrunk, we need to clear log bits beyond the end of the
    device. The code clears bits up to a 32-bit boundary and then calculates
    lc->sync_count by summing set bits up to a 64-bit boundary (the commit
    changed that; previously, this boundary was 32-bit too). So, it was using
    some non-zeroed bits in the calculation and this caused misbehavior.
    
    Fix this regression by clearing bits up to BITS_PER_LONG boundary.
    
    Fixes: 85e123c27d5c ("dm mirror log: round up region bitmap size to BITS_PER_LONG")
    Cc: stable@vger.kernel.org
    Reported-by: Benjamin Marzinski <bmarzins@redhat.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f350f3cf0c135c479a79899ee96c1cda8b669bd
Author: Nikos Tsironis <ntsironis@arrikto.com>
Date:   Tue Jun 21 15:24:03 2022 +0300

    dm era: commit metadata in postsuspend after worker stops
    
    commit 9ae6e8b1c9bbf6874163d1243e393137313762b7 upstream.
    
    During postsuspend dm-era does the following:
    
    1. Archives the current era
    2. Commits the metadata, as part of the RPC call for archiving the
       current era
    3. Stops the worker
    
    Until the worker stops, it might write to the metadata again. Moreover,
    these writes are not flushed to disk immediately, but are cached by the
    dm-bufio client, which writes them back asynchronously.
    
    As a result, the committed metadata of a suspended dm-era device might
    not be consistent with the in-core metadata.
    
    In some cases, this can result in the corruption of the on-disk
    metadata. Suppose the following sequence of events:
    
    1. Load a new table, e.g. a snapshot-origin table, to a device with a
       dm-era table
    2. Suspend the device
    3. dm-era commits its metadata, but the worker does a few more metadata
       writes until it stops, as part of digesting an archived writeset
    4. These writes are cached by the dm-bufio client
    5. Load the dm-era table to another device.
    6. The new instance of the dm-era target loads the committed, on-disk
       metadata, which don't include the extra writes done by the worker
       after the metadata commit.
    7. Resume the new device
    8. The new dm-era target instance starts using the metadata
    9. Resume the original device
    10. The destructor of the old dm-era target instance is called and
        destroys the dm-bufio client, which results in flushing the cached
        writes to disk
    11. These writes might overwrite the writes done by the new dm-era
        instance, hence corrupting its metadata.
    
    Fix this by committing the metadata after the worker stops running.
    
    stop_worker uses flush_workqueue to flush the current work. However, the
    work item may re-queue itself and flush_workqueue doesn't wait for
    re-queued works to finish.
    
    This could result in the worker changing the metadata after they have
    been committed, or writing to the metadata concurrently with the commit
    in the postsuspend thread.
    
    Use drain_workqueue instead, which waits until the work and all
    re-queued works finish.
    
    Fixes: eec40579d8487 ("dm: add era target")
    Cc: stable@vger.kernel.org # v3.15+
    Signed-off-by: Nikos Tsironis <ntsironis@arrikto.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e75acbe1b7683026cdbcd1a95107ba42eb3cfbb
Author: Edward Wu <edwardwu@realtek.com>
Date:   Fri Jun 17 11:32:20 2022 +0800

    ata: libata: add qc->flags in ata_qc_complete_template tracepoint
    
    commit 540a92bfe6dab7310b9df2e488ba247d784d0163 upstream.
    
    Add flags value to check the result of ata completion
    
    Fixes: 255c03d15a29 ("libata: Add tracepoints")
    Cc: stable@vger.kernel.org
    Signed-off-by: Edward Wu <edwardwu@realtek.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71c76f56b97c15d367f0855bbf2127029bdabecc
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Tue Jun 14 10:31:38 2022 +0200

    mtd: rawnand: gpmi: Fix setting busy timeout setting
    
    commit 06781a5026350cde699d2d10c9914a25c1524f45 upstream.
    
    The DEVICE_BUSY_TIMEOUT value is described in the Reference Manual as:
    
    | Timeout waiting for NAND Ready/Busy or ATA IRQ. Used in WAIT_FOR_READY
    | mode. This value is the number of GPMI_CLK cycles multiplied by 4096.
    
    So instead of multiplying the value in cycles with 4096, we have to
    divide it by that value. Use DIV_ROUND_UP to make sure we are on the
    safe side, especially when the calculated value in cycles is smaller
    than 4096 as typically the case.
    
    This bug likely never triggered because any timeout != 0 usually will
    do. In my case the busy timeout in cycles was originally calculated as
    2408, which multiplied with 4096 is 0x968000. The lower 16 bits were
    taken for the 16 bit wide register field, so the register value was
    0x8000. With 2970bf5a32f0 ("mtd: rawnand: gpmi: fix controller timings
    setting") however the value in cycles became 2384, which multiplied
    with 4096 is 0x950000. The lower 16 bit are 0x0 now resulting in an
    intermediate timeout when reading from NAND.
    
    Fixes: b1206122069aa ("mtd: rawnand: gpmi: use core timings instead of an empirical derivation")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lore.kernel.org/linux-mtd/20220614083138.3455683-1-s.hauer@pengutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c8d37e6ca180d88493e204c4fc2633e7998556ac
Author: Chevron Li <chevron.li@bayhubtech.com>
Date:   Thu Jun 2 06:25:43 2022 -0700

    mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing
    
    commit e591fcf6b4e39335c9b128b17738fcd2fdd278ae upstream.
    
    The result from ->get_cd() may be incorrect as the card detect debouncing
    isn't managed correctly. Let's fix it.
    
    Signed-off-by: Chevron Li<chevron.li@bayhubtech.com>
    Fixes: 7d44061704dd ("mmc: sdhci-pci-o2micro: Fix O2 Host data read/write DLL Lock phase shift issue")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220602132543.596-1-chevron.li@bayhubtech.com
    [Ulf: Updated the commit message]
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af28f602df7449f88b0cda05aacc7533fb64f641
Author: Rosemarie O'Riorden <roriorden@redhat.com>
Date:   Tue Jun 21 16:48:45 2022 -0400

    net: openvswitch: fix parsing of nw_proto for IPv6 fragments
    
    commit 12378a5a75e33f34f8586706eb61cca9e6d4690c upstream.
    
    When a packet enters the OVS datapath and does not match any existing
    flows installed in the kernel flow cache, the packet will be sent to
    userspace to be parsed, and a new flow will be created. The kernel and
    OVS rely on each other to parse packet fields in the same way so that
    packets will be handled properly.
    
    As per the design document linked below, OVS expects all later IPv6
    fragments to have nw_proto=44 in the flow key, so they can be correctly
    matched on OpenFlow rules. OpenFlow controllers create pipelines based
    on this design.
    
    This behavior was changed by the commit in the Fixes tag so that
    nw_proto equals the next_header field of the last extension header.
    However, there is no counterpart for this change in OVS userspace,
    meaning that this field is parsed differently between OVS and the
    kernel. This is a problem because OVS creates actions based on what is
    parsed in userspace, but the kernel-provided flow key is used as a match
    criteria, as described in Documentation/networking/openvswitch.rst. This
    leads to issues such as packets incorrectly matching on a flow and thus
    the wrong list of actions being applied to the packet. Such changes in
    packet parsing cannot be implemented without breaking the userspace.
    
    The offending commit is partially reverted to restore the expected
    behavior.
    
    The change technically made sense and there is a good reason that it was
    implemented, but it does not comply with the original design of OVS.
    If in the future someone wants to implement such a change, then it must
    be user-configurable and disabled by default to preserve backwards
    compatibility with existing OVS versions.
    
    Cc: stable@vger.kernel.org
    Fixes: fa642f08839b ("openvswitch: Derive IP protocol number for IPv6 later frags")
    Link: https://docs.openvswitch.org/en/latest/topics/design/#fragments
    Signed-off-by: Rosemarie O'Riorden <roriorden@redhat.com>
    Acked-by: Eelco Chaudron <echaudro@redhat.com>
    Link: https://lore.kernel.org/r/20220621204845.9721-1-roriorden@redhat.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6fda65dabd3e5658ad0a94fcc00021c1b9ba4ba6
Author: Tim Crawford <tcrawford@system76.com>
Date:   Fri Jun 17 07:30:28 2022 -0600

    ALSA: hda/realtek: Add quirk for Clevo PD70PNT
    
    commit d49951219b0249d3eff49e4f02e0de82357bc8a0 upstream.
    
    Fixes speaker output and headset detection on Clevo PD70PNT.
    
    Signed-off-by: Tim Crawford <tcrawford@system76.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20220617133028.50568-1-tcrawford@system76.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5fbad99e76c0e7af8a2ab2378bdb621615210f8d
Author: Kailang Yang <kailang@realtek.com>
Date:   Mon Jun 13 14:57:19 2022 +0800

    ALSA: hda/realtek - ALC897 headset MIC no sound
    
    commit fe6900bd8156467365bd5b976df64928fdebfeb0 upstream.
    
    There is not have Headset Mic verb table in BIOS default.
    So, it will have recording issue from headset MIC.
    Add the verb table value without jack detect. It will turn on Headset Mic.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/719133a27d8844a890002cb817001dfa@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf81f367cf81f4d72a479c7056a20bdab9b73acb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jun 20 12:40:07 2022 +0200

    ALSA: hda/conexant: Fix missing beep setup
    
    commit 5faa0bc69102f3a4c605581564c367be5eb94dfa upstream.
    
    Currently the Conexant codec driver sets up the beep NID after calling
    snd_hda_gen_parse_auto_config().  It turned out that this results in
    the insufficient setup for the beep control, as the generic parser
    handles the fake path in snd_hda_gen_parse_auto_config() only if the
    beep_nid is set up beforehand.
    
    For dealing with the beep widget properly, call cx_auto_parse_beep()
    before snd_hda_gen_parse_auto_config() call.
    
    Fixes: 51e19ca5f755 ("ALSA: hda/conexant - Clean up beep code")
    Cc: <stable@vger.kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216152
    Link: https://lore.kernel.org/r/20220620104008.1994-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eca9b5e36e249d9ff27d9c99019b9ccdaa4a0abb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jun 20 12:40:08 2022 +0200

    ALSA: hda/via: Fix missing beep setup
    
    commit c7807b27d510e5aa53c8a120cfc02c33c24ebb5f upstream.
    
    Like the previous fix for Conexant codec, the beep_nid has to be set
    up before calling snd_hda_gen_parse_auto_config(); otherwise it'd miss
    the path setup.
    
    Fix the call order for addressing the missing beep setup.
    
    Fixes: 0e8f9862493a ("ALSA: hda/via - Simplify control management")
    Cc: <stable@vger.kernel.org>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=216152
    Link: https://lore.kernel.org/r/20220620104008.1994-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1df5178fdebe4e80c3c9d6b8ccabaf6fae9ea78b
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Jun 16 02:03:12 2022 +0200

    random: schedule mix_interrupt_randomness() less often
    
    commit 534d2eaf1970274150596fdd2bf552721e65d6b2 upstream.
    
    It used to be that mix_interrupt_randomness() would credit 1 bit each
    time it ran, and so add_interrupt_randomness() would schedule mix() to
    run every 64 interrupts, a fairly arbitrary number, but nonetheless
    considered to be a decent enough conservative estimate.
    
    Since e3e33fc2ea7f ("random: do not use input pool from hard IRQs"),
    mix() is now able to credit multiple bits, depending on the number of
    calls to add(). This was done for reasons separate from this commit, but
    it has the nice side effect of enabling this patch to schedule mix()
    less often.
    
    Currently the rules are:
    a) Credit 1 bit for every 64 calls to add().
    b) Schedule mix() once a second that add() is called.
    c) Schedule mix() once every 64 calls to add().
    
    Rules (a) and (c) no longer need to be coupled. It's still important to
    have _some_ value in (c), so that we don't "over-saturate" the fast
    pool, but the once per second we get from rule (b) is a plenty enough
    baseline. So, by increasing the 64 in rule (c) to something larger, we
    avoid calling queue_work_on() as frequently during irq storms.
    
    This commit changes that 64 in rule (c) to be 1024, which means we
    schedule mix() 16 times less often. And it does *not* need to change the
    64 in rule (a).
    
    Fixes: 58340f8e952b ("random: defer fast pool mixing to worker")
    Cc: stable@vger.kernel.org
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c87e851b23e5cb2ba90a3049ef38340ed7d5746f
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Tue Jan 5 13:02:35 2021 +0100

    vt: drop old FONT ioctls
    
    commit ff2047fb755d4415ec3c70ac799889371151796d upstream.
    
    Drop support for these ioctls:
    * PIO_FONT, PIO_FONTX
    * GIO_FONT, GIO_FONTX
    * PIO_FONTRESET
    
    As was demonstrated by commit 90bfdeef83f1 (tty: make FONTX ioctl use
    the tty pointer they were actually passed), these ioctls are not used
    from userspace, as:
    1) they used to be broken (set up font on current console, not the open
       one) and racy (before the commit above)
    2) KDFONTOP ioctl is used for years instead
    
    Note that PIO_FONTRESET is defunct on most systems as VGA_CONSOLE is set
    on them for ages. That turns on BROKEN_GRAPHICS_PROGRAMS which makes
    PIO_FONTRESET just return an error.
    
    We are removing KD_FONT_FLAG_OLD here as it was used only by these
    removed ioctls. kd.h header exists both in kernel and uapi headers, so
    we can remove the kernel one completely. Everyone includeing kd.h will
    now automatically get the uapi one.
    
    There are now unused definitions of the ioctl numbers and "struct
    consolefontdesc" in kd.h, but as it is a uapi header, I am not touching
    these.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20210105120239.28031-8-jslaby@suse.cz
    Cc: guodaxing <guodaxing@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>