commit 2aa8861eab092599ad566c5b20d7452d9ec0ca8e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Apr 16 11:38:15 2021 +0200

    Linux 5.11.15
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Jason Self <jason@bluehome.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Link: https://lore.kernel.org/r/20210415144413.146131392@linuxfoundation.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 434192ad69b7bcca934e04b68d6e23cb354c3449
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Sun Jan 10 10:58:32 2021 +0000

    net: sfp: cope with SFPs that set both LOS normal and LOS inverted
    
    commit 624407d2cf14ff58e53bf4b2af9595c4f21d606e upstream.
    
    The SFP MSA defines two option bits in byte 65 to indicate how the
    Rx_LOS signal on SFP pin 8 behaves:
    
    bit 2 - Loss of Signal implemented, signal inverted from standard
            definition in SFP MSA (often called "Signal Detect").
    bit 1 - Loss of Signal implemented, signal as defined in SFP MSA
            (often called "Rx_LOS").
    
    Clearly, setting both bits results in a meaningless situation: it would
    mean that LOS is implemented in both the normal sense (1 = signal loss)
    and inverted sense (0 = signal loss).
    
    Unfortunately, there are modules out there which set both bits, which
    will be initially interpret as "inverted" sense, and then, if the LOS
    signal changes state, we will toggle between LINK_UP and WAIT_LOS
    states.
    
    Change our LOS handling to give well defined behaviour: only interpret
    these bits as meaningful if exactly one is set, otherwise treat it as
    if LOS is not implemented.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Link: https://lore.kernel.org/r/E1kyYQa-0004iR-CU@rmk-PC.armlinux.org.uk
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Cc: Pali Rohár <pali@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8d2282512c0d95824d1d9640f117619a25bba10
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 b4c4e4660b37a57011677809205a3f36725b70ae
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 398aca5129cf9cf09f064989caab4ba43edc8dc8
Author: Pavel Begunkov <asml.silence@gmail.com>
Date:   Fri Nov 20 17:10:28 2020 +0000

    block: don't ignore REQ_NOWAIT for direct IO
    
    [ Upstream commit f8b78caf21d5bc3fcfc40c18898f9d52ed1451a5 ]
    
    If IOCB_NOWAIT is set on submission, then that needs to get propagated to
    REQ_NOWAIT on the block side. Otherwise we completely lose this
    information, and any issuer of IOCB_NOWAIT IO will potentially end up
    blocking on eg request allocation on the storage side.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d5ecd2faa5221fd7e3f316cdd19a0a8672b95f81
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 4d0fcd37bbcb0deb90fbbe755438faa93e1d72a4
Author: Jens Axboe <axboe@kernel.dk>
Date:   Thu Apr 1 08:38:34 2021 -0600

    io_uring: don't mark S_ISBLK async work as unbounded
    
    [ Upstream commit 4b982bd0f383db9132e892c0c5144117359a6289 ]
    
    S_ISBLK is marked as unbounded work for async preparation, because it
    doesn't match S_ISREG. That is incorrect, as any read/write to a block
    device is also a bounded operation. Fix it up and ensure that S_ISBLK
    isn't marked unbounded.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a80bcc8795174851e62fb83baff6c9b10828b55e
