commit a4bea6a4f1e0e5132fdedb5c0a74cbba696342fd
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 23 12:40:47 2020 +0200

    Linux 5.4.67
    
    Link: https://lore.kernel.org/lkml/20200921163121.870386357@linuxfoundation.org/
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef6458fdbb5c1fd6cb7fa94f6d4754495ef5af2e
Author: Jan Kara <jack@suse.cz>
Date:   Mon Sep 21 11:33:23 2020 +0200

    dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX
    
    commit 88b67edd7247466bc47f01e1dc539b0d0d4b931e upstream.
    
    dax_supported() is defined whenever CONFIG_DAX is enabled. So dummy
    implementation should be defined only in !CONFIG_DAX case, not in
    !CONFIG_FS_DAX case.
    
    Fixes: e2ec51282545 ("dm: Call proper helper to determine dax support")
    Cc: <stable@vger.kernel.org>
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6712eefc77e58a8625dc3f4598369085c824d5c
Author: Jan Kara <jack@suse.cz>
Date:   Sun Sep 20 08:54:42 2020 -0700

    dm: Call proper helper to determine dax support
    
    commit e2ec5128254518cae320d5dc631b71b94160f663 upstream.
    
    DM was calling generic_fsdax_supported() to determine whether a device
    referenced in the DM table supports DAX. However this is a helper for "leaf" device drivers so that
    they don't have to duplicate common generic checks. High level code
    should call dax_supported() helper which that calls into appropriate
    helper for the particular device. This problem manifested itself as
    kernel messages:
    
    dm-3: error: dax access failed (-95)
    
    when lvm2-testsuite run in cases where a DM device was stacked on top of
    another DM device.
    
    Fixes: 7bf7eac8d648 ("dax: Arrange for dax_supported check to span multiple devices")
    Cc: <stable@vger.kernel.org>
    Tested-by: Adrian Huang <ahuang12@lenovo.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Acked-by: Mike Snitzer <snitzer@redhat.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Link: https://lore.kernel.org/r/160061715195.13131.5503173247632041975.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b02d0598554c3198d319b889ebe994c6f4c9e46
Author: Pavel Tatashin <pasha.tatashin@soleen.com>
Date:   Fri Sep 18 21:20:31 2020 -0700

    mm/memory_hotplug: drain per-cpu pages again during memory offline
    
    commit 9683182612214aa5f5e709fad49444b847cd866a upstream.
    
    There is a race during page offline that can lead to infinite loop:
    a page never ends up on a buddy list and __offline_pages() keeps
    retrying infinitely or until a termination signal is received.
    
    Thread#1 - a new process:
    
    load_elf_binary
     begin_new_exec
      exec_mmap
       mmput
        exit_mmap
         tlb_finish_mmu
          tlb_flush_mmu
           release_pages
            free_unref_page_list
             free_unref_page_prepare
              set_pcppage_migratetype(page, migratetype);
                 // Set page->index migration type below  MIGRATE_PCPTYPES
    
    Thread#2 - hot-removes memory
    __offline_pages
      start_isolate_page_range
        set_migratetype_isolate
          set_pageblock_migratetype(page, MIGRATE_ISOLATE);
            Set migration type to MIGRATE_ISOLATE-> set
            drain_all_pages(zone);
                 // drain per-cpu page lists to buddy allocator.
    
    Thread#1 - continue
             free_unref_page_commit
               migratetype = get_pcppage_migratetype(page);
                  // get old migration type
               list_add(&page->lru, &pcp->lists[migratetype]);
                  // add new page to already drained pcp list
    
    Thread#2
    Never drains pcp again, and therefore gets stuck in the loop.
    
    The fix is to try to drain per-cpu lists again after
    check_pages_isolated_cb() fails.
    
    Fixes: c52e75935f8d ("mm: remove extra drain pages on pcp list")
    Signed-off-by: Pavel Tatashin <pasha.tatashin@soleen.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: David Rientjes <rientjes@google.com>
    Acked-by: Vlastimil Babka <vbabka@suse.cz>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Wei Yang <richard.weiyang@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20200903140032.380431-1-pasha.tatashin@soleen.com
    Link: https://lkml.kernel.org/r/20200904151448.100489-2-pasha.tatashin@soleen.com
    Link: http://lkml.kernel.org/r/20200904070235.GA15277@dhcp22.suse.cz
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 908272a5e9e447be91c569f4c4a0c999564c3512
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Fri Sep 18 12:51:15 2020 -0700

    dm/dax: Fix table reference counts
    
    commit 02186d8897d49b0afd3c80b6cf23437d91024065 upstream.
    
    A recent fix to the dm_dax_supported() flow uncovered a latent bug. When
    dm_get_live_table() fails it is still required to drop the
    srcu_read_lock(). Without this change the lvm2 test-suite triggers this
    warning:
    
        # lvm2-testsuite --only pvmove-abort-all.sh
    
        WARNING: lock held when returning to user space!
        5.9.0-rc5+ #251 Tainted: G           OE
        ------------------------------------------------
        lvm/1318 is leaving the kernel with locks still held!
        1 lock held by lvm/1318:
         #0: ffff9372abb5a340 (&md->io_barrier){....}-{0:0}, at: dm_get_live_table+0x5/0xb0 [dm_mod]
    
    ...and later on this hang signature:
    
        INFO: task lvm:1344 blocked for more than 122 seconds.
              Tainted: G           OE     5.9.0-rc5+ #251
        "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
        task:lvm             state:D stack:    0 pid: 1344 ppid:     1 flags:0x00004000
        Call Trace:
         __schedule+0x45f/0xa80
         ? finish_task_switch+0x249/0x2c0
         ? wait_for_completion+0x86/0x110
         schedule+0x5f/0xd0
         schedule_timeout+0x212/0x2a0
         ? __schedule+0x467/0xa80
         ? wait_for_completion+0x86/0x110
         wait_for_completion+0xb0/0x110
         __synchronize_srcu+0xd1/0x160
         ? __bpf_trace_rcu_utilization+0x10/0x10
         __dm_suspend+0x6d/0x210 [dm_mod]
         dm_suspend+0xf6/0x140 [dm_mod]
    
    Fixes: 7bf7eac8d648 ("dax: Arrange for dax_supported check to span multiple devices")
    Cc: <stable@vger.kernel.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Alasdair Kergon <agk@redhat.com>
    Cc: Mike Snitzer <snitzer@redhat.com>
    Reported-by: Adrian Huang <ahuang12@lenovo.com>
    Reviewed-by: Ira Weiny <ira.weiny@intel.com>
    Tested-by: Adrian Huang <ahuang12@lenovo.com>
    Link: https://lore.kernel.org/r/160045867590.25663.7548541079217827340.stgit@dwillia2-desk3.amr.corp.intel.com
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0df6aeac967f6d596822850ca54506dbe3eaa24f
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date:   Fri Sep 18 21:20:28 2020 -0700

    selftests/vm: fix display of page size in map_hugetlb
    
    commit 1ec882fc81e3177faf055877310dbdb0c68eb7db upstream.
    
    The displayed size is in bytes while the text says it is in kB.
    
    Shift it by 10 to really display kBytes.
    
    Fixes: fa7b9a805c79 ("tools/selftest/vm: allow choosing mem size and page size in map_hugetlb")
    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/e27481224564a93d14106e750de31189deaa8bc8.1598861977.git.christophe.leroy@csgroup.eu
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ed6a7e1a7e1b07281f1ecd8f7f84d2dd9bef652
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Tue Sep 8 11:51:06 2020 +1000

    powerpc/dma: Fix dma_map_ops::get_required_mask
    
    commit 437ef802e0adc9f162a95213a3488e8646e5fc03 upstream.
    
    There are 2 problems with it:
      1. "<" vs expected "<<"
      2. the shift number is an IOMMU page number mask, not an address
      mask as the IOMMU page shift is missing.
    
    This did not hit us before f1565c24b596 ("powerpc: use the generic
    dma_ops_bypass mode") because we had additional code to handle bypass
    mask so this chunk (almost?) never executed.However there were
    reports that aacraid does not work with "iommu=nobypass".
    
    After f1565c24b596, aacraid (and probably others which call
    dma_get_required_mask() before setting the mask) was unable to enable
    64bit DMA and fall back to using IOMMU which was known not to work,
    one of the problems is double free of an IOMMU page.
    
    This fixes DMA for aacraid, both with and without "iommu=nobypass" in
    the kernel command line. Verified with "stress-ng -d 4".
    
    Fixes: 6a5c7be5e484 ("powerpc: Override dma_get_required_mask by platform hook and ops")
    Cc: stable@vger.kernel.org # v3.2+
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200908015106.79661-1-aik@ozlabs.ru
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 264ae08bb77487cc56357147c75fcc76ac55de31
Author: Quentin Perret <qperret@google.com>
Date:   Wed Sep 16 18:18:25 2020 +0100

    ehci-hcd: Move include to keep CRC stable
    
    commit 29231826f3bd65500118c473fccf31c0cf14dbc0 upstream.
    
    The CRC calculation done by genksyms is triggered when the parser hits
    EXPORT_SYMBOL*() macros. At this point, genksyms recursively expands the
    types of the function parameters, and uses that as the input for the CRC
    calculation. In the case of forward-declared structs, the type expands
    to 'UNKNOWN'. Following this, it appears that the result of the
    expansion of each type is cached somewhere, and seems to be re-used
    when/if the same type is seen again for another exported symbol in the
    same C file.
    
    Unfortunately, this can cause CRC 'stability' issues when a struct
    definition becomes visible in the middle of a C file. For example, let's
    assume code with the following pattern:
    
        struct foo;
    
        int bar(struct foo *arg)
        {
            /* Do work ... */
        }
        EXPORT_SYMBOL_GPL(bar);
    
        /* This contains struct foo's definition */
        #include "foo.h"
    
        int baz(struct foo *arg)
        {
            /* Do more work ... */
        }
        EXPORT_SYMBOL_GPL(baz);
    
    Here, baz's CRC will be computed using the expansion of struct foo that
    was cached after bar's CRC calculation ('UNKOWN' here). But if
    EXPORT_SYMBOL_GPL(bar) is removed from the file (because of e.g. symbol
    trimming using CONFIG_TRIM_UNUSED_KSYMS), struct foo will be expanded
    late, during baz's CRC calculation, which now has visibility over the
    full struct definition, hence resulting in a different CRC for baz.
    
    The proper fix for this certainly is in genksyms, but that will take me
    some time to get right. In the meantime, we have seen one occurrence of
    this in the ehci-hcd code which hits this problem because of the way it
    includes C files halfway through the code together with an unlucky mix
    of symbol trimming.
    
    In order to workaround this, move the include done in ehci-hub.c early
    in ehci-hcd.c, hence making sure the struct definitions are visible to
    the entire file. This improves CRC stability of the ehci-hcd exports
    even when symbol trimming is enabled.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Quentin Perret <qperret@google.com>
    Link: https://lore.kernel.org/r/20200916171825.3228122-1-qperret@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fceeea8b35cbab7e90a0e34c76094e8d389ba8fb
Author: Harald Freudenberger <freude@linux.ibm.com>
Date:   Wed Sep 9 11:59:43 2020 +0200

    s390/zcrypt: fix kmalloc 256k failure
    
    commit b6186d7fb53349efd274263a45f0b08749ccaa2d upstream.
    
    Tests showed that under stress conditions the kernel may
    temporary fail to allocate 256k with kmalloc. However,
    this fix reworks the related code in the cca_findcard2()
    function to use kvmalloc instead.
    
    Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
    Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
    Cc: Stable <stable@vger.kernel.org>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 463a0d4c1b94ab1fdae1295c8645cebff2ad74c8
Author: Arvind Sankar <nivedita@alum.mit.edu>
Date:   Tue Aug 11 20:43:08 2020 -0400

    x86/boot/compressed: Disable relocation relaxation
    
    commit 09e43968db40c33a73e9ddbfd937f46d5c334924 upstream.
    
    The x86-64 psABI [0] specifies special relocation types
    (R_X86_64_[REX_]GOTPCRELX) for indirection through the Global Offset
    Table, semantically equivalent to R_X86_64_GOTPCREL, which the linker
    can take advantage of for optimization (relaxation) at link time. This
    is supported by LLD and binutils versions 2.26 onwards.
    
    The compressed kernel is position-independent code, however, when using
    LLD or binutils versions before 2.27, it must be linked without the -pie
    option. In this case, the linker may optimize certain instructions into
    a non-position-independent form, by converting foo@GOTPCREL(%rip) to $foo.
    
    This potential issue has been present with LLD and binutils-2.26 for a
    long time, but it has never manifested itself before now:
    
    - LLD and binutils-2.26 only relax
            movq    foo@GOTPCREL(%rip), %reg
      to
            leaq    foo(%rip), %reg
      which is still position-independent, rather than
            mov     $foo, %reg
      which is permitted by the psABI when -pie is not enabled.
    
    - GCC happens to only generate GOTPCREL relocations on mov instructions.
    
    - CLang does generate GOTPCREL relocations on non-mov instructions, but
      when building the compressed kernel, it uses its integrated assembler
      (due to the redefinition of KBUILD_CFLAGS dropping -no-integrated-as),
      which has so far defaulted to not generating the GOTPCRELX
      relocations.
    
    Nick Desaulniers reports [1,2]:
    
      "A recent change [3] to a default value of configuration variable
       (ENABLE_X86_RELAX_RELOCATIONS OFF -> ON) in LLVM now causes Clang's
       integrated assembler to emit R_X86_64_GOTPCRELX/R_X86_64_REX_GOTPCRELX
       relocations. LLD will relax instructions with these relocations based
       on whether the image is being linked as position independent or not.
       When not, then LLD will relax these instructions to use absolute
       addressing mode (R_RELAX_GOT_PC_NOPIC). This causes kernels built with
       Clang and linked with LLD to fail to boot."
    
    Patch series [4] is a solution to allow the compressed kernel to be
    linked with -pie unconditionally, but even if merged is unlikely to be
    backported. As a simple solution that can be applied to stable as well,
    prevent the assembler from generating the relaxed relocation types using
    the -mrelax-relocations=no option. For ease of backporting, do this
    unconditionally.
    
    [0] https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/linker-optimization.tex#L65
    [1] https://lore.kernel.org/lkml/20200807194100.3570838-1-ndesaulniers@google.com/
    [2] https://github.com/ClangBuiltLinux/linux/issues/1121
    [3] https://reviews.llvm.org/rGc41a18cf61790fc898dcda1055c3efbf442c14c0
    [4] https://lore.kernel.org/lkml/20200731202738.2577854-1-nivedita@alum.mit.edu/
    
    Reported-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200812004308.1448603-1-nivedita@alum.mit.edu
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b703bd1e9285a5d5db6b232f14fa2150a1432cda
Author: Tobias Diedrich <tobiasdiedrich@gmail.com>
Date:   Mon Sep 14 19:36:28 2020 +0200

    serial: 8250_pci: Add Realtek 816a and 816b
    
    commit 3c5a87be170aba8ac40982182f812dcff6ed1ad1 upstream.
    
    These serial ports are exposed by the OOB-management-engine on
    RealManage-enabled network cards (e.g. AMD DASH enabled systems using
    Realtek cards).
    
    Because these have 3 BARs, they fail the "num_iomem <= 1" check in
    serial_pci_guess_board.
    
    I've manually checked the two IOMEM regions and BAR 2 doesn't seem to
    respond to reads, but BAR 4 seems to be an MMIO version of the IO ports
    (untested).
    
    With this change, the ports are detected:
    0000:02:00.1: ttyS0 at I/O 0x2200 (irq = 82, base_baud = 115200) is a 16550A
    0000:02:00.2: ttyS1 at I/O 0x2100 (irq = 55, base_baud = 115200) is a 16550A
    
    lspci output:
    02:00.1 0700: 10ec:816a (rev 0e) (prog-if 02 [16550])
            Subsystem: 17aa:5082
            Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
            Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort- <MAbort- >SERR- <PERR- INTx-
            Interrupt: pin B routed to IRQ 82
            IOMMU group: 11
            Region 0: I/O ports at 2200 [size=256]
            Region 2: Memory at fd715000 (64-bit, non-prefetchable) [size=4K]
            Region 4: Memory at fd704000 (64-bit, non-prefetchable) [size=16K]
            Capabilities: [40] Power Management version 3
                    Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                    Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
            Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                    Address: 0000000000000000  Data: 0000
            Capabilities: [70] Express (v2) Endpoint, MSI 01
                    DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
                            ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
                    DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                            RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                            MaxPayload 128 bytes, MaxReadReq 512 bytes
                    DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
                    LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
                            ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
                    LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
                            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                    LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)
                            TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                    DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR+
                             10BitTagComp- 10BitTagReq- OBFF Via message/WAKE#, ExtFmt- EETLPPrefix-
                             EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                             FRS- TPHComp- ExtTPHComp-
                             AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                    DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
                             AtomicOpsCtl: ReqEn-
                    LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                             EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                             Retimer- 2Retimers- CrosslinkRes: unsupported
            Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
                    Vector table: BAR=4 offset=00000000
                    PBA: BAR=4 offset=00000800
            Capabilities: [d0] Vital Product Data
                    Not readable
            Capabilities: [100 v2] Advanced Error Reporting
                    UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                    UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                    CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                    CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                    AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                            MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                    HeaderLog: 00000000 00000000 00000000 00000000
            Capabilities: [160 v1] Device Serial Number 00-00-00-00-00-00-00-00
            Capabilities: [170 v1] Latency Tolerance Reporting
                    Max snoop latency: 0ns
                    Max no snoop latency: 0ns
            Capabilities: [178 v1] L1 PM Substates
                    L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
                              PortCommonModeRestoreTime=150us PortTPowerOnTime=150us
                    L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                               T_CommonMode=0us LTR1.2_Threshold=0ns
                    L1SubCtl2: T_PwrOn=10us
    02:00.2 0700: 10ec:816b (rev 0e)
    [...same...]
    
    Signed-off-by: Tobias Diedrich <tobiasdiedrich@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200914173628.GA22508@yamamaya.is-a-geek.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96e6de09097b21bb8b1d17803f4450a654219693
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Sep 8 16:27:29 2020 -0700

    Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists
    
    commit c4440b8a457779adeec42c5e181cb4016f19ce0f upstream.
    
    The keyboard drops keypresses early during boot unless both the nomux
    and reset quirks are set. Add DMI table entries for this.
    
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1806085
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20200907095656.13155-1-hdegoede@redhat.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0190d14b9a806336090c292f7eb9c2258ef0105
Author: Vincent Huang <vincent.huang@tw.synaptics.com>
Date:   Mon Sep 14 12:19:08 2020 -0700

    Input: trackpoint - add new trackpoint variant IDs
    
    commit 6c77545af100a72bf5e28142b510ba042a17648d upstream.
    
    Add trackpoint variant IDs to allow supported control on Synaptics
    trackpoints.
    
    Signed-off-by: Vincent Huang <vincent.huang@tw.synaptics.com>
    Link: https://lore.kernel.org/r/20200914120327.2592-1-vincent.huang@tw.synaptics.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e44bd84cd2ab06578bff58ea5e9af856ec63f47f
