commit f52c80ec2261fc8c8b8e731462cd5960c68ff122
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Jul 2 16:17:16 2022 +0200

    Linux 4.9.321
    
    Link: https://lore.kernel.org/r/20220630133231.200642128@linuxfoundation.org
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84fb3b1d13862340a2ccceb67c71761265c7a0cc
Author: Liu Shixin <liushixin2@huawei.com>
Date:   Thu Jun 30 19:32:25 2022 +0800

    swiotlb: skip swiotlb_bounce when orig_addr is zero
    
    After patch ddbd89deb7d3 ("swiotlb: fix info leak with DMA_FROM_DEVICE"),
    swiotlb_bounce will be called in swiotlb_tbl_map_single unconditionally.
    This requires that the physical address must be valid, which is not always
    true on stable-4.19 or earlier version.
    On stable-4.19, swiotlb_alloc_buffer will call swiotlb_tbl_map_single with
    orig_addr equal to zero, which cause such a panic:
    
    Unable to handle kernel paging request at virtual address ffffb77a40000000
    ...
    pc : __memcpy+0x100/0x180
    lr : swiotlb_bounce+0x74/0x88
    ...
    Call trace:
     __memcpy+0x100/0x180
     swiotlb_tbl_map_single+0x2c8/0x338
     swiotlb_alloc+0xb4/0x198
     __dma_alloc+0x84/0x1d8
     ...
    
    On stable-4.9 and stable-4.14, swiotlb_alloc_coherent wille call map_single
    with orig_addr equal to zero, which can cause same panic.
    
    Fix this by skipping swiotlb_bounce when orig_addr is zero.
    
    Fixes: ddbd89deb7d3 ("swiotlb: fix info leak with DMA_FROM_DEVICE")
    Signed-off-by: Liu Shixin <liushixin2@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f860199f3641d584d63e396c2f9ae90b6763a01
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Thu May 19 14:42:37 2022 +0530

    kexec_file: drop weak attribute from arch_kexec_apply_relocations[_add]
    
    commit 3e35142ef99fe6b4fe5d834ad43ee13cca10a2dc upstream.
    
    Since commit d1bcae833b32f1 ("ELF: Don't generate unused section
    symbols") [1], binutils (v2.36+) started dropping section symbols that
    it thought were unused.  This isn't an issue in general, but with
    kexec_file.c, gcc is placing kexec_arch_apply_relocations[_add] into a
    separate .text.unlikely section and the section symbol ".text.unlikely"
    is being dropped. Due to this, recordmcount is unable to find a non-weak
    symbol in .text.unlikely to generate a relocation record against.
    
    Address this by dropping the weak attribute from these functions.
    Instead, follow the existing pattern of having architectures #define the
    name of the function they want to override in their headers.
    
    [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=d1bcae833b32f1
    
    [akpm@linux-foundation.org: arch/s390/include/asm/kexec.h needs linux/module.h]
    Link: https://lkml.kernel.org/r/20220519091237.676736-1-naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb581547157caff59d0fbcee4aa9f5c44705579a
Author: Hsin-Yi Wang <hsinyi@chromium.org>
Date:   Tue Aug 27 18:33:53 2019 +0800

    fdt: Update CRC check for rng-seed
    
    commit dd753d961c4844a39f947be115b3d81e10376ee5 upstream.
    
    Commit 428826f5358c ("fdt: add support for rng-seed") moves of_fdt_crc32
    from early_init_dt_verify() to early_init_dt_scan() since
    early_init_dt_scan_chosen() may modify fdt to erase rng-seed.
    
    However, arm and some other arch won't call early_init_dt_scan(), they
    call early_init_dt_verify() then early_init_dt_scan_nodes().
    
    Restore of_fdt_crc32 to early_init_dt_verify() then update it in
    early_init_dt_scan_chosen() if fdt if updated.
    
    Fixes: 428826f5358c ("fdt: add support for rng-seed")
    Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0d076419136a7528abc1831847099400f61d60f
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Jun 6 13:59:20 2022 +0900

    xen: unexport __init-annotated xen_xlate_map_ballooned_pages()
    
    commit dbac14a5a05ff8e1ce7c0da0e1f520ce39ec62ea upstream.
    
    EXPORT_SYMBOL and __init is a bad combination because the .init.text
    section is freed up after the initialization. Hence, modules cannot
    use symbols annotated __init. The access to a freed symbol may end up
    with kernel panic.
    
    modpost used to detect it, but it has been broken for a decade.
    
    Recently, I fixed modpost so it started to warn it again, then this
    showed up in linux-next builds.
    
    There are two ways to fix it:
    
      - Remove __init
      - Remove EXPORT_SYMBOL
    
    I chose the latter for this case because none of the in-tree call-sites
    (arch/arm/xen/enlighten.c, arch/x86/xen/grant-table.c) is compiled as
    modular.
    
    Fixes: 243848fc018c ("xen/grant-table: Move xlated_setup_gnttab_pages to common place")
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
    Acked-by: Stefano Stabellini <sstabellini@kernel.org>
    Link: https://lore.kernel.org/r/20220606045920.4161881-1-masahiroy@kernel.org
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8642aef2bf4b4adfd82a501804f90bf2df96a01e
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Feb 2 13:13:23 2021 +0100

    drm: remove drm_fb_helper_modinit
    
    commit bf22c9ec39da90ce866d5f625d616f28bc733dc1 upstream.
    
    drm_fb_helper_modinit has a lot of boilerplate for what is not very
    simple functionality.  Just open code it in the only caller using
    IS_ENABLED and IS_MODULE, and skip the find_module check as a
    request_module is harmless if the module is already loaded (and not
    other caller has this find_module check either).
    
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Jessica Yu <jeyu@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2f8cfa63f55d879cf28db3ede0ff055cd1d1a84
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 1b9980fb24f67e820d31a12abf74bfe39011d90a
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 b8b84e01ca94e2e1f5492353e9c24dab520b2e5b
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 a9b76c232a1ce4cbf27862097f7eb634dcc779eb
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 545ae5cbae839ce39bfe09828e413f1c916082de
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 fead9b2f64981729c0748eb1600817be93d83c2c
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 9c58e6d866892380dc70aa9a8a7dd2b47da7dce0
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 3e5eb904d9ba657308fc75a5de434b0e58dcb8d7
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 b12d5c52f073a0420622aaf2f21b615cce8b36cc
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 d6111e7bdb8ec27eb43d01c4cd4ff1620a75f7f2
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 9a23cf5bcdd86760fd8f44b3322a03b03cb0c81d
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 0108c1ac77349691b4539ada9d2b2b42fb3c0a8e
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 47014a0e13fd9c3cda54a0ccaf7885e8f257645e
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 6eabb3021b7f5eaea872b1eb37142be7a20a0618
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 b7fad57687158b5f0e0bb52864409a79d4ecc5aa
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 0ee4ff6ae161c64a1bc1f8251f8e93b27e96a539
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 071dae67bb36e8fec4a2dfe9fa0829bc360b60e0
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 e503a86ba0e9602d13427e1521e81b918d7102cd
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 66087addd9905039c3c94267f1878b7c7d02b43b
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 eef98cd1b991ba56481b9ad58dc1f95c658cb944
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 f550444427bb33ce9764fb911a8cb0622ff7b45b
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 243b50984c34b24727af17fa8652852f94269e3d
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 826dfd79754eea640c4b07b19962ce80de31e9bb
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 dc1421db273b725ebe90978a4b2d9bfba5cef702
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>