Author: Damien Le Moal <damien.lemoal@wdc.com>
Date:   Thu Apr 1 07:52:44 2021 +0900

    null_blk: fix command timeout completion handling
    
    [ Upstream commit de3510e52b0a398261271455562458003b8eea62 ]
    
    Memory backed or zoned null block devices may generate actual request
    timeout errors due to the submission path being blocked on memory
    allocation or zone locking. Unlike fake timeouts or injected timeouts,
    the request submission path will call blk_mq_complete_request() or
    blk_mq_end_request() for these real timeout errors, causing a double
    completion and use after free situation as the block layer timeout
    handler executes blk_mq_rq_timed_out() and __blk_mq_free_request() in
    blk_mq_check_expired(). This problem often triggers a NULL pointer
    dereference such as:
    
    BUG: kernel NULL pointer dereference, address: 0000000000000050
    RIP: 0010:blk_mq_sched_mark_restart_hctx+0x5/0x20
    ...
    Call Trace:
      dd_finish_request+0x56/0x80
      blk_mq_free_request+0x37/0x130
      null_handle_cmd+0xbf/0x250 [null_blk]
      ? null_queue_rq+0x67/0xd0 [null_blk]
      blk_mq_dispatch_rq_list+0x122/0x850
      __blk_mq_do_dispatch_sched+0xbb/0x2c0
      __blk_mq_sched_dispatch_requests+0x13d/0x190
      blk_mq_sched_dispatch_requests+0x30/0x60
      __blk_mq_run_hw_queue+0x49/0x90
      process_one_work+0x26c/0x580
      worker_thread+0x55/0x3c0
      ? process_one_work+0x580/0x580
      kthread+0x134/0x150
      ? kthread_create_worker_on_cpu+0x70/0x70
      ret_from_fork+0x1f/0x30
    
    This problem very often triggers when running the full btrfs xfstests
    on a memory-backed zoned null block device in a VM with limited amount
    of memory.
    
    Avoid this by executing blk_mq_complete_request() in null_timeout_rq()
    only for commands that are marked for a fake timeout completion using
    the fake_timeout boolean in struct null_cmd. For timeout errors injected
    through debugfs, the timeout handler will execute
    blk_mq_complete_request()i as before. This is safe as the submission
    path does not execute complete requests in this case.
    
    In null_timeout_rq(), also make sure to set the command error field to
    BLK_STS_TIMEOUT and to propagate this error through to the request
    completion.
    
    Reported-by: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
    Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
    Tested-by: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
    Reviewed-by: Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
    Link: https://lore.kernel.org/r/20210331225244.126426-1-damien.lemoal@wdc.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e2a04b56607c7ffe3e475a83ee80059df353d9b0
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Thu Apr 1 07:46:49 2021 -0400

    idr test suite: Create anchor before launching throbber
    
    [ Upstream commit 094ffbd1d8eaa27ed426feb8530cb1456348b018 ]
    
    The throbber could race with creation of the anchor entry and cause the
    IDR to have zero entries in it, which would cause the test to fail.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0cdf4c3ea95ace38f3a3de982c37f7eaa31f67f5
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Thu Apr 1 07:44:48 2021 -0400

    idr test suite: Take RCU read lock in idr_find_test_1
    
    [ Upstream commit 703586410da69eb40062e64d413ca33bd735917a ]
    
    When run on a single CPU, this test would frequently access already-freed
    memory.  Due to timing, this bug never showed up on multi-CPU tests.
    
    Reported-by: Chris von Recklinghausen <crecklin@redhat.com>
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f8ac5cb2f42959c864c47794de12592639aafe9e
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Wed Mar 31 14:59:19 2021 -0400

    radix tree test suite: Register the main thread with the RCU library
    
    [ Upstream commit 1bb4bd266cf39fd2fa711f2d265c558b92df1119 ]
    
    Several test runners register individual worker threads with the
    RCU library, but neglect to register the main thread, which can lead
    to objects being freed while the main thread is in what appears to be
    an RCU critical section.
    
    Reported-by: Chris von Recklinghausen <crecklin@redhat.com>
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e0e24b9fbc6ae5a9e1e1745a26e33cedaeb33030
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 12ea887cdd38df91743254b925921916ff0211e9
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Tue Mar 30 13:44:35 2021 -0400

    radix tree test suite: Fix compilation
    
    [ Upstream commit 7487de534dcbe143e6f41da751dd3ffcf93b00ee ]
    
    Commit 4bba4c4bb09a added tools/include/linux/compiler_types.h which
    includes linux/compiler-gcc.h.  Unfortunately, we had our own (empty)
    compiler_types.h which overrode the one added by that commit, and
    so we lost the definition of __must_be_array().  Removing our empty
    compiler_types.h fixes the problem and reduces our divergence from the
    rest of the tools.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit afc82b1d0dff08204158391cd02f3baec2bbb699
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Thu Nov 19 08:32:31 2020 -0500

    XArray: Fix splitting to non-zero orders
    
    [ Upstream commit 3012110d71f41410932924e1d188f9eb57f1f824 ]
    
    Splitting an order-4 entry into order-2 entries would leave the array
    containing pointers to 000040008000c000 instead of 000044448888cccc.
    This is a one-character fix, but enhance the test suite to check this
    case.
    
    Reported-by: Zi Yan <ziy@nvidia.com>
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c25f837a3adb7f2b056ca2565d6757f7eeaafcae
Author: Mikko Perttunen <mperttunen@nvidia.com>
Date:   Mon Mar 29 16:38:27 2021 +0300

    gpu: host1x: Use different lock classes for each client
    
    [ Upstream commit a24f98176d1efae2c37d3438c57a624d530d9c33 ]
    
    To avoid false lockdep warnings, give each client lock a different
    lock class, passed from the initialization site by macro.
    
    Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e3d12bc7e452cbba34e9d393a4f87cf5abf172db
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 53a58a74de150dbb40d94f76ee59917c77637149
Author: Stefan Raspl <raspl@linux.ibm.com>
Date:   Thu Mar 25 13:29:49 2021 +0100

    tools/kvm_stat: Add restart delay
    
    [ Upstream commit 75f94ecbd0dfd2ac4e671f165f5ae864b7301422 ]
    
    If this service is enabled and the system rebooted, Systemd's initial
    attempt to start this unit file may fail in case the kvm module is not
    loaded. Since we did not specify a delay for the retries, Systemd
    restarts with a minimum delay a number of times before giving up and
    disabling the service. Which means a subsequent kvm module load will
    have kvm running without monitoring.
    Adding a delay to fix this.
    
    Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
    Message-Id: <20210325122949.1433271-1-raspl@linux.ibm.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8988931ee33ecaea3b62cd7a976ab5db96b8e964
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Tue Mar 30 09:58:38 2021 -0400

    ftrace: Check if pages were allocated before calling free_pages()
    
    [ Upstream commit 59300b36f85f254260c81d9dd09195fa49eb0f98 ]
    
    It is possible that on error pg->size can be zero when getting its order,
    which would return a -1 value. It is dangerous to pass in an order of -1
    to free_pages(). Check if order is greater than or equal to zero before
    calling free_pages().
    
    Link: https://lore.kernel.org/lkml/20210330093916.432697c7@gandalf.local.home/
    
    Reported-by: Abaci Robot <abaci@linux.alibaba.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa9109bfb287dd36c238875c489b2eb2f9e896d8
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 6aeb4749214efe7fa0a9a30468bc6404860fab01
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 ac22b84934257229560c769110169cb683b77b2c
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 32959f673334c78d6b6e53f381e4ab332d3bc3e5
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>

