commit 13b6016e96f628ac1cfb3c0b342911fd91c9c005
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Feb 17 11:02:30 2021 +0100

    Linux 5.10.17
    
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Ross Schmidt <ross.schm.dev@gmail.com>
    Link: https://lore.kernel.org/r/20210215152719.459796636@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90ac1981acfaf57f8976e4af8b12516532992f04
Author: Andrey Konovalov <andreyknvl@google.com>
Date:   Fri Oct 16 15:57:45 2020 +0200

    kcov, usb: only collect coverage from __usb_hcd_giveback_urb in softirq
    
    commit aee9ddb1d3718d3ba05b50c51622d7792ae749c9 upstream.
    
    Currently there's a KCOV remote coverage collection section in
    __usb_hcd_giveback_urb(). Initially that section was added based on the
    assumption that usb_hcd_giveback_urb() can only be called in interrupt
    context as indicated by a comment before it. This is what happens when
    syzkaller is fuzzing the USB stack via the dummy_hcd driver.
    
    As it turns out, it's actually valid to call usb_hcd_giveback_urb() in task
    context, provided that the caller turned off the interrupts; USB/IP does
    exactly that. This can lead to a nested KCOV remote coverage collection
    sections both trying to collect coverage in task context. This isn't
    supported by KCOV, and leads to a WARNING.
    
    Change __usb_hcd_giveback_urb() to only call kcov_remote_*() callbacks
    when it's being executed in a softirq. As the result, the coverage from
    USB/IP related usb_hcd_giveback_urb() calls won't be collected, but the
    WARNING is fixed.
    
    A potential future improvement would be to support nested remote coverage
    collection sections, but this patch doesn't address that.
    
    Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Marco Elver <elver@google.com>
    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    Link: https://lore.kernel.org/r/f3a7a153f0719cb53ec385b16e912798bd3e4cf9.1602856358.git.andreyknvl@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5c376c41a5798451355fb2e0732847be4a64c58
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Nov 12 11:31:55 2020 +0100

    ovl: expand warning in ovl_d_real()
    
    commit cef4cbff06fbc3be54d6d79ee139edecc2ee8598 upstream.
    
    There was a syzbot report with this warning but insufficient information...
    
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57068800258f472d09d7fea549fe587f653e0ede
Author: Sabyrzhan Tasbolatov <snovitoll@gmail.com>
Date:   Tue Feb 2 15:20:59 2021 +0600

    net/qrtr: restrict user-controlled length in qrtr_tun_write_iter()
    
    commit 2a80c15812372e554474b1dba0b1d8e467af295d upstream.
    
    syzbot found WARNING in qrtr_tun_write_iter [1] when write_iter length
    exceeds KMALLOC_MAX_SIZE causing order >= MAX_ORDER condition.
    
    Additionally, there is no check for 0 length write.
    
    [1]
    WARNING: mm/page_alloc.c:5011
    [..]
    Call Trace:
     alloc_pages_current+0x18c/0x2a0 mm/mempolicy.c:2267
     alloc_pages include/linux/gfp.h:547 [inline]
     kmalloc_order+0x2e/0xb0 mm/slab_common.c:837
     kmalloc_order_trace+0x14/0x120 mm/slab_common.c:853
     kmalloc include/linux/slab.h:557 [inline]
     kzalloc include/linux/slab.h:682 [inline]
     qrtr_tun_write_iter+0x8a/0x180 net/qrtr/tun.c:83
     call_write_iter include/linux/fs.h:1901 [inline]
    
    Reported-by: syzbot+c2a7e5c5211605a90865@syzkaller.appspotmail.com
    Signed-off-by: Sabyrzhan Tasbolatov <snovitoll@gmail.com>
    Link: https://lore.kernel.org/r/20210202092059.1361381-1-snovitoll@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 862d1c0edd2126037816a8e0d8d1adacba84c74f
Author: Sabyrzhan Tasbolatov <snovitoll@gmail.com>
Date:   Tue Feb 2 02:32:33 2021 +0600

    net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS
    
    commit a11148e6fcce2ae53f47f0a442d098d860b4f7db upstream.
    
    syzbot found WARNING in rds_rdma_extra_size [1] when RDS_CMSG_RDMA_ARGS
    control message is passed with user-controlled
    0x40001 bytes of args->nr_local, causing order >= MAX_ORDER condition.
    
    The exact value 0x40001 can be checked with UIO_MAXIOV which is 0x400.
    So for kcalloc() 0x400 iovecs with sizeof(struct rds_iovec) = 0x10
    is the closest limit, with 0x10 leftover.
    
    Same condition is currently done in rds_cmsg_rdma_args().
    
    [1] WARNING: mm/page_alloc.c:5011
    [..]
    Call Trace:
     alloc_pages_current+0x18c/0x2a0 mm/mempolicy.c:2267
     alloc_pages include/linux/gfp.h:547 [inline]
     kmalloc_order+0x2e/0xb0 mm/slab_common.c:837
     kmalloc_order_trace+0x14/0x120 mm/slab_common.c:853
     kmalloc_array include/linux/slab.h:592 [inline]
     kcalloc include/linux/slab.h:621 [inline]
     rds_rdma_extra_size+0xb2/0x3b0 net/rds/rdma.c:568
     rds_rm_size net/rds/send.c:928 [inline]
    
    Reported-by: syzbot+1bd2b07f93745fa38425@syzkaller.appspotmail.com
    Signed-off-by: Sabyrzhan Tasbolatov <snovitoll@gmail.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Link: https://lore.kernel.org/r/20210201203233.1324704-1-snovitoll@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 69e9fd9de17e839920149e0906f4758667d3cee7
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Tue Feb 9 09:52:19 2021 +0100

    vsock: fix locking in vsock_shutdown()
    
    commit 1c5fae9c9a092574398a17facc31c533791ef232 upstream.
    
    In vsock_shutdown() we touched some socket fields without holding the
    socket lock, such as 'state' and 'sk_flags'.
    
    Also, after the introduction of multi-transport, we are accessing
    'vsk->transport' in vsock_send_shutdown() without holding the lock
    and this call can be made while the connection is in progress, so
    the transport can change in the meantime.
    
    To avoid issues, we hold the socket lock when we enter in
    vsock_shutdown() and release it when we leave.
    
    Among the transports that implement the 'shutdown' callback, only
    hyperv_transport acquired the lock. Since the caller now holds it,
    we no longer take it.
    
    Fixes: d021c344051a ("VSOCK: Introduce VM Sockets")
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afe31701609b6ccf5cc637fb229383c26d72d478
Author: Stefano Garzarella <sgarzare@redhat.com>
Date:   Mon Feb 8 15:44:54 2021 +0100

    vsock/virtio: update credit only if socket is not closed
    
    commit ce7536bc7398e2ae552d2fabb7e0e371a9f1fe46 upstream.
    
    If the socket is closed or is being released, some resources used by
    virtio_transport_space_update() such as 'vsk->trans' may be released.
    
    To avoid a use after free bug we should only update the available credit
    when we are sure the socket is still open and we have the lock held.
    
    Fixes: 06a8fc78367d ("VSOCK: Introduce virtio_vsock_common.ko")
    Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Link: https://lore.kernel.org/r/20210208144454.84438-1-sgarzare@redhat.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba3bcb35d783805f2b3ebf2ebf61702cd68f4959
Author: Horatiu Vultur <horatiu.vultur@microchip.com>
Date:   Sat Feb 6 22:47:34 2021 +0100

    switchdev: mrp: Remove SWITCHDEV_ATTR_ID_MRP_PORT_STAT
    
    commit 059d2a1004981dce19f0127dabc1b4ec927d202a upstream.
    
    Now that MRP started to use also SWITCHDEV_ATTR_ID_PORT_STP_STATE to
    notify HW, then SWITCHDEV_ATTR_ID_MRP_PORT_STAT is not used anywhere
    else, therefore we can remove it.
    
    Fixes: c284b545900830 ("switchdev: mrp: Extend switchdev API to offload MRP")
    Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55ad30cb7f73b575570f2a39772b88ff25308b27
Author: Horatiu Vultur <horatiu.vultur@microchip.com>
Date:   Sat Feb 6 22:47:33 2021 +0100

    bridge: mrp: Fix the usage of br_mrp_port_switchdev_set_state
    
    commit b2bdba1cbc84cadb14393d0101a5bfd38d342e0a upstream.
    
    The function br_mrp_port_switchdev_set_state was called both with MRP
    port state and STP port state, which is an issue because they don't
    match exactly.
    
    Therefore, update the function to be used only with STP port state and
    use the id SWITCHDEV_ATTR_ID_PORT_STP_STATE.
    
    The choice of using STP over MRP is that the drivers already implement
    SWITCHDEV_ATTR_ID_PORT_STP_STATE and already in SW we update the port
    STP state.
    
    Fixes: 9a9f26e8f7ea30 ("bridge: mrp: Connect MRP API with the switchdev API")
    Fixes: fadd409136f0f2 ("bridge: switchdev: mrp: Implement MRP API for switchdev")
    Fixes: 2f1a11ae11d222 ("bridge: mrp: Add MRP interface.")
    Reported-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
    Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e22b963d3ec9a510c44d02ff7262fcec49098533
Author: Edwin Peer <edwin.peer@broadcom.com>
Date:   Fri Feb 5 17:37:32 2021 -0800

    net: watchdog: hold device global xmit lock during tx disable
    
    commit 3aa6bce9af0e25b735c9c1263739a5639a336ae8 upstream.
    
    Prevent netif_tx_disable() running concurrently with dev_watchdog() by
    taking the device global xmit lock. Otherwise, the recommended:
    
            netif_carrier_off(dev);
            netif_tx_disable(dev);
    
    driver shutdown sequence can happen after the watchdog has already
    checked carrier, resulting in possible false alarms. This is because
    netif_tx_lock() only sets the frozen bit without maintaining the locks
    on the individual queues.
    
    Fixes: c3f26a269c24 ("netdev: Fix lockdep warnings in multiqueue configurations.")
    Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
    Reviewed-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc21a88465c2778f1c877859475adacb1be1821d