Author: Sunghyun Jin <mcsmonk@gmail.com>
Date:   Thu Sep 3 21:41:16 2020 +0900

    percpu: fix first chunk size calculation for populated bitmap
    
    commit b3b33d3c43bbe0177d70653f4e889c78cc37f097 upstream.
    
    Variable populated, which is a member of struct pcpu_chunk, is used as a
    unit of size of unsigned long.
    However, size of populated is miscounted. So, I fix this minor part.
    
    Fixes: 8ab16c43ea79 ("percpu: change the number of pages marked in the first_chunk pop bitmap")
    Cc: <stable@vger.kernel.org> # 4.14+
    Signed-off-by: Sunghyun Jin <mcsmonk@gmail.com>
    Signed-off-by: Dennis Zhou <dennis@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32f60ecbb9b88523bc3d90e2106edd78c7bb5737
Author: Hui Wang <hui.wang@canonical.com>
Date:   Wed Sep 9 10:00:41 2020 +0800

    ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
    
    commit fc19d559b0d31b5b831fd468b10d7dadafc0d0ec upstream.
    
    The Mic connects to the Nid 0x19, but the configuration of Nid 0x19
    is not defined to Mic, and also need to set the coeff to enable the
    auto detection on the Nid 0x19. After this change, the Mic plugging
    in or plugging out could be detected and could record the sound from
    the Mic.
    
    And the coeff value is suggested by Kailang of Realtek.
    
    Cc: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Link: https://lore.kernel.org/r/20200909020041.8967-1-hui.wang@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dda1362d6bce9461ac14a21a4d7d5edfc3fa4bd1
