commit 2965db2e004cf9c92b87c1f559e9812c0ae878c1
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Apr 16 11:49:31 2021 +0200

    Linux 4.19.188
    
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20210415144411.596695196@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9ab90118cf9e7ea83d614b94225ad0cfe5face9
Author: Juergen Gross <jgross@suse.com>
Date:   Mon Apr 12 08:28:45 2021 +0200

    xen/events: fix setting irq affinity
    
    The backport of upstream patch 25da4618af240fbec61 ("xen/events: don't
    unmask an event channel when an eoi is pending") introduced a
    regression for stable kernels 5.10 and older: setting IRQ affinity for
    IRQs related to interdomain events would no longer work, as moving the
    IRQ to its new cpu was not included in the irq_ack callback for those
    events.
    
    Fix that by adding the needed call.
    
    Note that kernels 5.11 and later don't need the explicit moving of the
    IRQ to the target cpu in the irq_ack callback, due to a rework of the
    affinity setting in kernel 5.11.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61de25de1ac8baf4e9e3e3386412656b35345121
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Fri Mar 5 10:02:09 2021 -0300

    perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches
    
    commit 77d02bd00cea9f1a87afe58113fa75b983d6c23a upstream.
    
    Noticed on a debian:experimental mips and mipsel cross build build
    environment:
    
      perfbuilder@ec265a086e9b:~$ mips-linux-gnu-gcc --version | head -1
      mips-linux-gnu-gcc (Debian 10.2.1-3) 10.2.1 20201224
      perfbuilder@ec265a086e9b:~$
    
        CC       /tmp/build/perf/util/map.o
      util/map.c: In function 'map__new':
      util/map.c:109:5: error: '%s' directive output may be truncated writing between 1 and 2147483645 bytes into a region of size 4096 [-Werror=format-truncation=]
        109 |    "%s/platforms/%s/arch-%s/usr/lib/%s",
            |     ^~
      In file included from /usr/mips-linux-gnu/include/stdio.h:867,
                       from util/symbol.h:11,
                       from util/map.c:2:
      /usr/mips-linux-gnu/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output 32 or more bytes (assuming 4294967321) into a destination of size 4096
         67 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
            |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         68 |        __bos (__s), __fmt, __va_arg_pack ());
            |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cc1: all warnings being treated as errors
    
    Since we have the lenghts for what lands in that place, use it to give
    the compiler more info and make it happy.
    
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Anders Roxell <anders.roxell@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f59a6ec295a5e7cc75feefbd7903243322de338f
Author: Saravana Kannan <saravanak@google.com>
Date:   Thu Apr 1 21:03:40 2021 -0700

    driver core: Fix locking bug in deferred_probe_timeout_work_func()
    
    commit eed6e41813deb9ee622cd9242341f21430d7789f upstream.
    
    list_for_each_entry_safe() is only useful if we are deleting nodes in a
    linked list within the loop. It doesn't protect against other threads
    adding/deleting nodes to the list in parallel. We need to grab
    deferred_probe_mutex when traversing the deferred_probe_pending_list.
    
    Cc: stable@vger.kernel.org
    Fixes: 25b4e70dcce9 ("driver core: allow stopping deferred probe after init")
    Signed-off-by: Saravana Kannan <saravanak@google.com>
    Link: https://lore.kernel.org/r/20210402040342.2944858-2-saravanak@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12ec80252edefff00809d473a47e5f89c7485499
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Apr 7 21:38:57 2021 +0200

    netfilter: x_tables: fix compat match/target pad out-of-bound write
    
    commit b29c457a6511435960115c0f548c4360d5f4801d upstream.
    
    xt_compat_match/target_from_user doesn't check that zeroing the area
    to start of next rule won't write past end of allocated ruleset blob.
    
    Remove this code and zero the entire blob beforehand.
    
    Reported-by: syzbot+cfc0247ac173f597aaaa@syzkaller.appspotmail.com
    Reported-by: Andy Nguyen <theflow@google.com>
    Fixes: 9fa492cdc160c ("[NETFILTER]: x_tables: simplify compat API")
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 854e8c240f55aaf90c435f6643677c5458cfdd7f
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Apr 2 12:31:50 2019 +0200

    staging: m57621-mmc: delete driver from the tree.
    
    [ Upstream commit 441bf7332d55c4d34afae9ffc3bbec621093f4d1 ]
    
    The license text in this driver is "interesting" and not really obvious
    that it is supposed to be able to be distributed in the kernel source
    tree.  Yes, the MODULE_LICENSE() text says GPL, so it's probably ok, but
    to be safe, I am deleting this driver.  I will be glad to add it back if
    the license is properly sorted out, but for now, this isn't worth the
    potential risk, I should have never taken it in the first place.
    
    Cc: Matthias Brugger <matthias.bgg@gmail.com>
    Cc: NeilBrown <neil@brown.name>
    Cc: George Hilliard <thirtythreeforty@gmail.com>
    Cc: "Christian Lütke-Stetzkamp" <christian@lkamp.de>
    Cc: Nishad Kamdar <nishadkamdar@gmail.com>
    Cc: Sergej Perschin <ser.perschin@gmail.com>
    Cc: John Crispin <blogic@openwrt.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8872a0d949b67d43a214b2643ac673c158d58f2c
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Apr 12 16:30:14 2021 -0700

    net: phy: broadcom: Only advertise EEE for supported modes
    
    commit c056d480b40a68f2520ccc156c7fae672d69d57d upstream
    
    We should not be advertising EEE for modes that we do not support,
    correct that oversight by looking at the PHY device supported linkmodes.
    
    Fixes: 99cec8a4dda2 ("net: phy: broadcom: Allow enabling or disabling of EEE")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f17a45f8e35068cfb25c66fdd85606962a3a448
