commit 99957dcea4e9702cc9060f576233ac1ac84c2a39
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Nov 21 13:46:37 2021 +0100

    Linux 5.10.81
    
    Link: https://lore.kernel.org/r/20211119171443.892729043@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Fox Chen <foxhlchen@gmail.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0685efd9840f7d017ea7cef1f49aa746329fa73d
Author: Borislav Petkov <bp@suse.de>
Date:   Fri Oct 29 19:27:32 2021 +0200

    selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage
    
    commit a72fdfd21e01c626273ddcf5ab740d4caef4be54 upstream.
    
    Commit in Fixes changed the iopl emulation to not #GP on CLI and STI
    because it would break some insane luserspace tools which would toggle
    interrupts.
    
    The corresponding selftest would rely on the fact that executing CLI/STI
    would trigger a #GP and thus detect it this way but since that #GP is
    not happening anymore, the detection is now wrong too.
    
    Extend the test to actually look at the IF flag and whether executing
    those insns had any effect on it. The STI detection needs to have the
    fact that interrupts were previously disabled, passed in so do that from
    the previous CLI test, i.e., STI test needs to follow a previous CLI one
    for it to make sense.
    
    Fixes: b968e84b509d ("x86/iopl: Fake iopl(3) CLI/STI usage")
    Suggested-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20211030083939.13073-1-bp@alien8.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a315471cb6a07f651e1d3adc8962730f4fcccac
Author: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
Date:   Thu Nov 4 16:57:07 2021 -0700

    thermal: Fix NULL pointer dereferences in of_thermal_ functions
    
    commit 96cfe05051fd8543cdedd6807ec59a0e6c409195 upstream.
    
    of_parse_thermal_zones() parses the thermal-zones node and registers a
    thermal_zone device for each subnode. However, if a thermal zone is
    consuming a thermal sensor and that thermal sensor device hasn't probed
    yet, an attempt to set trip_point_*_temp for that thermal zone device
    can cause a NULL pointer dereference. Fix it.
    
     console:/sys/class/thermal/thermal_zone87 # echo 120000 > trip_point_0_temp
     ...
     Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
     ...
     Call trace:
      of_thermal_set_trip_temp+0x40/0xc4
      trip_point_temp_store+0xc0/0x1dc
      dev_attr_store+0x38/0x88
      sysfs_kf_write+0x64/0xc0
      kernfs_fop_write_iter+0x108/0x1d0
      vfs_write+0x2f4/0x368
      ksys_write+0x7c/0xec
      __arm64_sys_write+0x20/0x30
      el0_svc_common.llvm.7279915941325364641+0xbc/0x1bc
      do_el0_svc+0x28/0xa0
      el0_svc+0x14/0x24
      el0_sync_handler+0x88/0xec
      el0_sync+0x1c0/0x200
    
    While at it, fix the possible NULL pointer dereference in other
    functions as well: of_thermal_get_temp(), of_thermal_set_emul_temp(),
    of_thermal_get_trend().
    
    Suggested-by: David Collins <quic_collinsd@quicinc.com>
    Signed-off-by: Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>
    Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd40513d0bee24095948abfaa17d3ad8f444a85b
