commit 325225e2f9fa0a4edf0b7da30c256df2433db6bb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Oct 13 09:42:04 2021 +0200

    Linux 5.14.12
    
    Link: https://lore.kernel.org/r/20211011134517.833565002@linuxfoundation.org
    Tested-by: Salvatore Bonaccorso <carnil@debian.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: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58f0e59efa34ceea0253e58e4b27e44423767728
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Sun Oct 3 17:50:53 2021 +0200

    dsa: tag_dsa: Fix mask for trunked packets
    
    commit b44d52a50bc6f191f0ae03f65de8401f3ef039b3 upstream.
    
    A packet received on a trunk will have bit 2 set in Forward DSA tagged
    frame. Bit 1 can be either 0 or 1 and is otherwise undefined and bit 0
    indicates the frame CFI. Masking with 7 thus results in frames as
    being identified as being from a trunk when in fact they are not. Fix
    the mask to just look at bit 2.
    
    Fixes: 5b60dadb71db ("net: dsa: tag_dsa: Support reception of packets from LAG devices")
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dc24f3e08419d01ce0dcd08e9472472ede9988f
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Sep 30 19:21:39 2021 +0200

    x86/hpet: Use another crystalball to evaluate HPET usability
    
    commit 6e3cd95234dc1eda488f4f487c281bac8fef4d9b upstream.
    
    On recent Intel systems the HPET stops working when the system reaches PC10
    idle state.
    
    The approach of adding PCI ids to the early quirks to disable HPET on
    these systems is a whack a mole game which makes no sense.
    
    Check for PC10 instead and force disable HPET if supported. The check is
    overbroad as it does not take ACPI, intel_idle enablement and command
    line parameters into account. That's fine as long as there is at least
    PMTIMER available to calibrate the TSC frequency. The decision can be
    overruled by adding "hpet=force" on the kernel command line.
    
    Remove the related early PCI quirks for affected Ice Cake and Coffin Lake
    systems as they are not longer required. That should also cover all
    other systems, i.e. Tiger Rag and newer generations, which are most
    likely affected by this as well.
    
    Fixes: Yet another hardware trainwreck
    Reported-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
    Cc: stable@vger.kernel.org
    Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e9ec1c65da98c293f75d83755dfa5e03075a6d0
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Mon Oct 4 00:34:23 2021 +0200

    x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n
    
    commit 3958b9c34c2729597e182cc606cc43942fd19f7c upstream.
    
    Commit
    
      3c73b81a9164 ("x86/entry, selftests: Further improve user entry sanity checks")
    
    added a warning if AC is set when in the kernel.
    
    Commit
    
      662a0221893a3d ("x86/entry: Fix AC assertion")
    
    changed the warning to only fire if the CPU supports SMAP.
    
    However, the warning can still trigger on a machine that supports SMAP
    but where it's disabled in the kernel config and when running the
    syscall_nt selftest, for example:
    
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 49 at irqentry_enter_from_user_mode
      CPU: 0 PID: 49 Comm: init Tainted: G                T 5.15.0-rc4+ #98 e6202628ee053b4f310759978284bd8bb0ce6905
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
      RIP: 0010:irqentry_enter_from_user_mode
      ...
      Call Trace:
       ? irqentry_enter
       ? exc_general_protection
       ? asm_exc_general_protection
       ? asm_exc_general_protectio
    
    IS_ENABLED(CONFIG_X86_SMAP) could be added to the warning condition, but
    even this would not be enough in case SMAP is disabled at boot time with
    the "nosmap" parameter.
    
    To be consistent with "nosmap" behaviour, clear X86_FEATURE_SMAP when
    !CONFIG_X86_SMAP.
    
    Found using entry-fuzz + satrandconfig.
    
     [ bp: Massage commit message. ]
    
    Fixes: 3c73b81a9164 ("x86/entry, selftests: Further improve user entry sanity checks")
    Fixes: 662a0221893a ("x86/entry: Fix AC assertion")
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20211003223423.8666-1-vegard.nossum@oracle.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ba3e3026f4fb0d8c4e673a26e7f1e185e2c8d1f
Author: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Date:   Tue Aug 3 13:35:23 2021 +0200

    x86/entry: Correct reference to intended CONFIG_64_BIT
    
    commit 2c861f2b859385e9eaa6e464a8a7435b5a6bf564 upstream.
    
    Commit in Fixes adds a condition with IS_ENABLED(CONFIG_64_BIT),
    but the intended config item is called CONFIG_64BIT, as defined in
    arch/x86/Kconfig.
    
    Fortunately, scripts/checkkconfigsymbols.py warns:
    
    64_BIT
    Referencing files: arch/x86/include/asm/entry-common.h
    
    Correct the reference to the intended config symbol.
    
    Fixes: 662a0221893a ("x86/entry: Fix AC assertion")
    Suggested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20210803113531.30720-2-lukas.bulwahn@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0723d4f8b179de7c4a45b11ef8a885b353fc31d7
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Oct 6 18:33:52 2021 +0200

    x86/fpu: Restore the masking out of reserved MXCSR bits
    
    commit d298b03506d3e161f7492c440babb0bfae35e650 upstream.
    
    Ser Olmy reported a boot failure:
    
      init[1] bad frame in sigreturn frame:(ptrval) ip:b7c9fbe6 sp:bf933310 orax:ffffffff \
              in libc-2.33.so[b7bed000+156000]
      Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      CPU: 0 PID: 1 Comm: init Tainted: G        W         5.14.9 #1
      Hardware name: Hewlett-Packard HP PC/HP Board, BIOS  JD.00.06 12/06/2001
      Call Trace:
       dump_stack_lvl
       dump_stack
       panic
       do_exit.cold
       do_group_exit
       get_signal
       arch_do_signal_or_restart
       ? force_sig_info_to_task
       ? force_sig
       exit_to_user_mode_prepare
       syscall_exit_to_user_mode
       do_int80_syscall_32
       entry_INT80_32
    
    on an old 32-bit Intel CPU:
    
      vendor_id       : GenuineIntel
      cpu family      : 6
      model           : 6
      model name      : Celeron (Mendocino)
      stepping        : 5
      microcode       : 0x3
    
    Ser bisected the problem to the commit in Fixes.
    
    tglx suggested reverting the rejection of invalid MXCSR values which
    this commit introduced and replacing it with what the old code did -
    simply masking them out to zero.
    
    Further debugging confirmed his suggestion:
    
      fpu->state.fxsave.mxcsr: 0xb7be13b4, mxcsr_feature_mask: 0xffbf
      WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/signal.c:384 __fpu_restore_sig+0x51f/0x540
    
    so restore the original behavior only for 32-bit kernels where you have
    ancient machines with buggy hardware. For 32-bit programs on 64-bit
    kernels, user space which supplies wrong MXCSR values is considered
    malicious so fail the sigframe restoration there.
    
    Fixes: 6f9866a166cd ("x86/fpu/signal: Let xrstor handle the features to init")
    Reported-by: Ser Olmy <ser.olmy@protonmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Tested-by: Ser Olmy <ser.olmy@protonmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/YVtA67jImg3KlBTw@zn.tnic
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44976b5cb6af93c4ecb37e95665b3b16255ea8c8
Author: Tom Lendacky <thomas.lendacky@amd.com>
Date:   Thu Sep 30 23:42:01 2021 -0500

    x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0]
    
    commit 06f2ac3d4219bbbfd93d79e01966a42053084f11 upstream.
    
    After returning from a VMGEXIT NAE event, SW_EXITINFO1[31:0] is checked
    for a value of 1, which indicates an error and that SW_EXITINFO2
    contains exception information. However, future versions of the GHCB
    specification may define new values for SW_EXITINFO1[31:0], so really
    any non-zero value should be treated as an error.
    
    Fixes: 597cfe48212a ("x86/boot/compressed/64: Setup a GHCB-based VC Exception handler")
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org> # 5.10+
    Link: https://lkml.kernel.org/r/efc772af831e9e7f517f0439b13b41f56bad8784.1633063321.git.thomas.lendacky@amd.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6665c1c5770fd351382c94bf206486c1d2cd160a
Author: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Date:   Tue Aug 3 13:35:25 2021 +0200

    x86/Kconfig: Correct reference to MWINCHIP3D
    
    commit 225bac2dc5d192e55f2c50123ee539b1edf8a411 upstream.
    
    Commit in Fixes intended to exclude the Winchip series and referred to
    CONFIG_WINCHIP3D, but the config symbol is called CONFIG_MWINCHIP3D.
    
    Hence, scripts/checkkconfigsymbols.py warns:
    
    WINCHIP3D
    Referencing files: arch/x86/Kconfig
    
    Correct the reference to the intended config symbol.
    
    Fixes: 69b8d3fcabdc ("x86/Kconfig: Exclude i586-class CPUs lacking PAE support from the HIGHMEM64G Kconfig group")
    Suggested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20210803113531.30720-4-lukas.bulwahn@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d4092c101255b40a60c653eb309a28b235114a7
Author: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Date:   Tue Aug 3 13:35:24 2021 +0200

    x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI
    
    commit 4758fd801f919b8b9acad78d2e49a195ec2be46b upstream.
    
    The refactoring in the commit in Fixes introduced an ifdef
    CONFIG_OLPC_XO1_5_SCI, however the config symbol is actually called
    "CONFIG_OLPC_XO15_SCI".
    
    Fortunately, ./scripts/checkkconfigsymbols.py warns:
    
    OLPC_XO1_5_SCI
    Referencing files: arch/x86/platform/olpc/olpc.c
    
    Correct this ifdef condition to the intended config symbol.
    
    Fixes: ec9964b48033 ("Platform: OLPC: Move EC-specific functionality out from x86")
    Suggested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20210803113531.30720-3-lukas.bulwahn@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ba6e4551011675872dc61911e1f29caf77fa073