Author: Zihao Yu <yuzihao@ict.ac.cn>
Date:   Wed Mar 17 16:17:25 2021 +0800

    riscv,entry: fix misaligned base for excp_vect_table
    
    [ Upstream commit ac8d0b901f0033b783156ab2dc1a0e73ec42409b ]
    
    In RV64, the size of each entry in excp_vect_table is 8 bytes. If the
    base of the table is not 8-byte aligned, loading an entry in the table
    will raise a misaligned exception. Although such exception will be
    handled by opensbi/bbl, this still causes performance degradation.
    
    Signed-off-by: Zihao Yu <yuzihao@ict.ac.cn>
    Reviewed-by: Anup Patel <anup@brainfault.org>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 533ea843ed3cdeb77536ec3b86a4bbb807543ecb
Author: Yufen Yu <yuyufen@huawei.com>
Date:   Wed Mar 31 07:53:59 2021 -0400

    block: only update parent bi_status when bio fail
    
    [ Upstream commit 3edf5346e4f2ce2fa0c94651a90a8dda169565ee ]
    
    For multiple split bios, if one of the bio is fail, the whole
    should return error to application. But we found there is a race
    between bio_integrity_verify_fn and bio complete, which return
    io success to application after one of the bio fail. The race as
    following:
    
    split bio(READ)          kworker
    
    nvme_complete_rq
    blk_update_request //split error=0
      bio_endio
        bio_integrity_endio
          queue_work(kintegrityd_wq, &bip->bip_work);
    
                             bio_integrity_verify_fn
                             bio_endio //split bio
                              __bio_chain_endio
                                 if (!parent->bi_status)
    
                                   <interrupt entry>
                                   nvme_irq
                                     blk_update_request //parent error=7
                                     req_bio_endio
                                        bio->bi_status = 7 //parent bio
                                   <interrupt exit>
    
                                   parent->bi_status = 0
                            parent->bi_end_io() // return bi_status=0
    
    The bio has been split as two: split and parent. When split
    bio completed, it depends on kworker to do endio, while
    bio_integrity_verify_fn have been interrupted by parent bio
    complete irq handler. Then, parent bio->bi_status which have
    been set in irq handler will overwrite by kworker.
    
    In fact, even without the above race, we also need to conside
    the concurrency beteen mulitple split bio complete and update
    the same parent bi_status. Normally, multiple split bios will
    be issued to the same hctx and complete from the same irq
    vector. But if we have updated queue map between multiple split
    bios, these bios may complete on different hw queue and different
    irq vector. Then the concurrency update parent bi_status may
    cause the final status error.
    
    Suggested-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Yufen Yu <yuyufen@huawei.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Link: https://lore.kernel.org/r/20210331115359.1125679-1-yuyufen@huawei.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41ed08a9f69534914977520b601f6b1551841ad8
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Tue Mar 2 16:15:06 2021 +0300

    drm/tegra: dc: Don't set PLL clock to 0Hz
    
    [ Upstream commit f8fb97c915954fc6de6513cdf277103b5c6df7b3 ]
    
    RGB output doesn't allow to change parent clock rate of the display and
    PCLK rate is set to 0Hz in this case. The tegra_dc_commit_state() shall
    not set the display clock to 0Hz since this change propagates to the
    parent clock. The DISP clock is defined as a NODIV clock by the tegra-clk
    driver and all NODIV clocks use the CLK_SET_RATE_PARENT flag.
    
    This bug stayed unnoticed because by default PLLP is used as the parent
    clock for the display controller and PLLP silently skips the erroneous 0Hz
    rate changes because it always has active child clocks that don't permit
    rate changes. The PLLP isn't acceptable for some devices that we want to
    upstream (like Samsung Galaxy Tab and ASUS TF700T) due to a display panel
    clock rate requirements that can't be fulfilled by using PLLP and then the
    bug pops up in this case since parent clock is set to 0Hz, killing the
    display output.
    
    Don't touch DC clock if pclk=0 in order to fix the problem.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e5e04436285cba9d903ab3d1beeb5da2084065a
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Thu Mar 25 08:51:13 2021 -0400

    gfs2: report "already frozen/thawed" errors
    
    [ Upstream commit ff132c5f93c06bd4432bbab5c369e468653bdec4 ]
    
    Before this patch, gfs2's freeze function failed to report an error
    when the target file system was already frozen as it should (and as
    generic vfs function freeze_super does. Similarly, gfs2's thaw function
    failed to report an error when trying to thaw a file system that is not
    frozen, as vfs function thaw_super does. The errors were checked, but
    it always returned a 0 return code.
    
    This patch adds the missing error return codes to gfs2 freeze and thaw.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc724288872a31563ef2f4edf73b8e7e3d502d95
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Mar 24 17:47:41 2021 +0100

    drm/imx: imx-ldb: fix out of bounds array access warning
    
    [ Upstream commit 33ce7f2f95cabb5834cf0906308a5cb6103976da ]
    
    When CONFIG_OF is disabled, building with 'make W=1' produces warnings
    about out of bounds array access:
    
    drivers/gpu/drm/imx/imx-ldb.c: In function 'imx_ldb_set_clock.constprop':
    drivers/gpu/drm/imx/imx-ldb.c:186:8: error: array subscript -22 is below array bounds of 'struct clk *[4]' [-Werror=array-bounds]
    
    Add an error check before the index is used, which helps with the
    warning, as well as any possible other error condition that may be
    triggered at runtime.
    
    The warning could be fixed by adding a Kconfig depedency on CONFIG_OF,
    but Liu Ying points out that the driver may hit the out-of-bounds
    problem at runtime anyway.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Liu Ying <victor.liu@nxp.com>
    Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3bf8e03d04bf1d914baf39152f3b0539a638e60c
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Tue Mar 23 12:06:30 2021 +0000

    KVM: arm64: Disable guest access to trace filter controls
    
    [ Upstream commit a354a64d91eec3e0f8ef0eed575b480fd75b999c ]
    
    Disable guest access to the Trace Filter control registers.
    We do not advertise the Trace filter feature to the guest
    (ID_AA64DFR0_EL1: TRACE_FILT is cleared) already, but the guest
    can still access the TRFCR_EL1 unless we trap it.
    
    This will also make sure that the guest cannot fiddle with
    the filtering controls set by a nvhe host.
    
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20210323120647.454211-3-suzuki.poulose@arm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e873559444f2c780757c87c5991720d0acca9e8
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Tue Mar 23 12:06:29 2021 +0000

    KVM: arm64: Hide system instruction access to Trace registers
    
    [ Upstream commit 1d676673d665fd2162e7e466dcfbe5373bfdb73e ]
    
    Currently we advertise the ID_AA6DFR0_EL1.TRACEVER for the guest,
    when the trace register accesses are trapped (CPTR_EL2.TTA == 1).
    So, the guest will get an undefined instruction, if trusts the
    ID registers and access one of the trace registers.
    Lets be nice to the guest and hide the feature to avoid
    unexpected behavior.
    
    Even though this can be done at KVM sysreg emulation layer,
    we do this by removing the TRACEVER from the sanitised feature
    register field. This is fine as long as the ETM drivers
    can handle the individual trace units separately, even
    when there are differences among the CPUs.
    
    Cc: Will Deacon <will@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20210323120647.454211-2-suzuki.poulose@arm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>