commit ca87c82811906f4fc5e936705564ba8176ba497f
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Sep 23 10:46:37 2020 +0200

    Linux 4.14.199
    
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lore.kernel.org/lkml/20200921162035.541285330@linuxfoundation.org/
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 442497b27a34c1a7688d0f8ab29c3ebd9d6e37c1
Author: Adam Borowski <kilobyte@angband.pl>
Date:   Tue Oct 9 08:28:03 2018 +0200

    x86/defconfig: Enable CONFIG_USB_XHCI_HCD=y
    
    commit 72a9c673636b779e370983fea08e40f97039b981 upstream.
    
    A spanking new machine I just got has all but one USB ports wired as 3.0.
    Booting defconfig resulted in no keyboard or mouse, which was pretty
    uncool.  Let's enable that -- USB3 is ubiquitous rather than an oddity.
    As 'y' not 'm' -- recovering from initrd problems needs a keyboard.
    
    Also add it to the 32-bit defconfig.
    
    Signed-off-by: Adam Borowski <kilobyte@angband.pl>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-usb@vger.kernel.org
    Link: http://lkml.kernel.org/r/20181009062803.4332-1-kilobyte@angband.pl
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17a07a01c51af01da74e6d6ef25b220c1179e61e
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 293036a0ea49b63a2dc449d41b6f81b3194fffeb
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 5ebb9dc9ac60e81890b5c66614a54be3c038427a
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 f91a135df607beeb1b478e0e9e3b4caa584aa1ee
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 d7c3f9ffcebdc47e94326b8511c4e5dbc3a3bef3
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 517274c185fa875a6eb4bf624f5c1ae4339a69b7
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 7e065e0242fc285cc29c5ea4a80d108262af5148
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 becb93b443851130f1bdf4547d4f8b87d2aabd16
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 d0587191e2bfc447813d4b9eaccff5d7871db43d
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 a71f0e405022f89afea758369ff65b9c0471f864
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 1a267aeef1dec8e20f0ad2e8a2798861e33a0556
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 58bc043fb7c3b54cc87c63ae7817bae736d8f347
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 28bb1d7a489e10cb902b5cd5eaccf893efa436e1
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 d31eccab7abd41e9d198c0f4f226d937cc7bbd58
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 1cf043baa068a5deecaf800e9122b462ac418159
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 38eefb1964388f93644b35ec77000c5fbecca9cc
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 f3440c029e471962719de3cbd771933e2165b338
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 292a391e668b159b05eedcc2f23b09ee1b94a95c
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 09d69bfda62ee278b4dccd4c2e756acf6325c717
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 a8c374444f68ed71a71e14bd6da1e4b13d8c8f19
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 30ce9a30a3881ae384e98aabd68310d053474e7e
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 856de6bc25ead48fbc0eeabebf3c5c44a110a13d
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 972998788aae86e12338f3b750984ad135ffac7a
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 6b635d12f8df91eb34c3bb44337e3750eef82355
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 dcbf2eea53754ac0802de9dbc7d0ce6e1199e56d
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 6b90754ca3afebd0fb1d6f7c73c7444e623d51dc
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 9effd6689bdb464f4a4955efd20488df16b81e2c
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 d0d5cc0f110032ff2e7169e63b2be431834f7db3
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 a5a4a05defb5d296097c0ebc439c6b8b547e21fa
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 869ed69b5f5b717dec8f8a635b0aaf20e08f8b7c
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 e5c9e466e9a446780914383bcfd388cd9398be59
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 c823c7f330bc3dca8731488d03490cc878aa3caf
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 9a81aa7adf2ecf5090a18e496b9e9b66f0e34a25
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>

commit 5f12fccbcc611adac9de8fc00c76dcae31a4a7d9
Author: Peter Oberparleiter <oberpar@linux.ibm.com>
Date:   Thu Sep 10 14:52:01 2020 +0200

    gcov: add support for GCC 10.1
    
    [ Upstream commit 40249c6962075c040fd071339acae524f18bfac9 ]
    
    Using gcov to collect coverage data for kernels compiled with GCC 10.1
    causes random malfunctions and kernel crashes.  This is the result of a
    changed GCOV_COUNTERS value in GCC 10.1 that causes a mismatch between
    the layout of the gcov_info structure created by GCC profiling code and
    the related structure used by the kernel.
    
    Fix this by updating the in-kernel GCOV_COUNTERS value.  Also re-enable
    config GCOV_KERNEL for use with GCC 10.
    
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Reported-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
    Tested-by: Leon Romanovsky <leonro@nvidia.com>
    Tested-and-Acked-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 89c61374785f5590f61161334a6192ab3c165ec9