Author: Mahesh Salgaonkar <mahesh@linux.ibm.com>
Date:   Mon Sep 20 22:03:26 2021 +0530

    pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init
    
    [ Upstream commit eb8257a12192f43ffd41bd90932c39dade958042 ]
    
    On pseries LPAR when an empty slot is assigned to partition OR in single
    LPAR mode, kdump kernel crashes during issuing PHB reset.
    
    In the kdump scenario, we traverse all PHBs and issue reset using the
    pe_config_addr of the first child device present under each PHB. However
    the code assumes that none of the PHB slots can be empty and uses
    list_first_entry() to get the first child device under the PHB. Since
    list_first_entry() expects the list to be non-empty, it returns an
    invalid pci_dn entry and ends up accessing NULL phb pointer under
    pci_dn->phb causing kdump kernel crash.
    
    This patch fixes the below kdump kernel crash by skipping empty slots:
    
      audit: initializing netlink subsys (disabled)
      thermal_sys: Registered thermal governor 'fair_share'
      thermal_sys: Registered thermal governor 'step_wise'
      cpuidle: using governor menu
      pstore: Registered nvram as persistent store backend
      Issue PHB reset ...
      audit: type=2000 audit(1631267818.000:1): state=initialized audit_enabled=0 res=1
      BUG: Kernel NULL pointer dereference on read at 0x00000268
      Faulting instruction address: 0xc000000008101fb0
      Oops: Kernel access of bad area, sig: 7 [#1]
      LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA pSeries
      Modules linked in:
      CPU: 7 PID: 1 Comm: swapper/7 Not tainted 5.14.0 #1
      NIP:  c000000008101fb0 LR: c000000009284ccc CTR: c000000008029d70
      REGS: c00000001161b840 TRAP: 0300   Not tainted  (5.14.0)
      MSR:  8000000002009033 <SF,VEC,EE,ME,IR,DR,RI,LE>  CR: 28000224  XER: 20040002
      CFAR: c000000008101f0c DAR: 0000000000000268 DSISR: 00080000 IRQMASK: 0
      ...
      NIP pseries_eeh_get_pe_config_addr+0x100/0x1b0
      LR  __machine_initcall_pseries_eeh_pseries_init+0x2cc/0x350
      Call Trace:
        0xc00000001161bb80 (unreliable)
        __machine_initcall_pseries_eeh_pseries_init+0x2cc/0x350
        do_one_initcall+0x60/0x2d0
        kernel_init_freeable+0x350/0x3f8
        kernel_init+0x3c/0x17c
        ret_from_kernel_thread+0x5c/0x64
    
    Fixes: 5a090f7c363fd ("powerpc/pseries: PCIE PHB reset")
    Signed-off-by: Mahesh Salgaonkar <mahesh@linux.ibm.com>
    [mpe: Tweak wording and trim oops]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/163215558252.413351.8600189949820258982.stgit@jupiter
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit da0cb12f19838eec245d135b6d59f3fcfe1fa7d0
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Wed Sep 15 16:12:24 2021 +0200

    powerpc/32s: Fix kuap_kernel_restore()
    
    [ Upstream commit d93f9e23744b7bf11a98b2ddb091d129482ae179 ]
    
    At interrupt exit, kuap_kernel_restore() calls kuap_unlock() with the
    value contained in regs->kuap. However, when regs->kuap contains
    0xffffffff it means that KUAP was not unlocked so calling kuap_unlock()
    is unrelevant and results in jeopardising the contents of kernel space
    segment registers.
    
    So check that regs->kuap doesn't contain KUAP_NONE before calling
    kuap_unlock(). In the meantime it also means that if KUAP has not
    been correcly locked back at interrupt exit, it must be locked
    before continuing. This is done by checking the content of
    current->thread.kuap which was returned by kuap_get_and_assert_locked()
    
    Fixes: 16132529cee5 ("powerpc/32s: Rework Kernel Userspace Access Protection")
    Reported-by: Stan Johnson <userm57@yahoo.com>
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/0d0c4d0f050a637052287c09ba521bad960a2790.1631715131.git.christophe.leroy@csgroup.eu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d7a8e38999fbd6910516e44cb43f9f4317e54f73
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Oct 5 00:56:42 2021 +1000

    powerpc/64s: Fix unrecoverable MCE calling async handler from NMI
    
    [ Upstream commit f08fb25bc66986b0952724530a640d9970fa52c1 ]
    
    The machine check handler is not considered NMI on 64s. The early
    handler is the true NMI handler, and then it schedules the
    machine_check_exception handler to run when interrupts are enabled.
    
    This works fine except the case of an unrecoverable MCE, where the true
    NMI is taken when MSR[RI] is clear, it can not recover, so it calls
    machine_check_exception directly so something might be done about it.
    
    Calling an async handler from NMI context can result in irq state and
    other things getting corrupted. This can also trigger the BUG at
      arch/powerpc/include/asm/interrupt.h:168
      BUG_ON(!arch_irq_disabled_regs(regs) && !(regs->msr & MSR_EE));
    
    Fix this by making an _async version of the handler which is called
    in the normal case, and a NMI version that is called for unrecoverable
    interrupts.
    
    Fixes: 2b43dd7653cc ("powerpc/64: enable MSR[EE] in irq replay pt_regs")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Tested-by: Cédric Le Goater <clg@kaod.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211004145642.1331214-6-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22ee1f15a72e50fae65ea3df9461e8c2d4e3cc1b
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Oct 5 00:56:39 2021 +1000

    powerpc/traps: do not enable irqs in _exception
    
    [ Upstream commit d0afd44c05f8f4e4c91487c02d43c87a31552462 ]
    
    _exception can be called by machine check handlers when the MCE hits
    user code (e.g., pseries and powernv). This will enable local irqs
    because, which is a dicey thing to do in NMI or hard irq context.
    
    This seemed to worked out okay because a userspace MCE can basically be
    treated like a synchronous interrupt (after async / imprecise MCEs are
    filtered out). Since NMI and hard irq handlers have started growing
    nmi_enter / irq_enter, and more irq state sanity checks, this has
    started to cause problems (or at least trigger warnings).
    
    The Fixes tag to the commit which introduced this rather than try to
    work out exactly which commit was the first that could possibly cause a
    problem because that may be difficult to prove.
    
    Fixes: 9f2f79e3a3c1 ("powerpc: Disable interrupts in 64-bit kernel FP and vector faults")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211004145642.1331214-3-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c835b3d1d6362b4a4ebb192da7e7fd27a0a45d01
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Tue Oct 5 00:56:38 2021 +1000

    powerpc/64s: fix program check interrupt emergency stack path
    
    [ Upstream commit 3e607dc4df180b72a38e75030cb0f94d12808712 ]
    
    Emergency stack path was jumping into a 3: label inside the
    __GEN_COMMON_BODY macro for the normal path after it had finished,
    rather than jumping over it. By a small miracle this is the correct
    place to build up a new interrupt frame with the existing stack
    pointer, so things basically worked okay with an added weird looking
    700 trap frame on top (which had the wrong ->nip so it didn't decode
    bug messages either).
    
    Fix this by avoiding using numeric labels when jumping over non-trivial
    macros.
    
    Before:
    
     LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA PowerNV
     Modules linked in:
     CPU: 0 PID: 88 Comm: sh Not tainted 5.15.0-rc2-00034-ge057cdade6e5 #2637
     NIP:  7265677368657265 LR: c00000000006c0c8 CTR: c0000000000097f0
     REGS: c0000000fffb3a50 TRAP: 0700   Not tainted
     MSR:  9000000000021031 <SF,HV,ME,IR,DR,LE>  CR: 00000700  XER: 20040000
     CFAR: c0000000000098b0 IRQMASK: 0
     GPR00: c00000000006c964 c0000000fffb3cf0 c000000001513800 0000000000000000
     GPR04: 0000000048ab0778 0000000042000000 0000000000000000 0000000000001299
     GPR08: 000001e447c718ec 0000000022424282 0000000000002710 c00000000006bee8
     GPR12: 9000000000009033 c0000000016b0000 00000000000000b0 0000000000000001
     GPR16: 0000000000000000 0000000000000002 0000000000000000 0000000000000ff8
     GPR20: 0000000000001fff 0000000000000007 0000000000000080 00007fff89d90158
     GPR24: 0000000002000000 0000000002000000 0000000000000255 0000000000000300
     GPR28: c000000001270000 0000000042000000 0000000048ab0778 c000000080647e80
     NIP [7265677368657265] 0x7265677368657265
     LR [c00000000006c0c8] ___do_page_fault+0x3f8/0xb10
     Call Trace:
     [c0000000fffb3cf0] [c00000000000bdac] soft_nmi_common+0x13c/0x1d0 (unreliable)
     --- interrupt: 700 at decrementer_common_virt+0xb8/0x230
     NIP:  c0000000000098b8 LR: c00000000006c0c8 CTR: c0000000000097f0
     REGS: c0000000fffb3d60 TRAP: 0700   Not tainted
     MSR:  9000000000021031 <SF,HV,ME,IR,DR,LE>  CR: 22424282  XER: 20040000
     CFAR: c0000000000098b0 IRQMASK: 0
     GPR00: c00000000006c964 0000000000002400 c000000001513800 0000000000000000
     GPR04: 0000000048ab0778 0000000042000000 0000000000000000 0000000000001299
     GPR08: 000001e447c718ec 0000000022424282 0000000000002710 c00000000006bee8
     GPR12: 9000000000009033 c0000000016b0000 00000000000000b0 0000000000000001
     GPR16: 0000000000000000 0000000000000002 0000000000000000 0000000000000ff8
     GPR20: 0000000000001fff 0000000000000007 0000000000000080 00007fff89d90158
     GPR24: 0000000002000000 0000000002000000 0000000000000255 0000000000000300
     GPR28: c000000001270000 0000000042000000 0000000048ab0778 c000000080647e80
     NIP [c0000000000098b8] decrementer_common_virt+0xb8/0x230
     LR [c00000000006c0c8] ___do_page_fault+0x3f8/0xb10
     --- interrupt: 700
     Instruction dump:
     XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
     XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
     ---[ end trace 6d28218e0cc3c949 ]---
    
    After:
    
     ------------[ cut here ]------------
     kernel BUG at arch/powerpc/kernel/exceptions-64s.S:491!
     Oops: Exception in kernel mode, sig: 5 [#1]
     LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA PowerNV
     Modules linked in:
     CPU: 0 PID: 88 Comm: login Not tainted 5.15.0-rc2-00034-ge057cdade6e5-dirty #2638
     NIP:  c0000000000098b8 LR: c00000000006bf04 CTR: c0000000000097f0
     REGS: c0000000fffb3d60 TRAP: 0700   Not tainted
     MSR:  9000000000021031 <SF,HV,ME,IR,DR,LE>  CR: 24482227  XER: 00040000
     CFAR: c0000000000098b0 IRQMASK: 0
     GPR00: c00000000006bf04 0000000000002400 c000000001513800 c000000001271868
     GPR04: 00000000100f0d29 0000000042000000 0000000000000007 0000000000000009
     GPR08: 00000000100f0d29 0000000024482227 0000000000002710 c000000000181b3c
     GPR12: 9000000000009033 c0000000016b0000 00000000100f0d29 c000000005b22f00
     GPR16: 00000000ffff0000 0000000000000001 0000000000000009 00000000100eed90
     GPR20: 00000000100eed90 0000000010000000 000000001000a49c 00000000100f1430
     GPR24: c000000001271868 0000000002000000 0000000000000215 0000000000000300
     GPR28: c000000001271800 0000000042000000 00000000100f0d29 c000000080647860
     NIP [c0000000000098b8] decrementer_common_virt+0xb8/0x230
     LR [c00000000006bf04] ___do_page_fault+0x234/0xb10
     Call Trace:
     Instruction dump:
     4182000c 39400001 48000008 894d0932 714a0001 39400008 408225fc 718a4000
     7c2a0b78 3821fcf0 41c20008 e82d0910 <0981fcf0> f92101a0 f9610170 f9810178
     ---[ end trace a5dbd1f5ea4ccc51 ]---
    
    Fixes: 0a882e28468f4 ("powerpc/64s/exception: remove bad stack branch")
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20211004145642.1331214-2-npiggin@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6b77166ffee77ef955a13cee26dc37a651e7ab5e
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:29 2021 +0530

    powerpc/bpf ppc32: Fix BPF_SUB when imm == 0x80000000
    
    [ Upstream commit 548b762763b885b81850db676258df47c55dd5f9 ]
    
    Special case handling of the smallest 32-bit negative number for BPF_SUB.
    
    Fixes: 51c66ad849a703 ("powerpc/bpf: Implement extended BPF on PPC32")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/7135360a0cdf70adedbccf9863128b8daef18764.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8601d47e87a0f254e3544255af448d6d5a91f77
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:28 2021 +0530

    powerpc/bpf ppc32: Do not emit zero extend instruction for 64-bit BPF_END
    
    [ Upstream commit 48164fccdff6d5cc11308126c050bd25a329df25 ]
    
    Suppress emitting zero extend instruction for 64-bit BPF_END_FROM_[L|B]E
    operation.
    
    Fixes: 51c66ad849a703 ("powerpc/bpf: Implement extended BPF on PPC32")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/b4e3c3546121315a8e2059b19a1bda84971816e4.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 491976e521c190b5ecb6d7f14c972167395f02a4
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:27 2021 +0530

    powerpc/bpf ppc32: Fix JMP32_JSET_K
    
    [ Upstream commit e8278d44443207bb6609c7b064073f353e6f4978 ]
    
    'andi' only takes an unsigned 16-bit value. Correct the imm range used
    when emitting andi.
    
    Fixes: 51c66ad849a703 ("powerpc/bpf: Implement extended BPF on PPC32")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/b94489f52831305ec15aca4dd04a3527236be7e8.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9a3e91f94473b2ef9799eb009e6bfc5c2bee0739
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:26 2021 +0530

    powerpc/bpf ppc32: Fix ALU32 BPF_ARSH operation
    
    [ Upstream commit c9b8da77f22d28348d1f89a6c4d3fec102e9b1c4 ]
    
    Correct the destination register used for ALU32 BPF_ARSH operation.
    
    Fixes: 51c66ad849a703 ("powerpc/bpf: Implement extended BPF on PPC32")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/6d24c1f9e79b6f61f5135eaf2ea1e8bcd4dac87b.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 096d4c941f0e236ae35ecae9ca75cb3248cb4df8
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:23 2021 +0530

    powerpc/bpf: Fix BPF_SUB when imm == 0x80000000
    
    [ Upstream commit 5855c4c1f415ca3ba1046e77c0b3d3dfc96c9025 ]
    
    We aren't handling subtraction involving an immediate value of
    0x80000000 properly. Fix the same.
    
    Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    [mpe: Fold in fix from Naveen to use imm <= 32768]
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/fc4b1276eb10761fd7ce0814c8dd089da2815251.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2d7781883b3eef87fe749fa13b23ac2bf3f19e7f
Author: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Date:   Wed Oct 6 01:55:22 2021 +0530

    powerpc/bpf: Fix BPF_MOD when imm == 1
    
    [ Upstream commit 8bbc9d822421d9ac8ff9ed26a3713c9afc69d6c8 ]
    
    Only ignore the operation if dividing by 1.
    
    Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF")
    Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Tested-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
    Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Acked-by: Song Liu <songliubraving@fb.com>
    Acked-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/c674ca18c3046885602caebb326213731c675d06.1633464148.git.naveen.n.rao@linux.vnet.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7ce57ca9407dd257915b56acf970e80b6f04515
Author: Joe Lawrence <joe.lawrence@redhat.com>
Date:   Sun Aug 22 18:50:36 2021 -0400

    objtool: Make .altinstructions section entry size consistent
    
    [ Upstream commit dc02368164bd0ec603e3f5b3dd8252744a667b8a ]
    
    Commit e31694e0a7a7 ("objtool: Don't make .altinstructions writable")
    aligned objtool-created and kernel-created .altinstructions section
    flags, but there remains a minor discrepency in their use of a section
    entry size: objtool sets one while the kernel build does not.
    
    While sh_entsize of sizeof(struct alt_instr) seems intuitive, this small
    deviation can cause failures with external tooling (kpatch-build).
    
    Fix this by creating new .altinstructions sections with sh_entsize of 0
    and then later updating sec->sh_size as alternatives are added to the
    section.  An added benefit is avoiding the data descriptor and buffer
    created by elf_create_section(), but previously unused by
    elf_add_alternative().
    
    Fixes: 9bc0bb50727c ("objtool/x86: Rewrite retpoline thunk calls")
    Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Link: https://lore.kernel.org/r/20210822225037.54620-2-joe.lawrence@redhat.com
    Cc: Andy Lavr <andy.lavr@gmail.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: x86@kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 039a68957f818c30575729d09da837a2593d0fb6
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Mon Oct 4 10:07:50 2021 -0700

    objtool: Remove reloc symbol type checks in get_alt_entry()
    
    [ Upstream commit 4d8b35968bbf9e42b6b202eedb510e2c82ad8b38 ]
    
    Converting a special section's relocation reference to a symbol is
    straightforward.  No need for objtool to complain that it doesn't know
    how to handle it.  Just handle it.
    
    This fixes the following warning:
    
      arch/x86/kvm/emulate.o: warning: objtool: __ex_table+0x4: don't know how to handle reloc symbol type: kvm_fastop_exception
    
    Fixes: 24ff65257375 ("objtool: Teach get_alt_entry() about more relocation types")
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Link: https://lore.kernel.org/r/feadbc3dfb3440d973580fad8d3db873cbfe1694.1633367242.git.jpoimboe@redhat.com
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: x86@kernel.org
    Cc: Miroslav Benes <mbenes@suse.cz>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1642f51ac0d4f2b55d5748094c49ff8f7191b93c
Author: Mike Christie <michael.christie@oracle.com>
Date:   Mon Oct 4 16:06:08 2021 -0500

    scsi: iscsi: Fix iscsi_task use after free
    
    [ Upstream commit 258aad75c62146453d03028a44f2f1590d58e1f6 ]
    
    Commit d39df158518c ("scsi: iscsi: Have abort handler get ref to conn")
    added iscsi_get_conn()/iscsi_put_conn() calls during abort handling but
    then also changed the handling of the case where we detect an already
    completed task where we now end up doing a goto to the common put/cleanup
    code. This results in a iscsi_task use after free, because the common
    cleanup code will do a put on the iscsi_task.
    
    This reverts the goto and moves the iscsi_get_conn() to after we've checked
    if the iscsi_task is valid.
    
    Link: https://lore.kernel.org/r/20211004210608.9962-1-michael.christie@oracle.com
    Fixes: d39df158518c ("scsi: iscsi: Have abort handler get ref to conn")
    Signed-off-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 412754da783d0279f8b9adcf9934a1d76b977a0a
Author: Palmer Dabbelt <palmerdabbelt@google.com>
Date:   Sat Oct 2 17:21:20 2021 -0700

    RISC-V: Include clone3() on rv32
    
    [ Upstream commit 59a4e0d5511ba61353ea9a4efdb1b86c23ecf134 ]
    
    As far as I can tell this should be enabled on rv32 as well, I'm not
    sure why it's rv64-only.  checksyscalls is complaining about our lack of
    clone3() on rv32.
    
    Fixes: 56ac5e213933 ("riscv: enable sys_clone3 syscall for rv64")
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf63b49349cc308429cbeba08c416801145e853d
Author: Vadim Pasternak <vadimp@nvidia.com>
Date:   Mon Aug 23 17:45:02 2021 +0300

    i2c: mlxcpld: Modify register setting for 400KHz frequency
    
    [ Upstream commit fa1049135c15b4930ce7ea757a81b1b78908f304 ]
    
    Change setting for 400KHz frequency support by more accurate value.
    
    Fixes: 66b0c2846ba8 ("i2c: mlxcpld: Add support for I2C bus frequency setting")
    Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3655a19345192ec8e8c55c1eb29f738f029854f5
Author: Vadim Pasternak <vadimp@nvidia.com>
Date:   Mon Aug 23 17:45:01 2021 +0300

    i2c: mlxcpld: Fix criteria for frequency setting
    
    [ Upstream commit 52f57396c75acd77ebcdf3d20aed24ed248e9f79 ]
    
    Value for getting frequency capability wrongly has been taken from
    register offset instead of register value.
    
    Fixes: 66b0c2846ba8 ("i2c: mlxcpld: Add support for I2C bus frequency setting")
    Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d590a410e472417a22336c7c37685bfb38e801f2
Author: Tiezhu Yang <yangtiezhu@loongson.cn>
Date:   Mon Sep 27 15:06:14 2021 +0800

    bpf, s390: Fix potential memory leak about jit_data
    
    [ Upstream commit 686cb8b9f6b46787f035afe8fbd132a74e6b1bdd ]
    
    Make sure to free jit_data through kfree() in the error path.
    
    Fixes: 1c8f9b91c456 ("bpf: s390: add JIT support for multi-function programs")
    Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
    Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
    Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f344ad3060c4cb9cb2b26e671405e04f28966d7a
Author: Tong Tiangen <tongtiangen@huawei.com>
Date:   Wed Sep 1 02:46:21 2021 +0000

    riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable
    
    [ Upstream commit 8bb0ab3ae7a4dbe6cf32deb830cf2bdbf5736867 ]
    
    riscv architectures relying on mmap_sem for write in their
    arch_setup_additional_pages. If the waiting task gets killed by the oom
    killer it would block oom_reaper from asynchronous address space reclaim
    and reduce the chances of timely OOM resolving.  Wait for the lock in
    the killable mode and return with EINTR if the task got killed while
    waiting.
    
    Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
    Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Fixes: 76d2a0493a17 ("RISC-V: Init and Halt Code")
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8b60c1139c7912cf68a20638e9a480971c1b3d0
Author: Tong Tiangen <tongtiangen@huawei.com>
Date:   Wed Sep 1 02:46:20 2021 +0000

    riscv/vdso: Move vdso data page up front
    
    [ Upstream commit 78a743cd82a35ca0724179fc22834f06a2151fc2 ]
    
    As commit 601255ae3c98 ("arm64: vdso: move data page before code pages"), the
    same issue exists on riscv, testcase is shown below, make sure that vdso.so is
    bigger than page size,
    
      struct timespec tp;
      clock_gettime(5, &tp);
      printf("tv_sec: %ld, tv_nsec: %ld\n", tp.tv_sec, tp.tv_nsec);
    
    without this patch, test result : tv_sec: 0, tv_nsec: 0
       with this patch, test result : tv_sec: 1629271537, tv_nsec: 748000000
    
    Move the vdso data page in front of the VDSO area to fix the issue.
    
    Fixes: ad5d1122b82fb ("riscv: use vDSO common flow to reduce the latency of the time-related functions")
    Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
    Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 309fd6f1e7cfab072bfee0dafabb74649890aacc
Author: Tong Tiangen <tongtiangen@huawei.com>
Date:   Wed Sep 1 02:46:19 2021 +0000

    riscv/vdso: Refactor asm/vdso.h
    
    [ Upstream commit bb4a23c994aebcd96c567a0be8e964d516bd4a61 ]
    
    The asm/vdso.h will be included in vdso.lds.S in the next patch, the
    following cleanup is needed to avoid syntax error:
    
     1.the declaration of sys_riscv_flush_icache() is moved into asm/syscall.h.
     2.the definition of struct vdso_data is moved into kernel/vdso.c.
     2.the definition of VDSO_SYMBOL is placed under "#ifndef __ASSEMBLY__".
    
    Also remove the redundant linux/types.h include.
    
    Signed-off-by: Tong Tiangen <tongtiangen@huawei.com>
    Reviewed-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ff26f96fe0a26c9dca942b667699a1f56f2888a1
Author: Palmer Dabbelt <palmerdabbelt@google.com>
Date:   Wed Aug 25 22:52:45 2021 -0700

    RISC-V: Fix VDSO build for !MMU
    
    [ Upstream commit a290f510a178830a01bfc06e66a54bbe4ece5d2a ]
    
    We don't have a VDSO for the !MMU configurations, so don't try to build
    one.
    
    Fixes: fde9c59aebaf ("riscv: explicitly use symbol offsets for VDSO")
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3631280713464ab9078bde9e6467f244f897c204
Author: Saleem Abdulrasool <abdulras@google.com>
Date:   Wed Aug 4 17:32:14 2021 +0000

    riscv: explicitly use symbol offsets for VDSO
    
    [ Upstream commit fde9c59aebafb91caeed816cc510b56f14aa63ae ]
    
    The current implementation of the `__rt_sigaction` reference computed an
    absolute offset relative to the mapped base of the VDSO.  While this can
    be handled in the medlow model, the medany model cannot handle this as
    it is meant to be position independent.  The current implementation
    relied on the BFD linker relaxing the PC-relative relocation into an
    absolute relocation as it was a near-zero address allowing it to be
    referenced relative to `zero`.
    
    We now extract the offsets and create a generated header allowing the
    build with LLVM and lld to succeed as we no longer depend on the linker
    rewriting address references near zero.  This change was largely
    modelled after the ARM64 target which does something similar.
    
    Signed-off-by: Saleem Abdulrasool <abdulras@google.com>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26e7025ef25a6419cbaea647e3f47d48a2219137
Author: Kewei Xu <kewei.xu@mediatek.com>
Date:   Fri Sep 17 18:14:14 2021 +0800

    i2c: mediatek: Add OFFSET_EXT_CONF setting back
    
    [ Upstream commit 3bce7703c7ba648bd9e174dc1413f422b7998833 ]
    
    In the commit be5ce0e97cc7 ("i2c: mediatek: Add i2c ac-timing adjust
    support"), we miss setting OFFSET_EXT_CONF register if
    i2c->dev_comp->timing_adjust is false, now add it back.
    
    Fixes: be5ce0e97cc7 ("i2c: mediatek: Add i2c ac-timing adjust support")
    Signed-off-by: Kewei Xu <kewei.xu@mediatek.com>
    Reviewed-by: Qii Wang <qii.wang@mediatek.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 90f1077c9184ec2ae9989e4642f211263f301694
Author: Jamie Iles <quic_jiles@quicinc.com>
Date:   Wed Sep 22 17:57:18 2021 +0100

    i2c: acpi: fix resource leak in reconfiguration device addition
    
    [ Upstream commit 6558b646ce1c2a872fe1c2c7cb116f05a2c1950f ]
    
    acpi_i2c_find_adapter_by_handle() calls bus_find_device() which takes a
    reference on the adapter which is never released which will result in a
    reference count leak and render the adapter unremovable.  Make sure to
    put the adapter after creating the client in the same manner that we do
    for OF.
    
    Fixes: 525e6fabeae2 ("i2c / ACPI: add support for ACPI reconfigure notifications")
    Signed-off-by: Jamie Iles <quic_jiles@quicinc.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    [wsa: fixed title]
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d40c4da7318f73583b7b4b7892ddd83c919bf3e3
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Thu Sep 30 13:44:54 2021 +1000

    powerpc/iommu: Report the correct most efficient DMA mask for PCI devices
    
    [ Upstream commit 23c216b335d1fbd716076e8263b54a714ea3cf0e ]
    
    According to dma-api.rst, the dma_get_required_mask() helper should return
    "the mask that the platform requires to operate efficiently". Which in
    the case of PPC64 means the bypass mask and not a mask from an IOMMU table
    which is shorter and slower to use due to map/unmap operations (especially
    expensive on "pseries").
    
    However the existing implementation ignores the possibility of bypassing
    and returns the IOMMU table mask on the pseries platform which makes some
    drivers (mpt3sas is one example) choose 32bit DMA even though bypass is
    supported. The powernv platform sort of handles it by having a bigger
    default window with a mask >=40 but it only works as drivers choose
    63/64bit if the required mask is >32 which is rather pointless.
    
    This reintroduces the bypass capability check to let drivers make
    a better choice of the DMA mask.
    
    Fixes: f1565c24b596 ("powerpc: use the generic dma_ops_bypass mode")
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210930034454.95794-1-aik@ozlabs.ru
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 272b85c2fdb2a65cf1670856578189396ce0f154
Author: Mike Manning <mvrmanning@gmail.com>
Date:   Tue Oct 5 14:03:42 2021 +0100

    net: prefer socket bound to interface when not in VRF
    
    [ Upstream commit 8d6c414cd2fb74aa6812e9bfec6178f8246c4f3a ]
    
    The commit 6da5b0f027a8 ("net: ensure unbound datagram socket to be
    chosen when not in a VRF") modified compute_score() so that a device
    match is always made, not just in the case of an l3mdev skb, then
    increments the score also for unbound sockets. This ensures that
    sockets bound to an l3mdev are never selected when not in a VRF.
    But as unbound and bound sockets are now scored equally, this results
    in the last opened socket being selected if there are matches in the
    default VRF for an unbound socket and a socket bound to a dev that is
    not an l3mdev. However, handling prior to this commit was to always
    select the bound socket in this case. Reinstate this handling by
    incrementing the score only for bound sockets. The required isolation
    due to choosing between an unbound socket and a socket bound to an
    l3mdev remains in place due to the device match always being made.
    The same approach is taken for compute_score() for stream sockets.
    
    Fixes: 6da5b0f027a8 ("net: ensure unbound datagram socket to be chosen when not in a VRF")
    Fixes: e78190581aff ("net: ensure unbound stream socket to be chosen when not in a VRF")
    Signed-off-by: Mike Manning <mmanning@vyatta.att-mail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/cf0a8523-b362-1edf-ee78-eef63cbbb428@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8d2a1e7fb90c912714b6c5900f883c3f95e89471
Author: Stefan Assmann <sassmann@kpanic.de>
Date:   Tue Aug 24 12:06:39 2021 +0200

    iavf: fix double unlock of crit_lock
    
    [ Upstream commit 54ee39439acd9f8b161703c6ad4f4e1835585277 ]
    
    The crit_lock mutex could be unlocked twice as reported here
    https://lists.osuosl.org/pipermail/intel-wired-lan/Week-of-Mon-20210823/025525.html
    
    Remove the superfluous unlock. Technically the problem was already
    present before 5ac49f3c2702 as that commit only replaced the locking
    primitive, but no functional change.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Fixes: 5ac49f3c2702 ("iavf: use mutexes for locking of critical sections")
    Fixes: bac8486116b0 ("iavf: Refactor the watchdog state machine")
    Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 75099439209d3cda439a1d9b00d19a50f0066fef
Author: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
Date:   Fri Sep 24 11:40:41 2021 +0200

    i40e: Fix freeing of uninitialized misc IRQ vector
    
    [ Upstream commit 2e5a20573a926302b233b0c2e1077f5debc7ab2e ]
    
    When VSI set up failed in i40e_probe() as part of PF switch set up
    driver was trying to free misc IRQ vectors in
    i40e_clear_interrupt_scheme and produced a kernel Oops:
    
       Trying to free already-free IRQ 266
       WARNING: CPU: 0 PID: 5 at kernel/irq/manage.c:1731 __free_irq+0x9a/0x300
       Workqueue: events work_for_cpu_fn
       RIP: 0010:__free_irq+0x9a/0x300
       Call Trace:
       ? synchronize_irq+0x3a/0xa0
       free_irq+0x2e/0x60
       i40e_clear_interrupt_scheme+0x53/0x190 [i40e]
       i40e_probe.part.108+0x134b/0x1a40 [i40e]
       ? kmem_cache_alloc+0x158/0x1c0
       ? acpi_ut_update_ref_count.part.1+0x8e/0x345
       ? acpi_ut_update_object_reference+0x15e/0x1e2
       ? strstr+0x21/0x70
       ? irq_get_irq_data+0xa/0x20
       ? mp_check_pin_attr+0x13/0xc0
       ? irq_get_irq_data+0xa/0x20
       ? mp_map_pin_to_irq+0xd3/0x2f0
       ? acpi_register_gsi_ioapic+0x93/0x170
       ? pci_conf1_read+0xa4/0x100
       ? pci_bus_read_config_word+0x49/0x70
       ? do_pci_enable_device+0xcc/0x100
       local_pci_probe+0x41/0x90
       work_for_cpu_fn+0x16/0x20
       process_one_work+0x1a7/0x360
       worker_thread+0x1cf/0x390
       ? create_worker+0x1a0/0x1a0
       kthread+0x112/0x130
       ? kthread_flush_work_fn+0x10/0x10
       ret_from_fork+0x1f/0x40
    
    The problem is that at that point misc IRQ vectors
    were not allocated yet and we get a call trace
    that driver is trying to free already free IRQ vectors.
    
    Add a check in i40e_clear_interrupt_scheme for __I40E_MISC_IRQ_REQUESTED
    PF state before calling i40e_free_misc_vector. This state is set only if
    misc IRQ vectors were properly initialized.
    
    Fixes: c17401a1dd21 ("i40e: use separate state bit for miscellaneous IRQ setup")
    Reported-by: PJ Waskiewicz <pwaskiewicz@jumptrading.com>
    Signed-off-by: Sylwester Dziedziuch <sylwesterx.dziedziuch@intel.com>
    Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
    Tested-by: Dave Switzer <david.switzer@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d6db5bcd1817b0dad6519a995459a85988e58ea4
Author: Jiri Benc <jbenc@redhat.com>
Date:   Tue Sep 14 10:54:42 2021 +0200

    i40e: fix endless loop under rtnl
    
    [ Upstream commit 857b6c6f665cca9828396d9743faf37fd09e9ac3 ]
    
    The loop in i40e_get_capabilities can never end. The problem is that
    although i40e_aq_discover_capabilities returns with an error if there's
    a firmware problem, the returned error is not checked. There is a check for
    pf->hw.aq.asq_last_status but that value is set to I40E_AQ_RC_OK on most
    firmware problems.
    
    When i40e_aq_discover_capabilities encounters a firmware problem, it will
    encounter the same problem on its next invocation. As the result, the loop
    becomes endless. We hit this with I40E_ERR_ADMIN_QUEUE_TIMEOUT but looking
    at the code, it can happen with a range of other firmware errors.
    
    I don't know what the correct behavior should be: whether the firmware
    should be retried a few times, or whether pf->hw.aq.asq_last_status should
    be always set to the encountered firmware error (but then it would be
    pointless and can be just replaced by the i40e_aq_discover_capabilities
    return value). However, the current behavior with an endless loop under the
    rtnl mutex(!) is unacceptable and Intel has not submitted a fix, although we
    explained the bug to them 7 months ago.
    
    This may not be the best possible fix but it's better than hanging the whole
    system on a firmware bug.
    
    Fixes: 56a62fc86895 ("i40e: init code and hardware support")
    Tested-by: Stefan Assmann <sassmann@redhat.com>
    Signed-off-by: Jiri Benc <jbenc@redhat.com>
    Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: Dave Switzer <david.switzer@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1fad5d7f75f7f49d9b4f821228abcfe6a80abfbd
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 5 18:01:38 2021 -0700

    gve: report 64bit tx_bytes counter from gve_handle_report_stats()
    
    [ Upstream commit 17c37d748f2b122a95b6d0524d410302ff89a2b1 ]
    
    Each tx queue maintains a 64bit counter for bytes, there is
    no reason to truncate this to 32bit (or this has not been
    documented)
    
    Fixes: 24aeb56f2d38 ("gve: Add Gvnic stats AQ command and ethtool show/set-priv-flags.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Yangchun Fu <yangchun@google.com>
    Cc: Kuo Zhao <kuozhao@google.com>
    Cc: David Awogbemila <awogbemila@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bcf4f5e4d33db4ccece3b9835d4bbbf0a8b53f69
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 5 17:30:30 2021 -0700

    gve: fix gve_get_stats()
    
    [ Upstream commit 2f57d4975fa027eabd35fdf23a49f8222ef3abf2 ]
    
    gve_get_stats() can report wrong numbers if/when u64_stats_fetch_retry()
    returns true.
    
    What is needed here is to sample values in temporary variables,
    and only use them after each loop is ended.
    
    Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Catherine Sullivan <csully@google.com>
    Cc: Sagi Shahar <sagis@google.com>
    Cc: Jon Olson <jonolson@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Luigi Rizzo <lrizzo@google.com>
    Cc: Jeroen de Borst <jeroendb@google.com>
    Cc: Tao Liu <xliutaox@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f4479f3bc861a5f3865a537066080c1ec4949c39
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Oct 5 14:04:17 2021 -0700

    rtnetlink: fix if_nlmsg_stats_size() under estimation
    
    [ Upstream commit d34367991933d28bd7331f67a759be9a8c474014 ]
    
    rtnl_fill_statsinfo() is filling skb with one mandatory if_stats_msg structure.
    
    nlmsg_put(skb, pid, seq, type, sizeof(struct if_stats_msg), flags);
    
    But if_nlmsg_stats_size() never considered the needed storage.
    
    This bug did not show up because alloc_skb(X) allocates skb with
    extra tailroom, because of added alignments. This could very well
    be changed in the future to have deterministic behavior.
    
    Fixes: 10c9ead9f3c6 ("rtnetlink: add new RTM_GETSTATS message to dump link stats")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Roopa Prabhu <roopa@nvidia.com>
    Acked-by: Roopa Prabhu <roopa@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f5cfed82e0f38cf0e6101f4193c154aab9a709ef
Author: Catherine Sullivan <csully@google.com>
Date:   Tue Oct 5 19:42:21 2021 -0700

    gve: Properly handle errors in gve_assign_qpl
    
    [ Upstream commit d4b111fda69a01e0a7439d05993f5dad567c93aa ]
    
    Ignored errors would result in crash.
    
    Fixes: ede3fcf5ec67f ("gve: Add support for raw addressing to the rx path")
    Signed-off-by: Catherine Sullivan <csully@google.com>
    Signed-off-by: Jeroen de Borst <jeroendb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2044137a268a50c479027703f1c516aa155196d9
Author: Tao Liu <xliutaox@google.com>
Date:   Tue Oct 5 19:42:20 2021 -0700

    gve: Avoid freeing NULL pointer
    
    [ Upstream commit 922aa9bcac92b3ab6a423526a8e785b35a60b441 ]
    
    Prevent possible crashes when cleaning up after unsuccessful
    initializations.
    
    Fixes: 893ce44df5658 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
    Signed-off-by: Tao Liu <xliutaox@google.com>
    Signed-off-by: Catherine Sully <csully@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e8df2cada215ccdceaaad382d766de0eacecb58
Author: Catherine Sullivan <csully@google.com>
Date:   Tue Oct 5 19:42:19 2021 -0700

    gve: Correct available tx qpl check
    
    [ Upstream commit d03477ee10f4bc35d3573cf1823814378ef2dca2 ]
    
    The qpl_map_size is rounded up to a multiple of sizeof(long), but the
    number of qpls doesn't have to be.
    
    Fixes: f5cedc84a30d2 ("gve: Add transmit and receive support")
    Signed-off-by: Catherine Sullivan <csully@google.com>
    Signed-off-by: Jeroen de Borst <jeroendb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bb23ade18ad7b9e8fc42fa1a91d35f67543ec9ec
Author: Wong Vee Khee <vee.khee.wong@linux.intel.com>
Date:   Tue Oct 5 19:51:00 2021 +0800

    net: stmmac: trigger PCS EEE to turn off on link down
    
    [ Upstream commit d4aeaed80b0ebb020fadf2073b23462928dbdc17 ]
    
    The current implementation enable PCS EEE feature in the event of link
    up, but PCS EEE feature is not disabled on link down.
    
    This patch makes sure PCE EEE feature is disabled on link down.
    
    Fixes: 656ed8b015f1 ("net: stmmac: fix EEE init issue when paired with EEE capable PHYs")
    Signed-off-by: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 940ee87907f080876d4e9e6a3b8cdf92421a5f1b
Author: Wong Vee Khee <vee.khee.wong@linux.intel.com>
Date:   Tue Oct 5 19:50:59 2021 +0800

    net: pcs: xpcs: fix incorrect steps on disable EEE
    
    [ Upstream commit 590df78bc7d1d0425196a8e11ce6676d7023fb26 ]
    
    When Energy-Efficient Ethernet(EEE) is disable from the MAC side,
    we need to clear the DW_VR_MII_EEE_TRN_LPI bit of DW_VR_MII_EEE_MCTRL1
    register.
    
    Fixes: 7617af3d1a5e ("net: pcs: Introducing support for DWC xpcs Energy Efficient Ethernet")
    Cc: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com>
    Signed-off-by: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88c3610045ca6e699331b6bb5c095c5565f30721
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Sat Sep 11 15:50:23 2021 +0800

    drm/nouveau/debugfs: fix file release memory leak
    
    [ Upstream commit f5a8703a9c418c6fc54eb772712dfe7641e3991c ]
    
    When using single_open() for opening, single_release() should be
    called, otherwise the 'op' allocated in single_open() will be leaked.
    
    Fixes: 6e9fc177399f ("drm/nouveau/debugfs: add copy of sysfs pstate interface ported to debugfs")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210911075023.3969054-2-yangyingliang@huawei.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b4e9fc14973a94ac0520f19b3633493ae13c912
Author: Yang Yingliang <yangyingliang@huawei.com>
Date:   Sat Sep 11 15:50:22 2021 +0800

    drm/nouveau/kms/nv50-: fix file release memory leak
    
    [ Upstream commit 0b3d4945cc7e7ea1acd52cb06dfa83bfe265b6d5 ]
    
    When using single_open() for opening, single_release() should be
    called, otherwise the 'op' allocated in single_open() will be leaked.
    
    Fixes: 12885ecbfe62 ("drm/nouveau/kms/nvd9-: Add CRC support")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210911075023.3969054-1-yangyingliang@huawei.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 548f2ff8ea5e0ce767ae3418d1ec5308990be87d
Author: Jeremy Cline <jcline@redhat.com>
Date:   Wed Dec 2 19:02:20 2020 -0500

    drm/nouveau: avoid a use-after-free when BO init fails
    
    [ Upstream commit bcf34aa5082ee2343574bc3f4d1c126030913e54 ]
    
    nouveau_bo_init() is backed by ttm_bo_init() and ferries its return code
    back to the caller. On failures, ttm_bo_init() invokes the provided
    destructor which should de-initialize and free the memory.
    
    Thus, when nouveau_bo_init() returns an error the gem object has already
    been released and the memory freed by nouveau_bo_del_ttm().
    
    Fixes: 019cbd4a4feb ("drm/nouveau: Initialize GEM object before TTM object")
    Cc: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Jeremy Cline <jcline@redhat.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201203000220.18238-1-jcline@redhat.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23514c752f9bc53f02ea34a0ad1e3a636cc02865
Author: Mark Brown <broonie@kernel.org>
Date:   Tue Sep 21 22:21:02 2021 +0100

    video: fbdev: gbefb: Only instantiate device when built for IP32
    
    [ Upstream commit 11b8e2bb986d23157e82e267fb8cc6b281dfdee9 ]
    
    The gbefb driver not only registers a driver but also the device for that
    driver. This is all well and good when run on the IP32 machines that are
    supported by the driver but since the driver supports building with
    COMPILE_TEST we might also be building on other platforms which do not have
    this hardware and will crash instantiating the driver. Add an IS_ENABLED()
    check so we compile out the device registration if we don't have the Kconfig
    option for the machine enabled.
    
    Fixes: 552ccf6b259d290c0c ("video: fbdev: gbefb: add COMPILE_TEST support")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210921212102.30803-1-broonie@kernel.org
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae7a72cd325cbd4ea999c539a806ff635d436ce6
Author: Christophe Branchereau <cbranchereau@gmail.com>
Date:   Tue Sep 14 11:27:16 2021 +0200

    drm/panel: abt-y030xx067a: yellow tint fix
    
    [ Upstream commit 413e8d06ad896dae9bbc6f97b0abea5eae5495f1 ]
    
    The previous parameters caused an unbalanced yellow tint.
    
    Fixes: 7467389bdafb ("drm/panel: Add ABT Y030XX067A 3.0" 320x480 panel")
    Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    [Paul: Add Fixes: tag, and fix case and punctuation in commit message]
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210914092716.2370039-1-cbranchereau@gmail.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e6b90dcda29b632212b973556704470d58b93588
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Tue Sep 21 19:07:35 2021 +1000

    drm/nouveau/fifo/ga102: initialise chid on return from channel creation
    
    [ Upstream commit 0689ea432a85ad1a108f47c3d90b6feae322c7f9 ]
    
    Turns out caller isn't zero-initialised after-all.
    
    Fixes: 49b2dfc08182 ("drm/nouveau/ga102-: support ttm buffer moves via copy engine")
    Reported-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210921090735.247236-1-skeggsb@gmail.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8228b3b3b5a221f65a1d0a73292d9e91da451b6d
Author: Jernej Skrabec <jernej.skrabec@gmail.com>
Date:   Wed Sep 15 19:58:36 2021 +0200

    drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup
    
    [ Upstream commit c64c8e04a12ed3e2238761e26cda78e72550dc98 ]
    
    Recent rework, which made HDMI PHY driver a platform device, inadvertely
    reversed clock setup order. HW is very touchy about it. Proper way is to
    handle controllers resets and clocks first and HDMI PHYs second.
    
    Currently, without this fix, first mode set completely fails (nothing on
    HDMI monitor) on H3 era PHYs. On H6, it still somehow work.
    
    Move HDMI PHY reset & clocks handling to sun8i_hdmi_phy_init() which
    will assure that code is executed after controllers reset & clocks are
    handled. Additionally, add sun8i_hdmi_phy_deinit() which will deinit
    them at controllers driver unload.
    
    Tested on A64, H3, H6 and R40.
    
    Fixes: 9bf3797796f5 ("drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device")
    Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210915175836.3158839-1-jernej.skrabec@gmail.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad0fca5a28b3441e60702f33a5f0640741e917ec
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed Sep 8 08:49:36 2021 +0300

    bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893
    
    [ Upstream commit b13a270ace2e4c70653aa1d1d0394c553905802f ]
    
    Commit 94f6345712b3 ("bus: ti-sysc: Implement quirk handling for
    CLKDM_NOAUTO") should have also added the quirk for dra7 dcan1 in
    addition to dcan2 for errata i893 handling.
    
    Let's also pass the quirk flag for legacy mode booting for if "ti,hwmods"
    dts property is used with related dcan hwmod data. This should be only
    needed if anybody needs to git bisect earlier stable trees though.
    
    Fixes: 94f6345712b3 ("bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 37e2d7fe11ae61fd78396066efe9ca88a5ecb5c1
Author: Like Xu <likexu@tencent.com>
Date:   Tue Sep 28 18:29:38 2021 +0800

    perf jevents: Free the sys_event_tables list after processing entries
    
    [ Upstream commit b94729919db2c6737501c36ea6526a36d5d63fa2 ]
    
    The compiler reports that free_sys_event_tables() is dead code.
    
    But according to the semantics, the "LIST_HEAD(sys_event_tables)" should
    also be released, just like we do with 'arch_std_events' in main().
    
    Fixes: e9d32c1bf0cd7a98 ("perf vendor events: Add support for arch standard events")
    Signed-off-by: Like Xu <likexu@tencent.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210928102938.69681-1-likexu@tencent.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72e9a1bf9b722628c28092e0c2cd8717edd201dc
Author: Guchun Chen <guchun.chen@amd.com>
Date:   Fri Oct 1 09:48:50 2021 +0800

    drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume
    
    [ Upstream commit 248b061689a40f4fed05252ee2c89f87cf26d7d8 ]
    
    In current code, when a PCI error state pci_channel_io_normal is detectd,
    it will report PCI_ERS_RESULT_CAN_RECOVER status to PCI driver, and PCI
    driver will continue the execution of PCI resume callback report_resume by
    pci_walk_bridge, and the callback will go into amdgpu_pci_resume
    finally, where write lock is releasd unconditionally without acquiring
    such lock first. In this case, a deadlock will happen when other threads
    start to acquire the read lock.
    
    To fix this, add a member in amdgpu_device strucutre to cache
    pci_channel_state, and only continue the execution in amdgpu_pci_resume
    when it's pci_channel_io_frozen.
    
    Fixes: c9a6b82f45e2 ("drm/amdgpu: Implement DPC recovery")
    Suggested-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
    Signed-off-by: Guchun Chen <guchun.chen@amd.com>
    Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7e5ce6029b627efb4a004746cfdc1eeff850e6eb
Author: Lang Yu <lang.yu@amd.com>
Date:   Wed Sep 29 14:54:39 2021 +0800

    drm/amdkfd: fix a potential ttm->sg memory leak
    
    [ Upstream commit b072ef1215aca33186e3a10109e872e528a9e516 ]
    
    Memory is allocated for ttm->sg by kmalloc in kfd_mem_dmamap_userptr,
    but isn't freed by kfree in kfd_mem_dmaunmap_userptr. Free it!
    
    Fixes: 264fb4d332f5 ("drm/amdgpu: Add multi-GPU DMA mapping helpers")
    
    Signed-off-by: Lang Yu <lang.yu@amd.com>
    Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50002489a20c9029e6603f950908e1879b82efff
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Wed Sep 22 22:09:33 2021 +0200

    ARM: defconfig: gemini: Restore framebuffer
    
    [ Upstream commit a6949059318a064880050c76a9d8fb070156385f ]
    
    The framebuffer is gone on the D-Link DIR-685, restore it.
    
    Fixes: f611b1e7624c ("drm: Avoid circular dependencies for CONFIG_FB")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: Kees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20210922200933.1825752-1-linus.walleij@linaro.org'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 942bde2caec2af3bb27a45f9b0edc461c6f82999
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 4 14:24:15 2021 -0700

    netlink: annotate data races around nlk->bound
    
    [ Upstream commit 7707a4d01a648e4c655101a469c956cb11273655 ]
    
    While existing code is correct, KCSAN is reporting
    a data-race in netlink_insert / netlink_sendmsg [1]
    
    It is correct to read nlk->bound without a lock, as netlink_autobind()
    will acquire all needed locks.
    
    [1]
    BUG: KCSAN: data-race in netlink_insert / netlink_sendmsg
    
    write to 0xffff8881031c8b30 of 1 bytes by task 18752 on cpu 0:
     netlink_insert+0x5cc/0x7f0 net/netlink/af_netlink.c:597
     netlink_autobind+0xa9/0x150 net/netlink/af_netlink.c:842
     netlink_sendmsg+0x479/0x7c0 net/netlink/af_netlink.c:1892
     sock_sendmsg_nosec net/socket.c:703 [inline]
     sock_sendmsg net/socket.c:723 [inline]
     ____sys_sendmsg+0x360/0x4d0 net/socket.c:2392
     ___sys_sendmsg net/socket.c:2446 [inline]
     __sys_sendmsg+0x1ed/0x270 net/socket.c:2475
     __do_sys_sendmsg net/socket.c:2484 [inline]
     __se_sys_sendmsg net/socket.c:2482 [inline]
     __x64_sys_sendmsg+0x42/0x50 net/socket.c:2482
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    read to 0xffff8881031c8b30 of 1 bytes by task 18751 on cpu 1:
     netlink_sendmsg+0x270/0x7c0 net/netlink/af_netlink.c:1891
     sock_sendmsg_nosec net/socket.c:703 [inline]
     sock_sendmsg net/socket.c:723 [inline]
     __sys_sendto+0x2a8/0x370 net/socket.c:2019
     __do_sys_sendto net/socket.c:2031 [inline]
     __se_sys_sendto net/socket.c:2027 [inline]
     __x64_sys_sendto+0x74/0x90 net/socket.c:2027
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x3d/0x90 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    value changed: 0x00 -> 0x01
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 18751 Comm: syz-executor.0 Not tainted 5.14.0-rc1-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Fixes: da314c9923fe ("netlink: Replace rhash_portid with bound")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 464be37f127bd9421ad5c6fce8aa0699619a68c0
Author: Wong Vee Khee <vee.khee.wong@linux.intel.com>
Date:   Tue Oct 5 11:45:21 2021 +0800

    net: pcs: xpcs: fix incorrect CL37 AN sequence
    
    [ Upstream commit e3cf002d5a4452f8adc5543df341cf96fd702fcf ]
    
    According to Synopsys DesignWare Cores Ethernet PCS databook, it is
    required to disable Clause 37 auto-negotiation by programming bit-12
    (AN_ENABLE) to 0 if it is already enabled, before programming various
    fields of VR_MII_AN_CTRL registers.
    
    After all these programming are done, it is then required to enable
    Clause 37 auto-negotiation by programming bit-12 (AN_ENABLE) to 1.
    
    Fixes: b97b5331b8ab ("net: pcs: add C37 SGMII AN support for intel mGbE controller")
    Cc: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: Wong Vee Khee <vee.khee.wong@linux.intel.com>
    Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6594158f24e1479af348f6d47ead535c0c579497
Author: Sean Anderson <sean.anderson@seco.com>
Date:   Mon Oct 4 17:50:02 2021 -0400

    net: sfp: Fix typo in state machine debug string
    
    [ Upstream commit 25a9da6641f1f66006e93ddbefee13a437efa8c0 ]
    
    The string should be "tx_disable" to match the state enum.
    
    Fixes: 4005a7cb4f55 ("net: phy: sftp: print debug message with text, not numbers")
    Signed-off-by: Sean Anderson <sean.anderson@seco.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7a1c1af341041221b3acb9d7036cc2b43e0efa75
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 4 12:55:22 2021 -0700

    net/sched: sch_taprio: properly cancel timer from taprio_destroy()
    
    [ Upstream commit a56d447f196fa9973c568f54c0d76d5391c3b0c0 ]
    
    There is a comment in qdisc_create() about us not calling ops->reset()
    in some cases.
    
    err_out4:
            /*
             * Any broken qdiscs that would require a ops->reset() here?
             * The qdisc was never in action so it shouldn't be necessary.
             */
    
    As taprio sets a timer before actually receiving a packet, we need
    to cancel it from ops->destroy, just in case ops->reset has not
    been called.
    
    syzbot reported:
    
    ODEBUG: free active (active state 0) object type: hrtimer hint: advance_sched+0x0/0x9a0 arch/x86/include/asm/atomic64_64.h:22
    WARNING: CPU: 0 PID: 8441 at lib/debugobjects.c:505 debug_print_object+0x16e/0x250 lib/debugobjects.c:505
    Modules linked in:
    CPU: 0 PID: 8441 Comm: syz-executor813 Not tainted 5.14.0-rc6-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:debug_print_object+0x16e/0x250 lib/debugobjects.c:505
    Code: ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 af 00 00 00 48 8b 14 dd e0 d3 e3 89 4c 89 ee 48 c7 c7 e0 c7 e3 89 e8 5b 86 11 05 <0f> 0b 83 05 85 03 92 09 01 48 83 c4 18 5b 5d 41 5c 41 5d 41 5e c3
    RSP: 0018:ffffc9000130f330 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000000
    RDX: ffff88802baeb880 RSI: ffffffff815d87b5 RDI: fffff52000261e58
    RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000
    R10: ffffffff815d25ee R11: 0000000000000000 R12: ffffffff898dd020
    R13: ffffffff89e3ce20 R14: ffffffff81653630 R15: dffffc0000000000
    FS:  0000000000f0d300(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007ffb64b3e000 CR3: 0000000036557000 CR4: 00000000001506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     __debug_check_no_obj_freed lib/debugobjects.c:987 [inline]
     debug_check_no_obj_freed+0x301/0x420 lib/debugobjects.c:1018
     slab_free_hook mm/slub.c:1603 [inline]
     slab_free_freelist_hook+0x171/0x240 mm/slub.c:1653
     slab_free mm/slub.c:3213 [inline]
     kfree+0xe4/0x540 mm/slub.c:4267
     qdisc_create+0xbcf/0x1320 net/sched/sch_api.c:1299
     tc_modify_qdisc+0x4c8/0x1a60 net/sched/sch_api.c:1663
     rtnetlink_rcv_msg+0x413/0xb80 net/core/rtnetlink.c:5571
     netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
     netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
     netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
     netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
     sock_sendmsg_nosec net/socket.c:704 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:724
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2403
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2457
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2486
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
    
    Fixes: 44d4775ca518 ("net/sched: sch_taprio: reset child qdiscs before freeing them")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Davide Caratti <dcaratti@redhat.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Acked-by: Davide Caratti <dcaratti@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba07883c780f36d93918c82c2aaf56ca5637da9f
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 4 18:05:08 2021 -0700

    net: bridge: fix under estimation in br_get_linkxstats_size()
    
    [ Upstream commit 0854a0513321cf70bea5fa483ebcaa983cc7c62e ]
    
    Commit de1799667b00 ("net: bridge: add STP xstats")
    added an additional nla_reserve_64bit() in br_fill_linkxstats(),
    but forgot to update br_get_linkxstats_size() accordingly.
    
    This can trigger the following in rtnl_stats_get()
    
            WARN_ON(err == -EMSGSIZE);
    
    Fixes: de1799667b00 ("net: bridge: add STP xstats")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Vivien Didelot <vivien.didelot@gmail.com>
    Cc: Nikolay Aleksandrov <nikolay@nvidia.com>
    Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit df7983fdbc835c3b30c257d553fbda4f336c7d6f
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Oct 4 18:05:07 2021 -0700

    net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size()
    
    [ Upstream commit dbe0b88064494b7bb6a9b2aa7e085b14a3112d44 ]
    
    bridge_fill_linkxstats() is using nla_reserve_64bit().
    
    We must use nla_total_size_64bit() instead of nla_total_size()
    for corresponding data structure.
    
    Fixes: 1080ab95e3c7 ("net: bridge: add support for IGMP/MLD stats and export them via netlink")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Nikolay Aleksandrov <nikolay@nvidia.com>
    Cc: Vivien Didelot <vivien.didelot@gmail.com>
    Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47afb35c4f8783d07c60c426402185782c990bf1
Author: David Howells <dhowells@redhat.com>
Date:   Thu Aug 12 23:08:54 2021 +0100

    afs: Fix afs_launder_page() to set correct start file position
    
    [ Upstream commit 5c0522484eb54b90f2e46a5db8d7a4ff3ff86e5d ]
    
    Fix afs_launder_page() to set the starting position of the StoreData RPC at
    the offset into the page at which the modified data starts instead of at
    the beginning of the page (the iov_iter is correctly offset).
    
    The offset got lost during the conversion to passing an iov_iter into
    afs_store_data().
    
    Changes:
    ver #2:
     - Use page_offset() rather than manually calculating it[1].
    
    Fixes: bd80d8a80e12 ("afs: Use ITER_XARRAY for writing")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/YST/0e92OdSH0zjg@casper.infradead.org/ [1]
    Link: https://lore.kernel.org/r/162880783179.3421678.7795105718190440134.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/162937512409.1449272.18441473411207824084.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/162981148752.1901565.3663780601682206026.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/163005741670.2472992.2073548908229887941.stgit@warthog.procyon.org.uk/ # v2
    Link: https://lore.kernel.org/r/163221839087.3143591.14278359695763025231.stgit@warthog.procyon.org.uk/ # v2
    Link: https://lore.kernel.org/r/163292980654.4004896.7134735179887998551.stgit@warthog.procyon.org.uk/ # v2
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2eb0a54400689ad04775c049c2b7a5de34c87342
Author: David Howells <dhowells@redhat.com>
Date:   Mon Jul 26 10:37:57 2021 +0100

    netfs: Fix READ/WRITE confusion when calling iov_iter_xarray()
    
    [ Upstream commit 330de47d14af0c3995db81cc03cf5ca683d94d81 ]
    
    Fix netfs_clear_unread() to pass READ to iov_iter_xarray() instead of WRITE
    (the flag is about the operation accessing the buffer, not what sort of
    access it is doing to the buffer).
    
    Fixes: 3d3c95046742 ("netfs: Provide readahead and readpage netfs helpers")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    cc: linux-cachefs@redhat.com
    cc: linux-afs@lists.infradead.org
    cc: ceph-devel@vger.kernel.org
    cc: linux-cifs@vger.kernel.org
    cc: linux-nfs@vger.kernel.org
    cc: v9fs-developer@lists.sourceforge.net
    cc: linux-fsdevel@vger.kernel.org
    cc: linux-mm@kvack.org
    Link: https://lore.kernel.org/r/162729351325.813557.9242842205308443901.stgit@warthog.procyon.org.uk/
    Link: https://lore.kernel.org/r/162886603464.3940407.3790841170414793899.stgit@warthog.procyon.org.uk
    Link: https://lore.kernel.org/r/163239074602.1243337.14154704004485867017.stgit@warthog.procyon.org.uk
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd4dcab5d20c9b9136d202913d531039b25eb9f5
Author: Lukasz Majczak <lma@semihalf.com>
Date:   Thu Sep 30 15:46:06 2021 +0200

    drm/i915/bdb: Fix version check
    
    [ Upstream commit fdddf8c3a477f77b3a623f220e78d45e89fc50d5 ]
    
    With patch "drm/i915/vbt: Fix backlight parsing for VBT 234+"
    the size of bdb_lfp_backlight_data structure has been increased,
    causing if-statement in the parse_lfp_backlight function
    that comapres this structure size to the one retrieved from BDB,
    always to fail for older revisions.
    This patch calculates expected size of the structure for a given
    BDB version and compares it with the value gathered from BDB.
    Tested on Chromebook Pixelbook (Nocturne) (reports bdb->version = 221)
    
    Fixes: d381baad29b4 ("drm/i915/vbt: Fix backlight parsing for VBT 234+")
    
    Tested-by: Lukasz Majczak <lma@semihalf.com>
    Signed-off-by: Lukasz Majczak <lma@semihalf.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210930134606.227234-1-lma@semihalf.com
    (cherry picked from commit 4378daf5d04eed59724e6d0e74755e17dce2e105)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e7c20e5166e3e4debb87bb12b5df89eec0daafe
Author: Imre Deak <imre.deak@intel.com>
Date:   Wed Sep 29 16:28:27 2021 +0300

    drm/i915/tc: Fix TypeC port init/resume time sanitization
    
    [ Upstream commit a532cde31de3cae6ed60e60d6f9379771f652809 ]
    
    Atm during driver loading and system resume TypeC ports are accessed
    before their HW/SW state is synced. Move the TypeC port sanitization to
    the encoder's sync_state hook to fix this.
    
    v2: Handle the encoder disabled case in gen11_dsi_sync_state() as well
        (Jose, Jani)
    
    Fixes: f9e76a6e68d3 ("drm/i915: Add an encoder hook to sanitize its state during init/resume")
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210929132833.2253961-1-imre.deak@intel.com
    (cherry picked from commit 7194dc998dfffca096c30b3cd39625158608992d)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 185e4eeac58e1612a162a317c706bff6fdfdcf88
Author: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
Date:   Tue Jun 15 16:26:13 2021 +0530

    drm/i915/jsl: Add W/A 1409054076 for JSL
    
    [ Upstream commit 544021e3f2aa3c4c6c5aabc58907e8bab69b3762 ]
    
    When pipe A is disabled and MIPI DSI is enabled on pipe B,
    the AMT KVMR feature will incorrectly see pipe A as enabled.
    Set 0x42080 bit 23=1 before enabling DSI on pipe B and leave
    it set while DSI is enabled on pipe B. No impact to setting
    it all the time.
    
    Changes since V5:
            - Added reviewed-by
            - Removed redundant braces and debug message format - Imre
    Changes since V4:
            - Modified function comment Wa_<number>:icl,jsl,ehl - Lucas
            - Modified debug message in sync state - Imre
    Changes since V3:
            - More meaningful name to workaround - Imre
            - Remove boolean check clear flag
            - Add WA_verify hook in dsi sync_state
    Changes since V2:
            - Used REG_BIT, ignored pipe A and used sw state check - Jani
            - Made function wrapper - Jani
    Changes since V1:
            - ./dim checkpatch errors addressed
    
    Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210615105613.851491-1-tejaskumarx.surendrakumar.upadhyay@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8eb67e815d5efa1f0a25b013cab5f698584b1e3e
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Sep 6 12:12:59 2021 +0800

    drm/i915/audio: Use BIOS provided value for RKL HDA link
    
    [ Upstream commit ffac30be2a06b2516b2ce2afa2dcb2cf8af65a52 ]
    
    Commit 989634fb49ad ("drm/i915/audio: set HDA link parameters in
    driver") makes HDMI audio on Lenovo P350 disappear.
    
    So in addition to TGL, extend the logic to RKL to use BIOS provided
    value to fix the regression.
    
    Fixes: 989634fb49ad ("drm/i915/audio: set HDA link parameters in driver")
    Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210906041300.508458-1-kai.heng.feng@canonical.com
    (cherry picked from commit c6b40ee330fe09b332715bb7ec1467e4fcbe2e65)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a23d12eeb1adb3b639e6c647292e9d8dcff08220
Author: Oleksij Rempel <linux@rempel-privat.de>
Date:   Tue Sep 28 15:49:40 2021 +0200

    ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence
    
    [ Upstream commit 783f3db030563f7bcdfe2d26428af98ea1699a8e ]
    
    Any pending interrupt can prevent entering standby based power off state.
    To avoid it, disable the GIC CPU interface.
    
    Fixes: 8148d2136002 ("ARM: imx6: register pm_power_off handler if "fsl,pmic-stby-poweroff" is set")
    Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94d64d44e41ad5423f6928f29ada631cd31acc4e
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Sep 24 14:35:12 2021 +0200

    dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value
    
    [ Upstream commit b2d70c0dbf2731a37d1c7bcc86ab2387954d5f56 ]
    
    make dtbs_check:
    
        arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dt.yaml: bridge@2c: reg:0:0: 45 was expected
    
    According to the datasheet, the I2C address can be either 0x2c or 0x2d,
    depending on the ADDR control input.
    
    Fixes: e3896e6dddf0b821 ("dt-bindings: drm/bridge: Document sn65dsi86 bridge bindings")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
    Link: https://lore.kernel.org/r/08f73c2aa0d4e580303357dfae107d084d962835.1632486753.git.geert+renesas@glider.be
    Signed-off-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b07494f81da2dc2c8f5f2f5075585c3146fd1a75
Author: Michael Walle <michael@walle.cc>
Date:   Wed Sep 15 22:22:59 2021 +0200

    arm64: dts: ls1028a: fix eSDHC2 node
    
    [ Upstream commit 8b94aa318aa746fbbc668d6b9b3ad812c835230c ]
    
    On the LS1028A this instance of the eSDHC controller is intended for
    either an eMMC or eSDIO card. It doesn't provide a card detect pin and
    its IO voltage is fixed at 1.8V.
    
    Remove the bogus broken-cd property, instead add the non-removable
    property. Fix the voltage-ranges property and set it to 1.8V only.
    
    Fixes: 491d3a3fc113 ("arm64: dts: ls1028a: Add esdhc node in dts")
    Signed-off-by: Michael Walle <michael@walle.cc>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26a949f2335b271145fa979dfdb7b8217b10efac
Author: Heiko Thiery <heiko.thiery@gmail.com>
Date:   Wed Sep 15 14:03:26 2021 +0200

    arm64: dts: imx8mm-kontron-n801x-som: do not allow to switch off buck2
    
    [ Upstream commit 9786cca4b477f2b2f9d573d474c929d87579b501 ]
    
    The buck2 output of the PMIC is the VDD core voltage of the cpu.
    Switching off this will poweroff the CPU. Add the 'regulator-always-on'
    property to avoid this.
    
    Fixes: 8668d8b2e67f ("arm64: dts: Add the Kontron i.MX8M Mini SoMs and baseboards")
    Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
    Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4350e1f61930aacd64ee0689afab8467f9f51d3e
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Fri Aug 20 17:29:50 2021 +0800

    arm64: dts: imx8: change the spi-nor tx
    
    [ Upstream commit 04aa946d57b20c40e541fb4ba2bcb390a22f404c ]
    
    Before commit 0e30f47232ab5 ("mtd: spi-nor: add support for DTR protocol"),
    for all PP command, it only support 1-1-1 mode, no matter the tx setting
    in dts. But after the upper commit, the logic change. It will choose
    the best mode(fastest mode) which flash device and spi-nor host controller
    both support.
    
    qspi and fspi host controller do not support read 1-4-4 mode. so need to
    set the tx to 1, let the common code finally select read 1-1-4 mode.
    
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Fixes: 0e30f47232ab ("mtd: spi-nor: add support for DTR protocol")
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 672285df5e0af051989624b0184fa6b1dd703704
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Fri Aug 20 17:29:49 2021 +0800

    ARM: dts: imx: change the spi-nor tx
    
    [ Upstream commit b2a4f4a302b83976ad0d2930abe0f38e6119a144 ]
    
    Before commit 0e30f47232ab5 ("mtd: spi-nor: add support for DTR protocol"),
    for all PP command, it only support 1-1-1 mode, no matter the tx setting
    in dts. But after the upper commit, the logic change. It will choose
    the best mode(fastest mode) which flash device and spi-nor host controller
    both support.
    
    Though the spi-nor device on imx6sx-sdb/imx6ul(l/z)-14x14-evk board
    do not support PP-1-4-4/PP-1-1-4, but if tx is 4 in dts file, it will also
    impact the read mode selection. For the spi-nor device on the upper mentioned
    boards, they support read 1-4-4 mode and read 1-1-4 mode according to the
    device internal sfdp register. But qspi host controller do not support
    read 1-4-4 mode. so need to set the tx to 1, let the common code finally
    select read 1-1-4 mode, PP-1-1-1 mode.
    
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Fixes: 0e30f47232ab ("mtd: spi-nor: add support for DTR protocol")
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit baa59a36ff1b02d7bf55e6a8e1418de13d8d5963
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Oct 1 19:20:33 2021 +0300

    ptp_pch: Load module automatically if ID matches
    
    [ Upstream commit 7cd8b1542a7ba0720c5a0a85ed414a122015228b ]
    
    The driver can't be loaded automatically because it misses
    module alias to be provided. Add corresponding MODULE_DEVICE_TABLE()
    call to the driver.
    
    Fixes: 863d08ece9bf ("supports eg20t ptp clock")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b5198c1e04164a3c177c1b00f39fc37d6a590e5
Author: Pali Rohár <pali@kernel.org>
Date:   Sat Oct 2 11:04:09 2021 +0200

    powerpc/fsl/dts: Fix phy-connection-type for fm1mac3
    
    [ Upstream commit eed183abc0d3b8adb64fd1363b7cea7986cd58d6 ]
    
    Property phy-connection-type contains invalid value "sgmii-2500" per scheme
    defined in file ethernet-controller.yaml.
    
    Correct phy-connection-type value should be "2500base-x".
    
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Fixes: 84e0f1c13806 ("powerpc/mpc85xx: Add MDIO bus muxing support to the board device tree(s)")
    Acked-by: Scott Wood <oss@buserror.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6d1e04d8f044e9e4d40338d2fb69662a8a9782f2
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Sun Sep 26 09:59:35 2021 +0200

    netfilter: nf_tables: honor NLM_F_CREATE and NLM_F_EXCL in event notification
    
    [ Upstream commit 6fb721cf781808ee2ca5e737fb0592cc68de3381 ]
    
    Include the NLM_F_CREATE and NLM_F_EXCL flags in netlink event
    notifications, otherwise userspace cannot distiguish between create and
    add commands.
    
    Fixes: 96518518cc41 ("netfilter: add nftables")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 96117e85b83b48ddd873c2cb9f3c3709987e8543
Author: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Date:   Thu Sep 30 09:57:41 2021 -0700

    MIPS: Revert "add support for buggy MT7621S core detection"
    
    [ Upstream commit 740da9d7ca4e25f5d87db9f80d75432681b61305 ]
    
    This reverts commit 6decd1aad15f56b169217789630a0098b496de0e. CPULAUNCH
    register is not set properly by some bootloaders, causing a regression
    until a bootloader change is made, which is hard if not impossible on
    some embedded devices. Revert the change until a more robust core
    detection mechanism that works on MT7621S routers such as Netgear R6220
    as well as platforms like Digi EX15 can be made.
    
    Link: https://lore.kernel.org/lkml/4d9e3b39-7caa-d372-5d7b-42dcec36fec7@kernel.org
    Fixes: 6decd1aad15f ("MIPS: add support for buggy MT7621S core detection")
    Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
    Acked-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
    Acked-by: Greg Ungerer <gerg@kernel.org>
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8efe947ea1eace444d78398a31469b30e47ae585
Author: Punit Agrawal <punitagrawal@gmail.com>
Date:   Wed Sep 29 22:50:49 2021 +0900

    net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices
    
    [ Upstream commit aec3f415f7244b7747a7952596971adb0df2f568 ]
    
    Commit 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings")
    while getting rid of a runtime PM warning ended up breaking ethernet
    on rk3399 based devices. By dropping an extra reference to the device,
    the commit ends up enabling suspend / resume of the ethernet device -
    which appears to be broken.
    
    While the issue with runtime pm is being investigated, partially
    revert commit 2d26f6e39afb to restore the network on rk3399.
    
    Fixes: 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings")
    Suggested-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Punit Agrawal <punitagrawal@gmail.com>
    Cc: Michael Riesch <michael.riesch@wolfvision.net>
    Tested-by: Heiko Stuebner <heiko@sntech.de>
    Link: https://lore.kernel.org/r/20210929135049.3426058-1-punitagrawal@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1325381177cf5eb6d4498e6b49c3e6cff4f349c
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Sep 30 15:53:30 2021 +0300

    net: mscc: ocelot: fix VCAP filters remaining active after being deleted
    
    [ Upstream commit 019d9329e7481cfaccbd8ed17b1e04ca76970f13 ]
    
    When ocelot_flower.c calls ocelot_vcap_filter_add(), the filter has a
    given filter->id.cookie. This filter is added to the block->rules list.
    
    However, when ocelot_flower.c calls ocelot_vcap_block_find_filter_by_id()
    which passes the cookie as argument, the filter is never found by
    filter->id.cookie when searching through the block->rules list.
    
    This is unsurprising, since the filter->id.cookie is an unsigned long,
    but the cookie argument provided to ocelot_vcap_block_find_filter_by_id()
    is a signed int, and the comparison fails.
    
    Fixes: 50c6cc5b9283 ("net: mscc: ocelot: store a namespaced VCAP filter ID")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20210930125330.2078625-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb58cd7991747b5e0b110c98c922d7b0e47a1f14
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Sep 30 14:22:39 2021 -0700

    net_sched: fix NULL deref in fifo_set_limit()
    
    [ Upstream commit 560ee196fe9e5037e5015e2cdb14b3aecb1cd7dc ]
    
    syzbot reported another NULL deref in fifo_set_limit() [1]
    
    I could repro the issue with :
    
    unshare -n
    tc qd add dev lo root handle 1:0 tbf limit 200000 burst 70000 rate 100Mbit
    tc qd replace dev lo parent 1:0 pfifo_fast
    tc qd change dev lo root handle 1:0 tbf limit 300000 burst 70000 rate 100Mbit
    
    pfifo_fast does not have a change() operation.
    Make fifo_set_limit() more robust about this.
    
    [1]
    BUG: kernel NULL pointer dereference, address: 0000000000000000
    PGD 1cf99067 P4D 1cf99067 PUD 7ca49067 PMD 0
    Oops: 0010 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 14443 Comm: syz-executor959 Not tainted 5.15.0-rc3-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:0x0
    Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
    RSP: 0018:ffffc9000e2f7310 EFLAGS: 00010246
    RAX: dffffc0000000000 RBX: ffffffff8d6ecc00 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff888024c27910 RDI: ffff888071e34000
    RBP: ffff888071e34000 R08: 0000000000000001 R09: ffffffff8fcfb947
    R10: 0000000000000001 R11: 0000000000000000 R12: ffff888024c27910
    R13: ffff888071e34018 R14: 0000000000000000 R15: ffff88801ef74800
    FS:  00007f321d897700(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: ffffffffffffffd6 CR3: 00000000722c3000 CR4: 00000000003506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     fifo_set_limit net/sched/sch_fifo.c:242 [inline]
     fifo_set_limit+0x198/0x210 net/sched/sch_fifo.c:227
     tbf_change+0x6ec/0x16d0 net/sched/sch_tbf.c:418
     qdisc_change net/sched/sch_api.c:1332 [inline]
     tc_modify_qdisc+0xd9a/0x1a60 net/sched/sch_api.c:1634
     rtnetlink_rcv_msg+0x413/0xb80 net/core/rtnetlink.c:5572
     netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2504
     netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
     netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1340
     netlink_sendmsg+0x86d/0xdb0 net/netlink/af_netlink.c:1929
     sock_sendmsg_nosec net/socket.c:704 [inline]
     sock_sendmsg+0xcf/0x120 net/socket.c:724
     ____sys_sendmsg+0x6e8/0x810 net/socket.c:2409
     ___sys_sendmsg+0xf3/0x170 net/socket.c:2463
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2492
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: fb0305ce1b03 ("net-sched: consolidate default fifo qdisc setup")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20210930212239.3430364-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e8e7504e09831c469b67d6dc11d9a72654bdb8c
Author: Andrii Nakryiko <andrii@kernel.org>
Date:   Fri Oct 1 11:59:10 2021 -0700

    libbpf: Fix memory leak in strset
    
    [ Upstream commit b0e875bac0fab3e7a7431c2eee36a8ccc0c712ac ]
    
    Free struct strset itself, not just its internal parts.
    
    Fixes: 90d76d3ececc ("libbpf: Extract internal set-of-strings datastructure APIs")
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Link: https://lore.kernel.org/bpf/20211001185910.86492-1-andrii@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 064c2616234a7394867c924b5c1303974f3a4f4d
Author: Pavel Skripkin <paskripkin@gmail.com>
Date:   Thu Sep 30 20:50:28 2021 +0300

    phy: mdio: fix memory leak
    
    [ Upstream commit ca6e11c337daf7925ff8a2aac8e84490a8691905 ]
    
    Syzbot reported memory leak in MDIO bus interface, the problem was in
    wrong state logic.
    
    MDIOBUS_ALLOCATED indicates 2 states:
            1. Bus is only allocated
            2. Bus allocated and __mdiobus_register() fails, but
               device_register() was called
    
    In case of device_register() has been called we should call put_device()
    to correctly free the memory allocated for this device, but mdiobus_free()
    calls just kfree(dev) in case of MDIOBUS_ALLOCATED state
    
    To avoid this behaviour we need to set bus->state to MDIOBUS_UNREGISTERED
    _before_ calling device_register(), because put_device() should be
    called even in case of device_register() failure.
    
    Link: https://lore.kernel.org/netdev/YVMRWNDZDUOvQjHL@shell.armlinux.org.uk/
    Fixes: 46abc02175b3 ("phylib: give mdio buses a device tree presence")
    Reported-and-tested-by: syzbot+398e7dc692ddbbb4cfec@syzkaller.appspotmail.com
    Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
    Link: https://lore.kernel.org/r/eceae1429fbf8fa5c73dd2a0d39d525aa905074d.1633024062.git.paskripkin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8b6cd17219c311525ceb4d6e6e2ab4b3c7c92c1c
Author: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Date:   Thu Sep 30 11:46:34 2021 +0530

    libbpf: Fix segfault in light skeleton for objects without BTF
    
    [ Upstream commit 4729445b47efebf089da4ccbcd1b116ffa2ad4af ]
    
    When fed an empty BPF object, bpftool gen skeleton -L crashes at
    btf__set_fd() since it assumes presence of obj->btf, however for
    the sequence below clang adds no .BTF section (hence no BTF).
    
    Reproducer:
    
      $ touch a.bpf.c
      $ clang -O2 -g -target bpf -c a.bpf.c
      $ bpftool gen skeleton -L a.bpf.o
      /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */
      /* THIS FILE IS AUTOGENERATED! */
    
      struct a_bpf {
            struct bpf_loader_ctx ctx;
      Segmentation fault (core dumped)
    
    The same occurs for files compiled without BTF info, i.e. without
    clang's -g flag.
    
    Fixes: 67234743736a (libbpf: Generate loader program out of BPF ELF file.)
    Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20210930061634.1840768-1-memxor@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ca78aa65bc1d259c758719b5d37f1f90e3cbe2c
Author: Lama Kayal <lkayal@nvidia.com>
Date:   Sun Aug 29 11:26:03 2021 +0300

    net/mlx5e: Fix the presented RQ index in PTP stats
    
    [ Upstream commit dd1979cf3c710398a9eeba4853b908fe16426814 ]
    
    PTP-RQ counters title format contains PTP-RQ identifier, which is
    mistakenly not passed to sprinft().
    This leads to unexpected garbage values instead.
    This patch fixes it.
    
    Before applying the patch:
    ethtool -S eth3 | grep ptp_rq
         ptp_rq15_packets: 0
         ptp_rq8_bytes: 0
         ptp_rq6_csum_complete: 0
         ptp_rq14_csum_complete_tail: 0
         ptp_rq3_csum_complete_tail_slow : 0
         ptp_rq9_csum_unnecessary: 0
         ptp_rq1_csum_unnecessary_inner: 0
         ptp_rq7_csum_none: 0
         ptp_rq10_xdp_drop: 0
         ptp_rq9_xdp_redirect: 0
         ptp_rq13_lro_packets: 0
         ptp_rq12_lro_bytes: 0
         ptp_rq10_ecn_mark: 0
         ptp_rq9_removed_vlan_packets: 0
         ptp_rq5_wqe_err: 0
         ptp_rq8_mpwqe_filler_cqes: 0
         ptp_rq2_mpwqe_filler_strides: 0
         ptp_rq5_oversize_pkts_sw_drop: 0
         ptp_rq6_buff_alloc_err: 0
         ptp_rq15_cqe_compress_blks: 0
         ptp_rq2_cqe_compress_pkts: 0
         ptp_rq2_cache_reuse: 0
         ptp_rq12_cache_full: 0
         ptp_rq11_cache_empty: 256
         ptp_rq12_cache_busy: 0
         ptp_rq11_cache_waive: 0
         ptp_rq12_congst_umr: 0
         ptp_rq11_arfs_err: 0
         ptp_rq9_recover: 0
    
    After applying the patch:
    ethtool -S eth3 | grep ptp_rq
         ptp_rq0_packets: 0
         ptp_rq0_bytes: 0
         ptp_rq0_csum_complete: 0
         ptp_rq0_csum_complete_tail: 0
         ptp_rq0_csum_complete_tail_slow : 0
         ptp_rq0_csum_unnecessary: 0
         ptp_rq0_csum_unnecessary_inner: 0
         ptp_rq0_csum_none: 0
         ptp_rq0_xdp_drop: 0
         ptp_rq0_xdp_redirect: 0
         ptp_rq0_lro_packets: 0
         ptp_rq0_lro_bytes: 0
         ptp_rq0_ecn_mark: 0
         ptp_rq0_removed_vlan_packets: 0
         ptp_rq0_wqe_err: 0
         ptp_rq0_mpwqe_filler_cqes: 0
         ptp_rq0_mpwqe_filler_strides: 0
         ptp_rq0_oversize_pkts_sw_drop: 0
         ptp_rq0_buff_alloc_err: 0
         ptp_rq0_cqe_compress_blks: 0
         ptp_rq0_cqe_compress_pkts: 0
         ptp_rq0_cache_reuse: 0
         ptp_rq0_cache_full: 0
         ptp_rq0_cache_empty: 256
         ptp_rq0_cache_busy: 0
         ptp_rq0_cache_waive: 0
         ptp_rq0_congst_umr: 0
         ptp_rq0_arfs_err: 0
         ptp_rq0_recover: 0
    
    Fixes: a28359e922c6 ("net/mlx5e: Add PTP-RX statistics")
    Signed-off-by: Lama Kayal <lkayal@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0b1de56a40edbd162a45f28bb4187f0e7d1325d
Author: Shay Drory <shayd@nvidia.com>
Date:   Tue Sep 14 10:13:02 2021 +0300

    net/mlx5: Fix setting number of EQs of SFs
    
    [ Upstream commit f88c4876347400a577598e06f1b230a7b19ee0e9 ]
    
    When setting number of completion EQs of the SF, consider number of
    online CPUs.
    Without this consideration, when number of online cpus are less than 8,
    unnecessary 8 completion EQs are allocated.
    
    Fixes: c36326d38d93 ("net/mlx5: Round-Robin EQs over IRQs")
    Signed-off-by: Shay Drory <shayd@nvidia.com>
    Reviewed-by: Parav Pandit <parav@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ef55400217fa8c86d1f4434b05551ce9c959df9
Author: Shay Drory <shayd@nvidia.com>
Date:   Thu Aug 19 16:01:28 2021 +0300

    net/mlx5: Fix length of irq_index in chars
    
    [ Upstream commit ac8b7d50ae4c3f5325c599f3d6e939ecef6a585a ]
    
    The maximum irq_index can be 2047, This means irq_name should have 4
    characters reserve for the irq_index. Hence, increase it to 4.
    
    Fixes: 3af26495a247 ("net/mlx5: Enlarge interrupt field in CREATE_EQ")
    Signed-off-by: Shay Drory <shayd@nvidia.com>
    Reviewed-by: Parav Pandit <parav@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1c4eaf49d5d98463a4dbb3a54bfe9311af3a2ac
Author: Aya Levin <ayal@nvidia.com>
Date:   Thu Sep 23 15:30:01 2021 +0300

    net/mlx5: Avoid generating event after PPS out in Real time mode
    
    [ Upstream commit 99b9a678b2e474756770900595cb09c94498bfca ]
    
    When in Real-time mode, HW clock is synced with the PTP daemon. Hence
    driver should not re-calibrate the next pulse (via MTPPSE repetitive
    events mechanism).
    
    This patch arms repetitive events only in free-running mode.
    
    Fixes: 432119de33d9 ("net/mlx5: Add cyc2time HW translation mode support")
    Signed-off-by: Aya Levin <ayal@nvidia.com>
    Reviewed-by: Eran Ben Elisha <eranbe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f3369d3e5e80700154a8578b0fa80ee4d821214
Author: Aya Levin <ayal@nvidia.com>
Date:   Thu Sep 23 16:56:09 2021 +0300

    net/mlx5: Force round second at 1PPS out start time
    
    [ Upstream commit 64728294703e77827cc31a1b164ca867400067f5 ]
    
    Allow configuration of 1PPS start time only with time-stamp representing
    a round second. Prior to this patch driver allowed setting of a
    non-round-second which is not supported by the device. Avoid unexpected
    behavior by restricting start-time configuration to a round-second.
    
    Fixes: 4272f9b88db9 ("net/mlx5e: Change 1PPS out scheme")
    Signed-off-by: Aya Levin <ayal@nvidia.com>
    Reviewed-by: Eran Ben Elisha <eranbe@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ea0b8ffff565af4ab888528012b4846cd70b0fef
Author: Moshe Shemesh <moshe@nvidia.com>
Date:   Thu Sep 23 17:57:47 2021 +0300

    net/mlx5: E-Switch, Fix double allocation of acl flow counter
    
    [ Upstream commit a586775f83bd729ad60b56352dbe067f4bb0beee ]
    
    Flow counter is allocated in eswitch legacy acl setting functions
    without checking if already allocated by previous setting. Add a check
    to avoid such double allocation.
    
    Fixes: 07bab9502641 ("net/mlx5: E-Switch, Refactor eswitch ingress acl codes")
    Fixes: ea651a86d468 ("net/mlx5: E-Switch, Refactor eswitch egress acl codes")
    Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
    Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d7954cedb9e6d69f0c739e48e67b13be94d4ecb5
Author: Tariq Toukan <tariqt@nvidia.com>
Date:   Thu Sep 2 10:33:32 2021 +0300

    net/mlx5e: Keep the value for maximum number of channels in-sync
    
    [ Upstream commit 9d758d4a3a039b9d7086d4759ed255b748713eee ]
    
    The value for maximum number of channels is first calculated based
    on the netdev's profile and current function resources (specifically,
    number of MSIX vectors, which depends among other things on the number
    of online cores in the system).
    This value is then used to calculate the netdev's number of rxqs/txqs.
    Once created (by alloc_etherdev_mqs), the number of netdev's rxqs/txqs
    is constant and we must not exceed it.
    
    To achieve this, keep the maximum number of channels in sync upon any
    netdevice re-attach.
    
    Use mlx5e_get_max_num_channels() for calculating the number of netdev's
    rxqs/txqs. After netdev is created, use mlx5e_calc_max_nch() (which
    coinsiders core device resources, profile, and netdev) to init or
    update priv->max_nch.
    
    Before this patch, the value of priv->max_nch might get out of sync,
    mistakenly allowing accesses to out-of-bounds objects, which would
    crash the system.
    
    Track the number of channels stats structures used in a separate
    field, as they are persistent to suspend/resume operations. All the
    collected stats of every channel index that ever existed should be
    preserved. They are reset only when struct mlx5e_priv is,
    in mlx5e_priv_cleanup(), which is part of the profile changing flow.
    
    There is no point anymore in blocking a profile change due to max_nch
    mismatch in mlx5e_netdev_change_profile(). Remove the limitation.
    
    Fixes: a1f240f18017 ("net/mlx5e: Adjust to max number of channles when re-attaching")
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Aya Levin <ayal@nvidia.com>
    Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 35460565138f1c214a1d5c6ac7fcff4ce6ed46e1
Author: Raed Salem <raeds@nvidia.com>
Date:   Thu Aug 26 17:07:17 2021 +0300

    net/mlx5e: IPSEC RX, enable checksum complete
    
    [ Upstream commit f9a10440f0b1f33faa792af26f4e9823a9b8b6a4 ]
    
    Currently in Rx data path IPsec crypto offloaded packets uses
    csum_none flag, so checksum is handled by the stack, this naturally
    have some performance/cpu utilization impact on such flows. As Nvidia
    NIC starting from ConnectX6DX provides checksum complete value out of
    the box also for such flows there is no sense in taking csum_none path,
    furthermore the stack (xfrm) have the method to handle checksum complete
    corrections for such flows i.e. IPsec trailer removal and consequently
    checksum value adjustment.
    
    Because of the above and in addition the ConnectX6DX is the first HW
    which supports IPsec crypto offload then it is safe to report csum
    complete for IPsec offloaded traffic.
    
    Fixes: b2ac7541e377 ("net/mlx5e: IPsec: Add Connect-X IPsec Rx data path offload")
    Signed-off-by: Raed Salem <raeds@nvidia.com>
    Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3a1ac1e368bedae2777d9a7cfdc65df4859f7e71
Author: Tatsuhiko Yasumatsu <th.yasumatsu@gmail.com>
Date:   Thu Sep 30 22:55:45 2021 +0900

    bpf: Fix integer overflow in prealloc_elems_and_freelist()
    
    [ Upstream commit 30e29a9a2bc6a4888335a6ede968b75cd329657a ]
    
    In prealloc_elems_and_freelist(), the multiplication to calculate the
    size passed to bpf_map_area_alloc() could lead to an integer overflow.
    As a result, out-of-bounds write could occur in pcpu_freelist_populate()
    as reported by KASAN:
    
    [...]
    [   16.968613] BUG: KASAN: slab-out-of-bounds in pcpu_freelist_populate+0xd9/0x100
    [   16.969408] Write of size 8 at addr ffff888104fc6ea0 by task crash/78
    [   16.970038]
    [   16.970195] CPU: 0 PID: 78 Comm: crash Not tainted 5.15.0-rc2+ #1
    [   16.970878] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
    [   16.972026] Call Trace:
    [   16.972306]  dump_stack_lvl+0x34/0x44
    [   16.972687]  print_address_description.constprop.0+0x21/0x140
    [   16.973297]  ? pcpu_freelist_populate+0xd9/0x100
    [   16.973777]  ? pcpu_freelist_populate+0xd9/0x100
    [   16.974257]  kasan_report.cold+0x7f/0x11b
    [   16.974681]  ? pcpu_freelist_populate+0xd9/0x100
    [   16.975190]  pcpu_freelist_populate+0xd9/0x100
    [   16.975669]  stack_map_alloc+0x209/0x2a0
    [   16.976106]  __sys_bpf+0xd83/0x2ce0
    [...]
    
    The possibility of this overflow was originally discussed in [0], but
    was overlooked.
    
    Fix the integer overflow by changing elem_size to u64 from u32.
    
      [0] https://lore.kernel.org/bpf/728b238e-a481-eb50-98e9-b0f430ab01e7@gmail.com/
    
    Fixes: 557c0c6e7df8 ("bpf: convert stackmap to pre-allocation")
    Signed-off-by: Tatsuhiko Yasumatsu <th.yasumatsu@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20210930135545.173698-1-th.yasumatsu@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0385744b240a3c1874ff1d11d32e69ba7e21b631
Author: Tony Lindgren <tony@atomide.com>
Date:   Thu Sep 30 11:30:03 2021 +0300

    soc: ti: omap-prm: Fix external abort for am335x pruss
    
    [ Upstream commit b232537074fcaf0c2837abbb217429c097bb7598 ]
    
    Starting with v5.15-rc1, we may now see some am335x beaglebone black
    device produce the following error on pruss probe:
    
    Unhandled fault: external abort on non-linefetch (0x1008) at 0xe0326000
    
    This has started with the enabling of pruss for am335x in the dts files.
    
    Turns out the is caused by the PRM reset handling not waiting for the
    reset bit to clear. To fix the issue, let's always wait for the reset
    bit to clear, even if there is a separate reset status register.
    
    We attempted to fix a similar issue for dra7 iva with a udelay() in
    commit effe89e40037 ("soc: ti: omap-prm: Fix occasional abort on reset
    deassert for dra7 iva"). There is no longer a need for the udelay()
    for dra7 iva reset either with the check added for reset bit clearing.
    
    Cc: Drew Fustini <pdp7pdp7@gmail.com>
    Cc: Grygorii Strashko <grygorii.strashko@ti.com>
    Cc: "H. Nikolaus Schaller" <hns@goldelico.com>
    Cc: Robert Nelson <robertcnelson@gmail.com>
    Cc: Yongqin Liu <yongqin.liu@linaro.org>
    Fixes: effe89e40037 ("soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva")
    Reported-by: Matti Vaittinen <mazziesaccount@gmail.com>
    Tested-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f419febd396e34d9d5f8c84c691b33072f4bc0c8
Author: Johan Almbladh <johan.almbladh@anyfinetworks.com>
Date:   Tue Sep 28 11:13:10 2021 +0200

    bpf, arm: Fix register clobbering in div/mod implementation
    
    [ Upstream commit 79e3445b38e0cab94264a3894c0c3d57c930b97e ]
    
    On ARM CPUs that lack div/mod instructions, ALU32 BPF_DIV and BPF_MOD are
    implemented using a call to a helper function. Before, the emitted code
    for those function calls failed to preserve caller-saved ARM registers.
    Since some of those registers happen to be mapped to BPF registers, it
    resulted in eBPF register values being overwritten.
    
    This patch emits code to push and pop the remaining caller-saved ARM
    registers r2-r3 into the stack during the div/mod function call. ARM
    registers r0-r1 are used as arguments and return value, and those were
    already saved and restored correctly.
    
    Fixes: 39c13c204bb1 ("arm: eBPF JIT compiler")
    Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34362a65c248302eab20ea0f8fa4afe9ca18fa8c
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Sat Sep 25 00:27:38 2021 +0200

    netfilter: nf_tables: reverse order in rule replacement expansion
    
    [ Upstream commit 2c964c558641a3bddaee5719c9e6d8805f777812 ]
    
    Deactivate old rule first, then append the new rule, so rule replacement
    notification via netlink first reports the deletion of the old rule with
    handle X in first place, then it adds the new rule (reusing the handle X
    of the replaced old rule).
    
    Note that the abort path releases the transaction that has been created
    by nft_delrule() on error.
    
    Fixes: ca08987885a1 ("netfilter: nf_tables: deactivate expressions in rule replecement routine")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0b1891aa588ae2aa5c7729317ccfc611389ffe06
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Tue Sep 21 00:37:03 2021 +0200

    netfilter: nf_tables: add position handle in event notification
    
    [ Upstream commit e189ae161dd784aa5d454b0832f818cacc0e131b ]
    
    Add position handle to allow to identify the rule location from netlink
    events. Otherwise, userspace cannot incrementally update a userspace
    cache through monitoring events.
    
    Skip handle dump if the rule has been either inserted (at the beginning
    of the ruleset) or appended (at the end of the ruleset), the
    NLM_F_APPEND netlink flag is sufficient in these two cases.
    
    Handle NLM_F_REPLACE as NLM_F_APPEND since the rule replacement
    expansion appends it after the specified rule handle.
    
    Fixes: 96518518cc41 ("netfilter: add nftables")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ece5c4bf601ca751d5524a9c5c8917723e9e5f2
Author: Florian Westphal <fw@strlen.de>
Date:   Thu Sep 23 16:44:34 2021 +0200

    netfilter: conntrack: fix boot failure with nf_conntrack.enable_hooks=1
    
    [ Upstream commit 339031bafe6b281cf2dcb8364217288b9fdab555 ]
    
    This is a revert of
    7b1957b049 ("netfilter: nf_defrag_ipv4: use net_generic infra")
    and a partial revert of
    8b0adbe3e3 ("netfilter: nf_defrag_ipv6: use net_generic infra").
    
    If conntrack is builtin and kernel is booted with:
    nf_conntrack.enable_hooks=1
    
    .... kernel will fail to boot due to a NULL deref in
    nf_defrag_ipv4_enable(): Its called before the ipv4 defrag initcall is
    made, so net_generic() returns NULL.
    
    To resolve this, move the user refcount back to struct net so calls
    to those functions are possible even before their initcalls have run.
    
    Fixes: 7b1957b04956 ("netfilter: nf_defrag_ipv4: use net_generic infra")
    Fixes: 8b0adbe3e38d ("netfilter: nf_defrag_ipv6: use net_generic infra").
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9039a859637031a12bf5bd38f9390db35fb7f91c
Author: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Date:   Fri Sep 24 15:21:54 2021 +0300

    iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15
    
    [ Upstream commit fe5c735d0d47b495be6753d6aea4f8f78c909a0a ]
    
    There is a Killer AX1650 2x2 Wi-Fi 6 and Bluetooth 5.1 wireless adapter
    found on Dell XPS 15 (9510) laptop, its configuration was present on
    Linux v5.7, however accidentally it has been removed from the list of
    supported devices, let's add it back.
    
    The problem is manifested on driver initialization:
    
      Intel(R) Wireless WiFi driver for Linux
      iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
      iwlwifi: No config found for PCI dev 43f0/1651, rev=0x354, rfid=0x10a100
      iwlwifi: probe of 0000:00:14.3 failed with error -22
    
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=213939
    Fixes: 3f910a25839b ("iwlwifi: pcie: convert all AX101 devices to the device tables")
    Cc: Julien Wajsberg <felash@gmail.com>
    Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
    Acked-by: Luca Coelho <luca@coelho.fi>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210924122154.2376577-1-vladimir.zapolskiy@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8979fa2c43b07e26ed9764e31fbdeb2b08037361
Author: Max Filippov <jcmvbkbc@gmail.com>
Date:   Mon Sep 27 09:46:33 2021 -0700

    xtensa: call irqchip_init only when CONFIG_USE_OF is selected
    
    [ Upstream commit 6489f8d0e1d93a3603d8dad8125797559e4cf2a2 ]
    
    During boot time kernel configured with OF=y but USE_OF=n displays the
    following warnings and hangs shortly after starting userspace:
    
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at kernel/irq/irqdomain.c:695 irq_create_mapping_affinity+0x29/0xc0
    irq_create_mapping_affinity(, 6) called with NULL domain
    CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0-rc3-00001-gd67ed2510d28 #30
    Call Trace:
      __warn+0x69/0xc4
      warn_slowpath_fmt+0x6c/0x94
      irq_create_mapping_affinity+0x29/0xc0
      local_timer_setup+0x40/0x88
      time_init+0xb1/0xe8
      start_kernel+0x31d/0x3f4
      _startup+0x13b/0x13b
    ---[ end trace 1e6630e1c5eda35b ]---
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at arch/xtensa/kernel/time.c:141 local_timer_setup+0x58/0x88
    error: can't map timer irq
    CPU: 0 PID: 0 Comm: swapper Tainted: G        W         5.15.0-rc3-00001-gd67ed2510d28 #30
    Call Trace:
      __warn+0x69/0xc4
      warn_slowpath_fmt+0x6c/0x94
      local_timer_setup+0x58/0x88
      time_init+0xb1/0xe8
      start_kernel+0x31d/0x3f4
      _startup+0x13b/0x13b
    ---[ end trace 1e6630e1c5eda35c ]---
    Failed to request irq 0 (timer)
    
    Fix that by calling irqchip_init only when CONFIG_USE_OF is selected and
    calling legacy interrupt controller init otherwise.
    
    Fixes: da844a81779e ("xtensa: add device trees support")
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4a9836c9dd6e9a7afed4ea7b537a766f95fbaac
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Sep 24 20:29:51 2021 -0700

    xtensa: use CONFIG_USE_OF instead of CONFIG_OF
    
    [ Upstream commit d67ed2510d28a1eb33171010d35cf52178cfcbdd ]
    
    CONFIG_OF can be set by a randconfig or by a user -- without setting the
    early flattree option (OF_EARLY_FLATTREE).  This causes build errors.
    However, if randconfig or a user sets USE_OF in the Xtensa config,
    the right kconfig symbols are set to fix the build.
    
    Fixes these build errors:
    
    ../arch/xtensa/kernel/setup.c:67:19: error: ‘__dtb_start’ undeclared here (not in a function); did you mean ‘dtb_start’?
       67 | void *dtb_start = __dtb_start;
          |                   ^~~~~~~~~~~
    ../arch/xtensa/kernel/setup.c: In function 'xtensa_dt_io_area':
    ../arch/xtensa/kernel/setup.c:201:14: error: implicit declaration of function 'of_flat_dt_is_compatible'; did you mean 'of_machine_is_compatible'? [-Werror=implicit-function-declaration]
      201 |         if (!of_flat_dt_is_compatible(node, "simple-bus"))
    ../arch/xtensa/kernel/setup.c:204:18: error: implicit declaration of function 'of_get_flat_dt_prop' [-Werror=implicit-function-declaration]
      204 |         ranges = of_get_flat_dt_prop(node, "ranges", &len);
    ../arch/xtensa/kernel/setup.c:204:16: error: assignment to 'const __be32 *' {aka 'const unsigned int *'} from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
      204 |         ranges = of_get_flat_dt_prop(node, "ranges", &len);
          |                ^
    ../arch/xtensa/kernel/setup.c: In function 'early_init_devtree':
    ../arch/xtensa/kernel/setup.c:228:9: error: implicit declaration of function 'early_init_dt_scan'; did you mean 'early_init_devtree'? [-Werror=implicit-function-declaration]
      228 |         early_init_dt_scan(params);
    ../arch/xtensa/kernel/setup.c:229:9: error: implicit declaration of function 'of_scan_flat_dt' [-Werror=implicit-function-declaration]
      229 |         of_scan_flat_dt(xtensa_dt_io_area, NULL);
    
    xtensa-elf-ld: arch/xtensa/mm/mmu.o:(.text+0x0): undefined reference to `xtensa_kio_paddr'
    
    Fixes: da844a81779e ("xtensa: add device trees support")
    Fixes: 6cb971114f63 ("xtensa: remap io area defined in device tree")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5be9d1335749be873ff8e69c57e844949ac71387
Author: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Date:   Thu Sep 16 18:13:39 2021 +0300

    arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding
    
    [ Upstream commit a153d317168aa3d61a204fadc85bac3995381d33 ]
    
    Change pm8150 to use the qcom,pm8998-pon compatible string for the pon
    in order to pass reboot mode properly.
    
    Fixes: 5101f22a5c37 ("arm64: dts: qcom: pm8150: Add base dts file")
    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Tested-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20210916151341.1797512-1-dmitry.baryshkov@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c186680c89f65d8f49f74c76cc0124cdd602ea2
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Sep 20 14:23:44 2021 +0200

    ath5k: fix building with LEDS=m
    
    [ Upstream commit fb8c3a3c52400512fc8b3b61150057b888c30b0d ]
    
    Randconfig builds still show a failure for the ath5k driver,
    similar to the one that was fixed for ath9k earlier:
    
    WARNING: unmet direct dependencies detected for MAC80211_LEDS
      Depends on [n]: NET [=y] && WIRELESS [=y] && MAC80211 [=y] && (LEDS_CLASS [=m]=y || LEDS_CLASS [=m]=MAC80211 [=y])
      Selected by [m]:
      - ATH5K [=m] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ATH [=y] && (PCI [=y] || ATH25) && MAC80211 [=y]
    net/mac80211/led.c: In function 'ieee80211_alloc_led_names':
    net/mac80211/led.c:34:22: error: 'struct led_trigger' has no member named 'name'
       34 |         local->rx_led.name = kasprintf(GFP_KERNEL, "%srx",
          |                      ^
    
    Copying the same logic from my ath9k patch makes this one work
    as well, stubbing out the calls to the LED subsystem.
    
    Fixes: b64acb28da83 ("ath9k: fix build error with LEDS_CLASS=m")
    Fixes: 72cdab808714 ("ath9k: Do not select MAC80211_LEDS by default")
    Fixes: 3a078876caee ("ath5k: convert LED code to use mac80211 triggers")
    Link: https://lore.kernel.org/all/20210722105501.1000781-1-arnd@kernel.org/
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210920122359.353810-1-arnd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 436f61a89655f728d7d29b84d6bd2558bef681b7
Author: Long Li <longli@microsoft.com>
Date:   Mon Aug 30 16:13:27 2021 -0700

    PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus
    
    [ Upstream commit 41608b64b10b80fe00dd253cd8326ec8ad85930f ]
    
    In hv_pci_bus_exit, the code is holding a spinlock while calling
    pci_destroy_slot(), which takes a mutex.
    
    This is not safe for spinlock. Fix this by moving the children to be
    deleted to a list on the stack, and removing them after spinlock is
    released.
    
    Fixes: 94d22763207a ("PCI: hv: Fix a race condition when removing the device")
    
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Wei Liu <wei.liu@kernel.org>
    Cc: Dexuan Cui <decui@microsoft.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Rob Herring <robh@kernel.org>
    Cc: "Krzysztof Wilczyński" <kw@linux.com>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Michael Kelley <mikelley@microsoft.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Link: https://lore.kernel.org/linux-hyperv/20210823152130.GA21501@kili/
    Signed-off-by: Long Li <longli@microsoft.com>
    Reviewed-by: Wei Liu <wei.liu@kernel.org>
    Link: https://lore.kernel.org/r/1630365207-20616-1-git-send-email-longli@linuxonhyperv.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11fc74ddd63a38e8374638284ad41c0c1de84aa7
Author: Fabio Estevam <festevam@gmail.com>
Date:   Tue Sep 14 14:17:15 2021 -0300

    ARM: dts: imx6qdl-pico: Fix Ethernet support
    
    [ Upstream commit 450e7fe9b1b3c90eeed74a2fe0eeb13a7b57f3da ]
    
    Currently, it is no longer possible to retrieve a DHCP address
    on the imx6qdl-pico board.
    
    This issue has been exposed by commit f5d9aa79dfdf ("ARM: imx6q:
    remove clk-out fixup for the Atheros AR8031 and AR8035 PHYs").
    
    Fix it by describing the qca,clk-out-frequency property as suggested
    by the commit above.
    
    Fixes: 98670a0bb0ef14bbb3 ("ARM: dts: imx6qdl: Add imx6qdl-pico support")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 871b9129ca6dc25fee76cd7dcb20bc0a7bc8cb35
Author: Marek Vasut <marex@denx.de>
Date:   Sun Sep 5 02:01:37 2021 +0200

    ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo
    
    [ Upstream commit 5c187e2eb3f92daa38cb3d4ab45e1107ea34108e ]
    
    The MIC2025 switch input signal nEN is active low, describe it as such
    in the DT. The previous change to this regulator polarity was incorrectly
    influenced by broken quirks in gpiolib-of.c, which is now long fixed. So
    fix this regulator polarity setting here once and for all.
    
    Fixes: 3c3601cd6a6d3 ("ARM: dts: imx53: Update USB configuration on M53Menlo")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: NXP Linux Team <linux-imx@nxp.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d5cbf524d90cfca40f3569ae6d4e0d7d539c4db7
Author: Marek Vasut <marex@denx.de>
Date:   Sun Sep 5 02:00:48 2021 +0200

    ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo
    
    [ Upstream commit c8c1efe14a4aadcfe93a158b1272e48298d2de15 ]
    
    The panel already contains pinctrl-0 phandle, but it is missing
    the default pinctrl-names property, so the pin configuration is
    ignored. Fill in the missing pinctrl-names property, so the pin
    configuration is applied.
    
    Fixes: d81765d693db6 ("ARM: dts: imx53: Update LCD panel node on M53Menlo")
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Shawn Guo <shawnguo@kernel.org>
    Cc: Fabio Estevam <festevam@gmail.com>
    Cc: NXP Linux Team <linux-imx@nxp.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 64a64a031fc1b19b2ab72a171099e608899f47b4
Author: Shawn Guo <shawn.guo@linaro.org>
Date:   Sat Aug 28 15:02:02 2021 +0800

    soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment
    
    [ Upstream commit 833d51d7c66d6708abbc02398892b96b950167b9 ]
    
    PT_LOAD type denotes that the segment should be loaded into the final
    firmware memory region.  Hash segment is not one such, because it's only
    needed for PAS init and shouldn't be in the final firmware memory region.
    That's why mdt_phdr_valid() explicitly reject non PT_LOAD segment and
    hash segment.  This actually makes the hash segment type check in
    qcom_mdt_read_metadata() unnecessary and redundant.  For a hash segment,
    it won't be loaded into firmware memory region anyway, due to the
    QCOM_MDT_TYPE_HASH check in mdt_phdr_valid(), even if it has a PT_LOAD
    type for some reason (misusing or abusing?).
    
    Some firmware files on Sony phones are such examples, e.g WCNSS firmware
    of Sony Xperia M4 Aqua phone.  The type of hash segment is just PT_LOAD.
    Drop the unnecessary hash segment type check in qcom_mdt_read_metadata()
    to fix firmware loading failure on these phones, while hash segment is
    still kept away from the final firmware memory region.
    
    Fixes: 498b98e93900 ("soc: qcom: mdt_loader: Support loading non-split images")
    Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
    Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20210828070202.7033-1-shawn.guo@linaro.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 432d8185e9ffce97e3866ca71c39b0807a456920
Author: Ilan Peer <ilan.peer@intel.com>
Date:   Tue Sep 7 14:32:14 2021 +0300

    iwlwifi: mvm: Fix possible NULL dereference
    
    [ Upstream commit 24d5f16e407b75bc59d5419b957a9cab423b2681 ]
    
    In __iwl_mvm_remove_time_event() check that 'te_data->vif' is NULL
    before dereferencing it.
    
    Fixes: 7b3954a1d69a ("iwlwifi: mvm: Explicitly stop session protection before unbinding")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Ilan Peer <ilan.peer@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/iwlwifi.20210907143156.e80e52167d93.Ie2247f43f8acb2cee6dff5b07a3947c79a772835@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 306b7fe278acf130152cc1a88150e795dce390fb
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Mon Aug 23 16:19:12 2021 +0300

    ARM: at91: pm: do not panic if ram controllers are not enabled
    
    [ Upstream commit 1605de1b3ca66e3eddbca4b3c353c13c26476fe2 ]
    
    In case PM is enabled but there is no RAM controller information
    in DT the code will panic. Avoid such scenarios by not initializing
    platform specific PM code in case RAM controller is not provided
    via DT.
    
    Reported-by: Eugen Hristev <eugen.hristev@microchip.com>
    Fixes: 827de1f123ba0 ("ARM: at91: remove at91_dt_initialize and machine init_early()")
    Fixes: 892e1f4a3ae58 ("ARM: at91: pm: add sama7g5 ddr phy controller")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
    Link: https://lore.kernel.org/r/20210823131915.23857-2-claudiu.beznea@microchip.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55f37cc6ee0555498d848b373edb7c258a870007
Author: Douglas Anderson <dianders@chromium.org>
Date:   Tue Sep 7 12:12:25 2021 -0700

    Revert "arm64: dts: qcom: sc7280: Fixup the cpufreq node"
    
    [ Upstream commit a48c730a4e0bf480bcde12d795a9cd6f9ef14d1e ]
    
    This reverts commit 11e03d692101e484df9322f892a8b6e111a82bfd.
    
    As per discussion [1] the patch shouldn't have landed. Let's revert.
    
    [1] https://lore.kernel.org/r/fde7bac239f796b039b9be58b391fb77@codeaurora.org/
    
    Fixes: 11e03d692101 ("arm64: dts: qcom: sc7280: Fixup the cpufreq node")
    Reported-by: Matthias Kaehlcke <mka@chromium.org>
    Cc: Sibi Sankar <sibis@codeaurora.org>
    Cc: Matthias Kaehlcke <mka@chromium.org>
    Cc: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/20210907121220.1.I08460f490473b70de0d768db45f030a4d5c17828@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ceb465692d6468b2b9359d797c47615fc29ab35
Author: Marijn Suijten <marijn.suijten@somainline.org>
Date:   Sun Aug 29 22:30:25 2021 +0200

    ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference
    
    [ Upstream commit f1db21c315f4b4f8c3fbea56aac500673132d317 ]
    
    The 28NM DSI PLL driver for msm8960 calculates with a 27MHz reference
    clock and should hence use PXO, not CXO which runs at 19.2MHz.
    
    Note that none of the DSI PHY/PLL drivers currently use this "ref"
    clock; they all rely on (sometimes inexistant) global clock names and
    usually function normally without a parent clock.  This discrepancy will
    be corrected in a future patch, for which this change needs to be in
    place first.
    
    Fixes: 6969d1d9c615 ("ARM: dts: qcom-apq8064: Set 'cxo_board' as ref clock of the DSI PHY")
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
    Link: https://lore.kernel.org/r/20210829203027.276143-2-marijn.suijten@somainline.org
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 457673bfee0b5d8b3d03dced06c19e4d8de03620
Author: Antonio Martorana <amartora@codeaurora.org>
Date:   Mon Aug 16 17:24:39 2021 -0700

    soc: qcom: socinfo: Fixed argument passed to platform_set_data()
    
    [ Upstream commit 9c5a4ec69bbf5951f84ada9e0db9c6c50de61808 ]
    
    Set qcom_socinfo pointer as data being stored instead of pointer
    to soc_device structure. Aligns with future calls to platform_get_data()
    which expects qcom_socinfo pointer.
    
    Fixes: efb448d0a3fc ("soc: qcom: Add socinfo driver")
    Signed-off-by: Antonio Martorana <amartora@codeaurora.org>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Link: https://lore.kernel.org/r/1629159879-95777-1-git-send-email-amartora@codeaurora.org
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54607728e944867a757d162debb17d20d725c595
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Sun Aug 15 12:18:52 2021 -0700

    bus: ti-sysc: Add break in switch statement in sysc_init_soc()
    
    [ Upstream commit e879f855e590b40fe3c79f2fbd8f65ca3c724120 ]
    
    After commit a6d90e9f2232 ("bus: ti-sysc: AM3: RNG is GP only"), clang
    with -Wimplicit-fallthrough enabled warns:
    
    drivers/bus/ti-sysc.c:2958:3: warning: unannotated fall-through between
    switch labels [-Wimplicit-fallthrough]
                    default:
                    ^
    drivers/bus/ti-sysc.c:2958:3: note: insert 'break;' to avoid
    fall-through
                    default:
                    ^
                    break;
    1 warning generated.
    
    Clang's version of this warning is a little bit more pedantic than
    GCC's. Add the missing break to satisfy it to match what has been done
    all over the kernel tree.
    
    Fixes: a6d90e9f2232 ("bus: ti-sysc: AM3: RNG is GP only")
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1c7aa87c423e765e3862349c2f095fdfccdd9b3
Author: Alexandre Ghiti <alex@ghiti.fr>
Date:   Sat Sep 18 18:02:21 2021 +0200

    riscv: Flush current cpu icache before other cpus
    
    commit bb8958d5dc79acbd071397abb57b8756375fe1ce upstream.
    
    On SiFive Unmatched, I recently fell onto the following BUG when booting:
    
    [    0.000000] ftrace: allocating 36610 entries in 144 pages
    [    0.000000] Oops - illegal instruction [#1]
    [    0.000000] Modules linked in:
    [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.13.1+ #5
    [    0.000000] Hardware name: SiFive HiFive Unmatched A00 (DT)
    [    0.000000] epc : riscv_cpuid_to_hartid_mask+0x6/0xae
    [    0.000000]  ra : __sbi_rfence_v02+0xc8/0x10a
    [    0.000000] epc : ffffffff80007240 ra : ffffffff80009964 sp : ffffffff81803e10
    [    0.000000]  gp : ffffffff81a1ea70 tp : ffffffff8180f500 t0 : ffffffe07fe30000
    [    0.000000]  t1 : 0000000000000004 t2 : 0000000000000000 s0 : ffffffff81803e60
    [    0.000000]  s1 : 0000000000000000 a0 : ffffffff81a22238 a1 : ffffffff81803e10
    [    0.000000]  a2 : 0000000000000000 a3 : 0000000000000000 a4 : 0000000000000000
    [    0.000000]  a5 : 0000000000000000 a6 : ffffffff8000989c a7 : 0000000052464e43
    [    0.000000]  s2 : ffffffff81a220c8 s3 : 0000000000000000 s4 : 0000000000000000
    [    0.000000]  s5 : 0000000000000000 s6 : 0000000200000100 s7 : 0000000000000001
    [    0.000000]  s8 : ffffffe07fe04040 s9 : ffffffff81a22c80 s10: 0000000000001000
    [    0.000000]  s11: 0000000000000004 t3 : 0000000000000001 t4 : 0000000000000008
    [    0.000000]  t5 : ffffffcf04000808 t6 : ffffffe3ffddf188
    [    0.000000] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000002
    [    0.000000] [<ffffffff80007240>] riscv_cpuid_to_hartid_mask+0x6/0xae
    [    0.000000] [<ffffffff80009474>] sbi_remote_fence_i+0x1e/0x26
    [    0.000000] [<ffffffff8000b8f4>] flush_icache_all+0x12/0x1a
    [    0.000000] [<ffffffff8000666c>] patch_text_nosync+0x26/0x32
    [    0.000000] [<ffffffff8000884e>] ftrace_init_nop+0x52/0x8c
    [    0.000000] [<ffffffff800f051e>] ftrace_process_locs.isra.0+0x29c/0x360
    [    0.000000] [<ffffffff80a0e3c6>] ftrace_init+0x80/0x130
    [    0.000000] [<ffffffff80a00f8c>] start_kernel+0x5c4/0x8f6
    [    0.000000] ---[ end trace f67eb9af4d8d492b ]---
    [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
    [    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
    
    While ftrace is looping over a list of addresses to patch, it always failed
    when patching the same function: riscv_cpuid_to_hartid_mask. Looking at the
    backtrace, the illegal instruction is encountered in this same function.
    However, patch_text_nosync, after patching the instructions, calls
    flush_icache_range. But looking at what happens in this function:
    
    flush_icache_range -> flush_icache_all
                       -> sbi_remote_fence_i
                       -> __sbi_rfence_v02
                       -> riscv_cpuid_to_hartid_mask
    
    The icache and dcache of the current cpu are never synchronized between the
    patching of riscv_cpuid_to_hartid_mask and calling this same function.
    
    So fix this by flushing the current cpu's icache before asking for the other
    cpus to do the same.
    
    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Fixes: fab957c11efe ("RISC-V: Atomic and Locking Code")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b514b752b62659a5658e78cba22f0288953b0b38
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Wed Sep 22 12:10:59 2021 +0300

    scsi: ufs: core: Fix task management completion
    
    commit f5ef336fd2e4c36dedae4e7ca66cf5349d6fda62 upstream.
    
    The UFS driver uses blk_mq_tagset_busy_iter() when identifying task
    management requests to complete, however blk_mq_tagset_busy_iter() doesn't
    work.
    
    blk_mq_tagset_busy_iter() only iterates requests dispatched by the block
    layer. That appears as if it might have started since commit 37f4a24c2469
    ("blk-mq: centralise related handling into blk_mq_get_driver_tag") which
    removed 'data->hctx->tags->rqs[rq->tag] = rq' from blk_mq_rq_ctx_init()
    which gets called:
    
            blk_get_request
                    blk_mq_alloc_request
                            __blk_mq_alloc_request
                                    blk_mq_rq_ctx_init
    
    Since UFS task management requests are not dispatched by the block layer,
    hctx->tags->rqs[rq->tag] remains NULL, and since blk_mq_tagset_busy_iter()
    relies on finding requests using hctx->tags->rqs[rq->tag], UFS task
    management requests are never found by blk_mq_tagset_busy_iter().
    
    By using blk_mq_tagset_busy_iter(), the UFS driver was relying on internal
    details of the block layer, which was fragile and subsequently got
    broken. Fix by removing the use of blk_mq_tagset_busy_iter() and having the
    driver keep track of task management requests.
    
    Link: https://lore.kernel.org/r/20210922091059.4040-1-adrian.hunter@intel.com
    Fixes: 1235fc569e0b ("scsi: ufs: core: Fix task management request completion timeout")
    Fixes: 69a6c269c097 ("scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs")
    Cc: stable@vger.kernel.org
    Tested-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a0775d0c0306e8ffd6ba3e0f8f28992b7cfdeb0
Author: David Heidelberg <david@ixit.cz>
Date:   Wed Aug 18 08:53:17 2021 +0200

    ARM: dts: qcom: apq8064: use compatible which contains chipid
    
    commit f5c03f131dae3f06d08464e6157dd461200f78d9 upstream.
    
    Also resolves these kernel warnings for APQ8064:
    adreno 4300000.adreno-3xx: Using legacy qcom,chipid binding!
    adreno 4300000.adreno-3xx: Use compatible qcom,adreno-320.2 instead.
    
    Tested on Nexus 7 2013, no functional changes.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: David Heidelberg <david@ixit.cz>
    Link: https://lore.kernel.org/r/20210818065317.19822-1-david@ixit.cz
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d62956ddb915e4f94650abd57ca137cf9144de72
Author: Michal Vokáč <michal.vokac@ysoft.com>
Date:   Wed Aug 18 09:02:08 2021 +0200

    ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe
    
    commit 9b663b34c94a78f39fa2c7a8271b1f828b546e16 upstream.
    
    Since the LED multicolor framework support was added in commit
    92a81562e695 ("leds: lp55xx: Add multicolor framework support to lp55xx")
    LEDs on this platform stopped working.
    
    Author of the framework attempted to accommodate this DT to the
    framework in commit b86d3d21cd4c ("ARM: dts: imx6dl-yapp4: Add reg property
    to the lp5562 channel node") but that is not sufficient. A color property
    is now required even if the multicolor framework is not used, otherwise
    the driver probe fails:
    
      lp5562: probe of 1-0030 failed with error -22
    
    Add the color property to fix this.
    
    Fixes: 92a81562e695 ("leds: lp55xx: Add multicolor framework support to lp55xx")
    Cc: <stable@vger.kernel.org>
    Cc: linux-leds@vger.kernel.org
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05d9d419220bb43bed4b8f457666e9de921a0780
Author: Roger Quadros <rogerq@kernel.org>
Date:   Thu Sep 2 12:58:28 2021 +0300

    ARM: dts: omap3430-sdp: Fix NAND device node
    
    commit 80d680fdccba214e8106dc1aa33de5207ad75394 upstream.
    
    Nand is on CS1 so reg properties first field should be 1 not 0.
    
    Fixes: 44e4716499b8 ("ARM: dts: omap3: Fix NAND device nodes")
    Cc: stable@vger.kernel.org # v4.6+
    Signed-off-by: Roger Quadros <rogerq@kernel.org>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35c6691812b7c292cd6d1d1180cf8ccb6505eb13
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Oct 5 15:34:33 2021 +0200

    xen/balloon: fix cancelled balloon action
    
    commit 319933a80fd4f07122466a77f93e5019d71be74c upstream.
    
    In case a ballooning action is cancelled the new kernel thread handling
    the ballooning might end up in a busy loop.
    
    Fix that by handling the cancelled action gracefully.
    
    While at it introduce a short wait for the BP_WAIT case.
    
    Cc: stable@vger.kernel.org
    Fixes: 8480ed9c2bbd56 ("xen/balloon: use a kernel thread instead a workqueue")
    Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Tested-by: Jason Andryuk <jandryuk@gmail.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Link: https://lore.kernel.org/r/20211005133433.32008-1-jgross@suse.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f574ab3192eb9d0f86df05619d794d52ba109778
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Fri Oct 1 09:59:21 2021 -0400

    SUNRPC: fix sign error causing rpcsec_gss drops
    
    commit 2ba5acfb34957e8a7fe47cd78c77ca88e9cc2b03 upstream.
    
    If sd_max is unsigned, then sd_max - GSS_SEQ_WIN is a very large number
    whenever sd_max is less than GSS_SEQ_WIN, and the comparison:
    
            seq_num <= sd->sd_max - GSS_SEQ_WIN
    
    in gss_check_seq_num is pretty much always true, even when that's
    clearly not what was intended.
    
    This was causing pynfs to hang when using krb5, because pynfs uses zero
    as the initial gss sequence number.  That's perfectly legal, but this
    logic error causes knfsd to drop the rpc in that case.  Out-of-order
    sequence IDs in the first GSS_SEQ_WIN (128) calls will also cause this.
    
    Fixes: 10b9d99a3dbb ("SUNRPC: Augment server-side rpcgss tracepoints")
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ace054d4e5230f36a14300838f758582c6d18470
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Thu Sep 30 15:44:41 2021 -0400

    nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero
    
    commit f2e717d655040d632c9015f19aa4275f8b16e7f2 upstream.
    
    RFC3530 notes that the 'dircount' field may be zero, in which case the
    recommendation is to ignore it, and only enforce the 'maxcount' field.
    In RFC5661, this recommendation to ignore a zero valued field becomes a
    requirement.
    
    Fixes: aee377644146 ("nfsd4: fix rd_dircount enforcement")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9228f2a0d1bc10f68953f7872e8fe26efab10d1a
Author: Patrick Ho <Patrick.Ho@netapp.com>
Date:   Sat Aug 21 02:56:26 2021 -0400

    nfsd: fix error handling of register_pernet_subsys() in init_nfsd()
    
    commit 1d625050c7c2dd877e108e382b8aaf1ae3cfe1f4 upstream.
    
    init_nfsd() should not unregister pernet subsys if the register fails
    but should instead unwind from the last successful operation which is
    register_filesystem().
    
    Unregistering a failed register_pernet_subsys() call can result in
    a kernel GPF as revealed by programmatically injecting an error in
    register_pernet_subsys().
    
    Verified the fix handled failure gracefully with no lingering nfsd
    entry in /proc/filesystems.  This change was introduced by the commit
    bd5ae9288d64 ("nfsd: register pernet ops last, unregister first"),
    the original error handling logic was correct.
    
    Fixes: bd5ae9288d64 ("nfsd: register pernet ops last, unregister first")
    Cc: stable@vger.kernel.org
    Signed-off-by: Patrick Ho <Patrick.Ho@netapp.com>
    Acked-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9f9dfb9040c97391fa4bc2a17f76fbd5544e7a8
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Mon Sep 27 11:23:57 2021 +0200

    ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO
    
    commit 1dc1eed46f9fa4cb8a07baa24fb44c96d6dd35c9 upstream.
    
    Normally the check at open time suffices, but e.g loop device does set
    IOCB_DIRECT after doing its own checks (which are not sufficent for
    overlayfs).
    
    Make sure we don't call the underlying filesystem read/write method with
    the IOCB_DIRECT if it's not supported.
    
    Reported-by: Huang Jianan <huangjianan@oppo.com>
    Fixes: 16914e6fc7e1 ("ovl: add ovl_read_iter()")
    Cc: <stable@vger.kernel.org> # v4.19
    Tested-by: Huang Jianan <huangjianan@oppo.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 71b8b36187af58f9e67b25021f5debbc04a18a5d
Author: Zheng Liang <zhengliang6@huawei.com>
Date:   Fri Sep 24 09:16:27 2021 +0800

    ovl: fix missing negative dentry check in ovl_rename()
    
    commit a295aef603e109a47af355477326bd41151765b6 upstream.
    
    The following reproducer
    
      mkdir lower upper work merge
      touch lower/old
      touch lower/new
      mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merge
      rm merge/new
      mv merge/old merge/new & unlink upper/new
    
    may result in this race:
    
    PROCESS A:
      rename("merge/old", "merge/new");
      overwrite=true,ovl_lower_positive(old)=true,
      ovl_dentry_is_whiteout(new)=true -> flags |= RENAME_EXCHANGE
    
    PROCESS B:
      unlink("upper/new");
    
    PROCESS A:
      lookup newdentry in new_upperdir
      call vfs_rename() with negative newdentry and RENAME_EXCHANGE
    
    Fix by adding the missing check for negative newdentry.
    
    Signed-off-by: Zheng Liang <zhengliang6@huawei.com>
    Fixes: e9be9d5e76e3 ("overlay filesystem")
    Cc: <stable@vger.kernel.org> # v3.18
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0ee6190e85604cfa7848f002b300c95628f1ee4
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Sep 28 16:52:10 2021 +0200

    fbdev: simplefb: fix Kconfig dependencies
    
    commit ec7cc3f74b4236860ce612656aa5be7936d1c594 upstream.
    
    Configurations with both CONFIG_FB_SIMPLE=y and CONFIG_DRM_SIMPLEDRM=m
    are allowed by Kconfig because the 'depends on !DRM_SIMPLEDRM' dependency
    does not disallow FB_SIMPLE as long as SIMPLEDRM is not built-in. This
    can however result in a build failure when cfb_fillrect() etc are then
    also in loadable modules:
    
    x86_64-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x1f8): undefined reference to `cfb_fillrect'
    x86_64-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x200): undefined reference to `cfb_copyarea'
    x86_64-linux-ld: drivers/video/fbdev/simplefb.o:(.rodata+0x208): undefined reference to `cfb_imageblit'
    
    To work around this, change FB_SIMPLE to be a 'tristate' symbol,
    which still allows both to be =m together, but not one of them to
    be =y if the other one is =m. If a distro kernel picks this
    configuration, it can be determined by local policy which of
    the two modules gets loaded. The 'of_chosen' export is needed
    as this is the first loadable module referencing it.
    
    Alternatively, the Kconfig dependency could be changed to
    'depends on DRM_SIMPLEDRM=n', which would forbid the configuration
    with both drivers.
    
    Fixes: 11e8f5fd223b ("drm: Add simpledrm driver")
    Acked-by: Rob Herring <robh@kernel.org> # for drivers/of/
    Link: https://lore.kernel.org/all/20210721151839.2484245-1-arnd@kernel.org/
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch> # fbdev support
    Cc: Maxime Ripard <maxime@cerno.tech>
    Cc: Liam Girdwood <lgirdwood@gmail.com>
    Cc: Mark Brown <broonie@kernel.org>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Javier Martinez Canillas <javierm@redhat.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    Cc: Peter Collingbourne <pcc@google.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: dri-devel@lists.freedesktop.org
    Cc: linux-kernel@vger.kernel.org
    Cc: <stable@vger.kernel.org> # v5.14+
    Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210928145243.1098064-1-arnd@kernel.org
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 897e427ef37cb8710f4f962248159045e00ef0ea
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Fri Sep 24 11:28:51 2021 +0300

    mmc: sdhci-of-at91: replace while loop with read_poll_timeout
    
    commit 30d4b990ec644e8bd49ef0a2f074fabc0d189e53 upstream.
    
    Replace while loop with read_poll_timeout().
    
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210924082851.2132068-3-claudiu.beznea@microchip.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa7c4ce94835f846a4fd05a53aa85304b565ff06
Author: Claudiu Beznea <claudiu.beznea@microchip.com>
Date:   Fri Sep 24 11:28:50 2021 +0300

    mmc: sdhci-of-at91: wait for calibration done before proceed
    
    commit af467fad78f03a42de8b72190f6a595366b870db upstream.
    
    Datasheet specifies that at the end of calibration the SDMMC_CALCR_EN
    bit will be cleared. No commands should be send before calibration is
    done.
    
    Fixes: dbdea70f71d67 ("mmc: sdhci-of-at91: fix CALCR register being rewritten")
    Fixes: 727d836a375ad ("mmc: sdhci-of-at91: add DT property to enable calibration on full reset")
    Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210924082851.2132068-2-claudiu.beznea@microchip.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 266fd4b85ce3174499f58a582cbd8efa4964c8c6
Author: Neil Armstrong <narmstrong@baylibre.com>
Date:   Tue Sep 28 09:36:52 2021 +0200

    mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk
    
    commit 8a38a4d51c5055d0201542e5ea3c0cb287f6e223 upstream.
    
    The memory at the end of the controller only accepts 32bit read/write
    accesses, but the arm64 memcpy_to/fromio implementation only uses 64bit
    (which will be split into two 32bit access) and 8bit leading to incomplete
    copies to/from this memory when the buffer is not multiple of 8bytes.
    
    Add a local copy using writel/readl accesses to make sure we use the right
    memory access width.
    
    The switch to memcpy_to/fromio was done because of 285133040e6c
    ("arm64: Import latest memcpy()/memmove() implementation"), but using memcpy
    worked before since it mainly used 32bit memory acceses.
    
    Fixes: 103a5348c22c ("mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk")
    Reported-by: Christian Hewitt <christianshewitt@gmail.com>
    Suggested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
    Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210928073652.434690-1-narmstrong@baylibre.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 527d377da38feed158b2df19f8d11a539252e33b
Author: Jan Beulich <jbeulich@suse.com>
Date:   Wed Sep 22 12:17:48 2021 +0200

    xen/privcmd: fix error handling in mmap-resource processing
    
    commit e11423d6721dd63b23fb41ade5e8d0b448b17780 upstream.
    
    xen_pfn_t is the same size as int only on 32-bit builds (and not even
    on Arm32). Hence pfns[] can't be used directly to read individual error
    values returned from xen_remap_domain_mfn_array(); every other error
    indicator would be skipped/ignored on 64-bit.
    
    Fixes: 3ad0876554ca ("xen/privcmd: add IOCTL_PRIVCMD_MMAP_RESOURCE")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Link: https://lore.kernel.org/r/aa6d6a67-6889-338a-a910-51e889f792d5@suse.com
    Signed-off-by: Juergen Gross <jgross@suse.com>

commit c2a35a4080706230437fe925f34c29118410f366
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Sep 30 22:09:42 2021 +0300

    drm/i915: Extend the async flip VT-d w/a to skl/bxt
    
    commit b2d73debfdc16b742e64948dc4461876af3f8c10 upstream.
    
    Looks like skl/bxt/derivatives also need the plane stride
    stretch w/a when using async flips and VT-d is enabled, or
    else we get corruption on screen. To my surprise this was
    even documented in bspec, but only as a note on the
    CHICHKEN_PIPESL register description rather than on the
    w/a list.
    
    So very much the same thing as on HSW/BDW, except the bits
    moved yet again.
    
    Cc: stable@vger.kernel.org
    Cc: Karthik B S <karthik.b.s@intel.com>
    Fixes: 55ea1cb178ef ("drm/i915: Enable async flips in i915")
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210930190943.17547-1-ville.syrjala@linux.intel.com
    Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
    (cherry picked from commit d08df3b0bdb25546e86dc9a6c4e3ec0c43832299)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6dafefe60cb2ba56b28fc056a52cbde0f2374682
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Wed Jul 28 14:41:31 2021 +0200

    drm/i915: Fix runtime pm handling in i915_gem_shrink
    
    commit 0c94777386495d6e0a9735d48ffd2abb8d680d7f upstream.
    
    We forgot to call intel_runtime_pm_put on error, fix it!
    
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Fixes: cf41a8f1dc1e ("drm/i915: Finally remove obj->mm.lock.")
    Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: <stable@vger.kernel.org> # v5.13+
    Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
    Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210830121006.2978297-9-maarten.lankhorst@linux.intel.com
    (cherry picked from commit 239f3c2ee18376587026efecaea5250fa5926d20)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92c92e554553ce03f9c89c38cdbf3bb5c43d8f7d
Author: Liu, Zhan <Zhan.Liu@amd.com>
Date:   Thu Sep 2 15:08:29 2021 -0400

    drm/amd/display: Fix DCN3 B0 DP Alt Mapping
    
    commit 2fe9a0e1173f4805669e7af34ea25af835274426 upstream.
    
    [Why]
    DCN3 B0 has a mux, which redirects PHYC and PHYD to PHYF and PHYG.
    
    [How]
    Fix DIG mapping.
    
    Reviewed-by: Charlene Liu <charlene.liu@amd.com>
    Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Zhan Liu <Zhan.Liu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    (cherry picked from commit 4b7786d87fb3adf3e534c4f1e4f824d8700b786b)
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a9c5c13268606d49efef9a94cebcdc00dfc23b8
Author: Hansen <Hansen.Dsouza@amd.com>
Date:   Fri Oct 1 22:36:15 2021 +0800

    drm/amd/display: Fix detection of 4 lane for DPALT
    
    commit 5a1fef027846e7635b9d320b2cc0b416fd11a3be upstream.
    
    [Why]
    DPALT detection for B0 PHY has its own set of RDPCSPIPE registers
    
    [How]
    Use RDPCSPIPE registers to detect if DPALT lane is 4 lane
    
    Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
    Acked-by: Solomon Chiu <solomon.chiu@amd.com>
    Signed-off-by: Hansen <Hansen.Dsouza@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fd24bff9fac2bef4319631e48519f845ac82ad8
Author: Nikola Cornij <nikola.cornij@amd.com>
Date:   Fri Oct 1 22:36:14 2021 +0800

    drm/amd/display: Limit display scaling to up to 4k for DCN 3.1
    
    commit a7e397b7c45377e20542146be10231b8afa948d1 upstream.
    
    [why]
    The existing limit was mistakenly bigger than 4k for DCN 3.1
    
    Reviewed-by: Zhan Liu <Zhan.Liu@amd.com>
    Acked-by: Solomon Chiu <solomon.chiu@amd.com>
    Signed-off-by: Nikola Cornij <nikola.cornij@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c43e26907d91109606b52462bf4434dc37eb3d27
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Fri Sep 17 08:04:06 2021 +1000

    drm/nouveau/ga102-: support ttm buffer moves via copy engine
    
    commit 49b2dfc081826874705b27f7970631319628ee7f upstream.
    
    We don't currently have any kind of real acceleration on Ampere GPUs,
    but the TTM memcpy() fallback paths aren't really designed to handle
    copies between different devices, such as on Optimus systems, and
    result in a kernel OOPS.
    
    A few options were investigated to try and fix this, but didn't work
    out, and likely would have resulted in a very unpleasant experience
    for users anyway.
    
    This commit adds just enough support for setting up a single channel
    connected to a copy engine, which the kernel can use to accelerate
    the buffer copies between devices.  Userspace has no access to this
    incomplete channel support, but it's suitable for TTM's needs.
    
    A more complete implementation of host(fifo) for Ampere GPUs is in
    the works, but the required changes are far too invasive that they
    would be unsuitable to backport to fix this issue on current kernels.
    
    v2: fix GPFIFO length in RAMFC (reported by Karol)
    
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Karol Herbst <kherbst@redhat.com>
    Cc: <stable@vger.kernel.org> # v5.12+
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Tested-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210916220406.666454-1-skeggsb@gmail.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4c1d18cb951af0f7a143f0b8803002d7375ea05
Author: Ben Skeggs <bskeggs@redhat.com>
Date:   Mon Sep 6 10:56:28 2021 +1000

    drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
    
    commit f732e2e34aa08493fdd762f3daa4e5f16bbf1e45 upstream.
    
    Prevent NVD core channel error code 67 occuring and hanging display,
    managed to reproduce on GA102 while testing suspend/resume scenarios.
    
    Required extension of earlier commit to fix interactions with EFI.
    
    Fixes: e78b1b545c6c ("drm/nouveau/kms/nv50: workaround EFI GOP window channel format differences")
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Karol Herbst <kherbst@redhat.com>
    Cc: <stable@vger.kernel.org> # v5.12+
    Reviewed-by: Karol Herbst <kherbst@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210906005628.11499-2-skeggsb@gmail.com
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4df3adab896f843afe5bca5960fbca6ff2cc407e
Author: Lijo Lazar <lijo.lazar@amd.com>
Date:   Fri Oct 1 16:49:07 2021 +0800

    drm/amdgpu: During s0ix don't wait to signal GFXOFF
    
    commit 1d617c029fd9c960f8ba7a8d1a10699d820bd6b9 upstream.
    
    In the rare event when GFX IP suspend coincides with a s0ix entry, don't
    schedule a delayed work, instead signal PMFW immediately to allow GFXOFF
    entry. GFXOFF is a prerequisite for s0ix entry. PMFW needs to be
    signaled about GFXOFF status before amd-pmc module passes OS HINT
    to PMFW telling that everything is ready for a safe s0ix entry.
    
    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1712
    
    Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Mario Limonciello <mario.limonciell@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec36503dffdd3e9c0bbcd2d87f1b9158d6bfb5a6
Author: Jude Shih <shenshih@amd.com>
Date:   Mon Oct 4 22:40:50 2021 +0800

    drm/amd/display: USB4 bring up set correct address
    
    commit 7ab0965079bbc0e39fe0e1df4dcdf931c9d25372 upstream.
    
    [Why]
    YELLOW_CARP_B0 address was not correct
    
    [How]
    Set YELLOW_CARP_B0 to 0x1A.
    
    Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Acked-by: Wayne Lin <Wayne.Lin@amd.com>
    Signed-off-by: Jude Shih <shenshih@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b55ade094de14359abce57d7438b79c59e0f852
Author: Liu, Zhan <Zhan.Liu@amd.com>
Date:   Thu Sep 9 13:26:37 2021 -0400

    drm/amd/display: Fix B0 USB-C DP Alt mode
    
    commit 45d65c0f09aaa6cdd21fe0743f317d4bbdfd1466 upstream.
    
    [Why]
    Starting from B0, along with RDPCSTX, RDPCSPIPE registers are also used.
    
    [How]
    Make sure RDPCSPIPE registers are programmed correctly.
    
    Reviewed-by: Charlene Liu <charlene.liu@amd.com>
    Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Signed-off-by: Zhan Liu <Zhan.Liu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    (cherry picked from commit bdd1a21b52557ea8f61d0a5dc2f77151b576eb70)
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3048656f5abf4fe49185ff8fe9e7eeed5a58ece4
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Thu Sep 30 15:47:58 2021 +0300

    usb: typec: tipd: Remove dependency on "connector" child fwnode
    
    commit b87d8d0d4c43c29ccdc57d15b2ebc1df886a34b4 upstream.
    
    There is no "connector" child node available on every
    platform, so the driver can't fail to probe when it's
    missing.
    
    Fixes: 57560ee95cb7 ("usb: typec: tipd: Don't block probing of consumer of "connector" nodes")
    Cc: stable@vger.kernel.org # 5.14+
    Reported-by: "Regupathy, Rajaram" <rajaram.regupathy@intel.com>
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20210930124758.23233-1-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f5155225108fce14726806055506df994e2200be
Author: Xu Yang <xu.yang_2@nxp.com>
Date:   Tue Sep 28 19:16:39 2021 +0800

    usb: typec: tcpm: handle SRC_STARTUP state if cc changes
    
    commit 6d91017a295e9790eec02c4e43f020cdb55f5d98 upstream.
    
    TCPM for DRP should do the same action as SRC_ATTACHED when cc changes in
    SRC_STARTUP state. Otherwise, TCPM will transition to SRC_UNATTACHED state
    which is not satisfied with the Type-C spec.
    
    Per Type-C spec:
    DRP port should move to Unattached.SNK instead of Unattached.SRC if sink
    removed.
    
    Fixes: 4b4e02c83167 ("typec: tcpm: Move out of staging")
    cc: <stable@vger.kernel.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20210928111639.3854174-1-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 108d39a6b5a727b15989a583730fd75ff3ba0d52
Author: Xu Yang <xu.yang_2@nxp.com>
Date:   Sun Sep 26 18:14:15 2021 +0800

    usb: typec: tcpci: don't handle vSafe0V event if it's not enabled
    
    commit 05300871c0e21c288bd5c30ac6f9b1da6ddeed22 upstream.
    
    USB TCPCI Spec, 4.4.3 Mask Registers:
    "A masked register will still indicate in the ALERT register, but shall
    not set the Alert# pin low."
    
    Thus, the Extended Status will still indicate in ALERT register if vSafe0V
    is detected by TCPC even though being masked. In current code, howerer,
    this event will not be handled in detection time. Rather it will be
    handled when next ALERT event coming(CC evnet, PD event, etc).
    
    Tcpm might transition to a wrong state in this situation. Thus, the vSafe0V
    event should not be handled when it's masked.
    
    Fixes: 766c485b86ef ("usb: typec: tcpci: Add support to report vSafe0V")
    cc: <stable@vger.kernel.org>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
    Link: https://lore.kernel.org/r/20210926101415.3775058-1-xu.yang_2@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 267d19e300c128b87a18b6e5fb9180b27726d690
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Sep 29 11:09:37 2021 +0200

    USB: cdc-acm: fix break reporting
    
    commit 58fc1daa4d2e9789b9ffc880907c961ea7c062cc upstream.
    
    A recent change that started reporting break events forgot to push the
    event to the line discipline, which meant that a detected break would
    not be reported until further characters had been receive (the port
    could even have been closed and reopened in between).
    
    Fixes: 08dff274edda ("cdc-acm: fix BREAK rx code path adding necessary calls")
    Cc: stable@vger.kernel.org
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20210929090937.7410-3-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aff426d4b887d33fa02e006a0216e61792a26c4a
Author: Johan Hovold <johan@kernel.org>
Date:   Wed Sep 29 11:09:36 2021 +0200

    USB: cdc-acm: fix racy tty buffer accesses
    
    commit 65a205e6113506e69a503b61d97efec43fc10fd7 upstream.
    
    A recent change that started reporting break events to the line
    discipline caused the tty-buffer insertions to no longer be serialised
    by inserting events also from the completion handler for the interrupt
    endpoint.
    
    Completion calls for distinct endpoints are not guaranteed to be
    serialised. For example, in case a host-controller driver uses
    bottom-half completion, the interrupt and bulk-in completion handlers
    can end up running in parallel on two CPUs (high-and low-prio tasklets,
    respectively) thereby breaking the tty layer's single producer
    assumption.
    
    Fix this by holding the read lock also when inserting characters from
    the bulk endpoint.
    
    Fixes: 08dff274edda ("cdc-acm: fix BREAK rx code path adding necessary calls")
    Cc: stable@vger.kernel.org
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Link: https://lore.kernel.org/r/20210929090937.7410-2-johan@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09c4c413bc561ace3c06698936f74aab01c0030e
Author: Pavel Hofman <pavel.hofman@ivitera.com>
Date:   Fri Sep 24 10:00:27 2021 +0200

    usb: gadget: f_uac2: fixed EP-IN wMaxPacketSize
    
    commit 0560c9c552c1815e7b480bc11fd785fefc82bb27 upstream.
    
    Async feedback patches broke enumeration on Windows 10 previously fixed
    by commit 789ea77310f0 ("usb: gadget: f_uac2: always increase endpoint
    max_packet_size by one audio slot").
    
    While the existing calculation for EP OUT capture for async mode yields
    size+1 frame due to uac2_opts->fb_max > 0, playback side lost the +1
    feature.  Therefore the +1 frame addition must be re-introduced for
    playback. Win10 enumerates the device only when both EP IN and EP OUT
    max packet sizes are (at least) +1 frame.
    
    Fixes: e89bb4288378 ("usb: gadget: u_audio: add real feedback implementation")
    Cc: stable <stable@vger.kernel.org>
    Tested-by: Henrik Enquist <henrik.enquist@gmail.com>
    Tested-by: Jack Pham <jackp@codeaurora.org>
    Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
    Link: https://lore.kernel.org/r/20210924080027.5362-1-pavel.hofman@ivitera.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66dd03b10e1c0b2fae006c6e34c18ea8ee033e7b
Author: Fabio Estevam <festevam@gmail.com>
Date:   Tue Sep 21 08:37:54 2021 -0300

    usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle
    
    commit 8253a34bfae3278baca52fc1209b7c29270486ca upstream.
    
    When passing 'phys' in the devicetree to describe the USB PHY phandle
    (which is the recommended way according to
    Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt) the
    following NULL pointer dereference is observed on i.MX7 and i.MX8MM:
    
    [    1.489344] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000098
    [    1.498170] Mem abort info:
    [    1.500966]   ESR = 0x96000044
    [    1.504030]   EC = 0x25: DABT (current EL), IL = 32 bits
    [    1.509356]   SET = 0, FnV = 0
    [    1.512416]   EA = 0, S1PTW = 0
    [    1.515569]   FSC = 0x04: level 0 translation fault
    [    1.520458] Data abort info:
    [    1.523349]   ISV = 0, ISS = 0x00000044
    [    1.527196]   CM = 0, WnR = 1
    [    1.530176] [0000000000000098] user address but active_mm is swapper
    [    1.536544] Internal error: Oops: 96000044 [#1] PREEMPT SMP
    [    1.542125] Modules linked in:
    [    1.545190] CPU: 3 PID: 7 Comm: kworker/u8:0 Not tainted 5.14.0-dirty #3
    [    1.551901] Hardware name: Kontron i.MX8MM N801X S (DT)
    [    1.557133] Workqueue: events_unbound deferred_probe_work_func
    [    1.562984] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--)
    [    1.568998] pc : imx7d_charger_detection+0x3f0/0x510
    [    1.573973] lr : imx7d_charger_detection+0x22c/0x510
    
    This happens because the charger functions check for the phy presence
    inside the imx_usbmisc_data structure (data->usb_phy), but the chipidea
    core populates the usb_phy passed via 'phys' inside 'struct ci_hdrc'
    (ci->usb_phy) instead.
    
    This causes the NULL pointer dereference inside imx7d_charger_detection().
    
    Fix it by also searching for 'phys' in case 'fsl,usbphy' is not found.
    
    Tested on a imx7s-warp board.
    
    Fixes: 746f316b753a ("usb: chipidea: introduce imx7d USB charger detection")
    Cc: stable@vger.kernel.org
    Reported-by: Heiko Thiery <heiko.thiery@gmail.com>
    Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>
    Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
    Acked-by: Peter Chen <peter.chen@kernel.org>
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Link: https://lore.kernel.org/r/20210921113754.767631-1-festevam@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b70e9acfceb451e722f9bc3685383028506448f
Author: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Date:   Wed Sep 29 21:45:46 2021 +0200

    usb: cdc-wdm: Fix check for WWAN
    
    commit 04d2b75537085cb0c85d73a2e0e50317bffa883f upstream.
    
    CONFIG_WWAN_CORE was with CONFIG_WWAN in commit 89212e160b81 ("net: wwan:
    Fix WWAN config symbols"), but did not update all users of it. Change it
    back to use CONFIG_WWAN instead.
    
    Fixes: 89212e160b81 ("net: wwan: Fix WWAN config symbols")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
    Acked-by: Oliver Neukum <oneukum@suse.com>
    Link: https://lore.kernel.org/r/20210929194547.46954-2-rikard.falkeborn@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d92e0c42cfee85884e5f545a72e6a4aca8c523e6
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Tue Sep 21 16:34:42 2021 +0200

    Partially revert "usb: Kconfig: using select for USB_COMMON dependency"
    
    commit 4d1aa9112c8e6995ef2c8a76972c9671332ccfea upstream.
    
    This reverts commit cb9c1cfc86926d0e86d19c8e34f6c23458cd3478 for
    USB_LED_TRIG.  This config symbol has bool type and enables extra code
    in usb_common itself, not a separate driver.  Enabling it should not
    force usb_common to be built-in!
    
    Fixes: cb9c1cfc8692 ("usb: Kconfig: using select for USB_COMMON dependency")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Salvatore Bonaccorso <carnil@debian.org>
    Link: https://lore.kernel.org/r/20210921143442.340087-1-carnil@debian.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>