commit c0ceeca6c39fbef8076eb23b0cadcb81746bacd0
Author: Andrew Price <anprice@redhat.com>
Date:   Mon Mar 15 12:24:00 2021 +0000

    gfs2: Flag a withdraw if init_threads() fails
    
    [ Upstream commit 62dd0f98a0e5668424270b47a0c2e973795faba7 ]
    
    Interrupting mount with ^C quickly enough can cause the kthread_run()
    calls in gfs2's init_threads() to fail and the error path leads to a
    deadlock on the s_umount rwsem. The abridged chain of events is:
    
      [mount path]
      get_tree_bdev()
        sget_fc()
          alloc_super()
            down_write_nested(&s->s_umount, SINGLE_DEPTH_NESTING); [acquired]
        gfs2_fill_super()
          gfs2_make_fs_rw()
            init_threads()
              kthread_run()
                ( Interrupted )
          [Error path]
          gfs2_gl_hash_clear()
            flush_workqueue(glock_workqueue)
              wait_for_completion()
    
      [workqueue context]
      glock_work_func()
        run_queue()
          do_xmote()
            freeze_go_sync()
              freeze_super()
                down_write(&sb->s_umount) [deadlock]
    
    In freeze_go_sync() there is a gfs2_withdrawn() check that we can use to
    make sure freeze_super() is not called in the error path, so add a
    gfs2_withdraw_delayed() call when init_threads() fails.
    
    Ref: https://bugzilla.kernel.org/show_bug.cgi?id=212231
    
    Reported-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: Andrew Price <anprice@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c19cf04506787e8525cedc23c260a18c55d77ef3
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Mon Mar 8 15:09:15 2021 +0200

    interconnect: core: fix error return code of icc_link_destroy()
    
    [ Upstream commit 715ea61532e731c62392221238906704e63d75b6 ]
    
    When krealloc() fails and new is NULL, no error return code of
    icc_link_destroy() is assigned.
    To fix this bug, ret is assigned with -ENOMEM hen new is NULL.
    
    Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Link: https://lore.kernel.org/r/20210306132857.17020-1-baijiaju1990@gmail.com
    Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>