Author: Greg Thelen <gthelen@google.com>
Date:   Wed Nov 10 18:18:14 2021 -0800

    perf/core: Avoid put_page() when GUP fails
    
    commit 4716023a8f6a0f4a28047f14dd7ebdc319606b84 upstream.
    
    PEBS PERF_SAMPLE_PHYS_ADDR events use perf_virt_to_phys() to convert PMU
    sampled virtual addresses to physical using get_user_page_fast_only()
    and page_to_phys().
    
    Some get_user_page_fast_only() error cases return false, indicating no
    page reference, but still initialize the output page pointer with an
    unreferenced page. In these error cases perf_virt_to_phys() calls
    put_page(). This causes page reference count underflow, which can lead
    to unintentional page sharing.
    
    Fix perf_virt_to_phys() to only put_page() if get_user_page_fast_only()
    returns a referenced page.
    
    Fixes: fc7ce9c74c3ad ("perf/core, x86: Add PERF_SAMPLE_PHYS_ADDR")
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20211111021814.757086-1-gthelen@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df58fb431aa3b8371e11b27a94b20f8b765799c7
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Mon Nov 15 09:43:23 2021 -0700

    scripts/lld-version.sh: Rewrite based on upstream ld-version.sh
    
    This patch is for linux-5.10.y only.
    
    When scripts/lld-version.sh was initially written, it did not account
    for the LLD_VENDOR cmake flag, which changes the output of ld.lld's
    --version flag slightly.
    
    Without LLD_VENDOR:
    
    $ ld.lld --version
    LLD 14.0.0 (compatible with GNU linkers)
    
    With LLD_VENDOR:
    
    $ ld.lld --version
    Debian LLD 14.0.0 (compatible with GNU linkers)
    
    As a result, CONFIG_LLD_VERSION is messed up and configuration values
    that are dependent on it cannot be selected:
    
    scripts/lld-version.sh: 20: printf: LLD: expected numeric value
    scripts/lld-version.sh: 20: printf: LLD: expected numeric value
    scripts/lld-version.sh: 20: printf: LLD: expected numeric value
    init/Kconfig:52:warning: 'LLD_VERSION': number is invalid
    .config:11:warning: symbol value '00000' invalid for LLD_VERSION
    .config:8800:warning: override: CPU_BIG_ENDIAN changes choice state
    
    This was fixed upstream by commit 1f09af062556 ("kbuild: Fix
    ld-version.sh script if LLD was built with LLD_VENDOR") in 5.12 but that
    was done to ld-version.sh after it was massively rewritten in
    commit 02aff8592204 ("kbuild: check the minimum linker version in
    Kconfig").
    
    To avoid bringing in that change plus its prerequisites and fixes, just
    modify lld-version.sh to make it similar to the upstream ld-version.sh,
    which handles ld.lld with or without LLD_VENDOR and ld.bfd without any
    errors.
    
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be3f6035831a667f5d316be180176a3a8d8460b5
Author: Gao Xiang <hsiangkao@linux.alibaba.com>
Date:   Tue Nov 16 09:08:19 2021 +0800

    erofs: fix unsafe pagevec reuse of hooked pclusters
    
    commit 86432a6dca9bed79111990851df5756d3eb5f57c upstream.
    
    There are pclusters in runtime marked with Z_EROFS_PCLUSTER_TAIL
    before actual I/O submission. Thus, the decompression chain can be
    extended if the following pcluster chain hooks such tail pcluster.
    
    As the related comment mentioned, if some page is made of a hooked
    pcluster and another followed pcluster, it can be reused for in-place
    I/O (since I/O should be submitted anyway):
     _______________________________________________________________
    |  tail (partial) page |          head (partial) page           |
    |_____PRIMARY_HOOKED___|____________PRIMARY_FOLLOWED____________|
    
    However, it's by no means safe to reuse as pagevec since if such
    PRIMARY_HOOKED pclusters finally move into bypass chain without I/O
    submission. It's somewhat hard to reproduce with LZ4 and I just found
    it (general protection fault) by ro_fsstressing a LZMA image for long
    time.
    
    I'm going to actively clean up related code together with multi-page
    folio adaption in the next few months. Let's address it directly for
    easier backporting for now.
    
    Call trace for reference:
      z_erofs_decompress_pcluster+0x10a/0x8a0 [erofs]
      z_erofs_decompress_queue.isra.36+0x3c/0x60 [erofs]
      z_erofs_runqueue+0x5f3/0x840 [erofs]
      z_erofs_readahead+0x1e8/0x320 [erofs]
      read_pages+0x91/0x270
      page_cache_ra_unbounded+0x18b/0x240
      filemap_get_pages+0x10a/0x5f0
      filemap_read+0xa9/0x330
      new_sync_read+0x11b/0x1a0
      vfs_read+0xf1/0x190
    
    Link: https://lore.kernel.org/r/20211103182006.4040-1-xiang@kernel.org
    Fixes: 3883a79abd02 ("staging: erofs: introduce VLE decompression support")
    Cc: <stable@vger.kernel.org> # 4.19+
    Reviewed-by: Chao Yu <chao@kernel.org>
    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c1ad56b2d78725034bfed17782dc1264149563d
Author: Yue Hu <huyue2@yulong.com>
Date:   Tue Nov 16 09:08:18 2021 +0800

    erofs: remove the occupied parameter from z_erofs_pagevec_enqueue()
    
    commit 7dea3de7d384f4c8156e8bd93112ba6db1eb276c upstream.
    
    No any behavior to variable occupied in z_erofs_attach_page() which
    is only caller to z_erofs_pagevec_enqueue().
    
    Link: https://lore.kernel.org/r/20210419102623.2015-1-zbestahu@gmail.com
    Signed-off-by: Yue Hu <huyue2@yulong.com>
    Reviewed-by: Gao Xiang <xiang@kernel.org>
    Signed-off-by: Gao Xiang <xiang@kernel.org>
    Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bf5f464831c26dca627bf32d4e51067dcd39d64
Author: Marc Zyngier <maz@kernel.org>
Date:   Thu Nov 4 18:01:30 2021 +0000

    PCI: Add MSI masking quirk for Nvidia ION AHCI
    
    commit f21082fb20dbfb3e42b769b59ef21c2a7f2c7c1f upstream.
    
    The ION AHCI device pretends that MSI masking isn't a thing, while it
    actually implements it and needs MSIs to be unmasked to work. Add a quirk
    to that effect.
    
    Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Link: https://lore.kernel.org/r/CALjTZvbzYfBuLB+H=fj2J+9=DxjQ2Uqcy0if_PvmJ-nU-qEgkg@mail.gmail.com
    Link: https://lore.kernel.org/r/20211104180130.3825416-3-maz@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f28c620e1ac1b7312519516217240556193c2618
Author: Marc Zyngier <maz@kernel.org>
Date:   Thu Nov 4 18:01:29 2021 +0000

    PCI/MSI: Deal with devices lying about their MSI mask capability
    
    commit 2226667a145db2e1f314d7f57fd644fe69863ab9 upstream.
    
    It appears that some devices are lying about their mask capability,
    pretending that they don't have it, while they actually do.
    The net result is that now that we don't enable MSIs on such
    endpoint.
    
    Add a new per-device flag to deal with this. Further patches will
    make use of it, sadly.
    
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20211104180130.3825416-2-maz@kernel.org
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b61500ee536adc38929852259d8c84ab6b908bc
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Nov 9 14:53:57 2021 +0100

    PCI/MSI: Destroy sysfs before freeing entries
    
    commit 3735459037114d31e5acd9894fad9aed104231a0 upstream.
    
    free_msi_irqs() frees the MSI entries before destroying the sysfs entries
    which are exposing them. Nothing prevents a concurrent free while a sysfs
    file is read and accesses the possibly freed entry.
    
    Move the sysfs release ahead of freeing the entries.
    
    Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Bjorn Helgaas <helgaas@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/87sfw5305m.ffs@tglx
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c49bfdfe535c65fe14041cf11b7f36950f26f317
Author: Sven Schnelle <svens@stackframe.org>
Date:   Sat Nov 13 20:41:17 2021 +0100

    parisc/entry: fix trace test in syscall exit path
    
    commit 3ec18fc7831e7d79e2d536dd1f3bc0d3ba425e8a upstream.
    
    commit 8779e05ba8aa ("parisc: Fix ptrace check on syscall return")
    fixed testing of TI_FLAGS. This uncovered a bug in the test mask.
    syscall_restore_rfi is only used when the kernel needs to exit to
    usespace with single or block stepping and the recovery counter
    enabled. The test however used _TIF_SYSCALL_TRACE_MASK, which
    includes a lot of bits that shouldn't be tested here.
    
    Fix this by using TIF_SINGLESTEP and TIF_BLOCKSTEP directly.
    
    I encountered this bug by enabling syscall tracepoints. Both in qemu and
    on real hardware. As soon as i enabled the tracepoint (sys_exit_read,
    but i guess it doesn't really matter which one), i got random page
    faults in userspace almost immediately.
    
    Signed-off-by: Sven Schnelle <svens@stackframe.org>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b31bac061918936d6f6d647878bd45a2c81b446b
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Fri Sep 17 11:20:04 2021 +0200

    x86/iopl: Fake iopl(3) CLI/STI usage
    
    commit b968e84b509da593c50dc3db679e1d33de701f78 upstream.
    
    Since commit c8137ace5638 ("x86/iopl: Restrict iopl() permission
    scope") it's possible to emulate iopl(3) using ioperm(), except for
    the CLI/STI usage.
    
    Userspace CLI/STI usage is very dubious (read broken), since any
    exception taken during that window can lead to rescheduling anyway (or
    worse). The IOPL(2) manpage even states that usage of CLI/STI is highly
    discouraged and might even crash the system.
    
    Of course, that won't stop people and HP has the dubious honour of
    being the first vendor to be found using this in their hp-health
    package.
    
    In order to enable this 'software' to still 'work', have the #GP treat
    the CLI/STI instructions as NOPs when iopl(3). Warn the user that
    their program is doing dubious things.
    
    Fixes: a24ca9976843 ("x86/iopl: Remove legacy IOPL option")
    Reported-by: Ondrej Zary <linux@zary.sk>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@kernel.org # v5.5+
    Link: https://lkml.kernel.org/r/20210918090641.GD5106@worktop.programming.kicks-ass.net
    Signed-off-by: Ondrej Zary <linux@zary.sk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0958a5354f7bcade6557003eac23a77b7d26fb4
Author: Michael Riesch <michael.riesch@wolfvision.net>
Date:   Fri Nov 19 10:53:59 2021 +0800

    net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings
    
    commit 2d26f6e39afb88d32b8f39e76a51b542c3c51674 upstream.
    
    This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
    "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
    unbalanced pm_runtime_enable warnings.
    
    In the commit to be reverted, support for power management was
    introduced to the Rockchip glue code. Later, power management support
    was introduced to the stmmac core code, resulting in multiple
    invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
    
    The multiple invocations happen in rk_gmac_powerup and
    stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
    stmmac_{dvr_remove, suspend}, respectively, which are always called
    in conjunction.
    
    Fixes: 5ec55823438e850c91c6b92aec93fb04ebde29e2 ("net: stmmac: add clocks management for gmac driver")
    Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80407c6ad9da25f52f8091cdd8c7b80168d5c3d5
Author: Wong Vee Khee <vee.khee.wong@linux.intel.com>
Date:   Fri Nov 19 10:53:58 2021 +0800

    net: stmmac: fix issue where clk is being unprepared twice
    
    commit ab00f3e051e851a8458f0d0eb1bb426deadb6619 upstream.
    
    In the case of MDIO bus registration failure due to no external PHY
    devices is connected to the MAC, clk_disable_unprepare() is called in
    stmmac_bus_clk_config() and intel_eth_pci_probe() respectively.
    
    The second call in intel_eth_pci_probe() will caused the following:-
    
    [   16.578605] intel-eth-pci 0000:00:1e.5: No PHY found
    [   16.583778] intel-eth-pci 0000:00:1e.5: stmmac_dvr_probe: MDIO bus (id: 2) registration failed
    [   16.680181] ------------[ cut here ]------------
    [   16.684861] stmmac-0000:00:1e.5 already disabled
    [   16.689547] WARNING: CPU: 13 PID: 2053 at drivers/clk/clk.c:952 clk_core_disable+0x96/0x1b0
    [   16.697963] Modules linked in: dwc3 iTCO_wdt mei_hdcp iTCO_vendor_support udc_core x86_pkg_temp_thermal kvm_intel marvell10g kvm sch_fq_codel nfsd irqbypass dwmac_intel(+) stmmac uio ax88179_178a pcs_xpcs phylink uhid spi_pxa2xx_platform usbnet mei_me pcspkr tpm_crb mii i2c_i801 dw_dmac dwc3_pci thermal dw_dmac_core intel_rapl_msr libphy i2c_smbus mei tpm_tis intel_th_gth tpm_tis_core tpm intel_th_acpi intel_pmc_core intel_th i915 fuse configfs snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hda_core snd_pcm snd_timer snd soundcore
    [   16.746785] CPU: 13 PID: 2053 Comm: systemd-udevd Tainted: G     U            5.13.0-rc3-intel-lts #76
    [   16.756134] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-S ADP-S DRR4 CRB, BIOS ADLIFSI1.R00.1494.B00.2012031421 12/03/2020
    [   16.769465] RIP: 0010:clk_core_disable+0x96/0x1b0
    [   16.774222] Code: 00 8b 05 45 96 17 01 85 c0 7f 24 48 8b 5b 30 48 85 db 74 a5 8b 43 7c 85 c0 75 93 48 8b 33 48 c7 c7 6e 32 cc b7 e8 b2 5d 52 00 <0f> 0b 5b 5d c3 65 8b 05 76 31 18 49 89 c0 48 0f a3 05 bc 92 1a 01
    [   16.793016] RSP: 0018:ffffa44580523aa0 EFLAGS: 00010086
    [   16.798287] RAX: 0000000000000000 RBX: ffff8d7d0eb70a00 RCX: 0000000000000000
    [   16.805435] RDX: 0000000000000002 RSI: ffffffffb7c62d5f RDI: 00000000ffffffff
    [   16.812610] RBP: 0000000000000287 R08: 0000000000000000 R09: ffffa445805238d0
    [   16.819759] R10: 0000000000000001 R11: 0000000000000001 R12: ffff8d7d0eb70a00
    [   16.826904] R13: ffff8d7d027370c8 R14: 0000000000000006 R15: ffffa44580523ad0
    [   16.834047] FS:  00007f9882fa2600(0000) GS:ffff8d80a0940000(0000) knlGS:0000000000000000
    [   16.842177] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   16.847966] CR2: 00007f9882bea3d8 CR3: 000000010b126001 CR4: 0000000000370ee0
    [   16.855144] Call Trace:
    [   16.857614]  clk_core_disable_lock+0x1b/0x30
    [   16.861941]  intel_eth_pci_probe.cold+0x11d/0x136 [dwmac_intel]
    [   16.867913]  pci_device_probe+0xcf/0x150
    [   16.871890]  really_probe+0xf5/0x3e0
    [   16.875526]  driver_probe_device+0x64/0x150
    [   16.879763]  device_driver_attach+0x53/0x60
    [   16.883998]  __driver_attach+0x9f/0x150
    [   16.887883]  ? device_driver_attach+0x60/0x60
    [   16.892288]  ? device_driver_attach+0x60/0x60
    [   16.896698]  bus_for_each_dev+0x77/0xc0
    [   16.900583]  bus_add_driver+0x184/0x1f0
    [   16.904469]  driver_register+0x6c/0xc0
    [   16.908268]  ? 0xffffffffc07ae000
    [   16.911598]  do_one_initcall+0x4a/0x210
    [   16.915489]  ? kmem_cache_alloc_trace+0x305/0x4e0
    [   16.920247]  do_init_module+0x5c/0x230
    [   16.924057]  load_module+0x2894/0x2b70
    [   16.927857]  ? __do_sys_finit_module+0xb5/0x120
    [   16.932441]  __do_sys_finit_module+0xb5/0x120
    [   16.936845]  do_syscall_64+0x42/0x80
    [   16.940476]  entry_SYSCALL_64_after_hwframe+0x44/0xae
    [   16.945586] RIP: 0033:0x7f98830e5ccd
    [   16.949177] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 93 31 0c 00 f7 d8 64 89 01 48
    [   16.967970] RSP: 002b:00007ffc66b60168 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
    [   16.975583] RAX: ffffffffffffffda RBX: 000055885de35ef0 RCX: 00007f98830e5ccd
    [   16.982725] RDX: 0000000000000000 RSI: 00007f98832541e3 RDI: 0000000000000012
    [   16.989868] RBP: 0000000000020000 R08: 0000000000000000 R09: 0000000000000000
    [   16.997042] R10: 0000000000000012 R11: 0000000000000246 R12: 00007f98832541e3
    [   17.004222] R13: 0000000000000000 R14: 0000000000000000 R15: 00007ffc66b60328
    [   17.011369] ---[ end trace df06a3dab26b988c ]---
    [   17.016062] ------------[ cut here ]------------
    [   17.020701] stmmac-0000:00:1e.5 already unprepared
    
    Removing the stmmac_bus_clks_config() call in stmmac_dvr_probe and let
    dwmac-intel to handle the unprepare and disable of the clk device.
    
    Fixes: 5ec55823438e ("net: stmmac: add clocks management for gmac driver")
    Cc: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Reviewed-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ac4bb9951c2cb9e40d5cf9a010ac8dead6f46501
Author: Joakim Zhang <qiangqing.zhang@nxp.com>
Date:   Fri Nov 19 10:53:57 2021 +0800

    net: stmmac: fix system hang if change mac address after interface ifdown
    
    commit 4691ffb18ac908609aab07d13af7995b6b89d33c upstream.
    
    Fix system hang with below sequences:
    ~# ifconfig ethx down
    ~# ifconfig ethx hw ether xx:xx:xx:xx:xx:xx
    
    After ethx down, stmmac all clocks gated off and then register access causes
    system hang.
    
    Fixes: 5ec55823438e ("net: stmmac: add clocks management for gmac driver")
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bcf37522432dcacae18e1cec7c41308505d5ea22
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Fri Nov 19 10:53:56 2021 +0800

    net: stmmac: fix missing unlock on error in stmmac_suspend()
    
    commit 30f347ae7cc1178c431f968a89d4b4a375bc0d39 upstream
    
    Add the missing unlock before return from stmmac_suspend()
    in the error handling case.
    
    Fixes: 5ec55823438e ("net: stmmac: add clocks management for gmac driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 483ed89522b0f28e8bb0947646330c9200bf69d8
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Fri Nov 19 10:53:55 2021 +0800

    net: stmmac: platform: fix build error with !CONFIG_PM_SLEEP
    
    commit 7ec05a6035480f3a5934b2b31222620b2e906163 upstream
    
    Get rid of the CONFIG_PM_SLEEP ifdefery to fix the build error
    and use __maybe_unused for the suspend()/resume() hooks to avoid
    build warning:
    
    drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:769:21:
     error: 'stmmac_runtime_suspend' undeclared here (not in a function); did you mean 'stmmac_suspend'?
      769 |  SET_RUNTIME_PM_OPS(stmmac_runtime_suspend, stmmac_runtime_resume, NULL)
          |                     ^~~~~~~~~~~~~~~~~~~~~~
    ./include/linux/pm.h:342:21: note: in definition of macro 'SET_RUNTIME_PM_OPS'
      342 |  .runtime_suspend = suspend_fn, \
          |                     ^~~~~~~~~~
    drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:769:45:
     error: 'stmmac_runtime_resume' undeclared here (not in a function)
      769 |  SET_RUNTIME_PM_OPS(stmmac_runtime_suspend, stmmac_runtime_resume, NULL)
          |                                             ^~~~~~~~~~~~~~~~~~~~~
    ./include/linux/pm.h:343:20: note: in definition of macro 'SET_RUNTIME_PM_OPS'
      343 |  .runtime_resume = resume_fn, \
          |                    ^~~~~~~~~
    
    Fixes: 5ec55823438e ("net: stmmac: add clocks management for gmac driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3afe11be6435e126f1507ddf1a9d0e5a0d90b336
Author: Joakim Zhang <qiangqing.zhang@nxp.com>
Date:   Fri Nov 19 10:53:54 2021 +0800

    net: stmmac: add clocks management for gmac driver
    
    commit 5ec55823438e850c91c6b92aec93fb04ebde29e2 upstream.
    
    This patch intends to add clocks management for stmmac driver:
    
    If CONFIG_PM enabled:
    1. Keep clocks disabled after driver probed.
    2. Enable clocks when up the net device, and disable clocks when down
    the net device.
    
    If CONFIG_PM disabled:
    Keep clocks always enabled after driver probed.
    
    Note:
    1. It is fine for ethtool, since the way of implementing ethtool_ops::begin
    in stmmac is only can be accessed when interface is enabled, so the clocks
    are ticked.
    2. The MDIO bus has a different life cycle to the MAC, need ensure
    clocks are enabled when _mdio_read/write() need clocks, because these
    functions can be called while the interface it not opened.
    
    Stable backport notes:
    When run below command to remove ethernet driver on
    stratix10 platform, there will be warning trace as below:
    
    $ cd /sys/class/net/eth0/device/driver/
    $ echo ff800000.ethernet > unbind
    
    WARNING: CPU: 3 PID: 386 at drivers/clk/clk.c:810 clk_core_unprepare+0x114/0x274
    Modules linked in: sch_fq_codel
    CPU: 3 PID: 386 Comm: sh Tainted: G        W         5.10.74-yocto-standard #1
    Hardware name: SoCFPGA Stratix 10 SoCDK (DT)
    pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
    pc : clk_core_unprepare+0x114/0x274
    lr : clk_core_unprepare+0x114/0x274
    sp : ffff800011bdbb10
    clk_core_unprepare+0x114/0x274
     clk_unprepare+0x38/0x50
     stmmac_remove_config_dt+0x40/0x80
     stmmac_pltfr_remove+0x64/0x80
     platform_drv_remove+0x38/0x60
     ... ..
     el0_sync_handler+0x1a4/0x1b0
     el0_sync+0x180/0x1c0
    This issue is introduced by introducing upstream commit 8f269102baf7
    ("net: stmmac: disable clocks in stmmac_remove_config_dt()")
    
    But in latest mainline kernel, there is no this issue. Because this
    patch improved clocks management for stmmac driver.
    Therefore, backport it and its fixing patches to stable kernel v5.10.
    
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f27060e28efcbd939e4ae6cd2ecc2ba7d2f5d93d
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu Sep 16 15:23:12 2021 +0900

    bootconfig: init: Fix memblock leak in xbc_make_cmdline()
    
    commit 1ae43851b18afe861120ebd7c426dc44f06bb2bd upstream.
    
    Free unused memblock in a error case to fix memblock leak
    in xbc_make_cmdline().
    
    Link: https://lkml.kernel.org/r/163177339181.682366.8713781325929549256.stgit@devnote2
    
    Fixes: 51887d03aca1 ("bootconfig: init: Allow admin to use bootconfig for kernel command line")
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04e46514fef692ccd0bca6fbab7fa1e63e5cd05a
Author: Xie Yongji <xieyongji@bytedance.com>
Date:   Tue Oct 26 22:40:14 2021 +0800

    loop: Use blk_validate_block_size() to validate block size
    
    commit af3c570fb0df422b4906ebd11c1bf363d89961d5 upstream.
    
    Remove loop_validate_block_size() and use the block layer helper
    to validate block size.
    
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Link: https://lore.kernel.org/r/20211026144015.188-4-xieyongji@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Cc: Tadeusz Struk <tadeusz.struk@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79ff56c613c193744d6be77d4c50a7ae22d6dd01
Author: Xie Yongji <xieyongji@bytedance.com>
Date:   Tue Oct 26 22:40:12 2021 +0800

    block: Add a helper to validate the block size
    
    commit 570b1cac477643cbf01a45fa5d018430a1fddbce upstream.
    
    There are some duplicated codes to validate the block
    size in block drivers. This limitation actually comes
    from block layer, so this patch tries to add a new block
    layer helper for that.
    
    Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
    Link: https://lore.kernel.org/r/20211026144015.188-2-xieyongji@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eaafc590053b314d4907017044ba2e739893c17c
Author: Kees Cook <keescook@chromium.org>
Date:   Wed May 12 21:51:10 2021 -0700

    fortify: Explicitly disable Clang support
    
    commit a52f8a59aef46b59753e583bf4b28fccb069ce64 upstream.
    
    Clang has never correctly compiled the FORTIFY_SOURCE defenses due to
    a couple bugs:
    
            Eliding inlines with matching __builtin_* names
            https://bugs.llvm.org/show_bug.cgi?id=50322
    
            Incorrect __builtin_constant_p() of some globals
            https://bugs.llvm.org/show_bug.cgi?id=41459
    
    In the process of making improvements to the FORTIFY_SOURCE defenses, the
    first (silent) bug (coincidentally) becomes worked around, but exposes
    the latter which breaks the build. As such, Clang must not be used with
    CONFIG_FORTIFY_SOURCE until at least latter bug is fixed (in Clang 13),
    and the fortify routines have been rearranged.
    
    Update the Kconfig to reflect the reality of the current situation.
    
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Acked-by: Nick Desaulniers <ndesaulniers@google.com>
    Link: https://lore.kernel.org/lkml/CAKwvOd=A+ueGV2ihdy5GtgR2fQbcXjjAtVxv3=cPjffpebZB7A@mail.gmail.com
    Cc: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>