Author: Norbert Slusarek <nslusarek@gmx.net>
Date:   Fri Feb 5 13:14:05 2021 +0100

    net/vmw_vsock: improve locking in vsock_connect_timeout()
    
    commit 3d0bc44d39bca615b72637e340317b7899b7f911 upstream.
    
    A possible locking issue in vsock_connect_timeout() was recognized by
    Eric Dumazet which might cause a null pointer dereference in
    vsock_transport_cancel_pkt(). This patch assures that
    vsock_transport_cancel_pkt() will be called within the lock, so a race
    condition won't occur which could result in vsk->transport to be set to NULL.
    
    Fixes: 380feae0def7 ("vsock: cancel packets when failing to connect")
    Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Norbert Slusarek <nslusarek@gmx.net>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Link: https://lore.kernel.org/r/trinity-f8e0937a-cf0e-4d80-a76e-d9a958ba3ef1-1612535522360@3c-app-gmx-bap12
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fcee53dc03c5aa5bca6631fa0aa900efc3079236
Author: Norbert Slusarek <nslusarek@gmx.net>
Date:   Fri Feb 5 13:12:06 2021 +0100

    net/vmw_vsock: fix NULL pointer dereference
    
    commit 5d1cbcc990f18edaddddef26677073c4e6fad7b7 upstream.
    
    In vsock_stream_connect(), a thread will enter schedule_timeout().
    While being scheduled out, another thread can enter vsock_stream_connect()
    as well and set vsk->transport to NULL. In case a signal was sent, the
    first thread can leave schedule_timeout() and vsock_transport_cancel_pkt()
    will be called right after. Inside vsock_transport_cancel_pkt(), a null
    dereference will happen on transport->cancel_pkt.
    
    Fixes: c0cfa2d8a788 ("vsock: add multi-transports support")
    Signed-off-by: Norbert Slusarek <nslusarek@gmx.net>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Link: https://lore.kernel.org/r/trinity-c2d6cede-bfb1-44e2-85af-1fbc7f541715-1612535117028@3c-app-gmx-bap12
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9013813413e12c8968e22964e314841b93af3c5
Author: NeilBrown <neilb@suse.de>
Date:   Fri Feb 5 11:36:30 2021 +1100

    net: fix iteration for sctp transport seq_files
    
    commit af8085f3a4712c57d0dd415ad543bac85780375c upstream.
    
    The sctp transport seq_file iterators take a reference to the transport
    in the ->start and ->next functions and releases the reference in the
    ->show function.  The preferred handling for such resources is to
    release them in the subsequent ->next or ->stop function call.
    
    Since Commit 1f4aace60b0e ("fs/seq_file.c: simplify seq_file iteration
    code and interface") there is no guarantee that ->show will be called
    after ->next, so this function can now leak references.
    
    So move the sctp_transport_put() call to ->next and ->stop.
    
    Fixes: 1f4aace60b0e ("fs/seq_file.c: simplify seq_file iteration code and interface")
    Reported-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e6ce473e96ba0ad63820325892373d24c1aa8aa
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Feb 4 13:31:46 2021 -0800

    net: gro: do not keep too many GRO packets in napi->rx_list
    
    commit 8dc1c444df193701910f5e80b5d4caaf705a8fb0 upstream.
    
    Commit c80794323e82 ("net: Fix packet reordering caused by GRO and
    listified RX cooperation") had the unfortunate effect of adding
    latencies in common workloads.
    
    Before the patch, GRO packets were immediately passed to
    upper stacks.
    
    After the patch, we can accumulate quite a lot of GRO
    packets (depdending on NAPI budget).
    
    My fix is counting in napi->rx_count number of segments
    instead of number of logical packets.
    
    Fixes: c80794323e82 ("net: Fix packet reordering caused by GRO and listified RX cooperation")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Bisected-by: John Sperbeck <jsperbeck@google.com>
    Tested-by: Jian Yang <jianyang@google.com>
    Cc: Maxim Mikityanskiy <maximmi@mellanox.com>
    Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
    Reviewed-by: Edward Cree <ecree.xilinx@gmail.com>
    Reviewed-by: Alexander Lobakin <alobakin@pm.me>
    Link: https://lore.kernel.org/r/20210204213146.4192368-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18193e09834cbb6e645861bc26c5ae184441e0d2
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Thu Feb 4 18:34:32 2021 +0100

    cpufreq: ACPI: Update arch scale-invariance max perf ratio if CPPC is not there
    
    commit d11a1d08a082a7dc0ada423d2b2e26e9b6f2525c upstream.
    
    If the maximum performance level taken for computing the
    arch_max_freq_ratio value used in the x86 scale-invariance code is
    higher than the one corresponding to the cpuinfo.max_freq value
    coming from the acpi_cpufreq driver, the scale-invariant utilization
    falls below 100% even if the CPU runs at cpuinfo.max_freq or slightly
    faster, which causes the schedutil governor to select a frequency
    below cpuinfo.max_freq.  That frequency corresponds to a frequency
    table entry below the maximum performance level necessary to get to
    the "boost" range of CPU frequencies which prevents "boost"
    frequencies from being used in some workloads.
    
    While this issue is related to scale-invariance, it may be amplified
    by commit db865272d9c4 ("cpufreq: Avoid configuring old governors as
    default with intel_pstate") from the 5.10 development cycle which
    made it extremely easy to default to schedutil even if the preferred
    driver is acpi_cpufreq as long as intel_pstate is built too, because
    the mere presence of the latter effectively removes the ondemand
    governor from the defaults.  Distro kernels are likely to include
    both intel_pstate and acpi_cpufreq on x86, so their users who cannot
    use intel_pstate or choose to use acpi_cpufreq may easily be
    affectecd by this issue.
    
    If CPPC is available, it can be used to address this issue by
    extending the frequency tables created by acpi_cpufreq to cover the
    entire available frequency range (including "boost" frequencies) for
    each CPU, but if CPPC is not there, acpi_cpufreq has no idea what
    the maximum "boost" frequency is and the frequency tables created by
    it cannot be extended in a meaningful way, so in that case make it
    ask the arch scale-invariance code to to use the "nominal" performance
    level for CPU utilization scaling in order to avoid the issue at hand.
    
    Fixes: db865272d9c4 ("cpufreq: Avoid configuring old governors as default with intel_pstate")
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Giovanni Gherdovich <ggherdovich@suse.cz>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a3fc32b322cc3081dd3569047c9834f496b4ab0
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Thu Feb 4 18:25:37 2021 +0100

    cpufreq: ACPI: Extend frequency tables to cover boost frequencies
    
    commit 3c55e94c0adea4a5389c4b80f6ae9927dd6a4501 upstream.
    
    A severe performance regression on AMD EPYC processors when using
    the schedutil scaling governor was discovered by Phoronix.com and
    attributed to the following commits:
    
      41ea667227ba ("x86, sched: Calculate frequency invariance for AMD
      systems")
    
      976df7e5730e ("x86, sched: Use midpoint of max_boost and max_P for
      frequency invariance on AMD EPYC")
    
    The source of the problem is that the maximum performance level taken
    for computing the arch_max_freq_ratio value used in the x86 scale-
    invariance code is higher than the one corresponding to the
    cpuinfo.max_freq value coming from the acpi_cpufreq driver.
    
    This effectively causes the scale-invariant utilization to fall below
    100% even if the CPU runs at cpuinfo.max_freq or slightly faster, so
    the schedutil governor selects a frequency below cpuinfo.max_freq
    then.  That frequency corresponds to a frequency table entry below
    the maximum performance level necessary to get to the "boost" range
    of CPU frequencies.
    
    However, if the cpuinfo.max_freq value coming from acpi_cpufreq was
    higher, the schedutil governor would select higher frequencies which
    in turn would allow acpi_cpufreq to set more adequate performance
    levels and to get to the "boost" range of CPU frequencies more often.
    
    This issue affects any systems where acpi_cpufreq is used and the
    "boost" (or "turbo") frequencies are enabled, not just AMD EPYC.
    Moreover, commit db865272d9c4 ("cpufreq: Avoid configuring old
    governors as default with intel_pstate") from the 5.10 development
    cycle made it extremely easy to default to schedutil even if the
    preferred driver is acpi_cpufreq as long as intel_pstate is built
    too, because the mere presence of the latter effectively removes the
    ondemand governor from the defaults.  Distro kernels are likely to
    include both intel_pstate and acpi_cpufreq on x86, so their users
    who cannot use intel_pstate or choose to use acpi_cpufreq may
    easily be affectecd by this issue.
    
    To address this issue, extend the frequency table constructed by
    acpi_cpufreq for each CPU to cover the entire range of available
    frequencies (including the "boost" ones) if CPPC is available and
    indicates that "boost" (or "turbo") frequencies are enabled.  That
    causes cpuinfo.max_freq to become the maximum "boost" frequency of
    the given CPU (instead of the maximum frequency returned by the ACPI
    _PSS object that corresponds to the "nominal" performance level).
    
    Fixes: 41ea667227ba ("x86, sched: Calculate frequency invariance for AMD systems")
    Fixes: 976df7e5730e ("x86, sched: Use midpoint of max_boost and max_P for frequency invariance on AMD EPYC")
    Fixes: db865272d9c4 ("cpufreq: Avoid configuring old governors as default with intel_pstate")
    Link: https://www.phoronix.com/scan.php?page=article&item=linux511-amd-schedutil&num=1
    Link: https://lore.kernel.org/linux-pm/20210203135321.12253-2-ggherdovich@suse.cz/
    Reported-by: Michael Larabel <Michael@phoronix.com>
    Diagnosed-by: Giovanni Gherdovich <ggherdovich@suse.cz>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Tested-by: Giovanni Gherdovich <ggherdovich@suse.cz>
    Reviewed-by: Giovanni Gherdovich <ggherdovich@suse.cz>
    Tested-by: Michael Larabel <Michael@phoronix.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c930943a368336be15b909cc1d6c344eceb3bd5e
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Feb 4 18:33:51 2021 +0200

    net: dsa: call teardown method on probe failure
    
    commit 8fd54a73b7cda11548154451bdb4bde6d8ff74c7 upstream.
    
    Since teardown is supposed to undo the effects of the setup method, it
    should be called in the error path for dsa_switch_setup, not just in
    dsa_switch_teardown.
    
    Fixes: 5e3f847a02aa ("net: dsa: Add teardown callback for drivers")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Link: https://lore.kernel.org/r/20210204163351.2929670-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46a831d1cc25f559a5ef46aff35e39795b61a94c
Author: Willem de Bruijn <willemb@google.com>
Date:   Wed Feb 3 14:29:52 2021 -0500

    udp: fix skb_copy_and_csum_datagram with odd segment sizes
    
    commit 52cbd23a119c6ebf40a527e53f3402d2ea38eccb upstream.
    
    When iteratively computing a checksum with csum_block_add, track the
    offset "pos" to correctly rotate in csum_block_add when offset is odd.
    
    The open coded implementation of skb_copy_and_csum_datagram did this.
    With the switch to __skb_datagram_iter calling csum_and_copy_to_iter,
    pos was reinitialized to 0 on each call.
    
    Bring back the pos by passing it along with the csum to the callback.
    
    Changes v1->v2
      - pass csum value, instead of csump pointer (Alexander Duyck)
    
    Link: https://lore.kernel.org/netdev/20210128152353.GB27281@optiplex/
    Fixes: 950fcaecd5cc ("datagram: consolidate datagram copy to iter helpers")
    Reported-by: Oliver Graute <oliver.graute@gmail.com>
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://lore.kernel.org/r/20210203192952.1849843-1-willemdebruijn.kernel@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 24f5544f76d38cf55903a62cc9b1dbf264eb5807
Author: David Howells <dhowells@redhat.com>
Date:   Wed Feb 3 08:47:56 2021 +0000

    rxrpc: Fix clearance of Tx/Rx ring when releasing a call
    
    commit 7b5eab57cac45e270a0ad624ba157c5b30b3d44d upstream.
    
    At the end of rxrpc_release_call(), rxrpc_cleanup_ring() is called to clear
    the Rx/Tx skbuff ring, but this doesn't lock the ring whilst it's accessing
    it.  Unfortunately, rxrpc_resend() might be trying to retransmit a packet
    concurrently with this - and whilst it does lock the ring, this isn't
    protection against rxrpc_cleanup_call().
    
    Fix this by removing the call to rxrpc_cleanup_ring() from
    rxrpc_release_call().  rxrpc_cleanup_ring() will be called again anyway
    from rxrpc_cleanup_call().  The earlier call is just an optimisation to
    recycle skbuffs more quickly.
    
    Alternative solutions include rxrpc_release_call() could try to cancel the
    work item or wait for it to complete or rxrpc_cleanup_ring() could lock
    when accessing the ring (which would require a bh lock).
    
    This can produce a report like the following:
    
      BUG: KASAN: use-after-free in rxrpc_send_data_packet+0x19b4/0x1e70 net/rxrpc/output.c:372
      Read of size 4 at addr ffff888011606e04 by task kworker/0:0/5
      ...
      Workqueue: krxrpcd rxrpc_process_call
      Call Trace:
       ...
       kasan_report.cold+0x79/0xd5 mm/kasan/report.c:413
       rxrpc_send_data_packet+0x19b4/0x1e70 net/rxrpc/output.c:372
       rxrpc_resend net/rxrpc/call_event.c:266 [inline]
       rxrpc_process_call+0x1634/0x1f60 net/rxrpc/call_event.c:412
       process_one_work+0x98d/0x15f0 kernel/workqueue.c:2275
       ...
    
      Allocated by task 2318:
       ...
       sock_alloc_send_pskb+0x793/0x920 net/core/sock.c:2348
       rxrpc_send_data+0xb51/0x2bf0 net/rxrpc/sendmsg.c:358
       rxrpc_do_sendmsg+0xc03/0x1350 net/rxrpc/sendmsg.c:744
       rxrpc_sendmsg+0x420/0x630 net/rxrpc/af_rxrpc.c:560
       ...
    
      Freed by task 2318:
       ...
       kfree_skb+0x140/0x3f0 net/core/skbuff.c:704
       rxrpc_free_skb+0x11d/0x150 net/rxrpc/skbuff.c:78
       rxrpc_cleanup_ring net/rxrpc/call_object.c:485 [inline]
       rxrpc_release_call+0x5dd/0x860 net/rxrpc/call_object.c:552
       rxrpc_release_calls_on_socket+0x21c/0x300 net/rxrpc/call_object.c:579
       rxrpc_release_sock net/rxrpc/af_rxrpc.c:885 [inline]
       rxrpc_release+0x263/0x5a0 net/rxrpc/af_rxrpc.c:916
       __sock_release+0xcd/0x280 net/socket.c:597
       ...
    
      The buggy address belongs to the object at ffff888011606dc0
       which belongs to the cache skbuff_head_cache of size 232
    
    Fixes: 248f219cb8bc ("rxrpc: Rewrite the data and ack handling code")
    Reported-by: syzbot+174de899852504e4a74a@syzkaller.appspotmail.com
    Reported-by: syzbot+3d1c772efafd3c38d007@syzkaller.appspotmail.com
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Hillf Danton <hdanton@sina.com>
    Link: https://lore.kernel.org/r/161234207610.653119.5287360098400436976.stgit@warthog.procyon.org.uk
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 975a2396e37cecc42ba006d69d943be149efbeb0
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Wed Feb 10 18:03:16 2021 +0000

    arm64: mte: Allow PTRACE_PEEKMTETAGS access to the zero page
    
    commit 68d54ceeec0e5fee4fb8048e6a04c193f32525ca upstream.
    
    The ptrace(PTRACE_PEEKMTETAGS) implementation checks whether the user
    page has valid tags (mapped with PROT_MTE) by testing the PG_mte_tagged
    page flag. If this bit is cleared, ptrace(PTRACE_PEEKMTETAGS) returns
    -EIO.
    
    A newly created (PROT_MTE) mapping points to the zero page which had its
    tags zeroed during cpu_enable_mte(). If there were no prior writes to
    this mapping, ptrace(PTRACE_PEEKMTETAGS) fails with -EIO since the zero
    page does not have the PG_mte_tagged flag set.
    
    Set PG_mte_tagged on the zero page when its tags are cleared during
    boot. In addition, to avoid ptrace(PTRACE_PEEKMTETAGS) succeeding on
    !PROT_MTE mappings pointing to the zero page, change the
    __access_remote_tags() check to (vm_flags & VM_MTE) instead of
    PG_mte_tagged.
    
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Fixes: 34bfeea4a9e9 ("arm64: mte: Clear the tags when a page is mapped in user-space with PROT_MTE")
    Cc: <stable@vger.kernel.org> # 5.10.x
    Cc: Will Deacon <will@kernel.org>
    Reported-by: Luis Machado <luis.machado@linaro.org>
    Tested-by: Luis Machado <luis.machado@linaro.org>
    Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Link: https://lore.kernel.org/r/20210210180316.23654-1-catalin.marinas@arm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ed6cc9c2dd08a2ed29f43b5916cb16c3318e98a
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Feb 10 16:27:41 2021 +0100

    x86/pci: Create PCI/MSI irqdomain after x86_init.pci.arch_init()
    
    commit 70245f86c109e0eafb92ea9653184c0e44b4b35c upstream.
    
    Invoking x86_init.irqs.create_pci_msi_domain() before
    x86_init.pci.arch_init() breaks XEN PV.
    
    The XEN_PV specific pci.arch_init() function overrides the default
    create_pci_msi_domain() which is obviously too late.
    
    As a consequence the XEN PV PCI/MSI allocation goes through the native
    path which runs out of vectors and causes malfunction.
    
    Invoke it after x86_init.pci.arch_init().
    
    Fixes: 6b15ffa07dc3 ("x86/irq: Initialize PCI/MSI domain at PCI init time")
    Reported-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Juergen Gross <jgross@suse.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/87pn18djte.fsf@nanos.tec.linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 902c6dcbb146eb119ae539a231103619855df6a0
Author: Rolf Eike Beer <eb@emlix.com>
Date:   Fri Feb 12 08:22:27 2021 +0100

    scripts: set proper OpenSSL include dir also for sign-file
    
    commit fe968c41ac4f4ec9ffe3c4cf16b72285f5e9674f upstream.
    
    Fixes: 2cea4a7a1885 ("scripts: use pkg-config to locate libcrypto")
    Signed-off-by: Rolf Eike Beer <eb@emlix.com>
    Cc: stable@vger.kernel.org # 5.6.x
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4761b1aabcfd36d5a4d0528168c474926bd7b2f9
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Feb 12 20:52:54 2021 -0800

    h8300: fix PREEMPTION build, TI_PRE_COUNT undefined
    
    [ Upstream commit ade9679c159d5bbe14fb7e59e97daf6062872e2b ]
    
    Fix a build error for undefined 'TI_PRE_COUNT' by adding it to
    asm-offsets.c.
    
      h8300-linux-ld: arch/h8300/kernel/entry.o: in function `resume_kernel': (.text+0x29a): undefined reference to `TI_PRE_COUNT'
    
    Link: https://lkml.kernel.org/r/20210212021650.22740-1-rdunlap@infradead.org
    Fixes: df2078b8daa7 ("h8300: Low level entry")
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f6b5e671c6a7ee18fb170584e424d9d5a803e1b4
Author: Alain Volmat <alain.volmat@foss.st.com>
Date:   Fri Feb 5 09:51:40 2021 +0100

    i2c: stm32f7: fix configuration of the digital filter
    
    [ Upstream commit 3d6a3d3a2a7a3a60a824e7c04e95fd50dec57812 ]
    
    The digital filter related computation are present in the driver
    however the programming of the filter within the IP is missing.
    The maximum value for the DNF is wrong and should be 15 instead of 16.
    
    Fixes: aeb068c57214 ("i2c: i2c-stm32f7: add driver")
    
    Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
    Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c0ddf0dd69200285652a26a6978a8e4d889b488
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Feb 9 18:58:56 2021 +0100

    clk: sunxi-ng: mp: fix parent rate change flag check
    
    [ Upstream commit 245090ab2636c0869527ce563afbfb8aff29e825 ]
    
    CLK_SET_RATE_PARENT flag is checked on parent clock instead of current
    one. Fix that.
    
    Fixes: 3f790433c3cb ("clk: sunxi-ng: Adjust MP clock parent rate when allowed")
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Andre Heider <a.heider@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Link: https://lore.kernel.org/r/20210209175900.7092-2-jernej.skrabec@siol.net
    Acked-by: Maxime Ripard <mripard@kernel.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 664b66e3552c219b7591e772d608160911401288
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Feb 9 18:59:00 2021 +0100

    drm/sun4i: dw-hdmi: Fix max. frequency for H6
    
    [ Upstream commit 1926a0508d8947cf081280d85ff035300dc71da7 ]
    
    It turns out that reasoning for lowering max. supported frequency is
    wrong. Scrambling works just fine. Several now fixed bugs prevented
    proper functioning, even with rates lower than 340 MHz. Issues were just
    more pronounced with higher frequencies.
    
    Fix that by allowing max. supported frequency in HW and fix the comment.
    
    Fixes: cd9063757a22 ("drm/sun4i: DW HDMI: Lower max. supported rate for H6")
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Andre Heider <a.heider@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210209175900.7092-6-jernej.skrabec@siol.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 962168c2bc15642969fd1fa0b82e1538dcbd5691
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Feb 9 18:58:59 2021 +0100

    drm/sun4i: Fix H6 HDMI PHY configuration
    
    [ Upstream commit 6a155216c48f2f65c8dcb02c4c27549c170d24a9 ]
    
    As it turns out, vendor HDMI PHY driver for H6 has a pretty big table
    of predefined values for various pixel clocks. However, most of them are
    not useful/tested because they come from reference driver code. Vendor
    PHY driver is concerned with only few of those, namely 27 MHz, 74.25
    MHz, 148.5 MHz, 297 MHz and 594 MHz. These are all frequencies for
    standard CEA modes.
    
    Fix sun50i_h6_cur_ctr and sun50i_h6_phy_config with the values only for
    aforementioned frequencies.
    
    Table sun50i_h6_mpll_cfg doesn't need to be changed because values are
    actually frequency dependent and not so much SoC dependent. See i.MX6
    documentation for explanation of those values for similar PHY.
    
    Fixes: c71c9b2fee17 ("drm/sun4i: Add support for Synopsys HDMI PHY")
    Tested-by: Andre Heider <a.heider@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210209175900.7092-5-jernej.skrabec@siol.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e639cb199b8e3d9331d3d93248d7608527880c0b
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Feb 9 18:58:58 2021 +0100

    drm/sun4i: dw-hdmi: always set clock rate
    
    [ Upstream commit 36b53581fe0dc2e25b67de4e58920307f22d195a ]
    
    As expected, HDMI controller clock should always match pixel clock. In
    the past, changing HDMI controller rate would seemingly worsen
    situation. However, that was the result of other bugs which are now
    fixed.
    
    Fix that by removing set_rate quirk and always set clock rate.
    
    Fixes: 40bb9d3147b2 ("drm/sun4i: Add support for H6 DW HDMI controller")
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Andre Heider <a.heider@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210209175900.7092-4-jernej.skrabec@siol.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7596c85a8962b92bbfff544af970e8180a5efd4d
Author: Jernej Skrabec <jernej.skrabec@siol.net>
Date:   Tue Feb 9 18:58:57 2021 +0100

    drm/sun4i: tcon: set sync polarity for tcon1 channel
    
    [ Upstream commit 50791f5d7b6a14b388f46c8885f71d1b98216d1d ]
    
    Channel 1 has polarity bits for vsync and hsync signals but driver never
    sets them. It turns out that with pre-HDMI2 controllers seemingly there
    is no issue if polarity is not set. However, with HDMI2 controllers
    (H6) there often comes to de-synchronization due to phase shift. This
    causes flickering screen. It's safe to assume that similar issues might
    happen also with pre-HDMI2 controllers.
    
    Solve issue with setting vsync and hsync polarity. Note that display
    stacks with tcon top have polarity bits actually in tcon0 polarity
    register.
    
    Fixes: 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Tested-by: Andre Heider <a.heider@gmail.com>
    Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210209175900.7092-3-jernej.skrabec@siol.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39e855fa959e17a9818e471987ac600f25b85662
Author: Fangrui Song <maskray@google.com>
Date:   Tue Feb 9 13:42:07 2021 -0800

    firmware_loader: align .builtin_fw to 8
    
    [ Upstream commit 793f49a87aae24e5bcf92ad98d764153fc936570 ]
    
    arm64 references the start address of .builtin_fw (__start_builtin_fw)
    with a pair of R_AARCH64_ADR_PREL_PG_HI21/R_AARCH64_LDST64_ABS_LO12_NC
    relocations.  The compiler is allowed to emit the
    R_AARCH64_LDST64_ABS_LO12_NC relocation because struct builtin_fw in
    include/linux/firmware.h is 8-byte aligned.
    
    The R_AARCH64_LDST64_ABS_LO12_NC relocation requires the address to be a
    multiple of 8, which may not be the case if .builtin_fw is empty.
    Unconditionally align .builtin_fw to fix the linker error.  32-bit
    architectures could use ALIGN(4) but that would add unnecessary
    complexity, so just use ALIGN(8).
    
    Link: https://lkml.kernel.org/r/20201208054646.2913063-1-maskray@google.com
    Link: https://github.com/ClangBuiltLinux/linux/issues/1204
    Fixes: 5658c76 ("firmware: allow firmware files to be built into kernel image")
    Signed-off-by: Fangrui Song <maskray@google.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ff69431b7633b1cfe30ceff58c6843aa7cb4d46
Author: Yufeng Mo <moyufeng@huawei.com>
Date:   Tue Feb 9 17:03:07 2021 +0800

    net: hns3: add a check for index in hclge_get_rss_key()
    
    [ Upstream commit 532cfc0df1e4d68e74522ef4a0dcbf6ebbe68287 ]
    
    The index is received from vf, if use it directly,
    an out-of-bound issue may be caused, so add a check for
    this index before using it in hclge_get_rss_key().
    
    Fixes: a638b1d8cc87 ("net: hns3: fix get VF RSS issue")
    Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c0e46258eab60dfa447d0ab7e316478f0f852a3
Author: Yufeng Mo <moyufeng@huawei.com>
Date:   Tue Feb 9 17:03:06 2021 +0800

    net: hns3: add a check for tqp_index in hclge_get_ring_chain_from_mbx()
    
    [ Upstream commit 326334aad024a60f46dc5e7dbe1efe32da3ca66f ]
    
    The tqp_index is received from vf, if use it directly,
    an out-of-bound issue may be caused, so add a check for
    this tqp_index before using it in hclge_get_ring_chain_from_mbx().
    
    Fixes: 84e095d64ed9 ("net: hns3: Change PF to add ring-vect binding & resetQ to mailbox")
    Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40389ba14d0ee1f7f838e7ba9ba1434eae2aa5df
Author: Yufeng Mo <moyufeng@huawei.com>
Date:   Tue Feb 9 17:03:05 2021 +0800

    net: hns3: add a check for queue_id in hclge_reset_vf_queue()
    
    [ Upstream commit 67a69f84cab60484f02eb8cbc7a76edffbb28a25 ]
    
    The queue_id is received from vf, if use it directly,
    an out-of-bound issue may be caused, so add a check for
    this queue_id before using it in hclge_reset_vf_queue().
    
    Fixes: 1a426f8b40fc ("net: hns3: fix the VF queue reset flow error")
    Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bbc1d5ee0eb52587d794587af7a7aae126a01eb
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Mon Feb 8 19:36:27 2021 +0200

    net: dsa: felix: implement port flushing on .phylink_mac_link_down
    
    [ Upstream commit eb4733d7cffc547e08fe5a216e4f03663bb71108 ]
    
    There are several issues which may be seen when the link goes down while
    forwarding traffic, all of which can be attributed to the fact that the
    port flushing procedure from the reference manual was not closely
    followed.
    
    With flow control enabled on both the ingress port and the egress port,
    it may happen when a link goes down that Ethernet packets are in flight.
    In flow control mode, frames are held back and not dropped. When there
    is enough traffic in flight (example: iperf3 TCP), then the ingress port
    might enter congestion and never exit that state. This is a problem,
    because it is the egress port's link that went down, and that has caused
    the inability of the ingress port to send packets to any other port.
    This is solved by flushing the egress port's queues when it goes down.
    
    There is also a problem when performing stream splitting for
    IEEE 802.1CB traffic (not yet upstream, but a sort of multicast,
    basically). There, if one port from the destination ports mask goes
    down, splitting the stream towards the other destinations will no longer
    be performed. This can be traced down to this line:
    
            ocelot_port_writel(ocelot_port, 0, DEV_MAC_ENA_CFG);
    
    which should have been instead, as per the reference manual:
    
            ocelot_port_rmwl(ocelot_port, 0, DEV_MAC_ENA_CFG_RX_ENA,
                             DEV_MAC_ENA_CFG);
    
    Basically only DEV_MAC_ENA_CFG_RX_ENA should be disabled, but not
    DEV_MAC_ENA_CFG_TX_ENA - I don't have further insight into why that is
    the case, but apparently multicasting to several ports will cause issues
    if at least one of them doesn't have DEV_MAC_ENA_CFG_TX_ENA set.
    
    I am not sure what the state of the Ocelot VSC7514 driver is, but
    probably not as bad as Felix/Seville, since VSC7514 uses phylib and has
    the following in ocelot_adjust_link:
    
            if (!phydev->link)
                    return;
    
    therefore the port is not really put down when the link is lost, unlike
    the DSA drivers which use .phylink_mac_link_down for that.
    
    Nonetheless, I put ocelot_port_flush() in the common ocelot.c because it
    needs to access some registers from drivers/net/ethernet/mscc/ocelot_rew.h
    which are not exported in include/soc/mscc/ and a bugfix patch should
    probably not move headers around.
    
    Fixes: bdeced75b13f ("net: dsa: felix: Add PCS operations for PHYLINK")
    Signed-off-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 03bf0f163df2b777c73739f15d723c90b76df5e8
Author: Borislav Petkov <bp@suse.de>
Date:   Mon Feb 8 16:43:30 2021 +0100

    x86/build: Disable CET instrumentation in the kernel for 32-bit too
    
    [ Upstream commit 256b92af784d5043eeb7d559b6d5963dcc2ecb10 ]
    
    Commit
    
      20bf2b378729 ("x86/build: Disable CET instrumentation in the kernel")
    
    disabled CET instrumentation which gets added by default by the Ubuntu
    gcc9 and 10 by default, but did that only for 64-bit builds. It would
    still fail when building a 32-bit target. So disable CET for all x86
    builds.
    
    Fixes: 20bf2b378729 ("x86/build: Disable CET instrumentation in the kernel")
    Reported-by: AC <achirvasub@gmail.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Tested-by: AC <achirvasub@gmail.com>
    Link: https://lkml.kernel.org/r/YCCIgMHkzh/xT4ex@arch-chirva.localdomain
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 880b1c2164d1ac7b6fb4d77ad882d53ae8e1d1ab
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Mon Feb 8 12:17:34 2021 +0100

    scsi: scsi_debug: Fix a memory leak
    
    [ Upstream commit f852c596f2ee6f0eb364ea8f28f89da6da0ae7b5 ]
    
    The sdebug_q_arr pointer must be freed when the module is unloaded.
    
    $ cat /sys/kernel/debug/kmemleak
    unreferenced object 0xffff888e1cfb0000 (size 4096):
      comm "modprobe", pid 165555, jiffies 4325987516 (age 685.194s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
      backtrace:
        [<00000000458f4f5d>] 0xffffffffc06702d9
        [<000000003edc4b1f>] do_one_initcall+0xe9/0x57d
        [<00000000da7d518c>] do_init_module+0x1d1/0x6f0
        [<000000009a6a9248>] load_module+0x36bd/0x4f50
        [<00000000ddb0c3ce>] __do_sys_init_module+0x1db/0x260
        [<000000009532db57>] do_syscall_64+0xa5/0x420
        [<000000002916b13d>] entry_SYSCALL_64_after_hwframe+0x6a/0xdf
    
    Fixes: 87c715dcde63 ("scsi: scsi_debug: Add per_host_store option")
    Link: https://lore.kernel.org/r/20210208111734.34034-1-mlombard@redhat.com
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d519197b48c13d7a50fd27966b235f16574aed47
Author: Florian Westphal <fw@strlen.de>
Date:   Fri Feb 5 12:56:43 2021 +0100

    netfilter: conntrack: skip identical origin tuple in same zone only
    
    [ Upstream commit 07998281c268592963e1cd623fe6ab0270b65ae4 ]
    
    The origin skip check needs to re-test the zone. Else, we might skip
    a colliding tuple in the reply direction.
    
    This only occurs when using 'directional zones' where origin tuples
    reside in different zones but the reply tuples share the same zone.
    
    This causes the new conntrack entry to be dropped at confirmation time
    because NAT clash resolution was elided.
    
    Fixes: 4e35c1cb9460240 ("netfilter: nf_nat: skip nat clash resolution for same-origin entries")
    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 4067ace5f119624aeb91c51e8cbb29ac9fa2150d
Author: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
Date:   Tue Feb 2 21:08:02 2021 -0800

    ibmvnic: Clear failover_pending if unable to schedule
    
    [ Upstream commit ef66a1eace968ff22a35f45e6e8ec36b668b6116 ]
    
    Normally we clear the failover_pending flag when processing the reset.
    But if we are unable to schedule a failover reset we must clear the
    flag ourselves. We could fail to schedule the reset if we are in PROBING
    state (eg: when booting via kexec) or because we could not allocate memory.
    
    Thanks to Cris Forno for helping isolate the problem and for testing.
    
    Fixes: 1d8504937478 ("powerpc/vnic: Extend "failover pending" window")
    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
    Tested-by: Cristobal Forno <cforno12@linux.ibm.com>
    Link: https://lore.kernel.org/r/20210203050802.680772-1-sukadev@linux.ibm.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 284abe15c17e5f440b01a46f61948d3fa6b767a1
Author: Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
Date:   Thu Feb 4 22:03:16 2021 +0800

    net: stmmac: set TxQ mode back to DCB after disabling CBS
    
    [ Upstream commit f317e2ea8c88737aa36228167b2292baef3f0430 ]
    
    When disable CBS, mode_to_use parameter is not updated even the operation
    mode of Tx Queue is changed to Data Centre Bridging (DCB). Therefore,
    when tc_setup_cbs() function is called to re-enable CBS, the operation
    mode of Tx Queue remains at DCB, which causing CBS fails to work.
    
    This patch updates the value of mode_to_use parameter to MTL_QUEUE_DCB
    after operation mode of Tx Queue is changed to DCB in stmmac_dma_qmode()
    callback function.
    
    Fixes: 1f705bc61aee ("net: stmmac: Add support for CBS QDISC")
    Suggested-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Signed-off-by: Mohammad Athari Bin Ismail <mohammad.athari.ismail@intel.com>
    Signed-off-by: Song, Yoong Siang <yoong.siang.song@intel.com>
    Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Link: https://lore.kernel.org/r/1612447396-20351-1-git-send-email-yoong.siang.song@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 25c312214d9f7b0876892b5997a167c0a9a21c7d
Author: Vadim Fedorenko <vfedorenko@novek.ru>
Date:   Thu Feb 4 20:50:34 2021 +0300

    selftests: txtimestamp: fix compilation issue
    
    [ Upstream commit 647b8dd5184665432cc8a2b5bca46a201f690c37 ]
    
    PACKET_TX_TIMESTAMP is defined in if_packet.h but it is not included in
    test. Include it instead of <netpacket/packet.h> otherwise the error of
    redefinition arrives.
    Also fix the compiler warning about ambiguous control flow by adding
    explicit braces.
    
    Fixes: 8fe2f761cae9 ("net-timestamp: expand documentation")
    Suggested-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
    Signed-off-by: Vadim Fedorenko <vfedorenko@novek.ru>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/1612461034-24524-1-git-send-email-vfedorenko@novek.ru
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ed60a17d4668002c21f207d4a91900607c9cbfa
Author: Vladimir Oltean <vladimir.oltean@nxp.com>
Date:   Thu Feb 4 15:45:11 2021 +0200

    net: enetc: initialize the RFS and RSS memories
    
    [ Upstream commit 07bf34a50e327975b21a9dee64d220c3dcb72ee9 ]
    
    Michael tried to enable Advanced Error Reporting through the ENETC's
    Root Complex Event Collector, and the system started spitting out single
    bit correctable ECC errors coming from the ENETC interfaces:
    
    pcieport 0000:00:1f.0: AER: Multiple Corrected error received: 0000:00:00.0
    fsl_enetc 0000:00:00.0: PCIe Bus Error: severity=Corrected, type=Transaction Layer, (Receiver ID)
    fsl_enetc 0000:00:00.0:   device [1957:e100] error status/mask=00004000/00000000
    fsl_enetc 0000:00:00.0:    [14] CorrIntErr
    fsl_enetc 0000:00:00.1: PCIe Bus Error: severity=Corrected, type=Transaction Layer, (Receiver ID)
    fsl_enetc 0000:00:00.1:   device [1957:e100] error status/mask=00004000/00000000
    fsl_enetc 0000:00:00.1:    [14] CorrIntErr
    
    Further investigating the port correctable memory error detect register
    (PCMEDR) shows that these AER errors have an associated SOURCE_ID of 6
    (RFS/RSS):
    
    $ devmem 0x1f8010e10 32
    0xC0000006
    $ devmem 0x1f8050e10 32
    0xC0000006
    
    Discussion with the hardware design engineers reveals that on LS1028A,
    the hardware does not do initialization of that RFS/RSS memory, and that
    software should clear/initialize the entire table before starting to
    operate. That comes as a bit of a surprise, since the driver does not do
    initialization of the RFS memory. Also, the initialization of the
    Receive Side Scaling is done only partially.
    
    Even though the entire ENETC IP has a single shared flow steering
    memory, the flow steering service should returns matches only for TCAM
    entries that are within the range of the Station Interface that is doing
    the search. Therefore, it should be sufficient for a Station Interface
    to initialize all of its own entries in order to avoid any ECC errors,
    and only the Station Interfaces in use should need initialization.
    
    There are Physical Station Interfaces associated with PCIe PFs and
    Virtual Station Interfaces associated with PCIe VFs. We let the PF
    driver initialize the entire port's memory, which includes the RFS
    entries which are going to be used by the VF.
    
    Reported-by: Michael Walle <michael@walle.cc>
    Fixes: d4fd0404c1c9 ("enetc: Introduce basic PF and VF ENETC ethernet drivers")
    Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: Michael Walle <michael@walle.cc>
    Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Link: https://lore.kernel.org/r/20210204134511.2640309-1-vladimir.oltean@nxp.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8eb3e56fd180ca12a09586ca31a913646942eb0d
Author: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Date:   Wed Feb 3 12:36:02 2021 +0100

    hv_netvsc: Reset the RSC count if NVSP_STAT_FAIL in netvsc_receive()
    
    [ Upstream commit 12bc8dfb83b5292fe387b795210018b7632ee08b ]
    
    Commit 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V
    values") added validation to rndis_filter_receive_data() (and
    rndis_filter_receive()) which introduced NVSP_STAT_FAIL-scenarios where
    the count is not updated/reset.  Fix this omission, and prevent similar
    scenarios from occurring in the future.
    
    Reported-by: Juan Vazquez <juvazq@microsoft.com>
    Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
    Fixes: 44144185951a0f ("hv_netvsc: Add validation for untrusted Hyper-V values")
    Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Link: https://lore.kernel.org/r/20210203113602.558916-1-parri.andrea@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 23b2eac8b76a13acec6d6e38d9f87bcaeda55a78
Author: Alex Elder <elder@linaro.org>
Date:   Wed Feb 3 19:06:55 2021 -0600

    net: ipa: set error code in gsi_channel_setup()
    
    [ Upstream commit 1d23a56b0296d29e7047b41fe0a42a001036160d ]
    
    In gsi_channel_setup(), we check to see if the configuration data
    contains any information about channels that are not supported by
    the hardware.  If one is found, we abort the setup process, but
    the error code (ret) is not set in this case.  Fix this bug.
    
    Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Alex Elder <elder@linaro.org>
    Link: https://lore.kernel.org/r/20210204010655.15619-1-elder@linaro.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4595395a91571157e9253581a2d70a9171b7df3
Author: Xie He <xie.he.0141@gmail.com>
Date:   Tue Feb 2 23:15:41 2021 -0800

    net: hdlc_x25: Return meaningful error code in x25_open
    
    [ Upstream commit 81b8be68ef8e8915d0cc6cedd2ac425c74a24813 ]
    
    It's not meaningful to pass on LAPB error codes to HDLC code or other
    parts of the system, because they will not understand the error codes.
    
    Instead, use system-wide recognizable error codes.
    
    Fixes: f362e5fe0f1f ("wan/hdlc_x25: make lapb params configurable")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Acked-by: Martin Schiller <ms@dev.tdt.de>
    Link: https://lore.kernel.org/r/20210203071541.86138-1-xie.he.0141@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 50ad6fc36aed44d2b54c9530264e74caf051e5d2
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Feb 2 08:09:38 2021 +0100

    xen/netback: avoid race in xenvif_rx_ring_slots_available()
    
    [ Upstream commit ec7d8e7dd3a59528e305a18e93f1cb98f7faf83b ]
    
    Since commit 23025393dbeb3b8b3 ("xen/netback: use lateeoi irq binding")
    xenvif_rx_ring_slots_available() is no longer called only from the rx
    queue kernel thread, so it needs to access the rx queue with the
    associated queue held.
    
    Reported-by: Igor Druzhinin <igor.druzhinin@citrix.com>
    Fixes: 23025393dbeb3b8b3 ("xen/netback: use lateeoi irq binding")
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Acked-by: Wei Liu <wl@xen.org>
    Link: https://lore.kernel.org/r/20210202070938.7863-1-jgross@suse.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bbb8c391486b717ac880145a0e848b88af89416e
Author: Sven Auhagen <sven.auhagen@voleatech.de>
Date:   Tue Feb 2 18:01:16 2021 +0100

    netfilter: flowtable: fix tcp and udp header checksum update
    
    [ Upstream commit 8d6bca156e47d68551750a384b3ff49384c67be3 ]
    
    When updating the tcp or udp header checksum on port nat the function
    inet_proto_csum_replace2 with the last parameter pseudohdr as true.
    This leads to an error in the case that GRO is used and packets are
    split up in GSO. The tcp or udp checksum of all packets is incorrect.
    
    The error is probably masked due to the fact the most network driver
    implement tcp/udp checksum offloading. It also only happens when GRO is
    applied and not on single packets.
    
    The error is most visible when using a pppoe connection which is not
    triggering the tcp/udp checksum offload.
    
    Fixes: ac2a66665e23 ("netfilter: add generic flow table infrastructure")
    Signed-off-by: Sven Auhagen <sven.auhagen@voleatech.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a0e5d47670b753d3dbf88f3c77a97a30864d9bd
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Tue Feb 2 16:07:37 2021 +0100

    netfilter: nftables: fix possible UAF over chains from packet path in netns
    
    [ Upstream commit 767d1216bff82507c945e92fe719dff2083bb2f4 ]
    
    Although hooks are released via call_rcu(), chain and rule objects are
    immediately released while packets are still walking over these bits.
    
    This patch adds the .pre_exit callback which is invoked before
    synchronize_rcu() in the netns framework to stay safe.
    
    Remove a comment which is not valid anymore since the core does not use
    synchronize_net() anymore since 8c873e219970 ("netfilter: core: free
    hooks with call_rcu").
    
    Suggested-by: Florian Westphal <fw@strlen.de>
    Fixes: df05ef874b28 ("netfilter: nf_tables: release objects on netns destruction")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef8f281a653006e14b8d2999fe934e890e51e71b
Author: Fabian Frederick <fabf@skynet.be>
Date:   Sat Jan 30 11:14:25 2021 +0100

    selftests: netfilter: fix current year
    
    [ Upstream commit a3005b0f83f217c888393c6bf9cd36e3d1616bca ]
    
    use date %Y instead of %G to read current year
    Problem appeared when running lkp-tests on 01/01/2021
    
    Fixes: 48d072c4e8cd ("selftests: netfilter: add time counter check")
    Reported-by: kernel test robot <oliver.sang@intel.com>
    Signed-off-by: Fabian Frederick <fabf@skynet.be>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f035e97f331e6b8f61d95fe1fbb33622405cc7c3
Author: Jozsef Kadlecsik <kadlec@mail.kfki.hu>
Date:   Fri Jan 29 20:57:43 2021 +0100

    netfilter: xt_recent: Fix attempt to update deleted entry
    
    [ Upstream commit b1bdde33b72366da20d10770ab7a49fe87b5e190 ]
    
    When both --reap and --update flag are specified, there's a code
    path at which the entry to be updated is reaped beforehand,
    which then leads to kernel crash. Reap only entries which won't be
    updated.
    
    Fixes kernel bugzilla #207773.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=207773
    Reported-by: Reindl Harald <h.reindl@thelounge.net>
    Fixes: 0079c5aee348 ("netfilter: xt_recent: add an entry reaper")
    Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8032bf2af9ce26b3a362b9711d15f626ab946a74
Author: Bui Quang Minh <minhquangbui99@gmail.com>
Date:   Wed Jan 27 06:36:53 2021 +0000

    bpf: Check for integer overflow when using roundup_pow_of_two()
    
    [ Upstream commit 6183f4d3a0a2ad230511987c6c362ca43ec0055f ]
    
    On 32-bit architecture, roundup_pow_of_two() can return 0 when the argument
    has upper most bit set due to resulting 1UL << 32. Add a check for this case.
    
    Fixes: d5a3b1f69186 ("bpf: introduce BPF_MAP_TYPE_STACK_TRACE")
    Signed-off-by: Bui Quang Minh <minhquangbui99@gmail.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20210127063653.3576-1-minhquangbui99@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 52d29b4783268df881b85e76f90da74fbeaa59eb
Author: Alexei Starovoitov <ast@kernel.org>
Date:   Tue Feb 2 23:06:36 2021 -0800

    bpf: Unbreak BPF_PROG_TYPE_KPROBE when kprobe is called via do_int3
    
    [ Upstream commit 548f1191d86ccb9bde2a5305988877b7584c01eb ]
    
    The commit 0d00449c7a28 ("x86: Replace ist_enter() with nmi_enter()")
    converted do_int3 handler to be "NMI-like".
    That made old if (in_nmi()) check abort execution of bpf programs
    attached to kprobe when kprobe is firing via int3
    (For example when kprobe is placed in the middle of the function).
    Remove the check to restore user visible behavior.
    
    Fixes: 0d00449c7a28 ("x86: Replace ist_enter() with nmi_enter()")
    Reported-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Tested-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Link: https://lore.kernel.org/bpf/20210203070636.70926-1-alexei.starovoitov@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40e3b5c128645d2ddad12310c7be98758cafb2b0
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Mon Feb 1 08:26:14 2021 -0700

    dmaengine: idxd: check device state before issue command
    
    [ Upstream commit 89e3becd8f821e507052e012d2559dcda59f538e ]
    
    Add device state check before executing command. Without the check the
    command can be issued while device is in halt state and causes the driver to
    block while waiting for the completion of the command.
    
    Reported-by: Sanjay Kumar <sanjay.k.kumar@intel.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Tested-by: Sanjay Kumar <sanjay.k.kumar@intel.com>
    Fixes: 0d5c10b4c84d ("dmaengine: idxd: add work queue drain support")
    Link: https://lore.kernel.org/r/161219313921.2976211.12222625226450097465.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 143b87907788e18326de5f0afa694ec633b56d85
Author: Maxime Ripard <maxime@cerno.tech>
Date:   Fri Jan 29 17:06:47 2021 +0100

    drm/vc4: hvs: Fix buffer overflow with the dlist handling
    
    [ Upstream commit facd93f4285c405f9a91b05166147cb39e860666 ]
    
    Commit 0a038c1c29a7 ("drm/vc4: Move LBM creation out of
    vc4_plane_mode_set()") changed the LBM allocation logic from first
    allocating the LBM memory for the plane to running mode_set,
    adding a gap in the LBM, and then running the dlist allocation filling
    that gap.
    
    The gap was introduced by incrementing the dlist array index, but was
    never checking whether or not we were over the array length, leading
    eventually to memory corruptions if we ever crossed this limit.
    
    vc4_dlist_write had that logic though, and was reallocating a larger
    dlist array when reaching the end of the buffer. Let's share the logic
    between both functions.
    
    Cc: Boris Brezillon <boris.brezillon@collabora.com>
    Cc: Eric Anholt <eric@anholt.net>
    Fixes: 0a038c1c29a7 ("drm/vc4: Move LBM creation out of vc4_plane_mode_set()")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210129160647.128373-1-maxime@cerno.tech
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1d7c1456692446e73b67532d0a4e7964129c742a
Author: Lorenzo Bianconi <lorenzo@kernel.org>
Date:   Tue Jan 26 12:02:13 2021 +0100

    mt76: dma: fix a possible memory leak in mt76_add_fragment()
    
    [ Upstream commit 93a1d4791c10d443bc67044def7efee2991d48b7 ]
    
    Fix a memory leak in mt76_add_fragment routine returning the buffer
    to the page_frag_cache when we receive a new fragment and the
    skb_shared_info frag array is full.
    
    Fixes: b102f0c522cf6 ("mt76: fix array overflow on receiving too many fragments for a packet")
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Acked-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/4f9dd73407da88b2a552517ce8db242d86bf4d5c.1611616130.git.lorenzo@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3ade81db49bdb1e3b4a2495ba4ef1ccde7dde2c1
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jan 25 12:36:42 2021 +0100

    ath9k: fix build error with LEDS_CLASS=m
    
    [ Upstream commit b64acb28da8394485f0762e657470c9fc33aca4d ]
    
    When CONFIG_ATH9K is built-in but LED support is in a loadable
    module, both ath9k drivers fails to link:
    
    x86_64-linux-ld: drivers/net/wireless/ath/ath9k/gpio.o: in function `ath_deinit_leds':
    gpio.c:(.text+0x36): undefined reference to `led_classdev_unregister'
    x86_64-linux-ld: drivers/net/wireless/ath/ath9k/gpio.o: in function `ath_init_leds':
    gpio.c:(.text+0x179): undefined reference to `led_classdev_register_ext'
    
    The problem is that the 'imply' keyword does not enforce any dependency
    but is only a weak hint to Kconfig to enable another symbol from a
    defconfig file.
    
    Change imply to a 'depends on LEDS_CLASS' that prevents the incorrect
    configuration but still allows building the driver without LED support.
    
    The 'select MAC80211_LEDS' is now ensures that the LED support is
    actually used if it is present, and the added Kconfig dependency
    on MAC80211_LEDS ensures that it cannot be enabled manually when it
    has no effect.
    
    Fixes: 197f466e93f5 ("ath9k_htc: Do not select MAC80211_LEDS by default")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20210125113654.2408057-1-arnd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c39cdf559d264f2fb0a450cd5dc18e534732b251
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Fri Jan 15 14:52:33 2021 -0700

    dmaengine: idxd: fix misc interrupt completion
    
    [ Upstream commit f5cc9ace24fbdf41b4814effbb2f9bad7046e988 ]
    
    Nikhil reported the misc interrupt handler can sometimes miss handling
    the command interrupt when an error interrupt happens near the same time.
    Have the irq handling thread continue to process the misc interrupts until
    all interrupts are processed. This is a low usage interrupt and is not
    expected to handle high volume traffic. Therefore there is no concern of
    this thread running for a long time.
    
    Fixes: 0d5c10b4c84d ("dmaengine: idxd: add work queue drain support")
    Reported-by: Nikhil Rao <nikhil.rao@intel.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/161074755329.2183844.13295528344116907983.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3e53d64e9a4d88226fb1ab55900fe4e89e81df1e
Author: Chen Zhou <chenzhou10@huawei.com>
Date:   Fri Jan 15 17:37:17 2021 +0800

    cgroup-v1: add disabled controller check in cgroup1_parse_param()
    
    [ Upstream commit 61e960b07b637f0295308ad91268501d744c21b5 ]
    
    When mounting a cgroup hierarchy with disabled controller in cgroup v1,
    all available controllers will be attached.
    For example, boot with cgroup_no_v1=cpu or cgroup_disable=cpu, and then
    mount with "mount -t cgroup -ocpu cpu /sys/fs/cgroup/cpu", then all
    enabled controllers will be attached except cpu.
    
    Fix this by adding disabled controller check in cgroup1_parse_param().
    If the specified controller is disabled, just return error with information
    "Disabled controller xx" rather than attaching all the other enabled
    controllers.
    
    Fixes: f5dfb5315d34 ("cgroup: take options parsing into ->parse_monolithic()")
    Signed-off-by: Chen Zhou <chenzhou10@huawei.com>
    Reviewed-by: Zefan Li <lizefan.x@bytedance.com>
    Reviewed-by: Michal Koutný <mkoutny@suse.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2aba53830f5d02dcd0bb74a00c8b8023df9d1398
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Fri Nov 13 08:30:38 2020 -0500

    KVM: x86: cleanup CR3 reserved bits checks
    
    [ Upstream commit c1c35cf78bfab31b8cb455259524395c9e4c7cd6 ]
    
    If not in long mode, the low bits of CR3 are reserved but not enforced to
    be zero, so remove those checks.  If in long mode, however, the MBZ bits
    extend down to the highest physical address bit of the guest, excluding
    the encryption bit.
    
    Make the checks consistent with the above, and match them between
    nested_vmcb_checks and KVM_SET_SREGS.
    
    Cc: stable@vger.kernel.org
    Fixes: 761e41693465 ("KVM: nSVM: Check that MBZ bits in CR3 and CR4 are not set on vmrun of nested guests")
    Fixes: a780a3ea6282 ("KVM: X86: Fix reserved bits check for MOV to CR3")
    Reviewed-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e624efe36eb6a111129f12c5c33d5eaa901a67ef
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Mon Dec 7 17:05:33 2020 +0000

    lkdtm: don't move ctors to .rodata
    
    commit 3f618ab3323407ee4c6a6734a37eb6e9663ebfb9 upstream.
    
    When building with KASAN and LKDTM, clang may implictly generate an
    asan.module_ctor function in the LKDTM rodata object. The Makefile moves
    the lkdtm_rodata_do_nothing() function into .rodata by renaming the
    file's .text section to .rodata, and consequently also moves the ctor
    function into .rodata, leading to a boot time crash (splat below) when
    the ctor is invoked by do_ctors().
    
    Let's prevent this by marking the function as noinstr rather than
    notrace, and renaming the file's .noinstr.text to .rodata. Marking the
    function as noinstr will prevent tracing and kprobes, and will inhibit
    any undesireable compiler instrumentation.
    
    The ctor function (if any) will be placed in .text and will work
    correctly.
    
    Example splat before this patch is applied:
    
    [    0.916359] Unable to handle kernel execute from non-executable memory at virtual address ffffa0006b60f5ac
    [    0.922088] Mem abort info:
    [    0.922828]   ESR = 0x8600000e
    [    0.923635]   EC = 0x21: IABT (current EL), IL = 32 bits
    [    0.925036]   SET = 0, FnV = 0
    [    0.925838]   EA = 0, S1PTW = 0
    [    0.926714] swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000427b3000
    [    0.928489] [ffffa0006b60f5ac] pgd=000000023ffff003, p4d=000000023ffff003, pud=000000023fffe003, pmd=0068000042000f01
    [    0.931330] Internal error: Oops: 8600000e [#1] PREEMPT SMP
    [    0.932806] Modules linked in:
    [    0.933617] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.0-rc7 #2
    [    0.935620] Hardware name: linux,dummy-virt (DT)
    [    0.936924] pstate: 40400005 (nZcv daif +PAN -UAO -TCO BTYPE=--)
    [    0.938609] pc : asan.module_ctor+0x0/0x14
    [    0.939759] lr : do_basic_setup+0x4c/0x70
    [    0.940889] sp : ffff27b600177e30
    [    0.941815] x29: ffff27b600177e30 x28: 0000000000000000
    [    0.943306] x27: 0000000000000000 x26: 0000000000000000
    [    0.944803] x25: 0000000000000000 x24: 0000000000000000
    [    0.946289] x23: 0000000000000001 x22: 0000000000000000
    [    0.947777] x21: ffffa0006bf4a890 x20: ffffa0006befb6c0
    [    0.949271] x19: ffffa0006bef9358 x18: 0000000000000068
    [    0.950756] x17: fffffffffffffff8 x16: 0000000000000000
    [    0.952246] x15: 0000000000000000 x14: 0000000000000000
    [    0.953734] x13: 00000000838a16d5 x12: 0000000000000001
    [    0.955223] x11: ffff94000da74041 x10: dfffa00000000000
    [    0.956715] x9 : 0000000000000000 x8 : ffffa0006b60f5ac
    [    0.958199] x7 : f9f9f9f9f9f9f9f9 x6 : 000000000000003f
    [    0.959683] x5 : 0000000000000040 x4 : 0000000000000000
    [    0.961178] x3 : ffffa0006bdc15a0 x2 : 0000000000000005
    [    0.962662] x1 : 00000000000000f9 x0 : ffffa0006bef9350
    [    0.964155] Call trace:
    [    0.964844]  asan.module_ctor+0x0/0x14
    [    0.965895]  kernel_init_freeable+0x158/0x198
    [    0.967115]  kernel_init+0x14/0x19c
    [    0.968104]  ret_from_fork+0x10/0x30
    [    0.969110] Code: 00000003 00000000 00000000 00000000 (00000000)
    [    0.970815] ---[ end trace b5339784e20d015c ]---
    
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Kees Cook <keescook@chromium.org>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Link: https://lore.kernel.org/r/20201207170533.10738-1-mark.rutland@arm.com
    Cc: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d070ccc7ad17118a1e46988b0fa097e55e3fab01
Author: Borislav Petkov <bp@suse.de>
Date:   Fri Feb 5 11:31:31 2021 +0100

    x86/efi: Remove EFI PGD build time checks
    
    [ Upstream commit 816ef8d7a2c4182e19bc06ab65751cb9e3951e94 ]
    
    With CONFIG_X86_5LEVEL, CONFIG_UBSAN and CONFIG_UBSAN_UNSIGNED_OVERFLOW
    enabled, clang fails the build with
    
      x86_64-linux-ld: arch/x86/platform/efi/efi_64.o: in function `efi_sync_low_kernel_mappings':
      efi_64.c:(.text+0x22c): undefined reference to `__compiletime_assert_354'
    
    which happens due to -fsanitize=unsigned-integer-overflow being enabled:
    
      -fsanitize=unsigned-integer-overflow: Unsigned integer overflow, where
      the result of an unsigned integer computation cannot be represented
      in its type. Unlike signed integer overflow, this is not undefined
      behavior, but it is often unintentional. This sanitizer does not check
      for lossy implicit conversions performed before such a computation
      (see -fsanitize=implicit-conversion).
    
    and that fires when the (intentional) EFI_VA_START/END defines overflow
    an unsigned long, leading to the assertion expressions not getting
    optimized away (on GCC they do)...
    
    However, those checks are superfluous: the runtime services mapping
    code already makes sure the ranges don't overshoot EFI_VA_END as the
    EFI mapping range is hardcoded. On each runtime services call, it is
    switched to the EFI-specific PGD and even if mappings manage to escape
    that last PGD, this won't remain unnoticed for long.
    
    So rip them out.
    
    See https://github.com/ClangBuiltLinux/linux/issues/256 for more info.
    
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Link: http://lkml.kernel.org/r/20210107223424.4135538-1-arnd@kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 486c1525eba3b0d2ec8b7f621ebf213d7f552f88
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Feb 5 23:28:29 2021 +0100

    Revert "lib: Restrict cpumask_local_spread to houskeeping CPUs"
    
    [ Upstream commit 2452483d9546de1c540f330469dc4042ff089731 ]
    
    This reverts commit 1abdfe706a579a702799fce465bceb9fb01d407c.
    
    This change is broken and not solving any problem it claims to solve.
    
    Robin reported that cpumask_local_spread() now returns any cpu out of
    cpu_possible_mask in case that NOHZ_FULL is disabled (runtime or compile
    time). It can also return any offline or not-present CPU in the
    housekeeping mask. Before that it was returning a CPU out of
    online_cpu_mask.
    
    While the function is racy against CPU hotplug if the caller does not
    protect against it, the actual use cases are not caring much about it as
    they use it mostly as hint for:
    
     - the user space affinity hint which is unused by the kernel
     - memory node selection which is just suboptimal
     - network queue affinity which might fail but is handled gracefully
    
    But the occasional fail vs. hotplug is very different from returning
    anything from possible_cpu_mask which can have a large amount of offline
    CPUs obviously.
    
    The changelog of the commit claims:
    
     "The current implementation of cpumask_local_spread() does not respect
      the isolated CPUs, i.e., even if a CPU has been isolated for Real-Time
      task, it will return it to the caller for pinning of its IRQ
      threads. Having these unwanted IRQ threads on an isolated CPU adds up
      to a latency overhead."
    
    The only correct part of this changelog is:
    
     "The current implementation of cpumask_local_spread() does not respect
      the isolated CPUs."
    
    Everything else is just disjunct from reality.
    
    Reported-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Nitesh Narayan Lal <nitesh@redhat.com>
    Cc: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: abelits@marvell.com
    Cc: davem@davemloft.net
    Link: https://lore.kernel.org/r/87y2g26tnt.fsf@nanos.tec.linutronix.de
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf1cab6edb06b223520bebfca4e351256000b816
Author: Nathan Chancellor <nathan@kernel.org>
Date:   Thu Feb 4 18:32:57 2021 -0800

    ubsan: implement __ubsan_handle_alignment_assumption
    
    [ Upstream commit 28abcc963149e06d956d95a18a85f4ba26af746f ]
    
    When building ARCH=mips 32r2el_defconfig with CONFIG_UBSAN_ALIGNMENT:
    
      ld.lld: error: undefined symbol: __ubsan_handle_alignment_assumption
         referenced by slab.h:557 (include/linux/slab.h:557)
                       main.o:(do_initcalls) in archive init/built-in.a
         referenced by slab.h:448 (include/linux/slab.h:448)
                       do_mounts_rd.o:(rd_load_image) in archive init/built-in.a
         referenced by slab.h:448 (include/linux/slab.h:448)
                       do_mounts_rd.o:(identify_ramdisk_image) in archive init/built-in.a
         referenced 1579 more times
    
    Implement this for the kernel based on LLVM's
    handleAlignmentAssumptionImpl because the kernel is not linked against
    the compiler runtime.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/1245
    Link: https://github.com/llvm/llvm-project/blob/llvmorg-11.0.1/compiler-rt/lib/ubsan/ubsan_handlers.cpp#L151-L190
    Link: https://lkml.kernel.org/r/20210127224451.2587372-1-nathan@kernel.org
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    Acked-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 249735b011234a65a720952d5451156be8baa50f
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Mon Feb 1 19:40:01 2021 +0000

    ARM: kexec: fix oops after TLB are invalidated
    
    [ Upstream commit 4d62e81b60d4025e2dfcd5ea531cc1394ce9226f ]
    
    Giancarlo Ferrari reports the following oops while trying to use kexec:
    
     Unable to handle kernel paging request at virtual address 80112f38
     pgd = fd7ef03e
     [80112f38] *pgd=0001141e(bad)
     Internal error: Oops: 80d [#1] PREEMPT SMP ARM
     ...
    
    This is caused by machine_kexec() trying to set the kernel text to be
    read/write, so it can poke values into the relocation code before
    copying it - and an interrupt occuring which changes the page tables.
    The subsequent writes then hit read-only sections that trigger a
    data abort resulting in the above oops.
    
    Fix this by copying the relocation code, and then writing the variables
    into the destination, thereby avoiding the need to make the kernel text
    read/write.
    
    Reported-by: Giancarlo Ferrari <giancarlo.ferrari89@gmail.com>
    Tested-by: Giancarlo Ferrari <giancarlo.ferrari89@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7913ec05fc02ccd7df83280451504b0a3e543097
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Fri Jan 29 10:19:07 2021 +0000

    ARM: ensure the signal page contains defined contents
    
    [ Upstream commit 9c698bff66ab4914bb3d71da7dc6112519bde23e ]
    
    Ensure that the signal page contains our poison instruction to increase
    the protection against ROP attacks and also contains well defined
    contents.
    
    Acked-by: Will Deacon <will@kernel.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3dc2ba46500124ac350f9cd1a378e799f8f7fc88
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Feb 4 16:29:47 2021 +0100

    kallsyms: fix nonconverging kallsyms table with lld
    
    [ Upstream commit efe6e3068067212b85c2d0474b5ee3b2d0c7adab ]
    
    ARM randconfig builds with lld sometimes show a build failure
    from kallsyms:
    
      Inconsistent kallsyms data
      Try make KALLSYMS_EXTRA_PASS=1 as a workaround
    
    The problem is the veneers/thunks getting added by the linker extend
    the symbol table, which in turn leads to more veneers being needed,
    so it may take a few extra iterations to converge.
    
    This bug has been fixed multiple times before, but comes back every time
    a new symbol name is used. lld uses a different set of identifiers from
    ld.bfd, so the additional ones need to be added as well.
    
    I looked through the sources and found that arm64 and mips define similar
    prefixes, so I'm adding those as well, aside from the ones I observed. I'm
    not sure about powerpc64, which seems to already be handled through a
    section match, but if it comes back, the "__long_branch_" and "__plt_"
    prefixes would have to get added as well.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11648f26b074758736a8663bde5ff94f2866e671
Author: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date:   Wed Feb 3 10:03:20 2021 +0100

    ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL
    
    [ Upstream commit 5638159f6d93b99ec9743ac7f65563fca3cf413d ]
    
    This reverts commit c17e9377aa81664d94b4f2102559fcf2a01ec8e7.
    
    The lpc32xx clock driver is not able to actually change the PLL rate as
    this would require reparenting ARM_CLK, DDRAM_CLK, PERIPH_CLK to SYSCLK,
    then stop the PLL, update the register, restart the PLL and wait for the
    PLL to lock and finally reparent ARM_CLK, DDRAM_CLK, PERIPH_CLK to HCLK
    PLL.
    
    Currently, the HCLK driver simply updates the registers but this has no
    real effect and all the clock rate calculation end up being wrong. This is
    especially annoying for the peripheral (e.g. UARTs, I2C, SPI).
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Tested-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Link: https://lore.kernel.org/r/20210203090320.GA3760268@piout.net'
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d93178df8f754b8ae5b5c804edcd6d4b64aad5a7
Author: Lin Feng <linf@wangsu.com>
Date:   Tue Feb 2 07:18:23 2021 -0700

    bfq-iosched: Revert "bfq: Fix computation of shallow depth"
    
    [ Upstream commit 388c705b95f23f317fa43e6abf9ff07b583b721a ]
    
    This reverts commit 6d4d273588378c65915acaf7b2ee74e9dd9c130a.
    
    bfq.limit_depth passes word_depths[] as shallow_depth down to sbitmap core
    sbitmap_get_shallow, which uses just the number to limit the scan depth of
    each bitmap word, formula:
    scan_percentage_for_each_word = shallow_depth / (1 << sbimap->shift) * 100%
    
    That means the comments's percentiles 50%, 75%, 18%, 37% of bfq are correct.
    But after commit patch 'bfq: Fix computation of shallow depth', we use
    sbitmap.depth instead, as a example in following case:
    
    sbitmap.depth = 256, map_nr = 4, shift = 6; sbitmap_word.depth = 64.
    The resulsts of computed bfqd->word_depths[] are {128, 192, 48, 96}, and
    three of the numbers exceed core dirver's 'sbitmap_word.depth=64' limit
    nothing.
    
    Signed-off-by: Lin Feng <linf@wangsu.com>
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fccb50ec95b834c02099ed8e18c7e0ca6f6f923
Author: Alexandre Ghiti <alex@ghiti.fr>
Date:   Fri Jan 29 12:31:05 2021 -0500

    riscv: virt_addr_valid must check the address belongs to linear mapping
    
    [ Upstream commit 2ab543823322b564f205cb15d0f0302803c87d11 ]
    
    virt_addr_valid macro checks that a virtual address is valid, ie that
    the address belongs to the linear mapping and that the corresponding
     physical page exists.
    
    Add the missing check that ensures the virtual address belongs to the
    linear mapping, otherwise __virt_to_phys, when compiled with
    CONFIG_DEBUG_VIRTUAL enabled, raises a WARN that is interpreted as a
    kernel bug by syzbot.
    
    Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
    Reviewed-by: Atish Patra <atish.patra@wdc.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cd0604db18d22bc39dd8349d6b7ed2f8c79a627c
Author: Victor Lu <victorchengchi.lu@amd.com>
Date:   Fri Jan 15 11:02:48 2021 -0500

    drm/amd/display: Decrement refcount of dc_sink before reassignment
    
    [ Upstream commit 8e92bb0fa75bca9a57e4aba2e36f67d8016a3053 ]
    
    [why]
    An old dc_sink state is causing a memory leak because it is missing a
    dc_sink_release before a new dc_sink is assigned back to
    aconnector->dc_sink.
    
    [how]
    Decrement the dc_sink refcount before reassigning it to a new dc_sink.
    
    Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8466a0c6bc13db5d8dadb87521af965a0b0a7798
Author: Victor Lu <victorchengchi.lu@amd.com>
Date:   Thu Jan 14 16:27:07 2021 -0500

    drm/amd/display: Free atomic state after drm_atomic_commit
    
    [ Upstream commit 2abaa323d744011982b20b8f3886184d56d23946 ]
    
    [why]
    drm_atomic_commit was changed so that the caller must free their
    drm_atomic_state reference on successes.
    
    [how]
    Add drm_atomic_commit_put after drm_atomic_commit call in
    dm_force_atomic_commit.
    
    Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
    Reviewed-by: Roman Li <Roman.Li@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1898affc717e2d5a0acf9f873136992e41e52e26
Author: Victor Lu <victorchengchi.lu@amd.com>
Date:   Thu Jan 14 22:24:14 2021 -0500

    drm/amd/display: Fix dc_sink kref count in emulated_link_detect
    
    [ Upstream commit 3ddc818d9bb877c64f5c649beab97af86c403702 ]
    
    [why]
    prev_sink is not used anywhere else in the function and the reference to
    it from dc_link is replaced with a new dc_sink.
    
    [how]
    Change dc_sink_retain(prev_sink) to dc_sink_release(prev_sink).
    
    Signed-off-by: Victor Lu <victorchengchi.lu@amd.com>
    Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b8dc6255bb2d08ff5f57ddfb4ff0f85fd6433a9f
Author: Mikita Lipski <mikita.lipski@amd.com>
Date:   Thu Jan 14 11:48:57 2021 -0500

    drm/amd/display: Release DSC before acquiring
    
    [ Upstream commit 58180a0cc0c57fe62a799a112f95b60f6935bd96 ]
    
    [why]
    Need to unassign DSC from pipes that are not using it
    so other pipes can acquire it. That is needed for
    asic's that have unmatching number of DSC engines from
    the number of pipes.
    
    [how]
    Before acquiring dsc to stream resources, first remove it.
    
    Signed-off-by: Mikita Lipski <mikita.lipski@amd.com>
    Reviewed-by: Eryk Brol <Eryk.Brol@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4d9a5224d507f609f940e24b499bc34801b4ae23
Author: Sung Lee <sung.lee@amd.com>
Date:   Fri Jan 15 13:53:15 2021 -0500

    drm/amd/display: Add more Clock Sources to DCN2.1
    
    [ Upstream commit 1622711beebe887e4f0f8237fea1f09bb48e9a51 ]
    
    [WHY]
    When enabling HDMI on ComboPHY, there are not
    enough clock sources to complete display detection.
    
    [HOW]
    Initialize more clock sources.
    
    Signed-off-by: Sung Lee <sung.lee@amd.com>
    Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7963f3ff8eddea42c3510a5cde0250e8cce017d6
Author: George Shen <george.shen@amd.com>
Date:   Tue Dec 22 14:05:41 2020 -0500

    drm/amd/display: Fix DPCD translation for LTTPR AUX_RD_INTERVAL
    
    [ Upstream commit 2b6b7ab4b1cabfbee1af5d818efcab5d51d62c7e ]
    
    [Why]
    The translation between the DPCD value and the specified AUX_RD_INTERVAL
    in the DP spec do not match.
    
    [How]
    Update values to match the spec.
    
    Signed-off-by: George Shen <george.shen@amd.com>
    Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
    Acked-by: Anson Jacob <Anson.Jacob@amd.com>
    Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 07c8c581d2be28ba988c6f772a26b6de129fb7a8
Author: Claus Stovgaard <claus.stovgaard@gmail.com>
Date:   Mon Feb 1 22:08:22 2021 +0100

    nvme-pci: ignore the subsysem NQN on Phison E16
    
    [ Upstream commit c9e95c39280530200cdd0bbd2670e6334a81970b ]
    
    Tested both with Corsairs firmware 11.3 and 13.0 for the Corsairs MP600
    and both have the issue as reported by the kernel.
    
    nvme nvme0: missing or invalid SUBNQN field.
    
    Signed-off-by: Claus Stovgaard <claus.stovgaard@gmail.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3895bcd96a9e8e1d3103e77f293dd83c7b52ba8e
Author: Fenghua Yu <fenghua.yu@intel.com>
Date:   Mon Feb 1 19:00:07 2021 +0000

    x86/split_lock: Enable the split lock feature on another Alder Lake CPU
    
    [ Upstream commit 8acf417805a5f5c69e9ff66f14cab022c2755161 ]
    
    Add Alder Lake mobile processor to CPU list to enumerate and enable the
    split lock feature.
    
    Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Link: https://lkml.kernel.org/r/20210201190007.4031869-1-fenghua.yu@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 020680e36d9718acc8205cc72ed5e9ecb09386ab
Author: James Smart <jsmart2021@gmail.com>
Date:   Wed Jan 27 14:16:01 2021 -0800

    scsi: lpfc: Fix EEH encountering oops with NVMe traffic
    
    [ Upstream commit 8c65830ae1629b03e5d65e9aafae7e2cf5f8b743 ]
    
    In testing, in a configuration with Redfish and native NVMe multipath when
    an EEH is injected, a kernel oops is being encountered:
    
    (unreliable)
    lpfc_nvme_ls_req+0x328/0x720 [lpfc]
    __nvme_fc_send_ls_req.constprop.13+0x1d8/0x3d0 [nvme_fc]
    nvme_fc_create_association+0x224/0xd10 [nvme_fc]
    nvme_fc_reset_ctrl_work+0x110/0x154 [nvme_fc]
    process_one_work+0x304/0x5d
    
    the NBMe transport is issuing a Disconnect LS request, which the driver
    receives and tries to post but the work queue used by the driver is already
    being torn down by the eeh.
    
    Fix by validating the validity of the work queue before proceeding with the
    LS transmit.
    
    Link: https://lore.kernel.org/r/20210127221601.84878-1-jsmart2021@gmail.com
    Reviewed-by: Ewan D. Milne <emilne@redhat.com>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 116826d615c1936dff40a7766374733078e43803
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sat Dec 19 12:16:08 2020 +0200

    ovl: skip getxattr of security labels
    
    [ Upstream commit 03fedf93593c82538b18476d8c4f0e8f8435ea70 ]
    
    When inode has no listxattr op of its own (e.g. squashfs) vfs_listxattr
    calls the LSM inode_listsecurity hooks to list the xattrs that LSMs will
    intercept in inode_getxattr hooks.
    
    When selinux LSM is installed but not initialized, it will list the
    security.selinux xattr in inode_listsecurity, but will not intercept it
    in inode_getxattr.  This results in -ENODATA for a getxattr call for an
    xattr returned by listxattr.
    
    This situation was manifested as overlayfs failure to copy up lower
    files from squashfs when selinux is built-in but not initialized,
    because ovl_copy_xattr() iterates the lower inode xattrs by
    vfs_listxattr() and vfs_getxattr().
    
    ovl_copy_xattr() skips copy up of security labels that are indentified by
    inode_copy_up_xattr LSM hooks, but it does that after vfs_getxattr().
    Since we are not going to copy them, skip vfs_getxattr() of the security
    labels.
    
    Reported-by: Michael Labriola <michael.d.labriola@gmail.com>
    Tested-by: Michael Labriola <michael.d.labriola@gmail.com>
    Link: https://lore.kernel.org/linux-unionfs/2nv9d47zt7.fsf@aldarion.sourceruckus.org/
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02dee03d48314b77a3c60091aa10fa721c3d1edd
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jan 28 10:22:48 2021 +0100

    cap: fix conversions on getxattr
    
    [ Upstream commit f2b00be488730522d0fb7a8a5de663febdcefe0a ]
    
    If a capability is stored on disk in v2 format cap_inode_getsecurity() will
    currently return in v2 format unconditionally.
    
    This is wrong: v2 cap should be equivalent to a v3 cap with zero rootid,
    and so the same conversions performed on it.
    
    If the rootid cannot be mapped, v3 is returned unconverted.  Fix this so
    that both v2 and v3 return -EOVERFLOW if the rootid (or the owner of the fs
    user namespace in case of v2) cannot be mapped into the current user
    namespace.
    
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cbb9404a50521cdee71346d162b72d3cde270b9e
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Thu Jan 28 10:22:48 2021 +0100

    ovl: perform vfs_getxattr() with mounter creds
    
    [ Upstream commit 554677b97257b0b69378bd74e521edb7e94769ff ]
    
    The vfs_getxattr() in ovl_xattr_set() is used to check whether an xattr
    exist on a lower layer file that is to be removed.  If the xattr does not
    exist, then no need to copy up the file.
    
    This call of vfs_getxattr() wasn't wrapped in credential override, and this
    is probably okay.  But for consitency wrap this instance as well.
    
    Reported-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f66fa5ec47e0d3151061922b99046e294297313f
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Wed Jan 20 23:41:39 2021 +0000

    arm64: dts: rockchip: Disable display for NanoPi R2S
    
    [ Upstream commit 74532de460ec664e5a725507d1b59aa9e4d40776 ]
    
    NanoPi R2S is headless, so rightly does not enable any of the display
    interface hardware, which currently provokes an obnoxious error in the
    boot log from the fake DRM device failing to find anything to bind to.
    It probably isn't *too* hard to obviate the fake device shenanigans
    entirely with a bit of driver reshuffling, but for now let's just
    disable it here to shut up the spurious error.
    
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Link: https://lore.kernel.org/r/c4553dfad1ad6792c4f22454c135ff55de77e2d6.1611186099.git.robin.murphy@arm.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2a2e911469b5e0aca3423b3c551e9e4a3b8cec65
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Wed Jan 20 13:49:41 2021 +0100

    platform/x86: hp-wmi: Disable tablet-mode reporting by default
    
    [ Upstream commit 67fbe02a5cebc3c653610f12e3c0424e58450153 ]
    
    Recently userspace has started making more use of SW_TABLET_MODE
    (when an input-dev reports this).
    
    Specifically recent GNOME3 versions will:
    
    1.  When SW_TABLET_MODE is reported and is reporting 0:
    1.1 Disable accelerometer-based screen auto-rotation
    1.2 Disable automatically showing the on-screen keyboard when a
        text-input field is focussed
    
    2.  When SW_TABLET_MODE is reported and is reporting 1:
    2.1 Ignore input-events from the builtin keyboard and touchpad
        (this is for 360° hinges style 2-in-1s where the keyboard and
         touchpads are accessible on the back of the tablet when folded
         into tablet-mode)
    
    This means that claiming to support SW_TABLET_MODE when it does not
    actually work / reports correct values has bad side-effects.
    
    The check in the hp-wmi code which is used to decide if the input-dev
    should claim SW_TABLET_MODE support, only checks if the
    HPWMI_HARDWARE_QUERY is supported. It does *not* check if the hardware
    actually is capable of reporting SW_TABLET_MODE.
    
    This leads to the hp-wmi input-dev claiming SW_TABLET_MODE support,
    while in reality it will always report 0 as SW_TABLET_MODE value.
    This has been seen on a "HP ENVY x360 Convertible 15-cp0xxx" and
    this likely is the case on a whole lot of other HP models.
    
    This problem causes both auto-rotation and on-screen keyboard
    support to not work on affected x360 models.
    
    There is no easy fix for this, but since userspace expects
    SW_TABLET_MODE reporting to be reliable when advertised it is
    better to not claim/report SW_TABLET_MODE support at all, then
    to claim to support it while it does not work.
    
    To avoid the mentioned problems, add a new enable_tablet_mode_sw
    module-parameter which defaults to false.
    
    Note I've made this an int using the standard -1=auto, 0=off, 1=on
    triplett, with the hope that in the future we can come up with a
    better way to detect SW_TABLET_MODE support. ATM the default
    auto option just does the same as off.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1918255
    Cc: Stefan Brüns <stefan.bruens@rwth-aachen.de>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Mark Gross <mgross@linux.intel.com>
    Link: https://lore.kernel.org/r/20210120124941.73409-1-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d33b28e01e5c4f350ce2be041574b07575a90ed2
Author: Johan Jonker <jbx6244@gmail.com>
Date:   Sun Jan 17 19:16:53 2021 +0100

    arm64: dts: rockchip: remove interrupt-names property from rk3399 vdec node
    
    [ Upstream commit 94a5400f8b966c91c49991bae41c2ef911b935ac ]
    
    A test with the command below gives this error:
    /arch/arm64/boot/dts/rockchip/rk3399-evb.dt.yaml: video-codec@ff660000:
    'interrupt-names' does not match any of the regexes: 'pinctrl-[0-9]+'
    
    The rkvdec driver gets it irq with help of the platform_get_irq()
    function, so remove the interrupt-names property from the rk3399
    vdec node.
    
    make ARCH=arm64 dtbs_check
    DT_SCHEMA_FILES=Documentation/devicetree/bindings/
    media/rockchip,vdec.yaml
    
    Signed-off-by: Johan Jonker <jbx6244@gmail.com>
    Link: https://lore.kernel.org/r/20210117181653.24886-1-jbx6244@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 697091f92727bc9be5e81a42ecc361dce00a3374
Author: Tony Lindgren <tony@atomide.com>
Date:   Sun Jan 10 21:09:11 2021 +0200

    ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled
    
    [ Upstream commit 06862d789ddde8a99c1e579e934ca17c15a84755 ]
    
    We get suspcious RCU usage splats with cpuidle in several places in
    omap_enter_idle_coupled() with the kernel debug options enabled:
    
    RCU used illegally from extended quiescent state!
    ...
    (_raw_spin_lock_irqsave)
    (omap_enter_idle_coupled+0x17c/0x2d8)
    (omap_enter_idle_coupled)
    (cpuidle_enter_state)
    (cpuidle_enter_state_coupled)
    (cpuidle_enter)
    
    Let's use RCU_NONIDLE to suppress these splats. Things got changed around
    with commit 1098582a0f6c ("sched,idle,rcu: Push rcu_idle deeper into the
    idle path") that started triggering these warnings.
    
    For the tick_broadcast related calls, ideally we'd just switch over to
    using CPUIDLE_FLAG_TIMER_STOP for omap_enter_idle_coupled() to have the
    generic cpuidle code handle the tick_broadcast related calls for us and
    then just drop the tick_broadcast calls here.
    
    But we're currently missing the call in the common cpuidle code for
    tick_broadcast_enable() that CPU1 hotplug needs as described in earlier
    commit 50d6b3cf9403 ("ARM: OMAP2+: fix lack of timer interrupts on CPU1
    after hotplug").
    
    Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
    Cc: Paul E. McKenney <paulmck@kernel.org>
    Cc: Russell King <rmk+kernel@armlinux.org.uk>
    Acked-by: Paul E. McKenney <paulmck@kernel.org>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6c152ac1b687fc5868ac2011ee1e3597f2213c08
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Mon Dec 21 16:11:03 2020 -0800

    arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc
    
    [ Upstream commit 93f2a11580a9732c1d90f9e01a7e9facc825658f ]
    
    The GCC_LPASS_Q6_AXI_CLK and GCC_LPASS_SWAY_CLK clocks may not be
    touched on a typical UEFI based SDM845 device, but when the kernel is
    built with CONFIG_SDM_LPASSCC_845 this happens, unless they are marked
    as protected-clocks in the DT.
    
    This was done for the MTP and the Pocophone, but not for DB845c and the
    Lenovo Yoga C630 - causing these to fail to boot if the LPASS clock
    controller is enabled (which it typically isn't).
    
    Tested-by: Vinod Koul <vkoul@kernel.org> #on db845c
    Reviewed-by: Vinod Koul <vkoul@kernel.org>
    Link: https://lore.kernel.org/r/20201222001103.3112306-1-bjorn.andersson@linaro.org
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 413a2353be6b420b35998de364f79cad24061da7
Author: Marc Zyngier <maz@kernel.org>
Date:   Sat Aug 15 13:51:12 2020 +0100

    arm64: dts: rockchip: Fix PCIe DT properties on rk3399
    
    [ Upstream commit 43f20b1c6140896916f4e91aacc166830a7ba849 ]
    
    It recently became apparent that the lack of a 'device_type = "pci"'
    in the PCIe root complex node for rk3399 is a violation of the PCI
    binding, as documented in IEEE Std 1275-1994. Changes to the kernel's
    parsing of the DT made such violation fatal, as drivers cannot
    probe the controller anymore.
    
    Add the missing property makes the PCIe node compliant. While we
    are at it, drop the pointless linux,pci-domain property, which only
    makes sense when there are multiple host bridges.
    
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20200815125112.462652-3-maz@kernel.org
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8e25e1eef8b9bffe101d3b32e9aad508cbe641a2
Author: Tony Lindgren <tony@atomide.com>
Date:   Tue Dec 8 16:08:02 2020 +0200

    soc: ti: omap-prm: Fix boot time errors for rst_map_012 bits 0 and 1
    
    [ Upstream commit 7078a5ba7a58e5db07583b176f8a03e0b8714731 ]
    
    We have rst_map_012 used for various accelerators like dsp, ipu and iva.
    For these use cases, we have rstctrl bit 2 control the subsystem module
    reset, and have and bits 0 and 1 control the accelerator specific
    features.
    
    If the bootloader, or kexec boot, has left any accelerator specific
    reset bits deasserted, deasserting bit 2 reset will potentially enable
    an accelerator with unconfigured MMU and no firmware. And we may get
    spammed with a lot by warnings on boot with "Data Access in User mode
    during Functional access", or depending on the accelerator, the system
    can also just hang.
    
    This issue can be quite easily reproduced by setting a rst_map_012 type
    rstctrl register to 0 or 4 in the bootloader, and booting the system.
    
    Let's just assert all reset bits for rst_map_012 type resets. So far
    it looks like the other rstctrl types don't need this. If it turns out
    that the other type rstctrl bits also need reset on init, we need to
    add an instance specific reset mask for the bits to avoid resetting
    unwanted bits.
    
    Reported-by: Carl Philipp Klemm <philipp@uvos.xyz>
    Cc: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: Santosh Shilimkar <ssantosh@kernel.org>
    Cc: Suman Anna <s-anna@ti.com>
    Cc: Tero Kristo <t-kristo@ti.com>
    Tested-by: Carl Philipp Klemm <philipp@uvos.xyz>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8c5864d21e010ddd3ec1c10b56b223e2c9fcfabf
Author: Seth Forshee <seth.forshee@canonical.com>
Date:   Tue Feb 9 13:42:17 2021 -0800

    tmpfs: disallow CONFIG_TMPFS_INODE64 on alpha
    
    commit ad69c389ec110ea54f8b0c0884b255340ef1c736 upstream.
    
    As with s390, alpha is a 64-bit architecture with a 32-bit ino_t.  With
    CONFIG_TMPFS_INODE64=y tmpfs mounts will get 64-bit inode numbers and
    display "inode64" in the mount options, whereas passing "inode64" in the
    mount options will fail.  This leads to erroneous behaviours such as
    this:
    
      # mkdir mnt
      # mount -t tmpfs nodev mnt
      # mount -o remount,rw mnt
      mount: /home/ubuntu/mnt: mount point not mounted or bad option.
    
    Prevent CONFIG_TMPFS_INODE64 from being selected on alpha.
    
    Link: https://lkml.kernel.org/r/20210208215726.608197-1-seth.forshee@canonical.com
    Fixes: ea3271f7196c ("tmpfs: support 64-bit inums per-sb")
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Cc: Chris Down <chris@chrisdown.name>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Matt Turner <mattst88@gmail.com>
    Cc: <stable@vger.kernel.org>    [5.9+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b03a0d5cc26dcc4a62b6e4198cbc7d16ae6227b3
Author: Seth Forshee <seth.forshee@canonical.com>
Date:   Tue Feb 9 13:42:14 2021 -0800

    tmpfs: disallow CONFIG_TMPFS_INODE64 on s390
    
    commit b85a7a8bb5736998b8a681937a9749b350c17988 upstream.
    
    Currently there is an assumption in tmpfs that 64-bit architectures also
    have a 64-bit ino_t.  This is not true on s390 which has a 32-bit ino_t.
    With CONFIG_TMPFS_INODE64=y tmpfs mounts will get 64-bit inode numbers
    and display "inode64" in the mount options, but passing the "inode64"
    mount option will fail.  This leads to the following behavior:
    
      # mkdir mnt
      # mount -t tmpfs nodev mnt
      # mount -o remount,rw mnt
      mount: /home/ubuntu/mnt: mount point not mounted or bad option.
    
    As mount sees "inode64" in the mount options and thus passes it in the
    options for the remount.
    
    So prevent CONFIG_TMPFS_INODE64 from being selected on s390.
    
    Link: https://lkml.kernel.org/r/20210205230620.518245-1-seth.forshee@canonical.com
    Fixes: ea3271f7196c ("tmpfs: support 64-bit inums per-sb")
    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    Acked-by: Hugh Dickins <hughd@google.com>
    Cc: Chris Down <chris@chrisdown.name>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Amir Goldstein <amir73il@gmail.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: <stable@vger.kernel.org>    [5.9+]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 285b57595d407bcc8f36c898b37cdce12ae1ff48
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Mon Jan 18 10:28:44 2021 -0700

    dmaengine: move channel device_node deletion to driver
    
    commit e594443196d6e0ef3d3b30320c49b3a4d4f9a547 upstream.
    
    Channel device_node deletion is managed by the device driver rather than
    the dmaengine core. The deletion was accidentally introduced when making
    channel unregister dynamic. It causes xilinx_dma module to crash on unload
    as reported by Radhey. Remove chan->device_node delete in dmaengine and
    also fix up idxd driver.
    
    [   42.142705] Internal error: Oops: 96000044 [#1] SMP
    [   42.147566] Modules linked in: xilinx_dma(-) clk_xlnx_clock_wizard uio_pdrv_genirq
    [   42.155139] CPU: 1 PID: 2075 Comm: rmmod Not tainted 5.10.1-00026-g3a2e6dd7a05-dirty #192
    [   42.163302] Hardware name: Enclustra XU5 SOM (DT)
    [   42.167992] pstate: 40000005 (nZcv daif -PAN -UAO -TCO BTYPE=--)
    [   42.173996] pc : xilinx_dma_chan_remove+0x74/0xa0 [xilinx_dma]
    [   42.179815] lr : xilinx_dma_chan_remove+0x70/0xa0 [xilinx_dma]
    [   42.185636] sp : ffffffc01112bca0
    [   42.188935] x29: ffffffc01112bca0 x28: ffffff80402ea640
    
    xilinx_dma_chan_remove+0x74/0xa0:
    __list_del at ./include/linux/list.h:112 (inlined by)
    __list_del_entry at./include/linux/list.h:135 (inlined by)
    list_del at ./include/linux/list.h:146 (inlined by)
    xilinx_dma_chan_remove at drivers/dma/xilinx/xilinx_dma.c:2546
    
    Fixes: e81274cd6b52 ("dmaengine: add support to dynamic register/unregister of channels")
    Reported-by: Radhey Shyam Pandey <radheys@xilinx.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Tested-by: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>
    Link: https://lore.kernel.org/r/161099092469.2495902.5064826526660062342.stgit@djiang5-desk3.ch.intel.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Cc: stable@vger.kernel.org # 5.9+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit deae1e6365cd5b32415dc5b4f8ee22f7c0fa4ae3
Author: Imre Deak <imre.deak@intel.com>
Date:   Mon Feb 1 14:01:42 2021 +0200

    drm/dp_mst: Don't report ports connected if nothing is attached to them
    
    commit 873e5bb9fbd99e4a26c448b5c7af942a6d7aa60d upstream.
    
    Reporting a port as connected if nothing is attached to them leads to
    any i2c transactions on this port trying to use an uninitialized i2c
    adapter, fix this.
    
    Let's account for this case even if branch devices have no good reason
    to report a port as plugged with their peer device type set to 'none'.
    
    Fixes: db1a07956968 ("drm/dp_mst: Handle SST-only branch device case")
    References: https://gitlab.freedesktop.org/drm/intel/-/issues/2987
    References: https://gitlab.freedesktop.org/drm/intel/-/issues/1963
    Cc: Wayne Lin <Wayne.Lin@amd.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: <stable@vger.kernel.org> # v5.5+
    Cc: intel-gfx@lists.freedesktop.org
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Reported-by: Thiago Macieira <gitlab@gitlab.freedesktop.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210201120145.350258-1-imre.deak@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a36371f8bb5e3c4d0597beafa8a4490a9d195e7
Author: Imre Deak <imre.deak@intel.com>
Date:   Mon Feb 8 17:43:03 2021 +0200

    drm/i915/tgl+: Make sure TypeC FIA is powered up when initializing it
    
    commit 2f51312bebb77962a518b4c6de777dd378b6110a upstream.
    
    The TypeC FIA can be powered down if the TC-COLD power state is allowed,
    so block the TC-COLD state when initializing the FIA.
    
    Note that this isn't needed on ICL where the FIA is never modular and
    which has no generic way to block TC-COLD (except for platforms with a
    legacy TypeC port and on those too only via these legacy ports, not via
    a DP-alt/TBT port).
    
    Cc: <stable@vger.kernel.org> # v5.10+
    Cc: José Roberto de Souza <jose.souza@intel.com>
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3027
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210208154303.6839-1-imre.deak@intel.com
    Reviewed-by: Jos� Roberto de Souza <jose.souza@intel.com>
    (cherry picked from commit f48993e5d26b079e8c80fff002499a213dbdb1b4)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e11345ed78b9a3e6d581341dfa6833a49cfab60b
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Feb 3 14:03:50 2021 -0500

    Revert "drm/amd/display: Update NV1x SR latency values"
    
    commit cf050f96e0970a557601953ed7269d07a7885078 upstream.
    
    This reverts commit 4a3dea8932d3b1199680d2056dd91d31d94d70b7.
    
    This causes blank screens for some users.
    
    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1482
    Cc: Alvin Lee <alvin.lee2@amd.com>
    Cc: Jun Lei <Jun.Lei@amd.com>
    Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
    Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@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 e72a65802a3e053f53ee97b55d6fb4a426cfffa9
Author: Odin Ugedal <odin@uged.al>
Date:   Sat Jan 16 18:36:33 2021 +0100

    cgroup: fix psi monitor for root cgroup
    
    commit 385aac1519417b89cb91b77c22e4ca21db563cd0 upstream.
    
    Fix NULL pointer dereference when adding new psi monitor to the root
    cgroup. PSI files for root cgroup was introduced in df5ba5be742 by using
    system wide psi struct when reading, but file write/monitor was not
    properly fixed. Since the PSI config for the root cgroup isn't
    initialized, the current implementation tries to lock a NULL ptr,
    resulting in a crash.
    
    Can be triggered by running this as root:
    $ tee /sys/fs/cgroup/cpu.pressure <<< "some 10000 1000000"
    
    Signed-off-by: Odin Ugedal <odin@uged.al>
    Reviewed-by: Suren Baghdasaryan <surenb@google.com>
    Acked-by: Dan Schatzberg <dschatzberg@fb.com>
    Fixes: df5ba5be7425 ("kernel/sched/psi.c: expose pressure metrics on root cgroup")
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Cc: stable@vger.kernel.org # 5.2+
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89b0c20d80a1ab8aa155af287ff4af378862964f
Author: Julien Grall <jgrall@amazon.com>
Date:   Wed Feb 10 17:06:54 2021 +0000

    arm/xen: Don't probe xenbus as part of an early initcall
    
    commit c4295ab0b485b8bc50d2264bcae2acd06f25caaf upstream.
    
    After Commit 3499ba8198cad ("xen: Fix event channel callback via
    INTX/GSI"), xenbus_probe() will be called too early on Arm. This will
    recent to a guest hang during boot.
    
    If the hang wasn't there, we would have ended up to call
    xenbus_probe() twice (the second time is in xenbus_probe_initcall()).
    
    We don't need to initialize xenbus_probe() early for Arm guest.
    Therefore, the call in xen_guest_init() is now removed.
    
    After this change, there is no more external caller for xenbus_probe().
    So the function is turned to a static one. Interestingly there were two
    prototypes for it.
    
    Cc: stable@vger.kernel.org
    Fixes: 3499ba8198cad ("xen: Fix event channel callback via INTX/GSI")
    Reported-by: Ian Jackson <iwj@xenproject.org>
    Signed-off-by: Julien Grall <jgrall@amazon.com>
    Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
    Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
    Link: https://lore.kernel.org/r/20210210170654.5377-1-julien@xen.org
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bef1f148812dd48786d4f276a664954f06c0b853
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Tue Feb 9 04:19:17 2021 +0200

    drm/i915: Fix overlay frontbuffer tracking
    
    commit 5feba0e905c495a217aea9db4ea91093d8fe5dde upstream.
    
    We don't have a persistent fb holding a reference to the frontbuffer
    object, so every time we do the get+put we throw the frontbuffer object
    immediately away. And so the next time around we get a pristine
    frontbuffer object with bits==0 even for the old vma. This confuses
    the frontbuffer tracking code which understandably expects the old
    frontbuffer to have the overlay's bit set.
    
    Fix this by hanging on to the frontbuffer reference until the next
    flip. And just to make this a bit more clear let's track the frontbuffer
    explicitly instead of just grabbing it via the old vma.
    
    Cc: stable@vger.kernel.org
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1136
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210209021918.16234-2-ville.syrjala@linux.intel.com
    Fixes: 8e7cb1799b4f ("drm/i915: Extract intel_frontbuffer active tracking")
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    (cherry picked from commit 553c23bdb4775130f333f07a51b047276bc53f79)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c93d8cff582c459350d6f8906eea6e4cd60d959
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Wed Feb 10 11:53:22 2021 -0500

    tracing: Check length before giving out the filter buffer
    
    commit b220c049d5196dd94d992dd2dc8cba1a5e6123bf upstream.
    
    When filters are used by trace events, a page is allocated on each CPU and
    used to copy the trace event fields to this page before writing to the ring
    buffer. The reason to use the filter and not write directly into the ring
    buffer is because a filter may discard the event and there's more overhead
    on discarding from the ring buffer than the extra copy.
    
    The problem here is that there is no check against the size being allocated
    when using this page. If an event asks for more than a page size while being
    filtered, it will get only a page, leading to the caller writing more that
    what was allocated.
    
    Check the length of the request, and if it is more than PAGE_SIZE minus the
    header default back to allocating from the ring buffer directly. The ring
    buffer may reject the event if its too big anyway, but it wont overflow.
    
    Link: https://lore.kernel.org/ath10k/1612839593-2308-1-git-send-email-wgong@codeaurora.org/
    
    Cc: stable@vger.kernel.org
    Fixes: 0fc1b09ff1ff4 ("tracing: Use temp buffer when filtering events")
    Reported-by: Wen Gong <wgong@codeaurora.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a38c1ee16623d35186338dbb545843710ce098ab
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Fri Feb 5 15:40:04 2021 -0500

    tracing: Do not count ftrace events in top level enable output
    
    commit 256cfdd6fdf70c6fcf0f7c8ddb0ebd73ce8f3bc9 upstream.
    
    The file /sys/kernel/tracing/events/enable is used to enable all events by
    echoing in "1", or disabling all events when echoing in "0". To know if all
    events are enabled, disabled, or some are enabled but not all of them,
    cating the file should show either "1" (all enabled), "0" (all disabled), or
    "X" (some enabled but not all of them). This works the same as the "enable"
    files in the individule system directories (like tracing/events/sched/enable).
    
    But when all events are enabled, the top level "enable" file shows "X". The
    reason is that its checking the "ftrace" events, which are special events
    that only exist for their format files. These include the format for the
    function tracer events, that are enabled when the function tracer is
    enabled, but not by the "enable" file. The check includes these events,
    which will always be disabled, and even though all true events are enabled,
    the top level "enable" file will show "X" instead of "1".
    
    To fix this, have the check test the event's flags to see if it has the
    "IGNORE_ENABLE" flag set, and if so, not test it.
    
    Cc: stable@vger.kernel.org
    Fixes: 553552ce1796c ("tracing: Combine event filter_active and enable into single flags field")
    Reported-by: "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9b7ea4c818cc20bc1d2662a976a1c7d0cc72111
Author: Nikita Shubin <nikita.shubin@maquefel.me>
Date:   Tue Feb 9 16:31:05 2021 +0300

    gpio: ep93xx: Fix single irqchip with multi gpiochips
    
    commit 28dc10eb77a2db7681b08e3b109764bbe469e347 upstream.
    
    Fixes the following warnings which results in interrupts disabled on
    port B/F:
    
    gpio gpiochip1: (B): detected irqchip that is shared with multiple gpiochips: please fix the driver.
    gpio gpiochip5: (F): detected irqchip that is shared with multiple gpiochips: please fix the driver.
    
    - added separate irqchip for each interrupt capable gpiochip
    - provided unique names for each irqchip
    
    Fixes: d2b091961510 ("gpio: ep93xx: Pass irqchip when adding gpiochip")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
    Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10538b869a642109741bd9491a27ccb8d215027e
Author: Nikita Shubin <nikita.shubin@maquefel.me>
Date:   Tue Feb 9 16:31:04 2021 +0300

    gpio: ep93xx: fix BUG_ON port F usage
    
    commit 8b81a7ab8055d01d827ef66374b126eeac3bd108 upstream.
    
    Two index spaces and ep93xx_gpio_port are confusing.
    
    Instead add a separate struct to store necessary data and remove
    ep93xx_gpio_port.
    
    - add struct to store IRQ related data for each IRQ capable chip
    - replace offset array with defined offsets
    - add IRQ registers offset for each IRQ capable chip into
      ep93xx_gpio_banks
    
    ------------[ cut here ]------------
    kernel BUG at drivers/gpio/gpio-ep93xx.c:64!
    ---[ end trace 3f6544e133e9f5ae ]---
    
    Fixes: fd935fc421e74 ("gpio: ep93xx: Do not pingpong irq numbers")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
    Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e072d454faa45847a1544b47e88a1377a36ac720
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Feb 8 15:51:53 2021 +0100

    gpio: mxs: GPIO_MXS should not default to y unconditionally
    
    commit 97c6e28d388a5000d780d2a63c32f422827f5aa3 upstream.
    
    Merely enabling CONFIG_COMPILE_TEST should not enable additional code.
    To fix this, restrict the automatic enabling of GPIO_MXS to ARCH_MXS,
    and ask the user in case of compile-testing.
    
    Fixes: 6876ca311bfca5d7 ("gpio: mxs: add COMPILE_TEST support for GPIO_MXS")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 039e0f627397c0de67438a0f8e55f459ddc7900c
Author: Palmer Dabbelt <palmerdabbelt@google.com>
Date:   Thu Feb 4 19:41:12 2021 -0800

    Revert "dts: phy: add GPIO number and active state used for phy reset"
    
    commit 3da3cc1b5f47115b16b5ffeeb4bf09ec331b0164 upstream.
    
    VSC8541 phys need a special reset sequence, which the driver doesn't
    currentlny support.  As a result enabling the reset via GPIO essentially
    guarnteees that the device won't work correctly.  We've been relying on
    bootloaders to reset the device for years, with this revert we'll go
    back to doing so until we can sort out how to get the reset sequence
    into the kernel.
    
    This reverts commit a0fa9d727043da2238432471e85de0bdb8a8df65.
    
    Fixes: a0fa9d727043 ("dts: phy: add GPIO number and active state used for phy reset")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b02985bf83e6da9d9165c5f2165af1b97d76edf
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Mon Dec 14 16:04:20 2020 -0600

    objtool: Fix seg fault with Clang non-section symbols
    
    commit 44f6a7c0755d8dd453c70557e11687bb080a6f21 upstream.
    
    The Clang assembler likes to strip section symbols, which means objtool
    can't reference some text code by its section.  This confuses objtool
    greatly, causing it to seg fault.
    
    The fix is similar to what was done before, for ORC reloc generation:
    
      e81e07244325 ("objtool: Support Clang non-section symbols in ORC generation")
    
    Factor out that code into a common helper and use it for static call
    reloc generation as well.
    
    Reported-by: Arnd Bergmann <arnd@kernel.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Miroslav Benes <mbenes@suse.cz>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1207
    Link: https://lkml.kernel.org/r/ba6b6c0f0dd5acbba66e403955a967d9fdd1726a.1607983452.git.jpoimboe@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>