Author: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date:   Fri Sep 4 14:09:18 2020 +0300

    usb: typec: ucsi: acpi: Check the _DEP dependencies
    
    commit 1f3546ff3f0a1000971daef58406954bad3f7061 upstream.
    
    Failing probe with -EPROBE_DEFER until all dependencies
    listed in the _DEP (Operation Region Dependencies) object
    have been met.
    
    This will fix an issue where on some platforms UCSI ACPI
    driver fails to probe because the address space handler for
    the operation region that the UCSI ACPI interface uses has
    not been loaded yet.
    
    Fixes: 8243edf44152 ("usb: typec: ucsi: Add ACPI driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Link: https://lore.kernel.org/r/20200904110918.51546-1-heikki.krogerus@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0368a8c1117a3fabb476b9ee9a883ec88d10e283
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Tue Sep 1 11:25:28 2020 +0300

    usb: Fix out of sync data toggle if a configured device is reconfigured
    
    commit cfd54fa83a5068b61b7eb28d3c117d8354c74c7a upstream.
    
    Userspace drivers that use a SetConfiguration() request to "lightweight"
    reset an already configured usb device might cause data toggles to get out
    of sync between the device and host, and the device becomes unusable.
    
    The xHCI host requires endpoints to be dropped and added back to reset the
    toggle. If USB core notices the new configuration is the same as the
    current active configuration it will avoid these extra steps by calling
    usb_reset_configuration() instead of usb_set_configuration().
    
    A SetConfiguration() request will reset the device side data toggles.
    Make sure usb_reset_configuration() function also drops and adds back the
    endpoints to ensure data toggles are in sync.
    
    To avoid code duplication split the current usb_disable_device() function
    and reuse the endpoint specific part.
    
    Cc: stable <stable@vger.kernel.org>
    Tested-by: Martin Thierer <mthierer@gmail.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20200901082528.12557-1-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 781e1f9e05498113c38f3ded35af325a14ec2f1c
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Sat Aug 29 11:05:39 2020 +0200

    USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules
    
    commit 1ac698790819b83f39fd7ea4f6cdabee9bdd7b38 upstream.
    
    These modules have 2 different USB layouts:
    
    The default layout with PID 0x9205 (AT+CUSBSELNV=1) exposes 4 TTYs and
    an ECM interface:
    
      T:  Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  6 Spd=480 MxCh= 0
      D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
      P:  Vendor=1e0e ProdID=9205 Rev=00.00
      S:  Manufacturer=SimTech, Incorporated
      S:  Product=SimTech SIM7080
      S:  SerialNumber=1234567890ABCDEF
      C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=500mA
      I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=06 Prot=00 Driver=cdc_ether
      I:  If#=0x5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
    
    The purpose of each TTY is as follows:
     * ttyUSB0: DIAG/QCDM port.
     * ttyUSB1: GNSS data.
     * ttyUSB2: AT-capable port (control).
     * ttyUSB3: AT-capable port (data).
    
    In the secondary layout with PID=0x9206 (AT+CUSBSELNV=86) the module
    exposes 6 TTY ports:
    
      T:  Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  8 Spd=480 MxCh= 0
      D:  Ver= 2.00 Cls=02(commc) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=1e0e ProdID=9206 Rev=00.00
      S:  Manufacturer=SimTech, Incorporated
      S:  Product=SimTech SIM7080
      S:  SerialNumber=1234567890ABCDEF
      C:  #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr=500mA
      I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
      I:  If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    
    The purpose of each TTY is as follows:
     * ttyUSB0: DIAG/QCDM port.
     * ttyUSB1: GNSS data.
     * ttyUSB2: AT-capable port (control).
     * ttyUSB3: QFLOG interface.
     * ttyUSB4: DAM interface.
     * ttyUSB5: AT-capable port (data).
    
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 12aa126a77f063c4e751a21343548f881008235b
Author: Bjørn Mork <bjorn@mork.no>
Date:   Sat Aug 29 15:42:50 2020 +0200

    USB: serial: option: support dynamic Quectel USB compositions
    
    commit 2bb70f0a4b238323e4e2f392fc3ddeb5b7208c9e upstream.
    
    The USB composition, defining the set of exported functions, is dynamic
    in newer Quectel modems.  Default functions can be disabled and
    alternative functions can be enabled instead.  The alternatives
    includes class functions using interface pairs, which should be
    handled by the respective class drivers.
    
    Active interfaces are numbered consecutively, so static
    blacklisting based on interface numbers will fail when the
    composition changes.  An example of such an error, where the
    option driver has bound to the CDC ECM data interface,
    preventing cdc_ether from handling this function:
    
     T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
     D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
     P: Vendor=2c7c ProdID=0125 Rev= 3.18
     S: Manufacturer=Quectel
     S: Product=EC25-AF
     C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
     A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
     I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
     E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=(none)
     E: Ad=89(I) Atr=03(Int.) MxPS= 16 Ivl=32ms
     I:* If#= 5 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=option
     I: If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option
     E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Another device with the same id gets correct drivers, since the
    interface of the network function happens to be blacklisted by option:
    
     T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
     D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
     P: Vendor=2c7c ProdID=0125 Rev= 3.18
     S: Manufacturer=Android
     S: Product=Android
     C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
     I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
     E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
     E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
     E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
     E: Ad=89(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
     E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
     E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Change rules for EC21, EC25, BG96 and EG95 to match vendor specific
    serial functions only, to prevent binding to class functions. Require
    2 endpoints on ff/ff/ff functions, avoiding the 3 endpoint QMI/RMNET
    network functions.
    
    Cc: AceLan Kao <acelan.kao@canonical.com>
    Cc: Sebastian Sjoholm <ssjoholm@mac.com>
    Cc: Dan Williams <dcbw@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6d98e95f1dac22308ee3ebd072e211692f016ac
Author: Patrick Riphagen <patrick.riphagen@xsens.com>
Date:   Thu Aug 6 13:55:47 2020 +0200

    USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter
    
    commit 6ccc48e0eb2f3a5f3bd39954a21317e5f8874726 upstream.
    
    The device added has an FTDI chip inside.
    The device is used to connect Xsens USB Motion Trackers.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Patrick Riphagen <patrick.riphagen@xsens.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e94f445c951917e44d011c7b3380d443a4822c66
Author: Zeng Tao <prime.zeng@hisilicon.com>
Date:   Fri Sep 4 14:37:44 2020 +0800

    usb: core: fix slab-out-of-bounds Read in read_descriptors
    
    commit a18cd6c9b6bc73dc17e8b7e9bd07decaa8833c97 upstream.
    
    The USB device descriptor may get changed between two consecutive
    enumerations on the same device for some reason, such as DFU or
    malicius device.
    In that case, we may access the changing descriptor if we don't take
    the device lock here.
    
    The issue is reported:
    https://syzkaller.appspot.com/bug?id=901a0d9e6519ef8dc7acab25344bd287dd3c7be9
    
    Cc: stable <stable@vger.kernel.org>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Reported-by: syzbot+256e56ddde8b8957eabd@syzkaller.appspotmail.com
    Fixes: 217a9081d8e6 ("USB: add all configs to the "descriptors" attribute")
    Signed-off-by: Zeng Tao <prime.zeng@hisilicon.com>
    Link: https://lore.kernel.org/r/1599201467-11000-1-git-send-email-prime.zeng@hisilicon.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92ded53bd998fb56c36280fa25239b491d66a423
Author: Vaibhav Agarwal <vaibhav.sr@gmail.com>
Date:   Fri Aug 14 18:03:15 2020 +0530

    staging: greybus: audio: fix uninitialized value issue
    
    commit 1dffeb8b8b4c261c45416d53c75ea51e6ece1770 upstream.
    
    The current implementation for gbcodec_mixer_dapm_ctl_put() uses
    uninitialized gbvalue for comparison with updated value. This was found
    using static analysis with coverity.
    
    Uninitialized scalar variable (UNINIT)
    11. uninit_use: Using uninitialized value
    gbvalue.value.integer_value[0].
    460        if (gbvalue.value.integer_value[0] != val) {
    
    This patch fixes the issue with fetching the gbvalue before using it for
        comparision.
    
    Fixes: 6339d2322c47 ("greybus: audio: Add topology parser for GB codec")
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Vaibhav Agarwal <vaibhav.sr@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/bc4f29eb502ccf93cd2ffd98db0e319fa7d0f247.1597408126.git.vaibhav.sr@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0472aa0c36c7bb3756629a3bbc834604167567f7
Author: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Date:   Mon Aug 31 19:37:00 2020 +0900

    video: fbdev: fix OOB read in vga_8planes_imageblit()
    
    commit bd018a6a75cebb511bb55a0e7690024be975fe93 upstream.
    
    syzbot is reporting OOB read at vga_8planes_imageblit() [1], for
    "cdat[y] >> 4" can become a negative value due to "const char *cdat".
    
    [1] https://syzkaller.appspot.com/bug?id=0d7a0da1557dcd1989e00cb3692b26d4173b4132
    
    Reported-by: syzbot <syzbot+69fbd3e01470f169c8c4@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/90b55ec3-d5b0-3307-9f7c-7ff5c5fd6ad3@i-love.sakura.ne.jp
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0db83ee7f61d21cd04c27589874370dd7141ac8
Author: Chris Healy <cphealy@gmail.com>
Date:   Fri Aug 21 14:21:02 2020 -0700

    ARM: dts: vfxxx: Add syscon compatible with OCOTP
    
    commit 2a6838d54128952ace6f0ca166dd8706abe46649 upstream.
    
    Add syscon compatibility with Vybrid OCOTP node. This is required to
    access the UID.
    
    Fixes: fa8d20c8dbb77 ("ARM: dts: vfxxx: Add node corresponding to OCOTP")
    Cc: stable@vger.kernel.org
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Reviewed-by: Stefan Agner <stefan@agner.ch>
    Signed-off-by: Chris Healy <cphealy@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb346c8d9eaf2850f90182b3090795e14856d926
Author: Wanpeng Li <wanpengli@tencent.com>
Date:   Wed Aug 19 16:55:27 2020 +0800

    KVM: VMX: Don't freeze guest when event delivery causes an APIC-access exit
    
    commit 99b82a1437cb31340dbb2c437a2923b9814a7b15 upstream.
    
    According to SDM 27.2.4, Event delivery causes an APIC-access VM exit.
    Don't report internal error and freeze guest when event delivery causes
    an APIC-access exit, it is handleable and the event will be re-injected
    during the next vmentry.
    
    Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
    Message-Id: <1597827327-25055-2-git-send-email-wanpengli@tencent.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34c050b531a72639e61a3be24b608604753f885a
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Sep 9 14:53:50 2020 -0700

    vgacon: remove software scrollback support
    
    commit 973c096f6a85e5b5f2a295126ba6928d9a6afd45 upstream.
    
    Yunhai Zhang recently fixed a VGA software scrollback bug in commit
    ebfdfeeae8c0 ("vgacon: Fix for missing check in scrollback handling"),
    but that then made people look more closely at some of this code, and
    there were more problems on the vgacon side, but also the fbcon software
    scrollback.
    
    We don't really have anybody who maintains this code - probably because
    nobody actually _uses_ it any more.  Sure, people still use both VGA and
    the framebuffer consoles, but they are no longer the main user
    interfaces to the kernel, and haven't been for decades, so these kinds
    of extra features end up bitrotting and not really being used.
    
    So rather than try to maintain a likely unused set of code, I'll just
    aggressively remove it, and see if anybody even notices.  Maybe there
    are people who haven't jumped on the whole GUI badnwagon yet, and think
    it's just a fad.  And maybe those people use the scrollback code.
    
    If that turns out to be the case, we can resurrect this again, once
    we've found the sucker^Wmaintainer for it who actually uses it.
    
    Reported-by: NopNop Nop <nopitydays@gmail.com>
    Tested-by: Willy Tarreau <w@1wt.eu>
    Cc: 张云海 <zhangyunhai@nsfocus.com>
    Acked-by: Andy Lutomirski <luto@amacapital.net>
    Acked-by: Willy Tarreau <w@1wt.eu>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ae010dd46a4a81c6eda80254a86b8b4596cad6d
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Sep 8 10:56:27 2020 -0700

    fbcon: remove now unusued 'softback_lines' cursor() argument
    
    commit 06a0df4d1b8b13b551668e47b11fd7629033b7df upstream.
    
    Since the softscroll code got removed, this argument is always zero and
    makes no sense any more.
    
    Tested-by: Yuan Ming <yuanmingbuaa@gmail.com>
    Tested-by: Willy Tarreau <w@1wt.eu>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e2e0735dadecc1c1657e458e8f88e0ca6a4ec04
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Sep 7 11:45:27 2020 -0700

    fbcon: remove soft scrollback code
    
    commit 50145474f6ef4a9c19205b173da6264a644c7489 upstream.
    
    This (and the VGA soft scrollback) turns out to have various nasty small
    special cases that nobody really is willing to fight.  The soft
    scrollback code was really useful a few decades ago when you typically
    used the console interactively as the main way to interact with the
    machine, but that just isn't the case any more.
    
    So it's not worth dragging along.
    
    Tested-by: Yuan Ming <yuanmingbuaa@gmail.com>
    Tested-by: Willy Tarreau <w@1wt.eu>
    Acked-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99401ea1ff86a411c688716c008e8f4d0eb6907d
Author: Yi Zhang <yi.zhang@redhat.com>
Date:   Thu Aug 20 23:36:46 2020 +0800

    RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars
    
    commit 60b1af64eb35074a4f2d41cc1e503a7671e68963 upstream.
    
    'parent' sysfs reads will yield '\0' bytes when the interface name has 15
    chars, and there will no "\n" output.
    
    To reproduce, create one interface with 15 chars:
    
     [root@test ~]# ip a s enp0s29u1u7u3c2
     2: enp0s29u1u7u3c2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
         link/ether 02:21:28:57:47:17 brd ff:ff:ff:ff:ff:ff
         inet6 fe80::ac41:338f:5bcd:c222/64 scope link noprefixroute
            valid_lft forever preferred_lft forever
     [root@test ~]# modprobe rdma_rxe
     [root@test ~]# echo enp0s29u1u7u3c2 > /sys/module/rdma_rxe/parameters/add
     [root@test ~]# cat /sys/class/infiniband/rxe0/parent
     enp0s29u1u7u3c2[root@test ~]#
     [root@test ~]# f="/sys/class/infiniband/rxe0/parent"
     [root@test ~]# echo "$(<"$f")"
     -bash: warning: command substitution: ignored null byte in input
     enp0s29u1u7u3c2
    
    Use scnprintf and PAGE_SIZE to fill the sysfs output buffer.
    
    Cc: stable@vger.kernel.org
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20200820153646.31316-1-yi.zhang@redhat.com
    Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Yi Zhang <yi.zhang@redhat.com>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af4a88994936474294b2f484be01117dc7550e68
Author: Ilya Dryomov <idryomov@gmail.com>
Date:   Thu Sep 3 13:24:11 2020 +0200

    rbd: require global CAP_SYS_ADMIN for mapping and unmapping
    
    commit f44d04e696feaf13d192d942c4f14ad2e117065a upstream.
    
    It turns out that currently we rely only on sysfs attribute
    permissions:
    
      $ ll /sys/bus/rbd/{add*,remove*}
      --w------- 1 root root 4096 Sep  3 20:37 /sys/bus/rbd/add
      --w------- 1 root root 4096 Sep  3 20:37 /sys/bus/rbd/add_single_major
      --w------- 1 root root 4096 Sep  3 20:37 /sys/bus/rbd/remove
      --w------- 1 root root 4096 Sep  3 20:38 /sys/bus/rbd/remove_single_major
    
    This means that images can be mapped and unmapped (i.e. block devices
    can be created and deleted) by a UID 0 process even after it drops all
    privileges or by any process with CAP_DAC_OVERRIDE in its user namespace
    as long as UID 0 is mapped into that user namespace.
    
    Be consistent with other virtual block devices (loop, nbd, dm, md, etc)
    and require CAP_SYS_ADMIN in the initial user namespace for mapping and
    unmapping, and also for dumping the configuration string and refreshing
    the image header.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52a110c327f72bef19bf6b689324faa870d85744
Author: Hou Pu <houpu@bytedance.com>
Date:   Wed Jul 29 09:03:43 2020 -0400

    scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem
    
    commit ed43ffea78dcc97db3f561da834f1a49c8961e33 upstream.
    
    The iSCSI target login thread might get stuck with the following stack:
    
    cat /proc/`pidof iscsi_np`/stack
    [<0>] down_interruptible+0x42/0x50
    [<0>] iscsit_access_np+0xe3/0x167
    [<0>] iscsi_target_locate_portal+0x695/0x8ac
    [<0>] __iscsi_target_login_thread+0x855/0xb82
    [<0>] iscsi_target_login_thread+0x2f/0x5a
    [<0>] kthread+0xfa/0x130
    [<0>] ret_from_fork+0x1f/0x30
    
    This can be reproduced via the following steps:
    
    1. Initiator A tries to log in to iqn1-tpg1 on port 3260. After finishing
       PDU exchange in the login thread and before the negotiation is finished
       the the network link goes down. At this point A has not finished login
       and tpg->np_login_sem is held.
    
    2. Initiator B tries to log in to iqn2-tpg1 on port 3260. After finishing
       PDU exchange in the login thread the target expects to process remaining
       login PDUs in workqueue context.
    
    3. Initiator A' tries to log in to iqn1-tpg1 on port 3260 from a new
       socket. A' will wait for tpg->np_login_sem with np->np_login_timer
       loaded to wait for at most 15 seconds. The lock is held by A so A'
       eventually times out.
    
    4. Before A' got timeout initiator B gets negotiation failed and calls
       iscsi_target_login_drop()->iscsi_target_login_sess_out().  The
       np->np_login_timer is canceled and initiator A' will hang forever.
       Because A' is now in the login thread, no new login requests can be
       serviced.
    
    Fix this by moving iscsi_stop_login_thread_timer() out of
    iscsi_target_login_sess_out(). Also remove iscsi_np parameter from
    iscsi_target_login_sess_out().
    
    Link: https://lore.kernel.org/r/20200729130343.24976-1-houpu@bytedance.com
    Cc: stable@vger.kernel.org
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Hou Pu <houpu@bytedance.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c6e70f228a21fc1a964702999c3baa1a6fe6f5d
Author: Varun Prakash <varun@chelsio.com>
Date:   Tue Aug 25 18:05:10 2020 +0530

    scsi: target: iscsi: Fix data digest calculation
    
    commit 5528d03183fe5243416c706f64b1faa518b05130 upstream.
    
    Current code does not consider 'page_off' in data digest calculation. To
    fix this, add a local variable 'first_sg' and set first_sg.offset to
    sg->offset + page_off.
    
    Link: https://lore.kernel.org/r/1598358910-3052-1-git-send-email-varun@chelsio.com
    Fixes: e48354ce078c ("iscsi-target: Add iSCSI fabric support for target v4.1")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Mike Christie <michael.christie@oralce.com>
    Signed-off-by: Varun Prakash <varun@chelsio.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d85ba0676a856259fe36abe8d21364842cc729e
Author: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Date:   Wed Aug 12 03:31:36 2020 +0200

    regulator: push allocation in set_consumer_device_supply() out of lock
    
    commit 5c06540165d443c6455123eb48e7f1a9b618ab34 upstream.
    
    Pull regulator_list_mutex into set_consumer_device_supply() and keep
    allocations outside of it. Fourth of the fs_reclaim deadlock case.
    
    Fixes: 45389c47526d ("regulator: core: Add early supply resolution for regulators")
    Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/f0380bdb3d60aeefa9693c4e234d2dcda7e56747.1597195321.git.mirq-linux@rere.qmqm.pl
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee3e33dc3c8a3ba7f3380daaa039c2b7227c24c1
Author: Filipe Manana <fdmanana@suse.com>
Date:   Mon Sep 14 09:01:04 2020 +0100

    btrfs: fix wrong address when faulting in pages in the search ioctl
    
    commit 1c78544eaa4660096aeb6a57ec82b42cdb3bfe5a upstream.
    
    When faulting in the pages for the user supplied buffer for the search
    ioctl, we are passing only the base address of the buffer to the function
    fault_in_pages_writeable(). This means that after the first iteration of
    the while loop that searches for leaves, when we have a non-zero offset,
    stored in 'sk_offset', we try to fault in a wrong page range.
    
    So fix this by adding the offset in 'sk_offset' to the base address of the
    user supplied buffer when calling fault_in_pages_writeable().
    
    Several users have reported that the applications compsize and bees have
    started to operate incorrectly since commit a48b73eca4ceb9 ("btrfs: fix
    potential deadlock in the search ioctl") was added to stable trees, and
    these applications make heavy use of the search ioctls. This fixes their
    issues.
    
    Link: https://lore.kernel.org/linux-btrfs/632b888d-a3c3-b085-cdf5-f9bb61017d92@lechevalier.se/
    Link: https://github.com/kilobyte/compsize/issues/34
    Fixes: a48b73eca4ceb9 ("btrfs: fix potential deadlock in the search ioctl")
    CC: stable@vger.kernel.org # 4.4+
    Tested-by: A L <mail@lechevalier.se>
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Filipe Manana <fdmanana@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e1edab84e8a71705aae885e1421f75aa559464d
Author: Josef Bacik <josef@toxicpanda.com>
Date:   Mon Aug 31 10:52:42 2020 -0400

    btrfs: fix lockdep splat in add_missing_dev
    
    commit fccc0007b8dc952c6bc0805cdf842eb8ea06a639 upstream.
    
    Nikolay reported a lockdep splat in generic/476 that I could reproduce
    with btrfs/187.
    
      ======================================================
      WARNING: possible circular locking dependency detected
      5.9.0-rc2+ #1 Tainted: G        W
      ------------------------------------------------------
      kswapd0/100 is trying to acquire lock:
      ffff9e8ef38b6268 (&delayed_node->mutex){+.+.}-{3:3}, at: __btrfs_release_delayed_node.part.0+0x3f/0x330
    
      but task is already holding lock:
      ffffffffa9d74700 (fs_reclaim){+.+.}-{0:0}, at: __fs_reclaim_acquire+0x5/0x30
    
      which lock already depends on the new lock.
    
      the existing dependency chain (in reverse order) is:
    
      -> #2 (fs_reclaim){+.+.}-{0:0}:
             fs_reclaim_acquire+0x65/0x80
             slab_pre_alloc_hook.constprop.0+0x20/0x200
             kmem_cache_alloc_trace+0x3a/0x1a0
             btrfs_alloc_device+0x43/0x210
             add_missing_dev+0x20/0x90
             read_one_chunk+0x301/0x430
             btrfs_read_sys_array+0x17b/0x1b0
             open_ctree+0xa62/0x1896
             btrfs_mount_root.cold+0x12/0xea
             legacy_get_tree+0x30/0x50
             vfs_get_tree+0x28/0xc0
             vfs_kern_mount.part.0+0x71/0xb0
             btrfs_mount+0x10d/0x379
             legacy_get_tree+0x30/0x50
             vfs_get_tree+0x28/0xc0
             path_mount+0x434/0xc00
             __x64_sys_mount+0xe3/0x120
             do_syscall_64+0x33/0x40
             entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
      -> #1 (&fs_info->chunk_mutex){+.+.}-{3:3}:
             __mutex_lock+0x7e/0x7e0
             btrfs_chunk_alloc+0x125/0x3a0
             find_free_extent+0xdf6/0x1210
             btrfs_reserve_extent+0xb3/0x1b0
             btrfs_alloc_tree_block+0xb0/0x310
             alloc_tree_block_no_bg_flush+0x4a/0x60
             __btrfs_cow_block+0x11a/0x530
             btrfs_cow_block+0x104/0x220
             btrfs_search_slot+0x52e/0x9d0
             btrfs_lookup_inode+0x2a/0x8f
             __btrfs_update_delayed_inode+0x80/0x240
             btrfs_commit_inode_delayed_inode+0x119/0x120
             btrfs_evict_inode+0x357/0x500
             evict+0xcf/0x1f0
             vfs_rmdir.part.0+0x149/0x160
             do_rmdir+0x136/0x1a0
             do_syscall_64+0x33/0x40
             entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
      -> #0 (&delayed_node->mutex){+.+.}-{3:3}:
             __lock_acquire+0x1184/0x1fa0
             lock_acquire+0xa4/0x3d0
             __mutex_lock+0x7e/0x7e0
             __btrfs_release_delayed_node.part.0+0x3f/0x330
             btrfs_evict_inode+0x24c/0x500
             evict+0xcf/0x1f0
             dispose_list+0x48/0x70
             prune_icache_sb+0x44/0x50
             super_cache_scan+0x161/0x1e0
             do_shrink_slab+0x178/0x3c0
             shrink_slab+0x17c/0x290
             shrink_node+0x2b2/0x6d0
             balance_pgdat+0x30a/0x670
             kswapd+0x213/0x4c0
             kthread+0x138/0x160
             ret_from_fork+0x1f/0x30
    
      other info that might help us debug this:
    
      Chain exists of:
        &delayed_node->mutex --> &fs_info->chunk_mutex --> fs_reclaim
    
       Possible unsafe locking scenario:
    
             CPU0                    CPU1
             ----                    ----
        lock(fs_reclaim);
                                     lock(&fs_info->chunk_mutex);
                                     lock(fs_reclaim);
        lock(&delayed_node->mutex);
    
       *** DEADLOCK ***
    
      3 locks held by kswapd0/100:
       #0: ffffffffa9d74700 (fs_reclaim){+.+.}-{0:0}, at: __fs_reclaim_acquire+0x5/0x30
       #1: ffffffffa9d65c50 (shrinker_rwsem){++++}-{3:3}, at: shrink_slab+0x115/0x290
       #2: ffff9e8e9da260e0 (&type->s_umount_key#48){++++}-{3:3}, at: super_cache_scan+0x38/0x1e0
    
      stack backtrace:
      CPU: 1 PID: 100 Comm: kswapd0 Tainted: G        W         5.9.0-rc2+ #1
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-2.fc32 04/01/2014
      Call Trace:
       dump_stack+0x92/0xc8
       check_noncircular+0x12d/0x150
       __lock_acquire+0x1184/0x1fa0
       lock_acquire+0xa4/0x3d0
       ? __btrfs_release_delayed_node.part.0+0x3f/0x330
       __mutex_lock+0x7e/0x7e0
       ? __btrfs_release_delayed_node.part.0+0x3f/0x330
       ? __btrfs_release_delayed_node.part.0+0x3f/0x330
       ? lock_acquire+0xa4/0x3d0
       ? btrfs_evict_inode+0x11e/0x500
       ? find_held_lock+0x2b/0x80
       __btrfs_release_delayed_node.part.0+0x3f/0x330
       btrfs_evict_inode+0x24c/0x500
       evict+0xcf/0x1f0
       dispose_list+0x48/0x70
       prune_icache_sb+0x44/0x50
       super_cache_scan+0x161/0x1e0
       do_shrink_slab+0x178/0x3c0
       shrink_slab+0x17c/0x290
       shrink_node+0x2b2/0x6d0
       balance_pgdat+0x30a/0x670
       kswapd+0x213/0x4c0
       ? _raw_spin_unlock_irqrestore+0x46/0x60
       ? add_wait_queue_exclusive+0x70/0x70
       ? balance_pgdat+0x670/0x670
       kthread+0x138/0x160
       ? kthread_create_worker_on_cpu+0x40/0x40
       ret_from_fork+0x1f/0x30
    
    This is because we are holding the chunk_mutex when we call
    btrfs_alloc_device, which does a GFP_KERNEL allocation.  We don't want
    to switch that to a GFP_NOFS lock because this is the only place where
    it matters.  So instead use memalloc_nofs_save() around the allocation
    in order to avoid the lockdep splat.
    
    Reported-by: Nikolay Borisov <nborisov@suse.com>
    CC: stable@vger.kernel.org # 4.4+
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: Josef Bacik <josef@toxicpanda.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e24ef3003b80830193731fde509e2bfda645029c
Author: Qu Wenruo <wqu@suse.com>
Date:   Wed Aug 26 17:26:43 2020 +0800

    btrfs: require only sector size alignment for parent eb bytenr
    
    commit ea57788eb76dc81f6003245427356a1dcd0ac524 upstream.
    
    [BUG]
    A completely sane converted fs will cause kernel warning at balance
    time:
    
      [ 1557.188633] BTRFS info (device sda7): relocating block group 8162107392 flags data
      [ 1563.358078] BTRFS info (device sda7): found 11722 extents
      [ 1563.358277] BTRFS info (device sda7): leaf 7989321728 gen 95 total ptrs 213 free space 3458 owner 2
      [ 1563.358280]        item 0 key (7984947200 169 0) itemoff 16250 itemsize 33
      [ 1563.358281]                extent refs 1 gen 90 flags 2
      [ 1563.358282]                ref#0: tree block backref root 4
      [ 1563.358285]        item 1 key (7985602560 169 0) itemoff 16217 itemsize 33
      [ 1563.358286]                extent refs 1 gen 93 flags 258
      [ 1563.358287]                ref#0: shared block backref parent 7985602560
      [ 1563.358288]                        (parent 7985602560 is NOT ALIGNED to nodesize 16384)
      [ 1563.358290]        item 2 key (7985635328 169 0) itemoff 16184 itemsize 33
      ...
      [ 1563.358995] BTRFS error (device sda7): eb 7989321728 invalid extent inline ref type 182
      [ 1563.358996] ------------[ cut here ]------------
      [ 1563.359005] WARNING: CPU: 14 PID: 2930 at 0xffffffff9f231766
    
    Then with transaction abort, and obviously failed to balance the fs.
    
    [CAUSE]
    That mentioned inline ref type 182 is completely sane, it's
    BTRFS_SHARED_BLOCK_REF_KEY, it's some extra check making kernel to
    believe it's invalid.
    
    Commit 64ecdb647ddb ("Btrfs: add one more sanity check for shared ref
    type") introduced extra checks for backref type.
    
    One of the requirement is, parent bytenr must be aligned to node size,
    which is not correct.
    
    One example is like this:
    
    0       1G  1G+4K               2G 2G+4K
            |   |///////////////////|//|  <- A chunk starts at 1G+4K
                |   |       <- A tree block get reserved at bytenr 1G+4K
    
    Then we have a valid tree block at bytenr 1G+4K, but not aligned to
    nodesize (16K).
    
    Such chunk is not ideal, but current kernel can handle it pretty well.
    We may warn about such tree block in the future, but should not reject
    them.
    
    [FIX]
    Change the alignment requirement from node size alignment to sector size
    alignment.
    
    Also, to make our lives a little easier, also output @iref when
    btrfs_get_extent_inline_ref_type() failed, so we can locate the item
    easier.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=205475
    Fixes: 64ecdb647ddb ("Btrfs: add one more sanity check for shared ref type")
    CC: stable@vger.kernel.org # 4.14+
    Reviewed-by: Josef Bacik <josef@toxicpanda.com>
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    [ update comments and messages ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a023e34ee966b4e082dff5ed2b390584fb9bfca
Author: Rustam Kovhaev <rkovhaev@gmail.com>
Date:   Tue Aug 4 07:56:14 2020 -0700

    staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb()
    
    commit fea22e159d51c766ba70473f473a0ec914cc7e92 upstream.
    
    let's use usb_find_common_endpoints() to discover endpoints, it does all
    necessary checks for type and xfer direction
    
    remove memset() in hfa384x_create(), because we now assign endpoints in
    prism2sta_probe_usb() and because create_wlan() uses kzalloc() to
    allocate hfa384x struct before calling hfa384x_create()
    
    Fixes: faaff9765664 ("staging: wlan-ng: properly check endpoint types")
    Reported-and-tested-by: syzbot+22794221ab96b0bab53a@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?extid=22794221ab96b0bab53a
    Signed-off-by: Rustam Kovhaev <rkovhaev@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200804145614.104320-1-rkovhaev@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eacd48c729e471c5a156dfd36d859f61481f5dbb
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:38 2020 +0100

    iio:accel:mma8452: Fix timestamp alignment and prevent data leak.
    
    commit 89226a296d816727405d3fea684ef69e7d388bd8 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses a 16 byte u8 array on the stack.  As Lars also noted
    this anti pattern can involve a leak of data to userspace and that
    indeed can happen here.  We close both issues by moving to
    a suitable structure in the iio_priv() data with alignment
    ensured by use of an explicit c structure.  This data is allocated
    with kzalloc so no data can leak appart from previous readings.
    
    The additional forcing of the 8 byte alignment of the timestamp
    is not strictly necessary but makes the code less fragile by
    making this explicit.
    
    Fixes: c7eeea93ac60 ("iio: Add Freescale MMA8452Q 3-axis accelerometer driver")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Peter Meerwald <pmeerw@pmeerw.net>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da7708a160bfcfc9a8118911ef7b5e15682193aa
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:40 2020 +0100

    iio:accel:mma7455: Fix timestamp alignment and prevent data leak.
    
    commit 7e5ac1f2206eda414f90c698fe1820dee873394d upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses a 16 byte u8 array on the stack   As Lars also noted
    this anti pattern can involve a leak of data to userspace and that
    indeed can happen here.  We close both issues by moving to
    a suitable structure in the iio_priv() data with alignment
    ensured by use of an explicit c structure.  This data is allocated
    with kzalloc so no data can leak appart from previous readings.
    
    The force alignment of ts is not strictly necessary in this particularly
    case but does make the code less fragile.
    
    Fixes: a84ef0d181d9 ("iio: accel: add Freescale MMA7455L/MMA7456L 3-axis accelerometer driver")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Cc: <Stable@vger.kernel.org>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d6d2788783357a766ce040d1329c5506379e902
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:37 2020 +0100

    iio: accel: kxsd9: Fix alignment of local buffer.
    
    commit 95ad67577de4ea08eb8e441394e698aa4addcc0b upstream.
    
    iio_push_to_buffers_with_timestamp assumes 8 byte alignment which
    is not guaranteed by an array of smaller elements.
    
    Note that whilst in this particular case the alignment forcing
    of the ts element is not strictly necessary it acts as good
    documentation.  Doing this where not necessary should cut
    down on the number of cut and paste introduced errors elsewhere.
    
    Fixes: 0427a106a98a ("iio: accel: kxsd9: Add triggered buffer handling")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c4f910bcf604ff17569c0d38127bad744dd3880
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:43 2020 +0100

    iio:chemical:ccs811: Fix timestamp alignment and prevent data leak.
    
    commit eb1a148ef41d8ae8d9201efc3f1b145976290331 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv() data with alignment
    explicitly requested.  This data is allocated with kzalloc so no
    data can leak appart from previous readings.
    
    The explicit alignment of ts is necessary to ensure consistent
    padding for x86_32 in which the ts would otherwise be 4 byte aligned.
    
    Fixes: 283d26917ad6 ("iio: chemical: ccs811: Add triggered buffer support")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Narcisa Ana Maria Vasile <narcisaanamaria12@gmail.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 866994848683d2d55ca57894ff47babebc6d58a0
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:45 2020 +0100

    iio:light:max44000 Fix timestamp alignment and prevent data leak.
    
    commit 523628852a5f5f34a15252b2634d0498d3cfb347 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses a 16 byte array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv().
    This data is allocated with kzalloc so no data can leak appart
    from previous readings.
    
    It is necessary to force the alignment of ts to avoid the padding
    on x86_32 being different from 64 bit platorms (it alows for
    4 bytes aligned 8 byte types.
    
    Fixes: 06ad7ea10e2b ("max44000: Initial triggered buffer support")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caa75847c333ad18d6b9d68f94a255418f3c006a
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:49 2020 +0100

    iio:magnetometer:ak8975 Fix alignment and data leak issues.
    
    commit 02ad21cefbac4d89ac443866f25b90449527737b upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv() data.
    
    This data is allocated with kzalloc so no data can leak apart from
    previous readings.
    
    The explicit alignment of ts is not necessary in this case as by
    coincidence the padding will end up the same, however I consider
    it to make the code less fragile and have included it.
    
    Fixes: bc11ca4a0b84 ("iio:magnetometer:ak8975: triggered buffer support")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Gregor Boirie <gregor.boirie@parrot.com>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31c0b4e3544bb07e43ddf5b97694dd3d5beba16e
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:56 2020 +0100

    iio:adc:ti-adc081c Fix alignment and data leak issues
    
    commit 54f82df2ba86e2a8e9cbf4036d192366e3905c89 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv().
    
    This data is allocated with kzalloc so no data can leak apart
    from previous readings.
    
    The eplicit alignment of ts is necessary to ensure correct padding
    on x86_32 where s64 is only aligned to 4 bytes.
    
    Fixes: 08e05d1fce5c ("ti-adc081c: Initial triggered buffer support")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48da980c07581677f9b71954ca190bb1da4cd810
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:51:03 2020 +0100

    iio:adc:max1118 Fix alignment of timestamp and data leak issues
    
    commit db8f06d97ec284dc018e2e4890d2e5035fde8630 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv() data.
    
    This data is allocated with kzalloc so no data can leak apart
    from previous readings.
    
    The explicit alignment of ts is necessary to ensure correct padding
    on architectures where s64 is only 4 bytes aligned such as x86_32.
    
    Fixes: a9e9c7153e96 ("iio: adc: add max1117/max1118/max1119 ADC driver")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Akinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fa7c9a3310cb03704f1cb15c99cfe444fc72221
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:51:02 2020 +0100

    iio:adc:ina2xx Fix timestamp alignment issue.
    
    commit f8cd222feb82ecd82dcf610fcc15186f55f9c2b5 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses a 32 byte array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv() data with alignment
    explicitly requested.  This data is allocated with kzalloc so no
    data can leak apart from previous readings. The explicit alignment
    isn't technically needed here, but it reduced fragility and avoids
    cut and paste into drivers where it will be needed.
    
    If we want this in older stables will need manual backport due to
    driver reworks.
    
    Fixes: c43a102e67db ("iio: ina2xx: add support for TI INA2xx Power Monitors")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Stefan Brüns <stefan.bruens@rwth-aachen.de>
    Cc: Marc Titinger <mtitinger@baylibre.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3a794a9d9a18898abaab33d27ed1f475b235d96
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:57 2020 +0100

    iio:adc:ti-adc084s021 Fix alignment and data leak issues.
    
    commit a661b571e3682705cb402a5cd1e970586a3ec00f upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by
    moving to a suitable structure in the iio_priv().
    
    This data is allocated with kzalloc so no data can leak apart from
    previous readings.
    
    The force alignment of ts is not strictly necessary in this case
    but reduces the fragility of the code.
    
    Fixes: 3691e5a69449 ("iio: adc: add driver for the ti-adc084s021 chip")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Mårten Lindahl <martenli@axis.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a3c9fa446723c36d660ab55df85d9c0ee9cc5f2
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:39 2020 +0100

    iio:accel:bmc150-accel: Fix timestamp alignment and prevent data leak.
    
    commit a6f86f724394de3629da63fe5e1b7a4ab3396efe upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses a 16 byte array of smaller elements on the stack.
    As Lars also noted this anti pattern can involve a leak of data to
    userspace and that indeed can happen here.  We close both issues by moving
    to a suitable structure in the iio_priv() data with alignment
    ensured by use of an explicit c structure.  This data is allocated
    with kzalloc so no data can leak appart from previous readings.
    
    Fixes tag is beyond some major refactoring so likely manual backporting
    would be needed to get that far back.
    
    Whilst the force alignment of the ts is not strictly necessary, it
    does make the code less fragile.
    
    Fixes: 3bbec9773389 ("iio: bmc150_accel: add support for hardware fifo")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bca5a18aad3d26814958fc5ec76b70d0e63ba892
Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Date:   Wed Jul 22 16:50:48 2020 +0100

    iio:light:ltr501 Fix timestamp alignment issue.
    
    commit 2684d5003490df5398aeafe2592ba9d4a4653998 upstream.
    
    One of a class of bugs pointed out by Lars in a recent review.
    iio_push_to_buffers_with_timestamp assumes the buffer used is aligned
    to the size of the timestamp (8 bytes).  This is not guaranteed in
    this driver which uses an array of smaller elements on the stack.
    Here we use a structure on the stack.  The driver already did an
    explicit memset so no data leak was possible.
    
    Forced alignment of ts is not strictly necessary but probably makes
    the code slightly less fragile.
    
    Note there has been some rework in this driver of the years, so no
    way this will apply cleanly all the way back.
    
    Fixes: 2690be905123 ("iio: Add Lite-On ltr501 ambient light / proximity sensor driver")
    Reported-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec90220f982acbfd3e5f62225dd331103bc71936
Author: Maxim Kochetkov <fido_max@inbox.ru>
Date:   Mon Aug 3 08:04:05 2020 +0300

    iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set
    
    commit e71e6dbe96ac80ac2aebe71a6a942e7bd60e7596 upstream.
    
    To stop conversion ads1015_set_power_state() function call unimplemented
    function __pm_runtime_suspend() from pm_runtime_put_autosuspend()
    if CONFIG_PM is not set.
    In case of CONFIG_PM is not set: __pm_runtime_suspend() returns -ENOSYS,
    so ads1015_read_raw() failed because ads1015_set_power_state() returns an
    error.
    
    If CONFIG_PM is disabled, there is no need to start/stop conversion.
    Fix it by adding return 0 function variant if CONFIG_PM is not set.
    
    Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
    Fixes: ecc24e72f437 ("iio: adc: Add TI ADS1015 ADC driver support")
    Tested-by: Maxim Kiselev <bigunclemax@gmail.com>
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b27a99fb28d872ba11ea73f584cadd0903f3ef2d
Author: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Date:   Tue Sep 1 11:32:18 2020 +0200

    iio: adc: mcp3422: fix locking on error path
    
    [ Upstream commit a139ffa40f0c24b753838b8ef3dcf6ad10eb7854 ]
    
    Reading from the chip should be unlocked on error path else the lock
    could never being released.
    
    Fixes: 07914c84ba30 ("iio: adc: Add driver for Microchip MCP3422/3/4 high resolution ADC")
    Fixes: 3f1093d83d71 ("iio: adc: mcp3422: fix locking scope")
    Acked-by: Jonathan Cameron <jonathan.cameron@huawei.com>
    Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
    Link: https://lore.kernel.org/r/20200901093218.1500845-1-angelo.compagnucci@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6a16aca2732f27ae8d1a398bc26134d757106aa
Author: Angelo Compagnucci <angelo.compagnucci@gmail.com>
Date:   Wed Aug 19 09:55:25 2020 +0200

    iio: adc: mcp3422: fix locking scope
    
    commit 3f1093d83d7164e4705e4232ccf76da54adfda85 upstream.
    
    Locking should be held for the entire reading sequence involving setting
    the channel, waiting for the channel switch and reading from the
    channel.
    If not, reading from a channel can result mixing with the reading from
    another channel.
    
    Fixes: 07914c84ba30 ("iio: adc: Add driver for Microchip MCP3422/3/4 high resolution ADC")
    Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
    Link: https://lore.kernel.org/r/20200819075525.1395248-1-angelo.compagnucci@gmail.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 01fa1f9090e07fb47cc270f9af46187e2f81753f
Author: Leon Romanovsky <leon@kernel.org>
Date:   Fri Sep 4 18:58:08 2020 +0300

    gcov: Disable gcov build with GCC 10
    
    [ Upstream commit cfc905f158eaa099d6258031614d11869e7ef71c ]
    
    GCOV built with GCC 10 doesn't initialize n_function variable.  This
    produces different kernel panics as was seen by Colin in Ubuntu and me
    in FC 32.
    
    As a workaround, let's disable GCOV build for broken GCC 10 version.
    
    Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1891288
    Link: https://lore.kernel.org/lkml/20200827133932.3338519-1-leon@kernel.org
    Link: https://lore.kernel.org/lkml/CAHk-=whbijeSdSvx-Xcr0DPMj0BiwhJ+uiNnDSVZcr_h_kg7UA@mail.gmail.com/
    Cc: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b00257b46a747b62482a70b81d63d98cccba310e
Author: Rander Wang <rander.wang@intel.com>
Date:   Wed Sep 2 18:42:18 2020 +0300

    ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled
    
    [ Upstream commit 13774d81f38538c5fa2924bdcdfa509155480fa6 ]
    
    In snd_hdac_device_init pm_runtime_set_active is called to
    increase child_count in parent device. But when it is failed
    to build connection with GPU for one case that integrated
    graphic gpu is disabled, snd_hdac_ext_bus_device_exit will be
    invoked to clean up a HD-audio extended codec base device. At
    this time the child_count of parent is not decreased, which
    makes parent device can't get suspended.
    
    This patch calls pm_runtime_set_suspended to decrease child_count
    in parent device in snd_hdac_device_exit to match with
    snd_hdac_device_init. pm_runtime_set_suspended can make sure that
    it will not decrease child_count if the device is already suspended.
    
    Signed-off-by: Rander Wang <rander.wang@intel.com>
    Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200902154218.1440441-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39866505b698baa404708e7029a016443f6c4024
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Thu Aug 20 17:40:02 2020 +0200

    cpufreq: intel_pstate: Refuse to turn off with HWP enabled
    
    [ Upstream commit 43298db3009f06fe5c69e1ca8b6cfc2565772fa1 ]
    
    After commit f6ebbcf08f37 ("cpufreq: intel_pstate: Implement passive
    mode with HWP enabled") it is possible to change the driver status
    to "off" via sysfs with HWP enabled, which effectively causes the
    driver to unregister itself, but HWP remains active and it forces the
    minimum performance, so even if another cpufreq driver is loaded,
    it will not be able to control the CPU frequency.
    
    For this reason, make the driver refuse to change the status to
    "off" with HWP enabled.
    
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd3d985d5b1f6b78b41ca653e13d5a30eb5b8e00
Author: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
Date:   Tue Jul 7 18:38:58 2020 +0300

    ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
    
    [ Upstream commit 26907eb605fbc3ba9dbf888f21d9d8d04471271d ]
    
    HSDK board has Micrel KSZ9031, recent commit
    bcf3440c6dd ("net: phy: micrel: add phy-mode support for the KSZ9031 PHY")
    caused a breakdown of Ethernet.
    Using 'phy-mode = "rgmii"' is not correct because accodring RGMII
    specification it is necessary to have delay on RX (PHY to MAX)
    which is not generated in case of "rgmii".
    Using "rgmii-id" adds necessary delay and solves the issue.
    
    Also adding name of PHY placed on HSDK board.
    
    Signed-off-by: Evgeniy Didin <Evgeniy.Didin@synopsys.com>
    Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Cc: Alexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e63175857d338d5889df9ad676bd105ac3001034
Author: Xie He <xie.he.0141@gmail.com>
Date:   Fri Aug 28 00:07:52 2020 -0700

    drivers/net/wan/hdlc_cisco: Add hard_header_len
    
    [ Upstream commit 1a545ebe380bf4c1433e3c136e35a77764fda5ad ]
    
    This driver didn't set hard_header_len. This patch sets hard_header_len
    for it according to its header_ops->create function.
    
    This driver's header_ops->create function (cisco_hard_header) creates
    a header of (struct hdlc_header), so hard_header_len should be set to
    sizeof(struct hdlc_header).
    
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Acked-by: Krzysztof Halasa <khc@pm.waw.pl>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60486724b0fcc0611d6787b5af7dbc35c312412b
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Mon Aug 24 12:10:33 2020 -0700

    irqchip/eznps: Fix build error for !ARC700 builds
    
    [ Upstream commit 89d29997f103d08264b0685796b420d911658b96 ]
    
    eznps driver is supposed to be platform independent however it ends up
    including stuff from inside arch/arc headers leading to rand config
    build errors.
    
    The quick hack to fix this (proper fix is too much chrun for non active
    user-base) is to add following to nps platform agnostic header.
     - copy AUX_IENABLE from arch/arc header
     - move CTOP_AUX_IACK from arch/arc/plat-eznps/*/**
    
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lkml.kernel.org/r/20200824095831.5lpkmkafelnvlpi2@linutronix.de
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 114436301bf48f7d5b8eab73b9885faab0b7cbfc
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Wed Aug 26 14:12:18 2020 -0700

    xfs: initialize the shortform attr header padding entry
    
    [ Upstream commit 125eac243806e021f33a1fdea3687eccbb9f7636 ]
    
    Don't leak kernel memory contents into the shortform attr fork.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Eric Sandeen <sandeen@redhat.com>
    Reviewed-by: Dave Chinner <dchinner@redhat.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 479fb037277d2fec63df3a8ae6492206c3e771a8
Author: Xie He <xie.he.0141@gmail.com>
Date:   Tue Aug 25 20:03:53 2020 -0700

    drivers/net/wan/lapbether: Set network_header before transmitting
    
    [ Upstream commit 91244d108441013b7367b3b4dcc6869998676473 ]
    
    Set the skb's network_header before it is passed to the underlying
    Ethernet device for transmission.
    
    This patch fixes the following issue:
    
    When we use this driver with AF_PACKET sockets, there would be error
    messages of:
       protocol 0805 is buggy, dev (Ethernet interface name)
    printed in the system "dmesg" log.
    
    This is because skbs passed down to the Ethernet device for transmission
    don't have their network_header properly set, and the dev_queue_xmit_nit
    function in net/core/dev.c complains about this.
    
    Reason of setting the network_header to this place (at the end of the
    Ethernet header, and at the beginning of the Ethernet payload):
    
    Because when this driver receives an skb from the Ethernet device, the
    network_header is also set at this place.
    
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cea06c8a39aa862e4aa2b82074abb43c0a4d989a
Author: Mohan Kumar <mkumard@nvidia.com>
Date:   Tue Aug 25 10:54:14 2020 +0530

    ALSA: hda: Fix 2 channel swapping for Tegra
    
    [ Upstream commit 216116eae43963c662eb84729507bad95214ca6b ]
    
    The Tegra HDA codec HW implementation has an issue related to not
    swapping the 2 channel Audio Sample Packet(ASP) channel mapping.
    Whatever the FL and FR mapping specified the left channel always
    comes out of left speaker and right channel on right speaker. So
    add condition to disallow the swapping of FL,FR during the playback.
    
    Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
    Acked-by: Sameer Pujar <spujar@nvidia.com>
    Link: https://lore.kernel.org/r/20200825052415.20626-2-mkumard@nvidia.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 824a4ed2767d4568a0eece73fafe0141128b4d18
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sun Aug 23 19:29:35 2020 +0800

    firestream: Fix memleak in fs_open
    
    [ Upstream commit 15ac5cdafb9202424206dc5bd376437a358963f9 ]
    
    When make_rate() fails, vcc should be freed just
    like other error paths in fs_open().
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60a585d4bc5d55bf866fa2d0cf6f17250ab6f49b
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Sun Aug 23 15:23:43 2020 +0800

    NFC: st95hf: Fix memleak in st95hf_in_send_cmd
    
    [ Upstream commit f97c04c316d8fea16dca449fdfbe101fbdfee6a2 ]
    
    When down_killable() fails, skb_resp should be freed
    just like when st95hf_spi_send() fails.
    
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ac10e8c968fbb4b0df53810581c17bd3a387f8d9
Author: Xie He <xie.he.0141@gmail.com>
Date:   Fri Aug 21 14:26:59 2020 -0700

    drivers/net/wan/lapbether: Added needed_tailroom
    
    [ Upstream commit 1ee39c1448c4e0d480c5b390e2db1987561fb5c2 ]
    
    The underlying Ethernet device may request necessary tailroom to be
    allocated by setting needed_tailroom. This driver should also set
    needed_tailroom to request the tailroom needed by the underlying
    Ethernet device to be allocated.
    
    Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
    Cc: Martin Schiller <ms@dev.tdt.de>
    Signed-off-by: Xie He <xie.he.0141@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e5f3c2a27865946563d9f81fa2e4f8856ade01d
Author: Hanjun Guo <guohanjun@huawei.com>
Date:   Wed Jul 22 17:54:21 2020 +0800

    dmaengine: acpi: Put the CSRT table after using it
    
    [ Upstream commit 7eb48dd094de5fe0e216b550e73aa85257903973 ]
    
    The acpi_get_table() should be coupled with acpi_put_table() if
    the mapped table is not used at runtime to release the table
    mapping, put the CSRT table buf after using it.
    
    Signed-off-by: Hanjun Guo <guohanjun@huawei.com>
    Link: https://lore.kernel.org/r/1595411661-15936-1-git-send-email-guohanjun@huawei.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a2ab9046c7c1dc44bb160fe9626852d271c4bba1
Author: Vineet Gupta <vgupta@synopsys.com>
Date:   Thu Jul 9 19:52:32 2020 -0700

    ARC: HSDK: wireup perf irq
    
    [ Upstream commit fe81d927b78c4f0557836661d32e41ebc957b024 ]
    
    Newer version of HSDK aka HSDK-4xD (with dual issue HS48x4 CPU) wired up
    the perf interrupt, so enable that in DT.
    This is OK for old HSDK where this irq is ignored because pct irq is not
    wired up in hardware.
    
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 373ce39221408b378889251bf450191116ef5b91
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Wed Aug 26 16:49:19 2020 -0700

    arm64: dts: ns2: Fixed QSPI compatible string
    
    [ Upstream commit 686e0a0c8c61e0e3f55321d0181fece3efd92777 ]
    
    The string was incorrectly defined before from least to most specific,
    swap the compatible strings accordingly.
    
    Fixes: ff73917d38a6 ("ARM64: dts: Add QSPI Device Tree node for NS2")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7290cb1a3aa67dcc43fecf66dae64eb2ebad18af
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Wed Aug 26 16:45:29 2020 -0700

    ARM: dts: BCM5301X: Fixed QSPI compatible string
    
    [ Upstream commit b793dab8d811e103665d6bddaaea1c25db3776eb ]
    
    The string was incorrectly defined before from least to most
    specific, swap the compatible strings accordingly.
    
    Fixes: 1c8f40650723 ("ARM: dts: BCM5301X: convert to iProc QSPI")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c63027f79c173dfea880d0f265dd1f9513181b48
Author: Douglas Anderson <dianders@chromium.org>
Date:   Thu Aug 27 07:58:41 2020 -0700

    mmc: sdhci-msm: Add retries when all tuning phases are found valid
    
    [ Upstream commit 9d5dcefb7b114d610aeb2371f6a6f119af316e43 ]
    
    As the comments in this patch say, if we tune and find all phases are
    valid it's _almost_ as bad as no phases being found valid.  Probably
    all phases are not really reliable but we didn't detect where the
    unreliable place is.  That means we'll essentially be guessing and
    hoping we get a good phase.
    
    This is not just a problem in theory.  It was causing real problems on
    a real board.  On that board, most often phase 10 is found as the only
    invalid phase, though sometimes 10 and 11 are invalid and sometimes
    just 11.  Some percentage of the time, however, all phases are found
    to be valid.  When this happens, the current logic will decide to use
    phase 11.  Since phase 11 is sometimes found to be invalid, this is a
    bad choice.  Sure enough, when phase 11 is picked we often get mmc
    errors later in boot.
    
    I have seen cases where all phases were found to be valid 3 times in a
    row, so increase the retry count to 10 just to be extra sure.
    
    Fixes: 415b5a75da43 ("mmc: sdhci-msm: Add platform_execute_tuning implementation")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20200827075809.1.If179abf5ecb67c963494db79c3bc4247d987419b@changeid
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c13561c749fed918babaa3a1d3373137d25e264
Author: Kamal Heib <kamalheib1@gmail.com>
Date:   Wed Sep 2 15:43:04 2020 +0300

    RDMA/core: Fix reported speed and width
    
    [ Upstream commit 28b0865714b315e318ac45c4fc9156f3d4649646 ]
    
    When the returned speed from __ethtool_get_link_ksettings() is
    SPEED_UNKNOWN this will lead to reporting a wrong speed and width for
    providers that uses ib_get_eth_speed(), fix that by defaulting the
    netdev_speed to SPEED_1000 in case the returned value from
    __ethtool_get_link_ksettings() is SPEED_UNKNOWN.
    
    Fixes: d41861942fc5 ("IB/core: Add generic function to extract IB speed from netdev")
    Link: https://lore.kernel.org/r/20200902124304.170912-1-kamalheib1@gmail.com
    Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0e73696ab4932be094dbd3cfff2f9122d639d8c
Author: Luo Jiaxing <luojiaxing@huawei.com>
Date:   Wed Aug 26 15:24:26 2020 +0800

    scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA
    
    [ Upstream commit 53de092f47ff40e8d4d78d590d95819d391bf2e0 ]
    
    It was discovered that sdparm will fail when attempting to disable write
    cache on a SATA disk connected via libsas.
    
    In the ATA command set the write cache state is controlled through the SET
    FEATURES operation. This is roughly corresponds to MODE SELECT in SCSI and
    the latter command is what is used in the SCSI-ATA translation layer. A
    subtle difference is that a MODE SELECT carries data whereas SET FEATURES
    is defined as a non-data command in ATA.
    
    Set the DMA data direction to DMA_NONE if the requested ATA command is
    identified as non-data.
    
    [mkp: commit desc]
    
    Fixes: fa1c1e8f1ece ("[SCSI] Add SATA support to libsas")
    Link: https://lore.kernel.org/r/1598426666-54544-1-git-send-email-luojiaxing@huawei.com
    Reviewed-by: John Garry <john.garry@huawei.com>
    Reviewed-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62057f22ad36d1274e44f481389cd3a176010e64
Author: Kamal Heib <kamalheib1@gmail.com>
Date:   Sun Jul 5 13:43:10 2020 +0300

    RDMA/rxe: Drop pointless checks in rxe_init_ports
    
    [ Upstream commit 6112ef62826e91afbae5446d5d47b38e25f47e3f ]
    
    Both pkey_tbl_len and gid_tbl_len are set in rxe_init_port_param() - so no
    need to check if they aren't set.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20200705104313.283034-2-kamalheib1@gmail.com
    Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 557f256d510e3714b1da60b4c0e42bc47459fca1
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Wed Aug 19 15:56:32 2020 +0800

    RDMA/rxe: Fix memleak in rxe_mem_init_user
    
    [ Upstream commit e3ddd6067ee62f6e76ebcf61ff08b2c729ae412b ]
    
    When page_address() fails, umem should be freed just like when
    rxe_mem_alloc() fails.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Link: https://lore.kernel.org/r/20200819075632.22285-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d406edabe7483cccfa82b15926c418b9b1f26936
Author: Dinh Nguyen <dinguyen@kernel.org>
Date:   Fri Jul 31 10:26:40 2020 -0500

    ARM: dts: socfpga: fix register entry for timer3 on Arria10
    
    [ Upstream commit 0ff5a4812be4ebd4782bbb555d369636eea164f7 ]
    
    Fixes the register address for the timer3 entry on Arria10.
    
    Fixes: 475dc86d08de4 ("arm: dts: socfpga: Add a base DTSI for Altera's Arria10 SOC")
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>