Author: Luke D Jones <luke@ljones.dev>
Date:   Mon Sep 7 20:19:59 2020 +1200

    ALSA: hda: fixup headset for ASUS GX502 laptop
    
    commit c3cdf189276c2a63da62ee250615bd55e3fb680d upstream.
    
    The GX502 requires a few steps to enable the headset i/o: pincfg,
    verbs to enable and unmute the amp used for headpone out, and
    a jacksense callback to toggle output via internal or jack using
    a verb.
    
    Signed-off-by: Luke D Jones <luke@ljones.dev>
    Cc: <stable@vger.kernel.org>
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208005
    Link: https://lore.kernel.org/r/20200907081959.56186-1-luke@ljones.dev
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 87e1dbe6c6c53ffc08b96bcf165df0d5b90700e7
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Sep 21 13:55:28 2020 +0200

    Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO"
    
    This reverts commit 982505615063873a896efce767c996792c3db00c which is
    commit 15cbff3fbbc631952c346744f862fb294504b5e2 upstream.
    
    It causes know regressions and will be reverted in Linus's tree soon.
    
    Reported-by: Hans de Goede <hdegoede@redhat.com>
    Cc: Dan Crawford <dnlcrwfrd@gmail.com>
    Cc: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/7efd2fe5-bf38-7f85-891a-eee3845d1493@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0b68bfe729ac654f7b359e65e74ada8a513774e
Author: Volker Rümelin <vr_qemu@t-online.de>
Date:   Tue Sep 1 15:22:21 2020 +0200

    i2c: i801: Fix resume bug
    
    commit 66d402e2e9455cf0213c42b97f22a0493372d7cc upstream.
    
    On suspend the original host configuration gets restored. The
    resume routine has to undo this, otherwise the SMBus master
    may be left in disabled state or in i2c mode.
    
    [JD: Rebased on v5.8, moved the write into i801_setup_hstcfg.]
    
    Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
    Signed-off-by: Jean Delvare <jdelvare@suse.de>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c96edc6e71937518ea4aca4bb885c9a3e0dfc77
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Wed Sep 16 12:00:34 2020 +0300

    usb: typec: ucsi: Prevent mode overrun
    
    commit 386e15a650447f53de3d2d8819ce9393f31650a4 upstream.
    
    Sometimes the embedded controller firmware does not
    terminate the list of alternate modes that the partner
    supports in its response to the GET_ALTERNATE_MODES command.
    Instead the firmware returns the supported alternate modes
    over and over again until the driver stops requesting them.
    
    If that happens, the number of modes for each alternate mode
    will exceed the maximum 6 that is defined in the USB Power
    Delivery specification. Making sure that can't happen by
    adding a check for it.
    
    This fixes NULL pointer dereference that is caused by the
    overrun.
    
    Fixes: ad74b8649beaf ("usb: typec: ucsi: Preliminary support for alternate modes")
    Cc: stable@vger.kernel.org
    Reported-by: Zwane Mwaikambo <zwanem@gmail.com>
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20200916090034.25119-3-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c56942bd2e6fe4f031fff103de4866948d1be50
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Sep 17 12:34:27 2020 +0200

    usblp: fix race between disconnect() and read()
    
    commit 9cdabcb3ef8c24ca3a456e4db7b012befb688e73 upstream.
    
    read() needs to check whether the device has been
    disconnected before it tries to talk to the device.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Reported-by: syzbot+be5b5f86a162a6c281e6@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/20200917103427.15740-1-oneukum@suse.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56ad2cab0845ce404305d91f9a9bfea47b9136dd
