commit 00bec5497b5ce36a10c47a09d527805239e102d1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Feb 7 14:47:41 2021 +0100

    Linux 4.14.220
    
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/r/20210205140649.733510103@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9b2e4a94eee352e0b3e863045e7379d83131ee2
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Tue Jan 12 11:24:04 2021 +0100

    kthread: Extract KTHREAD_IS_PER_CPU
    
    [ Upstream commit ac687e6e8c26181a33270efd1a2e2241377924b0 ]
    
    There is a need to distinguish geniune per-cpu kthreads from kthreads
    that happen to have a single CPU affinity.
    
    Geniune per-cpu kthreads are kthreads that are CPU affine for
    correctness, these will obviously have PF_KTHREAD set, but must also
    have PF_NO_SETAFFINITY set, lest userspace modify their affinity and
    ruins things.
    
    However, these two things are not sufficient, PF_NO_SETAFFINITY is
    also set on other tasks that have their affinities controlled through
    other means, like for instance workqueues.
    
    Therefore another bit is needed; it turns out kthread_create_per_cpu()
    already has such a bit: KTHREAD_IS_PER_CPU, which is used to make
    kthread_park()/kthread_unpark() work correctly.
    
    Expose this flag and remove the implicit setting of it from
    kthread_create_on_cpu(); the io_uring usage of it seems dubious at
    best.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Valentin Schneider <valentin.schneider@arm.com>
    Tested-by: Valentin Schneider <valentin.schneider@arm.com>
    Link: https://lkml.kernel.org/r/20210121103506.557620262@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 536aea4013d50a4768262430e30c047818e57380
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Thu Jan 14 16:14:01 2021 -0600

    objtool: Don't fail on missing symbol table
    
    [ Upstream commit 1d489151e9f9d1647110277ff77282fe4d96d09b ]
    
    Thanks to a recent binutils change which doesn't generate unused
    symbols, it's now possible for thunk_64.o be completely empty without
    CONFIG_PREEMPTION: no text, no data, no symbols.
    
    We could edit the Makefile to only build that file when
    CONFIG_PREEMPTION is enabled, but that will likely create confusion
    if/when the thunks end up getting used by some other code again.
    
    Just ignore it and move on.
    
    Reported-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Tested-by: Nathan Chancellor <natechancellor@gmail.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1254
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 85969e0bb3e6bdb9230882f98715422b353ef701
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Tue Jan 12 09:06:38 2021 -0600

    scsi: ibmvfc: Set default timeout to avoid crash during migration
    
    [ Upstream commit 764907293edc1af7ac857389af9dc858944f53dc ]
    
    While testing live partition mobility, we have observed occasional crashes
    of the Linux partition. What we've seen is that during the live migration,
    for specific configurations with large amounts of memory, slow network
    links, and workloads that are changing memory a lot, the partition can end
    up being suspended for 30 seconds or longer. This resulted in the following
    scenario:
    
    CPU 0                          CPU 1
    -------------------------------  ----------------------------------
    scsi_queue_rq                    migration_store
     -> blk_mq_start_request          -> rtas_ibm_suspend_me
      -> blk_add_timer                 -> on_each_cpu(rtas_percpu_suspend_me
                  _______________________________________V
                 |
                 V
        -> IPI from CPU 1
         -> rtas_percpu_suspend_me
                                         -> __rtas_suspend_last_cpu
    
    -- Linux partition suspended for > 30 seconds --
                                          -> for_each_online_cpu(cpu)
                                               plpar_hcall_norets(H_PROD
     -> scsi_dispatch_cmd
                                          -> scsi_times_out
                                           -> scsi_abort_command
                                            -> queue_delayed_work
      -> ibmvfc_queuecommand_lck
       -> ibmvfc_send_event
        -> ibmvfc_send_crq
         - returns H_CLOSED
       <- returns SCSI_MLQUEUE_HOST_BUSY
    -> __blk_mq_requeue_request
    
                                          -> scmd_eh_abort_handler
                                           -> scsi_try_to_abort_cmd
                                             - returns SUCCESS
                                           -> scsi_queue_insert
    
    Normally, the SCMD_STATE_COMPLETE bit would protect against the command
    completion and the timeout, but that doesn't work here, since we don't
    check that at all in the SCSI_MLQUEUE_HOST_BUSY path.
    
    In this case we end up calling scsi_queue_insert on a request that has
    already been queued, or possibly even freed, and we crash.
    
    The patch below simply increases the default I/O timeout to avoid this race
    condition. This is also the timeout value that nearly all IBM SAN storage
    recommends setting as the default value.
    
    Link: https://lore.kernel.org/r/1610463998-19791-1-git-send-email-brking@linux.vnet.ibm.com
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 85f610963786f7a3853445918eb2cdcd177fd76d
Author: Felix Fietkau <nbd@nbd.name>
Date:   Fri Dec 18 19:47:17 2020 +0100

    mac80211: fix fast-rx encryption check
    
    [ Upstream commit 622d3b4e39381262da7b18ca1ed1311df227de86 ]
    
    When using WEP, the default unicast key needs to be selected, instead of
    the STA PTK.
    
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20201218184718.93650-5-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2ab7ca11035a7024398e7d4439691fb9a58a11c
Author: Javed Hasan <jhasan@marvell.com>
Date:   Tue Dec 15 11:47:31 2020 -0800

    scsi: libfc: Avoid invoking response handler twice if ep is already completed
    
    [ Upstream commit b2b0f16fa65e910a3ec8771206bb49ee87a54ac5 ]
    
    A race condition exists between the response handler getting called because
    of exchange_mgr_reset() (which clears out all the active XIDs) and the
    response we get via an interrupt.
    
    Sequence of events:
    
             rport ba0200: Port timeout, state PLOGI
             rport ba0200: Port entered PLOGI state from PLOGI state
             xid 1052: Exchange timer armed : 20000 msecs      xid timer armed here
             rport ba0200: Received LOGO request while in state PLOGI
             rport ba0200: Delete port
             rport ba0200: work event 3
             rport ba0200: lld callback ev 3
             bnx2fc: rport_event_hdlr: event = 3, port_id = 0xba0200
             bnx2fc: ba0200 - rport not created Yet!!
             /* Here we reset any outstanding exchanges before
             freeing rport using the exch_mgr_reset() */
             xid 1052: Exchange timer canceled
             /* Here we got two responses for one xid */
             xid 1052: invoking resp(), esb 20000000 state 3
             xid 1052: invoking resp(), esb 20000000 state 3
             xid 1052: fc_rport_plogi_resp() : ep->resp_active 2
             xid 1052: fc_rport_plogi_resp() : ep->resp_active 2
    
    Skip the response if the exchange is already completed.
    
    Link: https://lore.kernel.org/r/20201215194731.2326-1-jhasan@marvell.com
    Signed-off-by: Javed Hasan <jhasan@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad19a1fd55edb5ea7822a7f12f96fa02ffd97195
Author: Martin Wilck <mwilck@suse.com>
Date:   Mon Jan 11 15:25:41 2021 +0100

    scsi: scsi_transport_srp: Don't block target in failfast state
    
    [ Upstream commit 72eeb7c7151302ef007f1acd018cbf6f30e50321 ]
    
    If the port is in SRP_RPORT_FAIL_FAST state when srp_reconnect_rport() is
    entered, a transition to SDEV_BLOCK would be illegal, and a kernel WARNING
    would be triggered. Skip scsi_target_block() in this case.
    
    Link: https://lore.kernel.org/r/20210111142541.21534-1-mwilck@suse.com
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72e7afeba7725b8457f24955ba3d81459f8d709a
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Thu Jan 7 11:14:25 2021 +0100

    x86: __always_inline __{rd,wr}msr()
    
    [ Upstream commit 66a425011c61e71560c234492d204e83cfb73d1d ]
    
    When the compiler choses to not inline the trivial MSR helpers:
    
      vmlinux.o: warning: objtool: __sev_es_nmi_complete()+0xce: call to __wrmsr.constprop.14() leaves .noinstr.text section
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested
    Link: https://lore.kernel.org/r/X/bf3gV+BW7kGEsB@hirez.programming.kicks-ass.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ded3ebe604e1339daf4a61063e12df5acf31d45
Author: Tony Lindgren <tony@atomide.com>
Date:   Wed Dec 30 12:21:05 2020 +0200

    phy: cpcap-usb: Fix warning for missing regulator_disable
    
    [ Upstream commit 764257d9069a9c19758b626cc1ba4ae079335d9e ]
    
    On deferred probe, we will get the following splat:
    
    cpcap-usb-phy cpcap-usb-phy.0: could not initialize VBUS or ID IIO: -517
    WARNING: CPU: 0 PID: 21 at drivers/regulator/core.c:2123 regulator_put+0x68/0x78
    ...
    (regulator_put) from [<c068ebf0>] (release_nodes+0x1b4/0x1fc)
    (release_nodes) from [<c068a9a4>] (really_probe+0x104/0x4a0)
    (really_probe) from [<c068b034>] (driver_probe_device+0x58/0xb4)
    
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Link: https://lore.kernel.org/r/20201230102105.11826-1-tony@atomide.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41f4dfb4d5002b187f28ccdb5dd9451bf370c9c7
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Fri Jan 15 19:30:51 2021 +0100

    driver core: Extend device_is_dependent()
    
    commit 3d1cf435e201d1fd63e4346b141881aed086effd upstream
    
    If the device passed as the target (second argument) to
    device_is_dependent() is not completely registered (that is, it has
    been initialized, but not added yet), but the parent pointer of it
    is set, it may be missing from the list of the parent's children
    and device_for_each_child() called by device_is_dependent() cannot
    be relied on to catch that dependency.
    
    For this reason, modify device_is_dependent() to check the ancestors
    of the target device by following its parent pointer in addition to
    the device_for_each_child() walk.
    
    Fixes: 9ed9895370ae ("driver core: Functional dependencies tracking support")
    Reported-by: Stephan Gerhold <stephan@gerhold.net>
    Tested-by: Stephan Gerhold <stephan@gerhold.net>
    Reviewed-by: Saravana Kannan <saravanak@google.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Link: https://lore.kernel.org/r/17705994.d592GUb2YH@kreacher
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 21ad7f2d2712c4e4b1b745186ee43355543ac799
Author: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Date:   Mon Jul 16 13:37:44 2018 +0200

    base: core: Remove WARN_ON from link dependencies check
    
    commit e16f4f3e0b7daecd48d4f944ab4147c1a6cb16a8 upstream
    
    In some cases the link between between customer and supplier
    already exist, for example when a device use its parent as a supplier.
    Do not warn about already existing dependencies because device_link_add()
    takes care of this case.
    
    Link: http://lkml.kernel.org/r/20180709111753eucas1p1f32e66fb2f7ea3216097cd72a132355d~-rzycA5Rg0378203782eucas1p1C@eucas1p1.samsung.com
    
    Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Reviewed-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@st.com>
    Reviewed-by: Rafael J. Wysocki <rafael@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0396aa92ec6ba2e21f5f4843de0b6f2a1d53440f
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jan 14 10:19:29 2021 -0800

    net_sched: gen_estimator: support large ewma log
    
    commit dd5e073381f2ada3630f36be42833c6e9c78b75e upstream
    
    syzbot report reminded us that very big ewma_log were supported in the past,
    even if they made litle sense.
    
    tc qdisc replace dev xxx root est 1sec 131072sec ...
    
    While fixing the bug, also add boundary checks for ewma_log, in line
    with range supported by iproute2.
    
    UBSAN: shift-out-of-bounds in net/core/gen_estimator.c:83:38
    shift exponent -1 is negative
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.0-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:79 [inline]
     dump_stack+0x107/0x163 lib/dump_stack.c:120
     ubsan_epilogue+0xb/0x5a lib/ubsan.c:148
     __ubsan_handle_shift_out_of_bounds.cold+0xb1/0x181 lib/ubsan.c:395
     est_timer.cold+0xbb/0x12d net/core/gen_estimator.c:83
     call_timer_fn+0x1a5/0x710 kernel/time/timer.c:1417
     expire_timers kernel/time/timer.c:1462 [inline]
     __run_timers.part.0+0x692/0xa80 kernel/time/timer.c:1731
     __run_timers kernel/time/timer.c:1712 [inline]
     run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1744
     __do_softirq+0x2bc/0xa77 kernel/softirq.c:343
     asm_call_irq_on_stack+0xf/0x20
     </IRQ>
     __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
     run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
     do_softirq_own_stack+0xaa/0xd0 arch/x86/kernel/irq_64.c:77
     invoke_softirq kernel/softirq.c:226 [inline]
     __irq_exit_rcu+0x17f/0x200 kernel/softirq.c:420
     irq_exit_rcu+0x5/0x20 kernel/softirq.c:432
     sysvec_apic_timer_interrupt+0x4d/0x100 arch/x86/kernel/apic/apic.c:1096
     asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:628
    RIP: 0010:native_save_fl arch/x86/include/asm/irqflags.h:29 [inline]
    RIP: 0010:arch_local_save_flags arch/x86/include/asm/irqflags.h:79 [inline]
    RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:169 [inline]
    RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:111 [inline]
    RIP: 0010:acpi_idle_do_entry+0x1c9/0x250 drivers/acpi/processor_idle.c:516
    
    Fixes: 1c0d32fde5bd ("net_sched: gen_estimator: complete rewrite of rate estimators")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20210114181929.1717985-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    [sudip: adjust context]
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d4a51a680e503e9a9d280e3d9fbc73f8c5a7c71
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jan 14 08:06:37 2021 -0800

    net_sched: reject silly cell_log in qdisc_get_rtab()
    
    commit e4bedf48aaa5552bc1f49703abd17606e7e6e82a upstream
    
    iproute2 probably never goes beyond 8 for the cell exponent,
    but stick to the max shift exponent for signed 32bit.
    
    UBSAN reported:
    UBSAN: shift-out-of-bounds in net/sched/sch_api.c:389:22
    shift exponent 130 is too large for 32-bit type 'int'
    CPU: 1 PID: 8450 Comm: syz-executor586 Not tainted 5.11.0-rc3-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:79 [inline]
     dump_stack+0x183/0x22e lib/dump_stack.c:120
     ubsan_epilogue lib/ubsan.c:148 [inline]
     __ubsan_handle_shift_out_of_bounds+0x432/0x4d0 lib/ubsan.c:395
     __detect_linklayer+0x2a9/0x330 net/sched/sch_api.c:389
     qdisc_get_rtab+0x2b5/0x410 net/sched/sch_api.c:435
     cbq_init+0x28f/0x12c0 net/sched/sch_cbq.c:1180
     qdisc_create+0x801/0x1470 net/sched/sch_api.c:1246
     tc_modify_qdisc+0x9e3/0x1fc0 net/sched/sch_api.c:1662
     rtnetlink_rcv_msg+0xb1d/0xe60 net/core/rtnetlink.c:5564
     netlink_rcv_skb+0x1f0/0x460 net/netlink/af_netlink.c:2494
     netlink_unicast_kernel net/netlink/af_netlink.c:1304 [inline]
     netlink_unicast+0x7de/0x9b0 net/netlink/af_netlink.c:1330
     netlink_sendmsg+0xaa6/0xe90 net/netlink/af_netlink.c:1919
     sock_sendmsg_nosec net/socket.c:652 [inline]
     sock_sendmsg net/socket.c:672 [inline]
     ____sys_sendmsg+0x5a2/0x900 net/socket.c:2345
     ___sys_sendmsg net/socket.c:2399 [inline]
     __sys_sendmsg+0x319/0x400 net/socket.c:2432
     do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Cong Wang <cong.wang@bytedance.com>
    Link: https://lore.kernel.org/r/20210114160637.1660597-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    [sudip: adjust context]
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04b6c885a191dad27209dbf2bbe346136fc593f4
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Thu Jan 14 19:34:22 2021 +0100

    ACPI: thermal: Do not call acpi_thermal_check() directly
    
    commit 81b704d3e4674e09781d331df73d76675d5ad8cb upstream.
    
    Calling acpi_thermal_check() from acpi_thermal_notify() directly
    is problematic if _TMP triggers Notify () on the thermal zone for
    which it has been evaluated (which happens on some systems), because
    it causes a new acpi_thermal_notify() invocation to be queued up
    every time and if that takes place too often, an indefinite number of
    pending work items may accumulate in kacpi_notify_wq over time.
    
    Besides, it is not really useful to queue up a new invocation of
    acpi_thermal_check() if one of them is pending already.
    
    For these reasons, rework acpi_thermal_notify() to queue up a thermal
    check instead of calling acpi_thermal_check() directly and only allow
    one thermal check to be pending at a time.  Moreover, only allow one
    acpi_thermal_check_fn() instance at a time to run
    thermal_zone_device_update() for one thermal zone and make it return
    early if it sees other instances running for the same thermal zone.
    
    While at it, fold acpi_thermal_check() into acpi_thermal_check_fn(),
    as it is only called from there after the other changes made here.
    
    [This issue appears to have been exposed by commit 6d25be5782e4
     ("sched/core, workqueues: Distangle worker accounting from rq
     lock"), but it is unclear why it was not visible earlier.]
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208877
    Reported-by: Stephen Berman <stephen.berman@gmx.net>
    Diagnosed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Tested-by: Stephen Berman <stephen.berman@gmx.net>
    Cc: All applicable <stable@vger.kernel.org>
    [bigeasy: Backported to v5.4.y]
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66e6432fdf8cb487c888ffbfb430780c6bd8e477
Author: Lijun Pan <ljp@linux.ibm.com>
Date:   Wed Jan 27 19:34:42 2021 -0600

    ibmvnic: Ensure that CRQ entry read are correctly ordered
    
    commit e41aec79e62fa50f940cf222d1e9577f14e149dc upstream.
    
    Ensure that received Command-Response Queue (CRQ) entries are
    properly read in order by the driver. dma_rmb barrier has
    been added before accessing the CRQ descriptor to ensure
    the entire descriptor is read before processing.
    
    Fixes: 032c5e82847a ("Driver for IBM System i/p VNIC protocol")
    Signed-off-by: Lijun Pan <ljp@linux.ibm.com>
    Link: https://lore.kernel.org/r/20210128013442.88319-1-ljp@linux.ibm.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a366f3069c50b5d7aeb73aece32f5ad31c08643e
Author: Pan Bian <bianpan2016@163.com>
Date:   Thu Jan 21 04:33:43 2021 -0800

    net: dsa: bcm_sf2: put device node before return
    
    commit cf3c46631e1637582f517a574c77cd6c05793817 upstream.
    
    Put the device node dn before return error code on failure path.
    
    Fixes: 461cd1b03e32 ("net: dsa: bcm_sf2: Register our slave MDIO bus")
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Link: https://lore.kernel.org/r/20210121123343.26330-1-bianpan2016@163.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>