Author: Oliver Neukum <oneukum@suse.com>
Date:   Wed Sep 16 11:40:25 2020 +0200

    USB: UAS: fix disconnect by unplugging a hub
    
    commit 325b008723b2dd31de020e85ab9d2e9aa4637d35 upstream.
    
    The SCSI layer can go into an ugly loop if you ignore that a device is
    gone. You need to report an error in the command rather than in the
    return value of the queue method.
    
    We need to specifically check for ENODEV. The issue goes back to the
    introduction of the driver.
    
    Fixes: 115bb1ffa54c3 ("USB: Add UAS driver")
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200916094026.30085-2-oneukum@suse.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8c0a033d9ce3566e2bab4ddc91545a4f832f0ce
Author: Penghao <penghao@uniontech.com>
Date:   Mon Sep 7 10:30:26 2020 +0800

    USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin notebook
    
    commit bcea6dafeeef7d1a6a8320a249aabf981d63b881 upstream.
    
    Add a USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for the BYD zhaoxin notebook.
    This notebook come with usb touchpad. And we would like to disable
    touchpad wakeup on this notebook by default.
    
    Signed-off-by: Penghao <penghao@uniontech.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200907023026.28189-1-penghao@uniontech.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a0fec594b0a55f28faadd8766206267148a9abf0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Jul 28 16:21:44 2020 +0100

    drm/i915: Filter wake_flags passed to default_wake_function
    
    commit 20612303a0b45de748d31331407e84300c38e497 upstream.
    
    (NOTE: This is the minimal backportable fix, a full fix is being
    developed at https://patchwork.freedesktop.org/patch/388048/)
    
    The flags passed to the wait_entry.func are passed onwards to
    try_to_wake_up(), which has a very particular interpretation for its
    wake_flags. In particular, beyond the published WF_SYNC, it has a few
    internal flags as well. Since we passed the fence->error down the chain
    via the flags argument, these ended up in the default_wake_function
    confusing the kernel/sched.
    
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2110
    Fixes: ef4688497512 ("drm/i915: Propagate fence errors")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: <stable@vger.kernel.org> # v5.4+
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200728152144.1100-1-chris@chris-wilson.co.uk
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    [Joonas: Rebased and reordered into drm-intel-gt-next branch]
    [Joonas: Added a note and link about more complete fix]
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    (cherry picked from commit f4b3c395540aa3d4f5a6275c5bdd83ab89034806)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daf646fd3247a7d0663534d9244801a29094751d
Author: Greentime Hu <greentime.hu@sifive.com>
Date:   Tue Aug 4 11:02:05 2020 +0800

    riscv: Add sfence.vma after early page table changes
    
    [ Upstream commit 21190b74bcf3a36ebab9a715088c29f59877e1f3 ]
    
    This invalidates local TLB after modifying the page tables during early init as
    it's too early to handle suprious faults as we otherwise do.
    
    Fixes: f2c17aabc917 ("RISC-V: Implement compile-time fixed mappings")
    Reported-by: Syven Wang <syven.wang@sifive.com>
    Signed-off-by: Syven Wang <syven.wang@sifive.com>
    Signed-off-by: Greentime Hu <greentime.hu@sifive.com>
    Reviewed-by: Anup Patel <anup@brainfault.org>
    [Palmer: Cleaned up the commit text]
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8a568d7fc295a4c0170930290811a45a5770c8b2
Author: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Date:   Fri Sep 11 17:01:39 2020 +0200

    i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK
    
    [ Upstream commit 6eb158ec0a45dbfd98bc6971c461b7d4d5bf61b3 ]
    
    The driver-specific usage of the DMA_CTRL_ACK flag was replaced with a
    custom flag in commit ceeeb99cd821 ("dmaengine: mxs: rename custom flag"),
    but i2c-mxs was not updated to use the new flag, completely breaking I2C
    transactions using DMA.
    
    Fixes: ceeeb99cd821 ("dmaengine: mxs: rename custom flag")
    Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a55eec14a4e1987f5415b523bd67355ab0186497
Author: Joao Martins <joao.m.martins@oracle.com>
Date:   Thu Sep 10 18:16:21 2020 +0100

    iommu/amd: Fix potential @entry null deref
    
    [ Upstream commit 14c4acc5ed22c21f9821103be7c48efdf9763584 ]
    
    After commit 26e495f34107 ("iommu/amd: Restore IRTE.RemapEn bit after
    programming IRTE"), smatch warns:
    
            drivers/iommu/amd/iommu.c:3870 amd_iommu_deactivate_guest_mode()
            warn: variable dereferenced before check 'entry' (see line 3867)
    
    Fix this by moving the @valid assignment to after @entry has been checked
    for NULL.
    
    Fixes: 26e495f34107 ("iommu/amd: Restore IRTE.RemapEn bit after programming IRTE")
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
    Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Link: https://lore.kernel.org/r/20200910171621.12879-1-joao.m.martins@oracle.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecd219c72945d531b68916711d1e67f0e20d94da
Author: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Date:   Thu Sep 17 11:49:25 2020 +0300

    arm64: bpf: Fix branch offset in JIT
    
    [ Upstream commit 32f6865c7aa3c422f710903baa6eb81abc6f559b ]
    
    Running the eBPF test_verifier leads to random errors looking like this:
    
    [ 6525.735488] Unexpected kernel BRK exception at EL1
    [ 6525.735502] Internal error: ptrace BRK handler: f2000100 [#1] SMP
    [ 6525.741609] Modules linked in: nls_utf8 cifs libdes libarc4 dns_resolver fscache binfmt_misc nls_ascii nls_cp437 vfat fat aes_ce_blk crypto_simd cryptd aes_ce_cipher ghash_ce gf128mul efi_pstore sha2_ce sha256_arm64 sha1_ce evdev efivars efivarfs ip_tables x_tables autofs4 btrfs blake2b_generic xor xor_neon zstd_compress raid6_pq libcrc32c crc32c_generic ahci xhci_pci libahci xhci_hcd igb libata i2c_algo_bit nvme realtek usbcore nvme_core scsi_mod t10_pi netsec mdio_devres of_mdio gpio_keys fixed_phy libphy gpio_mb86s7x
    [ 6525.787760] CPU: 3 PID: 7881 Comm: test_verifier Tainted: G        W         5.9.0-rc1+ #47
    [ 6525.796111] Hardware name: Socionext SynQuacer E-series DeveloperBox, BIOS build #1 Jun  6 2020
    [ 6525.804812] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--)
    [ 6525.810390] pc : bpf_prog_c3d01833289b6311_F+0xc8/0x9f4
    [ 6525.815613] lr : bpf_prog_d53bb52e3f4483f9_F+0x38/0xc8c
    [ 6525.820832] sp : ffff8000130cbb80
    [ 6525.824141] x29: ffff8000130cbbb0 x28: 0000000000000000
    [ 6525.829451] x27: 000005ef6fcbf39b x26: 0000000000000000
    [ 6525.834759] x25: ffff8000130cbb80 x24: ffff800011dc7038
    [ 6525.840067] x23: ffff8000130cbd00 x22: ffff0008f624d080
    [ 6525.845375] x21: 0000000000000001 x20: ffff800011dc7000
    [ 6525.850682] x19: 0000000000000000 x18: 0000000000000000
    [ 6525.855990] x17: 0000000000000000 x16: 0000000000000000
    [ 6525.861298] x15: 0000000000000000 x14: 0000000000000000
    [ 6525.866606] x13: 0000000000000000 x12: 0000000000000000
    [ 6525.871913] x11: 0000000000000001 x10: ffff8000000a660c
    [ 6525.877220] x9 : ffff800010951810 x8 : ffff8000130cbc38
    [ 6525.882528] x7 : 0000000000000000 x6 : 0000009864cfa881
    [ 6525.887836] x5 : 00ffffffffffffff x4 : 002880ba1a0b3e9f
    [ 6525.893144] x3 : 0000000000000018 x2 : ffff8000000a4374
    [ 6525.898452] x1 : 000000000000000a x0 : 0000000000000009
    [ 6525.903760] Call trace:
    [ 6525.906202]  bpf_prog_c3d01833289b6311_F+0xc8/0x9f4
    [ 6525.911076]  bpf_prog_d53bb52e3f4483f9_F+0x38/0xc8c
    [ 6525.915957]  bpf_dispatcher_xdp_func+0x14/0x20
    [ 6525.920398]  bpf_test_run+0x70/0x1b0
    [ 6525.923969]  bpf_prog_test_run_xdp+0xec/0x190
    [ 6525.928326]  __do_sys_bpf+0xc88/0x1b28
    [ 6525.932072]  __arm64_sys_bpf+0x24/0x30
    [ 6525.935820]  el0_svc_common.constprop.0+0x70/0x168
    [ 6525.940607]  do_el0_svc+0x28/0x88
    [ 6525.943920]  el0_sync_handler+0x88/0x190
    [ 6525.947838]  el0_sync+0x140/0x180
    [ 6525.951154] Code: d4202000 d4202000 d4202000 d4202000 (d4202000)
    [ 6525.957249] ---[ end trace cecc3f93b14927e2 ]---
    
    The reason is the offset[] creation and later usage, while building
    the eBPF body. The code currently omits the first instruction, since
    build_insn() will increase our ctx->idx before saving it.
    That was fine up until bounded eBPF loops were introduced. After that
    introduction, offset[0] must be the offset of the end of prologue which
    is the start of the 1st insn while, offset[n] holds the
    offset of the end of n-th insn.
    
    When "taken loop with back jump to 1st insn" test runs, it will
    eventually call bpf2a64_offset(-1, 2, ctx). Since negative indexing is
    permitted, the current outcome depends on the value stored in
    ctx->offset[-1], which has nothing to do with our array.
    If the value happens to be 0 the tests will work. If not this error
    triggers.
    
    commit 7c2e988f400e ("bpf: fix x64 JIT code generation for jmp to 1st insn")
    fixed an indentical bug on x86 when eBPF bounded loops were introduced.
    
    So let's fix it by creating the ctx->offset[] differently. Track the
    beginning of instruction and account for the extra instruction while
    calculating the arm instruction offsets.
    
    Fixes: 2589726d12a1 ("bpf: introduce bounded loops")
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Reported-by: Jiri Olsa <jolsa@kernel.org>
    Co-developed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Co-developed-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
    Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
    Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Acked-by: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20200917084925.177348-1-ilias.apalodimas@linaro.org
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6fa55a3130da11d5c511016692da0670bf2f671
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Fri Sep 11 19:21:51 2020 +0800

    drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
    
    [ Upstream commit 0680a622318b8d657323b94082f4b9a44038dfee ]
    
    if of_find_device_by_node() succeed, mtk_drm_kms_init() doesn't have
    a corresponding put_device(). Thus add jump target to fix the exception
    handling for this function implementation.
    
    Fixes: 8f83f26891e1 ("drm/mediatek: Add HDMI support")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 566e86327754823152de3e534ac03e78ecb549a6
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Wed Sep 9 16:49:42 2020 +0800

    drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail
    
    [ Upstream commit 64c194c00789889b0f9454f583712f079ba414ee ]
    
    mtk_ddp_comp_init() is called in a loop in mtk_drm_probe(), if it
    fail, previous successive init component is not proccessed.
    
    Thus uninitialize valid component and put their device if component
    init failed.
    
    Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 549efeaa96d8bb56f82cb2d788b25360ff56263b
Author: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Date:   Wed Sep 16 15:54:37 2020 +0200

    MIPS: SNI: Fix spurious interrupts
    
    [ Upstream commit b959b97860d0fee8c8f6a3e641d3c2ad76eab6be ]
    
    On A20R machines the interrupt pending bits in cause register need to be
    updated by requesting the chipset to do it. This needs to be done to
    find the interrupt cause and after interrupt service. In
    commit 0b888c7f3a03 ("MIPS: SNI: Convert to new irq_chip functions") the
    function to do after service update got lost, which caused spurious
    interrupts.
    
    Fixes: 0b888c7f3a03 ("MIPS: SNI: Convert to new irq_chip functions")
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 73d58890be304f94f6787a83fab4455534edac72
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Fri Sep 11 07:57:06 2020 +0900

    fbcon: Fix user font detection test at fbcon_resize().
    
    [ Upstream commit ec0972adecb391a8d8650832263a4790f3bfb4df ]
    
    syzbot is reporting OOB read at fbcon_resize() [1], for
    commit 39b3cffb8cf31117 ("fbcon: prevent user font height or width change
     from causing potential out-of-bounds access") is by error using
    registered_fb[con2fb_map[vc->vc_num]]->fbcon_par->p->userfont (which was
    set to non-zero) instead of fb_display[vc->vc_num].userfont (which remains
    zero for that display).
    
    We could remove tricky userfont flag [2], for we can determine it by
    comparing address of the font data and addresses of built-in font data.
    But since that commit is failing to fix the original OOB read [3], this
    patch keeps the change minimal in case we decide to revert altogether.
    
    [1] https://syzkaller.appspot.com/bug?id=ebcbbb6576958a496500fee9cf7aa83ea00b5920
    [2] https://syzkaller.appspot.com/text?tag=Patch&x=14030853900000
    [3] https://syzkaller.appspot.com/bug?id=6fba8c186d97cf1011ab17660e633b1cc4e080c9
    
    Reported-by: syzbot <syzbot+b38b1ef6edf0c74a8d97@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Fixes: 39b3cffb8cf31117 ("fbcon: prevent user font height or width change from causing potential out-of-bounds access")
    Cc: George Kennedy <george.kennedy@oracle.com>
    Link: https://lore.kernel.org/r/f6e3e611-8704-1263-d163-f52c906a4f06@I-love.SAKURA.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b7b136191170e08b12f356445d587fc90e34806b
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Tue Sep 15 12:18:19 2020 +0900

    perf test: Free formats for perf pmu parse test
    
    [ Upstream commit d26383dcb2b4b8629fde05270b4e3633be9e3d4b ]
    
    The following leaks were detected by ASAN:
    
      Indirect leak of 360 byte(s) in 9 object(s) allocated from:
        #0 0x7fecc305180e in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10780e)
        #1 0x560578f6dce5 in perf_pmu__new_format util/pmu.c:1333
        #2 0x560578f752fc in perf_pmu_parse util/pmu.y:59
        #3 0x560578f6a8b7 in perf_pmu__format_parse util/pmu.c:73
        #4 0x560578e07045 in test__pmu tests/pmu.c:155
        #5 0x560578de109b in run_test tests/builtin-test.c:410
        #6 0x560578de109b in test_and_print tests/builtin-test.c:440
        #7 0x560578de401a in __cmd_test tests/builtin-test.c:661
        #8 0x560578de401a in cmd_test tests/builtin-test.c:807
        #9 0x560578e49354 in run_builtin /home/namhyung/project/linux/tools/perf/perf.c:312
        #10 0x560578ce71a8 in handle_internal_command /home/namhyung/project/linux/tools/perf/perf.c:364
        #11 0x560578ce71a8 in run_argv /home/namhyung/project/linux/tools/perf/perf.c:408
        #12 0x560578ce71a8 in main /home/namhyung/project/linux/tools/perf/perf.c:538
        #13 0x7fecc2b7acc9 in __libc_start_main ../csu/libc-start.c:308
    
    Fixes: cff7f956ec4a1 ("perf tests: Move pmu tests into separate object")
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/20200915031819.386559-12-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b116e2d37b031d693f280b7279365330c264e3ec
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Tue Sep 15 12:18:13 2020 +0900

    perf parse-event: Fix memory leak in evsel->unit
    
    [ Upstream commit b12eea5ad8e77f8a380a141e3db67c07432dde16 ]
    
    The evsel->unit borrows a pointer of pmu event or alias instead of
    owns a string.  But tool event (duration_time) passes a result of
    strdup() caused a leak.
    
    It was found by ASAN during metric test:
    
      Direct leak of 210 byte(s) in 70 object(s) allocated from:
        #0 0x7fe366fca0b5 in strdup (/lib/x86_64-linux-gnu/libasan.so.5+0x920b5)
        #1 0x559fbbcc6ea3 in add_event_tool util/parse-events.c:414
        #2 0x559fbbcc6ea3 in parse_events_add_tool util/parse-events.c:1414
        #3 0x559fbbd8474d in parse_events_parse util/parse-events.y:439
        #4 0x559fbbcc95da in parse_events__scanner util/parse-events.c:2096
        #5 0x559fbbcc95da in __parse_events util/parse-events.c:2141
        #6 0x559fbbc28555 in check_parse_id tests/pmu-events.c:406
        #7 0x559fbbc28555 in check_parse_id tests/pmu-events.c:393
        #8 0x559fbbc28555 in check_parse_cpu tests/pmu-events.c:415
        #9 0x559fbbc28555 in test_parsing tests/pmu-events.c:498
        #10 0x559fbbc0109b in run_test tests/builtin-test.c:410
        #11 0x559fbbc0109b in test_and_print tests/builtin-test.c:440
        #12 0x559fbbc03e69 in __cmd_test tests/builtin-test.c:695
        #13 0x559fbbc03e69 in cmd_test tests/builtin-test.c:807
        #14 0x559fbbc691f4 in run_builtin /home/namhyung/project/linux/tools/perf/perf.c:312
        #15 0x559fbbb071a8 in handle_internal_command /home/namhyung/project/linux/tools/perf/perf.c:364
        #16 0x559fbbb071a8 in run_argv /home/namhyung/project/linux/tools/perf/perf.c:408
        #17 0x559fbbb071a8 in main /home/namhyung/project/linux/tools/perf/perf.c:538
        #18 0x7fe366b68cc9 in __libc_start_main ../csu/libc-start.c:308
    
    Fixes: f0fbb114e3025 ("perf stat: Implement duration_time as a proper event")
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/20200915031819.386559-6-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43d9473e7cd9e8954ed0770555839127014f35c6
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Tue Sep 15 12:18:11 2020 +0900

    perf evlist: Fix cpu/thread map leak
    
    [ Upstream commit bfd1b83d75e44a9f65de30accb3dd3b5940bd3ac ]
    
    Asan reported leak of cpu and thread maps as they have one more refcount
    than released.  I found that after setting evlist maps it should release
    it's refcount.
    
    It seems to be broken from the beginning so I chose the original commit
    as the culprit.  But not sure how it's applied to stable trees since
    there are many changes in the code after that.
    
    Fixes: 7e2ed097538c5 ("perf evlist: Store pointer to the cpu and thread maps")
    Fixes: 4112eb1899c0e ("perf evlist: Default to syswide target when no thread/cpu maps set")
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lore.kernel.org/lkml/20200915031819.386559-4-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 751930560ea4b979799137483ad1ae6eb6102536
Author: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Date:   Mon Sep 14 18:05:00 2020 +0200

    MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
    
    [ Upstream commit 564c836fd945a94b5dd46597d6b7adb464092650 ]
    
    Commit 930beb5ac09a ("MIPS: introduce MIPS_L1_CACHE_SHIFT_<N>") forgot
    to select the correct MIPS_L1_CACHE_SHIFT for SNI RM. This breaks non
    coherent DMA because of a wrong allocation alignment.
    
    Fixes: 930beb5ac09a ("MIPS: introduce MIPS_L1_CACHE_SHIFT_<N>")
    Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b86434c072d4d41d6ff570796fc28c3d058c1d8b
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Fri Sep 11 15:00:05 2020 +0200

    perf test: Fix the "signal" test inline assembly
    
    [ Upstream commit 8a39e8c4d9baf65d88f66d49ac684df381e30055 ]
    
    When compiling with DEBUG=1 on Fedora 32 I'm getting crash for 'perf
    test signal':
    
      Program received signal SIGSEGV, Segmentation fault.
      0x0000000000c68548 in __test_function ()
      (gdb) bt
      #0  0x0000000000c68548 in __test_function ()
      #1  0x00000000004d62e9 in test_function () at tests/bp_signal.c:61
      #2  0x00000000004d689a in test__bp_signal (test=0xa8e280 <generic_ ...
      #3  0x00000000004b7d49 in run_test (test=0xa8e280 <generic_tests+1 ...
      #4  0x00000000004b7e7f in test_and_print (t=0xa8e280 <generic_test ...
      #5  0x00000000004b8927 in __cmd_test (argc=1, argv=0x7fffffffdce0, ...
      ...
    
    It's caused by the symbol __test_function being in the ".bss" section:
    
      $ readelf -a ./perf | less
        [Nr] Name              Type             Address           Offset
             Size              EntSize          Flags  Link  Info  Align
        ...
        [28] .bss              NOBITS           0000000000c356a0  008346a0
             00000000000511f8  0000000000000000  WA       0     0     32
    
      $ nm perf | grep __test_function
      0000000000c68548 B __test_function
    
    I guess most of the time we're just lucky the inline asm ended up in the
    ".text" section, so making it specific explicit with push and pop
    section clauses.
    
      $ readelf -a ./perf | less
        [Nr] Name              Type             Address           Offset
             Size              EntSize          Flags  Link  Info  Align
        ...
        [13] .text             PROGBITS         0000000000431240  00031240
             0000000000306faa  0000000000000000  AX       0     0     16
    
      $ nm perf | grep __test_function
      00000000004d62c8 T __test_function
    
    Committer testing:
    
      $ readelf -wi ~/bin/perf | grep producer -m1
        <c>   DW_AT_producer    : (indirect string, offset: 0x254a): GNU C99 10.2.1 20200723 (Red Hat 10.2.1-1) -mtune=generic -march=x86-64 -ggdb3 -std=gnu99 -fno-omit-frame-pointer -funwind-tables -fstack-protector-all
                                                                                                                                             ^^^^^
                                                                                                                                             ^^^^^
                                                                                                                                             ^^^^^
      $
    
    Before:
    
      $ perf test signal
      20: Breakpoint overflow signal handler                    : FAILED!
      $
    
    After:
    
      $ perf test signal
      20: Breakpoint overflow signal handler                    : Ok
      $
    
    Fixes: 8fd34e1cce18 ("perf test: Improve bp_signal")
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lore.kernel.org/lkml/20200911130005.1842138-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e03e0498b45309a1abd3fa33b1651d22594e9011
Author: Michael Kelley <mikelley@microsoft.com>
Date:   Sun Sep 13 12:47:29 2020 -0700

    Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload
    
    [ Upstream commit 911e1987efc8f3e6445955fbae7f54b428b92bd3 ]
    
    vmbus_wait_for_unload() looks for a CHANNELMSG_UNLOAD_RESPONSE message
    coming from Hyper-V.  But if the message isn't found for some reason,
    the panic path gets hung forever.  Add a timeout of 10 seconds to prevent
    this.
    
    Fixes: 415719160de3 ("Drivers: hv: vmbus: avoid scheduling in interrupt context in vmbus_initiate_unload()")
    Signed-off-by: Michael Kelley <mikelley@microsoft.com>
    Reviewed-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Link: https://lore.kernel.org/r/1600026449-23651-1-git-send-email-mikelley@microsoft.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cdf990e2b24e59dc9cccea9b7f926632dfdef791
Author: Marc Zyngier <maz@kernel.org>
Date:   Fri Sep 11 19:16:11 2020 +0100

    arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
    
    [ Upstream commit ed888cb0d1ebce69f12794e89fbd5e2c86d40b8d ]
    
    Now that we allow CPUs affected by erratum 1418040 to come in late,
    this prevents their unaffected sibblings from coming in late (or
    coming back after a suspend or hotplug-off, which amounts to the
    same thing).
    
    To allow this, we need to add ARM64_CPUCAP_OPTIONAL_FOR_LATE_CPU,
    which amounts to set .type to ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE.
    
    Fixes: bf87bb0881d0 ("arm64: Allow booting of late CPUs affected by erratum 1418040")
    Reported-by: Matthias Kaehlcke <mka@chromium.org>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Tested-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
    Tested-by: Matthias Kaehlcke <mka@chromium.org>
    Acked-by: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20200911181611.2073183-1-maz@kernel.org
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 09aadf40322545ab0d8e828e344e1834ea1d110c
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Sat Sep 5 15:58:36 2020 +0300

    scsi: libsas: Fix error path in sas_notify_lldd_dev_found()
    
    [ Upstream commit 244359c99fd90f1c61c3944f93250f8219435c75 ]
    
    In sas_notify_lldd_dev_found(), if we can't allocate the necessary
    resources, then it seems like the wrong thing to mark the device as found
    and to increment the reference count.  None of the callers ever drop the
    reference in that situation.
    
    [mkp: tweaked commit desc based on feedback from John]
    
    Link: https://lore.kernel.org/r/20200905125836.GF183976@mwanda
    Fixes: 735f7d2fedf5 ("[SCSI] libsas: fix domain_device leak")
    Reviewed-by: Jason Yan <yanaijie@huawei.com>
    Acked-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9afe751494197a58660e3b19e9fc8ab5c48bf643
Author: Dexuan Cui <decui@microsoft.com>
Date:   Fri Sep 4 19:55:55 2020 -0700

    Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()
    
    [ Upstream commit 19873eec7e13fda140a0ebc75d6664e57c00bfb1 ]
    
    After we Stop and later Start a VM that uses Accelerated Networking (NIC
    SR-IOV), currently the VF vmbus device's Instance GUID can change, so after
    vmbus_bus_resume() -> vmbus_request_offers(), vmbus_onoffer() can not find
    the original vmbus channel of the VF, and hence we can't complete()
    vmbus_connection.ready_for_resume_event in check_ready_for_resume_event(),
    and the VM hangs in vmbus_bus_resume() forever.
    
    Fix the issue by adding a timeout, so the resuming can still succeed, and
    the saved state is not lost, and according to my test, the user can disable
    Accelerated Networking and then will be able to SSH into the VM for
    further recovery. Also prevent the VM in question from suspending again.
    
    The host will be fixed so in future the Instance GUID will stay the same
    across hibernation.
    
    Fixes: d8bd2d442bb2 ("Drivers: hv: vmbus: Resume after fixing up old primary channels")
    Signed-off-by: Dexuan Cui <decui@microsoft.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/20200905025555.45614-1-decui@microsoft.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b12029411b25d8b907add30b563ea5a5b819aeeb
Author: Jerome Brunet <jbrunet@baylibre.com>
Date:   Fri Aug 28 17:14:38 2020 +0200

    ASoC: meson: axg-toddr: fix channel order on g12 platforms
    
    [ Upstream commit 9c4b205a20f483d8a5d1208cfec33e339347d4bd ]
    
    On g12 and following platforms, The first channel of record with more than
    2 channels ends being placed randomly on an even channel of the output.
    
    On these SoCs, a bit was added to force the first channel to be placed at
    the beginning of the output. Apparently the behavior if the bit is not set
    is not easily predictable. According to the documentation, this bit is not
    present on the axg series.
    
    Set the bit on g12 and fix the problem.
    
    Fixes: a3c23a8ad4dc ("ASoC: meson: axg-toddr: add g12a support")
    Reported-by: Nicolas Belin <nbelin@baylibre.com>
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Link: https://lore.kernel.org/r/20200828151438.350974-1-jbrunet@baylibre.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 600cafd55bfd78dce335e88dc9f8dc7efb2ba02e
Author: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Date:   Fri Aug 28 15:38:52 2020 +0530

    powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
    
    [ Upstream commit 103a8542cb35b5130f732d00b0419a594ba1b517 ]
    
    If the hypervisor doesn't support hugepages, the kernel ends up allocating a large
    number of page table pages. The early page table allocation was wrongly
    setting the max memblock limit to ppc64_rma_size with radix translation
    which resulted in boot failure as shown below.
    
    Kernel panic - not syncing:
    early_alloc_pgtable: Failed to allocate 16777216 bytes align=0x1000000 nid=-1 from=0x0000000000000000 max_addr=0xffffffffffffffff
     CPU: 0 PID: 0 Comm: swapper Not tainted 5.8.0-24.9-default+ #2
     Call Trace:
     [c0000000016f3d00] [c0000000007c6470] dump_stack+0xc4/0x114 (unreliable)
     [c0000000016f3d40] [c00000000014c78c] panic+0x164/0x418
     [c0000000016f3dd0] [c000000000098890] early_alloc_pgtable+0xe0/0xec
     [c0000000016f3e60] [c0000000010a5440] radix__early_init_mmu+0x360/0x4b4
     [c0000000016f3ef0] [c000000001099bac] early_init_mmu+0x1c/0x3c
     [c0000000016f3f10] [c00000000109a320] early_setup+0x134/0x170
    
    This was because the kernel was checking for the radix feature before we enable the
    feature via mmu_features. This resulted in the kernel using hash restrictions on
    radix.
    
    Rework the early init code such that the kernel boot with memblock restrictions
    as imposed by hash. At that point, the kernel still hasn't finalized the
    translation the kernel will end up using.
    
    We have three different ways of detecting radix.
    
    1. dt_cpu_ftrs_scan -> used only in case of PowerNV
    2. ibm,pa-features -> Used when we don't use cpu_dt_ftr_scan
    3. CAS -> Where we negotiate with hypervisor about the supported translation.
    
    We look at 1 or 2 early in the boot and after that, we look at the CAS vector to
    finalize the translation the kernel will use. We also support a kernel command
    line option (disable_radix) to switch to hash.
    
    Update the memblock limit after mmu_early_init_devtree() if the kernel is going
    to use radix translation. This forces some of the memblock allocations we do before
    mmu_early_init_devtree() to be within the RMA limit.
    
    Fixes: 2bfd65e45e87 ("powerpc/mm/radix: Add radix callbacks for early init routines")
    Reported-by: Shirisha Ganta <shiganta@in.ibm.com>
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
    Reviewed-by: Hari Bathini <hbathini@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200828100852.426575-1-aneesh.kumar@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f6d4afd008a6715879f505bd0c4ca634bfaaecb3
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Thu Aug 20 12:28:27 2020 +0800

    ASoC: qcom: common: Fix refcount imbalance on error
    
    [ Upstream commit c1e6414cdc371f9ed82cefebba7538499a3059f9 ]
    
    for_each_child_of_node returns a node pointer np with
    refcount incremented. So when devm_kzalloc fails, a
    pairing refcount decrement is needed to keep np's
    refcount balanced.
    
    Fixes: 16395ceee11f8 ("ASoC: qcom: common: Fix NULL pointer in of parser")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Link: https://lore.kernel.org/r/20200820042828.10308-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 911c69245a27bac502705d62ce3f0ef20abbddcb
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Thu Aug 20 17:45:11 2020 +0200

    ASoC: qcom: Set card->owner to avoid warnings
    
    [ Upstream commit 3c27ea23ffb43262da6c64964163895951aaed4e ]
    
    On Linux 5.9-rc1 I get the following warning with apq8016-sbc:
    
    WARNING: CPU: 2 PID: 69 at sound/core/init.c:207 snd_card_new+0x36c/0x3b0 [snd]
    CPU: 2 PID: 69 Comm: kworker/2:1 Not tainted 5.9.0-rc1 #1
    Workqueue: events deferred_probe_work_func
    pc : snd_card_new+0x36c/0x3b0 [snd]
    lr : snd_card_new+0xf4/0x3b0 [snd]
    Call trace:
     snd_card_new+0x36c/0x3b0 [snd]
     snd_soc_bind_card+0x340/0x9a0 [snd_soc_core]
     snd_soc_register_card+0xf4/0x110 [snd_soc_core]
     devm_snd_soc_register_card+0x44/0xa0 [snd_soc_core]
     apq8016_sbc_platform_probe+0x11c/0x140 [snd_soc_apq8016_sbc]
    
    This warning was introduced in
    commit 81033c6b584b ("ALSA: core: Warn on empty module").
    It looks like we are supposed to set card->owner to THIS_MODULE.
    
    Fix this for all the qcom ASoC drivers.
    
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Fixes: 79119c798649 ("ASoC: qcom: Add Storm machine driver")
    Fixes: bdb052e81f62 ("ASoC: qcom: add apq8016 sound card support")
    Fixes: a6f933f63f2f ("ASoC: qcom: apq8096: Add db820c machine driver")
    Fixes: 6b1687bf76ef ("ASoC: qcom: add sdm845 sound card support")
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Link: https://lore.kernel.org/r/20200820154511.203072-1-stephan@gerhold.net
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf111e31eae6369a891b806f0d24db450d561696
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Sun Aug 9 21:40:20 2020 -0700

    clk: rockchip: Fix initialization of mux_pll_src_4plls_p
    
    [ Upstream commit e9c006bc782c488f485ffe50de20b44e1e3daa18 ]
    
    A new warning in Clang points out that the initialization of
    mux_pll_src_4plls_p appears incorrect:
    
    ../drivers/clk/rockchip/clk-rk3228.c:140:58: warning: suspicious
    concatenation of string literals in an array initialization; did you
    mean to separate the elements with a comma? [-Wstring-concatenation]
    PNAME(mux_pll_src_4plls_p)      = { "cpll", "gpll", "hdmiphy" "usb480m" };
                                                                  ^
                                                                 ,
    ../drivers/clk/rockchip/clk-rk3228.c:140:48: note: place parentheses
    around the string literal to silence warning
    PNAME(mux_pll_src_4plls_p)      = { "cpll", "gpll", "hdmiphy" "usb480m" };
                                                        ^
    1 warning generated.
    
    Given the name of the variable and the same variable name in rv1108, it
    seems that this should have been four distinct elements. Fix it up by
    adding the comma as suggested.
    
    Fixes: 307a2e9ac524 ("clk: rockchip: add clock controller for rk3228")
    Link: https://github.com/ClangBuiltLinux/linux/issues/1123
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Link: https://lore.kernel.org/r/20200810044020.2063350-1-natechancellor@gmail.com
    Reviewed-by: Heiko Stübner <heiko@sntech.de>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit af8f780eee478e5b9e0d4c0730a18087468a7492
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Aug 9 16:49:59 2020 +0200

    clk: davinci: Use the correct size when allocating memory
    
    [ Upstream commit 3dabfa2bda48dab717986609762ce2a49335eb99 ]
    
    'sizeof(*pllen)' should be used in place of 'sizeof(*pllout)' to avoid a
    small over-allocation.
    
    Fixes: 2d1726915159 ("clk: davinci: New driver for davinci PLL clocks")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Link: https://lore.kernel.org/r/20200809144959.747986-1-christophe.jaillet@wanadoo.fr
    Reviewed-by: David Lechner <david@lechnology.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d81d1306d6c9bdd2cc09172a74d8f4fbaf9e5e15
Author: Huacai Chen <chenhc@lemote.com>
Date:   Thu Sep 10 18:33:51 2020 +0800

    KVM: MIPS: Change the definition of kvm type
    
    [ Upstream commit 15e9e35cd1dec2bc138464de6bf8ef828df19235 ]
    
    MIPS defines two kvm types:
    
     #define KVM_VM_MIPS_TE          0
     #define KVM_VM_MIPS_VZ          1
    
    In Documentation/virt/kvm/api.rst it is said that "You probably want to
    use 0 as machine type", which implies that type 0 be the "automatic" or
    "default" type. And, in user-space libvirt use the null-machine (with
    type 0) to detect the kvm capability, which returns "KVM not supported"
    on a VZ platform.
    
    I try to fix it in QEMU but it is ugly:
    https://lists.nongnu.org/archive/html/qemu-devel/2020-08/msg05629.html
    
    And Thomas Huth suggests me to change the definition of kvm type:
    https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03281.html
    
    So I define like this:
    
     #define KVM_VM_MIPS_AUTO        0
     #define KVM_VM_MIPS_VZ          1
     #define KVM_VM_MIPS_TE          2
    
    Since VZ and TE cannot co-exists, using type 0 on a TE platform will
    still return success (so old user-space tools have no problems on new
    kernels); the advantage is that using type 0 on a VZ platform will not
    return failure. So, the only problem is "new user-space tools use type
    2 on old kernels", but if we treat this as a kernel bug, we can backport
    this patch to old stable kernels.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Message-Id: <1599734031-28746-1-git-send-email-chenhc@lemote.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88a637d5656715169acb278da5acebfc98bab605
Author: Gustav Wiklander <gustavwi@axis.com>
Date:   Tue Sep 8 17:11:29 2020 +0200

    spi: Fix memory leak on splited transfers
    
    [ Upstream commit b59a7ca15464c78ea1ba3b280cfc5ac5ece11ade ]
    
    In the prepare_message callback the bus driver has the
    opportunity to split a transfer into smaller chunks.
    spi_map_msg is done after prepare_message.
    
    Function spi_res_release releases the splited transfers
    in the message. Therefore spi_res_release should be called
    after spi_map_msg.
    
    The previous try at this was commit c9ba7a16d0f1
    which released the splited transfers after
    spi_finalize_current_message had been called.
    This introduced a race since the message struct could be
    out of scope because the spi_sync call got completed.
    
    Fixes this leak on spi bus driver spi-bcm2835.c when transfer
    size is greater than 65532:
    
    Kmemleak:
    sg_alloc_table+0x28/0xc8
    spi_map_buf+0xa4/0x300
    __spi_pump_messages+0x370/0x748
    __spi_sync+0x1d4/0x270
    spi_sync+0x34/0x58
    spi_test_execute_msg+0x60/0x340 [spi_loopback_test]
    spi_test_run_iter+0x548/0x578 [spi_loopback_test]
    spi_test_run_test+0x94/0x140 [spi_loopback_test]
    spi_test_run_tests+0x150/0x180 [spi_loopback_test]
    spi_loopback_test_probe+0x50/0xd0 [spi_loopback_test]
    spi_drv_probe+0x84/0xe0
    
    Signed-off-by: Gustav Wiklander <gustavwi@axis.com>
    Link: https://lore.kernel.org/r/20200908151129.15915-1-gustav.wiklander@axis.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9f09e86200fdeef8b68696b5e1cb25ebd8ebfa5c
Author: Evan Nimmo <evan.nimmo@alliedtelesis.co.nz>
Date:   Wed Sep 9 08:32:47 2020 +1200

    i2c: algo: pca: Reapply i2c bus settings after reset
    
    [ Upstream commit 0a355aeb24081e4538d4d424cd189f16c0bbd983 ]
    
    If something goes wrong (such as the SCL being stuck low) then we need
    to reset the PCA chip. The issue with this is that on reset we lose all
    config settings and the chip ends up in a disabled state which results
    in a lock up/high CPU usage. We need to re-apply any configuration that
    had previously been set and re-enable the chip.
    
    Signed-off-by: Evan Nimmo <evan.nimmo@alliedtelesis.co.nz>
    Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78d48322dd544d2272cc62efe188edc21c0bba49
Author: Gabriel Krisman Bertazi <krisman@collabora.com>
Date:   Wed Aug 19 16:07:31 2020 -0400

    f2fs: Return EOF on unaligned end of file DIO read
    
    [ Upstream commit 20d0a107fb35f37578b919f62bd474d6d358d579 ]
    
    Reading past end of file returns EOF for aligned reads but -EINVAL for
    unaligned reads on f2fs.  While documentation is not strict about this
    corner case, most filesystem returns EOF on this case, like iomap
    filesystems.  This patch consolidates the behavior for f2fs, by making
    it return EOF(0).
    
    it can be verified by a read loop on a file that does a partial read
    before EOF (A file that doesn't end at an aligned address).  The
    following code fails on an unaligned file on f2fs, but not on
    btrfs, ext4, and xfs.
    
      while (done < total) {
        ssize_t delta = pread(fd, buf + done, total - done, off + done);
        if (!delta)
          break;
        ...
      }
    
    It is arguable whether filesystems should actually return EOF or
    -EINVAL, but since iomap filesystems support it, and so does the
    original DIO code, it seems reasonable to consolidate on that.
    
    Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e34313d1b7e9f2b6ba8f5d09abad679fd1363a1d
Author: Sahitya Tummala <stummala@codeaurora.org>
Date:   Tue Aug 18 15:40:14 2020 +0530

    f2fs: fix indefinite loop scanning for free nid
    
    [ Upstream commit e2cab031ba7b5003cd12185b3ef38f1a75e3dae8 ]
    
    If the sbi->ckpt->next_free_nid is not NAT block aligned and if there
    are free nids in that NAT block between the start of the block and
    next_free_nid, then those free nids will not be scanned in scan_nat_page().
    This results into mismatch between nm_i->available_nids and the sum of
    nm_i->free_nid_count of all NAT blocks scanned. And nm_i->available_nids
    will always be greater than the sum of free nids in all the blocks.
    Under this condition, if we use all the currently scanned free nids,
    then it will loop forever in f2fs_alloc_nid() as nm_i->available_nids
    is still not zero but nm_i->free_nid_count of that partially scanned
    NAT block is zero.
    
    Fix this to align the nm_i->next_scan_nid to the first nid of the
    corresponding NAT block.
    
    Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7f07bbf9bc165abe1b5d2442228451ffa9afa29d
Author: Omar Sandoval <osandov@fb.com>
Date:   Tue Sep 8 13:46:37 2020 -0700

    block: only call sched requeue_request() for scheduled requests
    
    [ Upstream commit e8a8a185051a460e3eb0617dca33f996f4e31516 ]
    
    Yang Yang reported the following crash caused by requeueing a flush
    request in Kyber:
    
      [    2.517297] Unable to handle kernel paging request at virtual address ffffffd8071c0b00
      ...
      [    2.517468] pc : clear_bit+0x18/0x2c
      [    2.517502] lr : sbitmap_queue_clear+0x40/0x228
      [    2.517503] sp : ffffff800832bc60 pstate : 00c00145
      ...
      [    2.517599] Process ksoftirqd/5 (pid: 51, stack limit = 0xffffff8008328000)
      [    2.517602] Call trace:
      [    2.517606]  clear_bit+0x18/0x2c
      [    2.517619]  kyber_finish_request+0x74/0x80
      [    2.517627]  blk_mq_requeue_request+0x3c/0xc0
      [    2.517637]  __scsi_queue_insert+0x11c/0x148
      [    2.517640]  scsi_softirq_done+0x114/0x130
      [    2.517643]  blk_done_softirq+0x7c/0xb0
      [    2.517651]  __do_softirq+0x208/0x3bc
      [    2.517657]  run_ksoftirqd+0x34/0x60
      [    2.517663]  smpboot_thread_fn+0x1c4/0x2c0
      [    2.517667]  kthread+0x110/0x120
      [    2.517669]  ret_from_fork+0x10/0x18
    
    This happens because Kyber doesn't track flush requests, so
    kyber_finish_request() reads a garbage domain token. Only call the
    scheduler's requeue_request() hook if RQF_ELVPRIV is set (like we do for
    the finish_request() hook in blk_mq_free_request()). Now that we're
    handling it in blk-mq, also remove the check from BFQ.
    
    Reported-by: Yang Yang <yang.yang@vivo.com>
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 373312e8513c019a7c9d4046c7337559bc5fe591
Author: David Milburn <dmilburn@redhat.com>
Date:   Wed Sep 2 17:42:53 2020 -0500

    nvme-tcp: cancel async events before freeing event struct
    
    [ Upstream commit ceb1e0874dba5cbfc4e0b4145796a4bfb3716e6a ]
    
    Cancel async event work in case async event has been queued up, and
    nvme_tcp_submit_async_event() runs after event has been freed.
    
    Signed-off-by: David Milburn <dmilburn@redhat.com>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89669cae6de8fe636bccda73baa0eceda5e2db48
Author: David Milburn <dmilburn@redhat.com>
Date:   Wed Sep 2 17:42:52 2020 -0500

    nvme-rdma: cancel async events before freeing event struct
    
    [ Upstream commit 925dd04c1f9825194b9e444c12478084813b2b5d ]
    
    Cancel async event work in case async event has been queued up, and
    nvme_rdma_submit_async_event() runs after event has been freed.
    
    Signed-off-by: David Milburn <dmilburn@redhat.com>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 103e82d5e82b6c4e21163d9ddbb30a76595ffe40
Author: David Milburn <dmilburn@redhat.com>
Date:   Wed Sep 2 17:42:54 2020 -0500

    nvme-fc: cancel async events before freeing event struct
    
    [ Upstream commit e126e8210e950bb83414c4f57b3120ddb8450742 ]
    
    Cancel async event work in case async event has been queued up, and
    nvme_fc_submit_async_event() runs after event has been freed.
    
    Signed-off-by: David Milburn <dmilburn@redhat.com>
    Reviewed-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4951def1e25873e6d102297c20d2f755f106617d
Author: Stafford Horne <shorne@gmail.com>
Date:   Thu Sep 3 05:48:58 2020 +0900

    openrisc: Fix cache API compile issue when not inlining
    
    [ Upstream commit 3ae90d764093dfcd6ab8ab6875377302892c87d4 ]
    
    I found this when compiling a kbuild random config with GCC 11.  The
    config enables CONFIG_DEBUG_SECTION_MISMATCH, which sets CFLAGS
    -fno-inline-functions-called-once. This causes the call to cache_loop in
    cache.c to not be inlined causing the below compile error.
    
        In file included from arch/openrisc/mm/cache.c:13:
        arch/openrisc/mm/cache.c: In function 'cache_loop':
        ./arch/openrisc/include/asm/spr.h:16:27: warning: 'asm' operand 0 probably does not match constraints
           16 | #define mtspr(_spr, _val) __asm__ __volatile__ (  \
              |                           ^~~~~~~
        arch/openrisc/mm/cache.c:25:3: note: in expansion of macro 'mtspr'
           25 |   mtspr(reg, line);
              |   ^~~~~
        ./arch/openrisc/include/asm/spr.h:16:27: error: impossible constraint in 'asm'
           16 | #define mtspr(_spr, _val) __asm__ __volatile__ (  \
              |                           ^~~~~~~
        arch/openrisc/mm/cache.c:25:3: note: in expansion of macro 'mtspr'
           25 |   mtspr(reg, line);
              |   ^~~~~
        make[1]: *** [scripts/Makefile.build:283: arch/openrisc/mm/cache.o] Error 1
    
    The asm constraint "K" requires a immediate constant argument to mtspr,
    however because of no inlining a register argument is passed causing a
    failure.  Fix this by using __always_inline.
    
    Link: https://lore.kernel.org/lkml/202008200453.ohnhqkjQ%25lkp@intel.com/
    Signed-off-by: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5dda8b9b6ad7192ababf77c3a9150314b5f01ac4
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Thu Sep 3 10:02:39 2020 +1000

    cifs: fix DFS mount with cifsacl/modefromsid
    
    [ Upstream commit 01ec372cef1e5afa4ab843bbaf88a6fcb64dc14c ]
    
    RHBZ: 1871246
    
    If during cifs_lookup()/get_inode_info() we encounter a DFS link
    and we use the cifsacl or modefromsid mount options we must suppress
    any -EREMOTE errors that triggers or else we will not be able to follow
    the DFS link and automount the target.
    
    This fixes an issue with modefromsid/cifsacl where these mountoptions
    would break DFS and we would no longer be able to access the share.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72efc1488dadd650a75520cc58dcebf9564e4603
Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date:   Wed Jul 29 01:19:40 2020 +0300

    rapidio: Replace 'select' DMAENGINES 'with depends on'
    
    [ Upstream commit d2b86100245080cfdf1e95e9e07477474c1be2bd ]
    
    Enabling a whole subsystem from a single driver 'select' is frowned
    upon and won't be accepted in new drivers, that need to use 'depends on'
    instead. Existing selection of DMAENGINES will then cause circular
    dependencies. Replace them with a dependency.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b85406bf1bd71850515f81b6baaa8735d684b319
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Sat Sep 5 10:03:26 2020 -0400

    SUNRPC: stop printk reading past end of string
    
    [ Upstream commit 8c6b6c793ed32b8f9770ebcdf1ba99af423c303b ]
    
    Since p points at raw xdr data, there's no guarantee that it's NULL
    terminated, so we should give a length.  And probably escape any special
    characters too.
    
    Reported-by: Zhi Li <yieli@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b8fb2a4d373240d1d5f6d4d7b133e8f5ff7b10f
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Sep 4 17:39:12 2020 -0400

    NFS: Zero-stateid SETATTR should first return delegation
    
    [ Upstream commit 644c9f40cf71969f29add32f32349e71d4995c0b ]
    
    If a write delegation isn't available, the Linux NFS client uses
    a zero-stateid when performing a SETATTR.
    
    NFSv4.0 provides no mechanism for an NFS server to match such a
    request to a particular client. It recalls all delegations for that
    file, even delegations held by the client issuing the request. If
    that client happens to hold a read delegation, the server will
    recall it immediately, resulting in an NFS4ERR_DELAY/CB_RECALL/
    DELEGRETURN sequence.
    
    Optimize out this pipeline bubble by having the client return any
    delegations it may hold on a file before it issues a
    SETATTR(zero-stateid) on that file.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7fa3ef52032ea688d5a51981717a5792d8c45e11
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date:   Wed Sep 2 15:23:41 2020 +0200

    spi: spi-loopback-test: Fix out-of-bounds read
    
    [ Upstream commit 837ba18dfcd4db21ad58107c65bfe89753aa56d7 ]
    
    The "tx/rx-transfer - crossing PAGE_SIZE" test always fails when
    len=131071 and rx_offset >= 5:
    
     spi-loopback-test spi0.0: Running test tx/rx-transfer - crossing PAGE_SIZE
     ...
       with iteration values: len = 131071, tx_off = 0, rx_off = 3
       with iteration values: len = 131071, tx_off = 0, rx_off = 4
       with iteration values: len = 131071, tx_off = 0, rx_off = 5
     loopback strangeness - rx changed outside of allowed range at: ...a4321000
       spi_msg@ffffffd5a4157690
         frame_length:  131071
         actual_length: 131071
         spi_transfer@ffffffd5a41576f8
           len:    131071
           tx_buf: ffffffd5a4340ffc
    
    Note that rx_offset > 3 can only occur if the SPI controller driver sets
    ->dma_alignment to a higher value than 4, so most SPI controller drivers
    are not affect.
    
    The allocated Rx buffer is of size SPI_TEST_MAX_SIZE_PLUS, which is 132
    KiB (assuming 4 KiB pages).  This test uses an initial offset into the
    rx_buf of PAGE_SIZE - 4, and a len of 131071, so the range expected to
    be written in this transfer ends at (4096 - 4) + 5 + 131071 == 132 KiB,
    which is also the end of the allocated buffer.  But the code which
    verifies the content of the buffer reads a byte beyond the allocated
    buffer and spuriously fails because this out-of-bounds read doesn't
    return the expected value.
    
    Fix this by using ITERATE_LEN instead of ITERATE_MAX_LEN to avoid
    testing sizes which cause out-of-bounds reads.
    
    Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
    Link: https://lore.kernel.org/r/20200902132341.7079-1-vincent.whitchurch@axis.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8aeb6173e87f0c02b6f2c670ba424287705c5e0f
Author: Vincent Whitchurch <vincent.whitchurch@axis.com>
Date:   Wed Sep 2 15:09:52 2020 +0200

    regulator: pwm: Fix machine constraints application
    
    [ Upstream commit 59ae97a7a9e1499c2070e29841d1c4be4ae2994a ]
    
    If the zero duty cycle doesn't correspond to any voltage in the voltage
    table, the PWM regulator returns an -EINVAL from get_voltage_sel() which
    results in the core erroring out with a "failed to get the current
    voltage" and ending up not applying the machine constraints.
    
    Instead, return -ENOTRECOVERABLE which makes the core set the voltage
    since it's at an unknown value.
    
    For example, with this device tree:
    
            fooregulator {
                    compatible = "pwm-regulator";
                    pwms = <&foopwm 0 100000>;
                    regulator-min-microvolt = <2250000>;
                    regulator-max-microvolt = <2250000>;
                    regulator-name = "fooregulator";
                    regulator-always-on;
                    regulator-boot-on;
                    voltage-table = <2250000 30>;
            };
    
    Before this patch:
    
      fooregulator: failed to get the current voltage(-22)
    
    After this patch:
    
      fooregulator: Setting 2250000-2250000uV
      fooregulator: 2250 mV
    
    Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com>
    Link: https://lore.kernel.org/r/20200902130952.24880-1-vincent.whitchurch@axis.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 618fcfb5e3f3ceb4a5f508dda831c0dd6a9ecdfb
Author: James Smart <james.smart@broadcom.com>
Date:   Fri Aug 28 10:53:30 2020 -0700

    scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery
    
    [ Upstream commit 7b08e89f98cee9907895fabb64cf437bc505ce9a ]
    
    The driver is unable to successfully login with remote device. During pt2pt
    login, the driver completes its FLOGI request with the remote device having
    WWN precedence.  The remote device issues its own (delayed) FLOGI after
    accepting the driver's and, upon transmitting the FLOGI, immediately
    recognizes it has already processed the driver's FLOGI thus it transitions
    to sending a PLOGI before waiting for an ACC to its FLOGI.
    
    In the driver, the FLOGI is received and an ACC sent, followed by the PLOGI
    being received and an ACC sent. The issue is that the PLOGI reception
    occurs before the response from the adapter from the FLOGI ACC is
    received. Processing of the PLOGI sets state flags to perform the REG_RPI
    mailbox command and proceed with the rest of discovery on the port. The
    same completion routine used by both FLOGI and PLOGI is generic in
    nature. One of the things it does is clear flags, and those flags happen to
    drive the rest of discovery.  So what happened was the PLOGI processing set
    the flags, the FLOGI ACC completion cleared them, thus when the PLOGI ACC
    completes it doesn't see the flags and stops.
    
    Fix by modifying the generic completion routine to not clear the rest of
    discovery flag (NLP_ACC_REGLOGIN) unless the completion is also associated
    with performing a mailbox command as part of its handling.  For things such
    as FLOGI ACC, there isn't a subsequent action to perform with the adapter,
    thus there is no mailbox cmd ptr. PLOGI ACC though will perform REG_RPI
    upon completion, thus there is a mailbox cmd ptr.
    
    Link: https://lore.kernel.org/r/20200828175332.130300-3-james.smart@broadcom.com
    Co-developed-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: James Smart <james.smart@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f8f1eea08820f1852b71eca26b7040aebe04981c
Author: Javed Hasan <jhasan@marvell.com>
Date:   Tue Aug 25 02:39:40 2020 -0700

    scsi: libfc: Fix for double free()
    
    [ Upstream commit 5a5b80f98534416b3b253859897e2ba1dc241e70 ]
    
    Fix for '&fp->skb' double free.
    
    Link:
    https://lore.kernel.org/r/20200825093940.19612-1-jhasan@marvell.com
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Javed Hasan <jhasan@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a9e028f6db02f36813b657a8e14cfa204c3b5ca
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sun Aug 23 17:14:53 2020 +0800

    scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
    
    [ Upstream commit ea403fde7552bd61bad6ea45e3feb99db77cb31e ]
    
    When pm8001_tag_alloc() fails, task should be freed just like it is done in
    the subsequent error paths.
    
    Link: https://lore.kernel.org/r/20200823091453.4782-1-dinghao.liu@zju.edu.cn
    Acked-by: Jack Wang <jinpu.wang@cloud.ionos.com>
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit db081ee4d8c0e1f886b695f39bebff0ac258e7ee
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Thu Aug 20 18:52:43 2020 -0400

    NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall
    
    [ Upstream commit 3d7a9520f0c3e6a68b6de8c5812fc8b6d7a52626 ]
    
    A client should be able to handle getting an ERR_DELAY error
    while doing a LOCK call to reclaim state due to delegation being
    recalled. This is a transient error that can happen due to server
    moving its volumes and invalidating its file location cache and
    upon reference to it during the LOCK call needing to do an
    expensive lookup (leading to an ERR_DELAY error on a PUTFH).
    
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b6caf4ccb44d5ce46a8cd709ca0aecb2cf1b34a
Author: Prateek Sood <prsood@codeaurora.org>
Date:   Fri Aug 21 02:27:50 2020 +0530

    firmware_loader: fix memory leak for paged buffer
    
    commit 4965b8cd1bc1ffb017e5c58e622da82b55e49414 upstream.
    
    vfree() is being called on paged buffer allocated
    using alloc_page() and mapped using vmap().
    
    Freeing of pages in vfree() relies on nr_pages of
    struct vm_struct. vmap() does not update nr_pages.
    It can lead to memory leaks.
    
    Fixes: ddaf29fd9bb6 ("firmware: Free temporary page table after vmapping")
    Signed-off-by: Prateek Sood <prsood@codeaurora.org>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/1597957070-27185-1-git-send-email-prsood@codeaurora.org
    Cc: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51fe5c82c75937b083a2cd6450fcd91a7f9d3ac7
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Thu Aug 20 14:53:14 2020 -0700

    hv_netvsc: Remove "unlikely" from netvsc_select_queue
    
    commit 4d820543c54c47a2bd3c95ddbf52f83c89a219a0 upstream.
    
    When using vf_ops->ndo_select_queue, the number of queues of VF is
    usually bigger than the synthetic NIC. This condition may happen
    often.
    Remove "unlikely" from the comparison of ndev->real_num_tx_queues.
    
    Fixes: b3bf5666a510 ("hv_netvsc: defer queue selection to VF")
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78607d494c92641b38323b59b25cdc750d1ec7bf
Author: Miaohe Lin <linmiaohe@huawei.com>
Date:   Sat Aug 15 04:46:41 2020 -0400

    net: handle the return value of pskb_carve_frag_list() correctly
    
    commit eabe861881a733fc84f286f4d5a1ffaddd4f526f upstream.
    
    pskb_carve_frag_list() may return -ENOMEM in pskb_carve_inside_nonlinear().
    we should handle this correctly or we would get wrong sk_buff.
    
    Fixes: 6fa01ccd8830 ("skbuff: Add pskb_extract() helper function")
    Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3dacce5025c760c6920af6ff38ffd90d3b3c4d7
Author: Daniel Mack <daniel@zonque.org>
Date:   Sat Jun 20 21:39:25 2020 +0200

    dsa: Allow forwarding of redirected IGMP traffic
    
    commit 1ed9ec9b08addbd8d3e36d5f4a652d8590a6ddb7 upstream.
    
    The driver for Marvell switches puts all ports in IGMP snooping mode
    which results in all IGMP/MLD frames that ingress on the ports to be
    forwarded to the CPU only.
    
    The bridge code in the kernel can then interpret these frames and act
    upon them, for instance by updating the mdb in the switch to reflect
    multicast memberships of stations connected to the ports. However,
    the IGMP/MLD frames must then also be forwarded to other ports of the
    bridge so external IGMP queriers can track membership reports, and
    external multicast clients can receive query reports from foreign IGMP
    queriers.
    
    Currently, this is impossible as the EDSA tagger sets offload_fwd_mark
    on the skb when it unwraps the tagged frames, and that will make the
    switchdev layer prevent the skb from egressing on any other port of
    the same switch.
    
    To fix that, look at the To_CPU code in the DSA header and make
    forwarding of the frame possible for trapped IGMP packets.
    
    Introduce some #defines for the frame types to make the code a bit more
    comprehensive.
    
    This was tested on a Marvell 88E6352 variant.
    
    Signed-off-by: Daniel Mack <daniel@zonque.org>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Tested-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: DENG Qingfang <dqfext@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cd171c18d3d59f801ae8cbd63043d3e51713de6a
Author: Sasha Neftin <sasha.neftin@intel.com>
Date:   Thu Oct 10 13:15:39 2019 +0300

    e1000e: Add support for Comet Lake
    
    commit 914ee9c436cbe90c8ca8a46ec8433cb614a2ada5 upstream.
    
    Add devices ID's for the next LOM generations that will be
    available on the next Intel Client platform (Comet Lake)
    This patch provides the initial support for these devices
    
    Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: Anthony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a73e9ea38d5d77bebda2b776673be6d84919ae70
Author: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
Date:   Mon Aug 24 11:14:35 2020 -0700

    RDMA/bnxt_re: Restrict the max_gids to 256
    
    commit 847b97887ed4569968d5b9a740f2334abca9f99a upstream.
    
    Some adapters report more than 256 gid entries. Restrict it to 256 for
    now.
    
    Fixes: 1ac5a4047975("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://lore.kernel.org/r/1598292876-26529-6-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Naresh Kumar PBS <nareshkumar.pbs@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29dd419f56fca48abdddbff386b4a9f6caab05af
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Fri Jun 5 14:12:34 2020 -0500

    gfs2: initialize transaction tr_ailX_lists earlier
    
    commit cbcc89b630447ec7836aa2b9242d9bb1725f5a61 upstream.
    
    Since transactions may be freed shortly after they're created, before
    a log_flush occurs, we need to initialize their ail1 and ail2 lists
    earlier. Before this patch, the ail1 list was initialized in gfs2_log_flush().
    This moves the initialization to the point when the transaction is first
    created.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: Salvatore Bonaccorso <carnil@debian.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>