commit 7ea928a13ce52bdd1a8b057df509263db3ff167c
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Aug 5 09:58:51 2020 +0200

    Linux 5.7.13
    
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1182eb23b2549564773c2b429f3754c1042c3758
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Wed Jul 29 10:53:28 2020 +0200

    x86/i8259: Use printk_deferred() to prevent deadlock
    
    commit bdd65589593edd79b6a12ce86b3b7a7c6dae5208 upstream.
    
    0day reported a possible circular locking dependency:
    
    Chain exists of:
      &irq_desc_lock_class --> console_owner --> &port_lock_key
    
     Possible unsafe locking scenario:
    
           CPU0                    CPU1
           ----                    ----
      lock(&port_lock_key);
                                   lock(console_owner);
                                   lock(&port_lock_key);
      lock(&irq_desc_lock_class);
    
    The reason for this is a printk() in the i8259 interrupt chip driver
    which is invoked with the irq descriptor lock held, which reverses the
    lock operations vs. printk() from arbitrary contexts.
    
    Switch the printk() to printk_deferred() to avoid that.
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/87365abt2v.fsf@nanos.tec.linutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de0cd8f3814029bd6fd2a558017c5331c4062c16
Author: Wanpeng Li <wanpengli@tencent.com>
Date:   Fri Jul 31 11:12:21 2020 +0800

    KVM: SVM: Fix disable pause loop exit/pause filtering capability on SVM
    
    commit 830f01b089b12bbe93bd55f2d62837253012a30e upstream.
    
    'Commit 8566ac8b8e7c ("KVM: SVM: Implement pause loop exit logic in SVM")'
    drops disable pause loop exit/pause filtering capability completely, I
    guess it is a merge fault by Radim since disable vmexits capabilities and
    pause loop exit for SVM patchsets are merged at the same time. This patch
    reintroduces the disable pause loop exit/pause filtering capability support.
    
    Reported-by: Haiwei Li <lihaiwei@tencent.com>
    Tested-by: Haiwei Li <lihaiwei@tencent.com>
    Fixes: 8566ac8b ("KVM: SVM: Implement pause loop exit logic in SVM")
    Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
    Message-Id: <1596165141-28874-3-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 d171419448a109b60a7159f3ad69f1b3a88aa770
Author: Wanpeng Li <wanpengli@tencent.com>
Date:   Fri Jul 31 11:12:19 2020 +0800

    KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw disabled
    
    commit d2286ba7d574ba3103a421a2f9ec17cb5b0d87a1 upstream.
    
    Prevent setting the tscdeadline timer if the lapic is hw disabled.
    
    Fixes: bce87cce88 (KVM: x86: consolidate different ways to test for in-kernel LAPIC)
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
    Message-Id: <1596165141-28874-1-git-send-email-wanpengli@tencent.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03caab5a6ead085fd05d26ea503a0b908a3970f8
Author: Will Deacon <will@kernel.org>
Date:   Thu Jul 23 11:17:14 2020 +0100

    KVM: arm64: Don't inherit exec permission across page-table levels
    
    commit b757b47a2fcba584d4a32fd7ee68faca510ab96f upstream.
    
    If a stage-2 page-table contains an executable, read-only mapping at the
    pte level (e.g. due to dirty logging being enabled), a subsequent write
    fault to the same page which tries to install a larger block mapping
    (e.g. due to dirty logging having been disabled) will erroneously inherit
    the exec permission and consequently skip I-cache invalidation for the
    rest of the block.
    
    Ensure that exec permission is only inherited by write faults when the
    new mapping is of the same size as the existing one. A subsequent
    instruction abort will result in I-cache invalidation for the entire
    block mapping.
    
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Tested-by: Quentin Perret <qperret@google.com>
    Reviewed-by: Quentin Perret <qperret@google.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200723101714.15873-1-will@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c5a62853895ceb51c7990a272ade1121ed2a632
Author: Atish Patra <atish.patra@wdc.com>
Date:   Wed Jul 15 16:30:09 2020 -0700

    riscv: Parse all memory blocks to remove unusable memory
    
    [ Upstream commit fa5a198359053c8e21dcc2b39c0e13871059bc9f ]
    
    Currently, maximum physical memory allowed is equal to -PAGE_OFFSET.
    That's why we remove any memory blocks spanning beyond that size. However,
    it is done only for memblock containing linux kernel which will not work
    if there are multiple memblocks.
    
    Process all memory blocks to figure out how much memory needs to be removed
    and remove at the end instead of updating the memblock list in place.
    
    Signed-off-by: Atish Patra <atish.patra@wdc.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ec8409608c8da009fa2d45d7d30842de3f199777
Author: Xie He <xie.he.0141@gmail.com>
Date:   Fri Jul 24 09:33:47 2020 -0700

    drivers/net/wan: lapb: Corrected the usage of skb_cow
    
    [ Upstream commit 8754e1379e7089516a449821f88e1fe1ebbae5e1 ]
    
    This patch fixed 2 issues with the usage of skb_cow in LAPB drivers
    "lapbether" and "hdlc_x25":
    
    1) After skb_cow fails, kfree_skb should be called to drop a reference
    to the skb. But in both drivers, kfree_skb is not called.
    
    2) skb_cow should be called before skb_push so that is can ensure the
    safety of skb_push. But in "lapbether", it is incorrectly called after
    skb_push.
    
    More details about these 2 issues:
    
    1) The behavior of calling kfree_skb on failure is also the behavior of
    netif_rx, which is called by this function with "return netif_rx(skb);".
    So this function should follow this behavior, too.
    
    2) In "lapbether", skb_cow is called after skb_push. This results in 2
    logical issues:
       a) skb_push is not protected by skb_cow;
       b) An extra headroom of 1 byte is ensured after skb_push. This extra
          headroom has no use in this function. It also has no use in the
          upper-layer function that this function passes the skb to
          (x25_lapb_receive_frame in net/x25/x25_dev.c).
    So logically skb_cow should instead be called before skb_push.
    
    Cc: Eric Dumazet <edumazet@google.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 fe1ab9c0f047d4a89d94d06842a3bb10a6b24978
Author: Atish Patra <atish.patra@wdc.com>
Date:   Wed Jul 15 16:30:07 2020 -0700

    RISC-V: Set maximum number of mapped pages correctly
    
    [ Upstream commit d0d8aae64566b753c4330fbd5944b88af035f299 ]
    
    Currently, maximum number of mapper pages are set to the pfn calculated
    from the memblock size of the memblock containing kernel. This will work
    until that memblock spans the entire memory. However, it will be set to
    a wrong value if there are multiple memblocks defined in kernel
    (e.g. with efi runtime services).
    
    Set the the maximum value to the pfn calculated from dram size.
    
    Signed-off-by: Atish Patra <atish.patra@wdc.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cb748f1cf7d365c849f170073196698ec69df7ea
Author: Andrea Righi <andrea.righi@canonical.com>
Date:   Fri Jul 24 10:59:10 2020 +0200

    xen-netfront: fix potential deadlock in xennet_remove()
    
    [ Upstream commit c2c633106453611be07821f53dff9e93a9d1c3f0 ]
    
    There's a potential race in xennet_remove(); this is what the driver is
    doing upon unregistering a network device:
    
      1. state = read bus state
      2. if state is not "Closed":
      3.    request to set state to "Closing"
      4.    wait for state to be set to "Closing"
      5.    request to set state to "Closed"
      6.    wait for state to be set to "Closed"
    
    If the state changes to "Closed" immediately after step 1 we are stuck
    forever in step 4, because the state will never go back from "Closed" to
    "Closing".
    
    Make sure to check also for state == "Closed" in step 4 to prevent the
    deadlock.
    
    Also add a 5 sec timeout any time we wait for the bus state to change,
    to avoid getting stuck forever in wait_event().
    
    Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ef47367fd208db3ff7daa74bd32227df94b58177
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Wed Jul 22 21:58:39 2020 -0500

    cxgb4: add missing release on skb in uld_send()
    
    [ Upstream commit e6827d1abdc9b061a57d7b7d3019c4e99fabea2f ]
    
    In the implementation of uld_send(), the skb is consumed on all
    execution paths except one. Release skb when returning NET_XMIT_DROP.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 243534ad026c14d6ceb499e6791beb96141168fc
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Fri Jul 17 09:04:26 2020 -0500

    x86/stacktrace: Fix reliable check for empty user task stacks
    
    [ Upstream commit 039a7a30ec102ec866d382a66f87f6f7654f8140 ]
    
    If a user task's stack is empty, or if it only has user regs, ORC
    reports it as a reliable empty stack.  But arch_stack_walk_reliable()
    incorrectly treats it as unreliable.
    
    That happens because the only success path for user tasks is inside the
    loop, which only iterates on non-empty stacks.  Generally, a user task
    must end in a user regs frame, but an empty stack is an exception to
    that rule.
    
    Thanks to commit 71c95825289f ("x86/unwind/orc: Fix error handling in
    __unwind_start()"), unwind_start() now sets state->error appropriately.
    So now for both ORC and FP unwinders, unwind_done() and !unwind_error()
    always means the end of the stack was successfully reached.  So the
    success path for kthreads is no longer needed -- it can also be used for
    empty user tasks.
    
    Reported-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Link: https://lkml.kernel.org/r/f136a4e5f019219cbc4f4da33b30c2f44fa65b84.1594994374.git.jpoimboe@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01bb9579a34b228e873339d154367945fccd5325
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Fri Jul 17 09:04:25 2020 -0500

    x86/unwind/orc: Fix ORC for newly forked tasks
    
    [ Upstream commit 372a8eaa05998cd45b3417d0e0ffd3a70978211a ]
    
    The ORC unwinder fails to unwind newly forked tasks which haven't yet
    run on the CPU.  It correctly reads the 'ret_from_fork' instruction
    pointer from the stack, but it incorrectly interprets that value as a
    call stack address rather than a "signal" one, so the address gets
    incorrectly decremented in the call to orc_find(), resulting in bad ORC
    data.
    
    Fix it by forcing 'ret_from_fork' frames to be signal frames.
    
    Reported-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Link: https://lkml.kernel.org/r/f91a8778dde8aae7f71884b5df2b16d552040441.1594994374.git.jpoimboe@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49cfa36d67818b84b60efd6adfbc88a2b5e2958f
Author: Raviteja Narayanam <raviteja.narayanam@xilinx.com>
Date:   Fri Jul 3 19:26:12 2020 +0530

    i2c: cadence: Clear HOLD bit at correct time in Rx path
    
    [ Upstream commit 12d4d9ec5eeecd712c73772e422b6d082e66b046 ]
    
    There are few issues on Zynq SOC observed in the stress tests causing
    timeout errors. Even though all the data is received, timeout error
    is thrown. This is due to an IP bug in which the COMP bit in ISR is
    not set at end of transfer and completion interrupt is not generated.
    
    This bug is seen on Zynq platforms when the following condition occurs:
    Master read & HOLD bit set & Transfer size register reaches '0'.
    
    One workaround is to clear the HOLD bit before the transfer size
    register reaches '0'. The current implementation checks for this at
    the start of the loop and also only for less than FIFO DEPTH case
    (ignoring the equal to case).
    
    So clear the HOLD bit when the data yet to receive is less than or
    equal to the FIFO DEPTH. This avoids the IP bug condition.
    
    Signed-off-by: Raviteja Narayanam <raviteja.narayanam@xilinx.com>
    Acked-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f59a4ed5a087ec227689c673c2252d89d131292
Author: Raviteja Narayanam <raviteja.narayanam@xilinx.com>
Date:   Fri Jul 3 19:25:49 2020 +0530

    Revert "i2c: cadence: Fix the hold bit setting"
    
    [ Upstream commit 0db9254d6b896b587759e2c844c277fb1a6da5b9 ]
    
    This reverts commit d358def706880defa4c9e87381c5bf086a97d5f9.
    
    There are two issues with "i2c: cadence: Fix the hold bit setting" commit.
    
    1. In case of combined message request from user space, when the HOLD
    bit is cleared in cdns_i2c_mrecv function, a STOP condition is sent
    on the bus even before the last message is started. This is because when
    the HOLD bit is cleared, the FIFOS are empty and there is no pending
    transfer. The STOP condition should occur only after the last message
    is completed.
    
    2. The code added by the commit is redundant. Driver is handling the
    setting/clearing of HOLD bit in right way before the commit.
    
    The setting of HOLD bit based on 'bus_hold_flag' is taken care in
    cdns_i2c_master_xfer function even before cdns_i2c_msend/cdns_i2c_recv
    functions.
    
    The clearing of HOLD bit is taken care at the end of cdns_i2c_msend and
    cdns_i2c_recv functions based on bus_hold_flag and byte count.
    Since clearing of HOLD bit is done after the slave address is written to
    the register (writing to address register triggers the message transfer),
    it is ensured that STOP condition occurs at the right time after
    completion of the pending transfer (last message).
    
    Signed-off-by: Raviteja Narayanam <raviteja.narayanam@xilinx.com>
    Acked-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7c89f1dbef3366cb4e1055550ff19d48bd22bfe1
Author: Paolo Pisati <paolo.pisati@canonical.com>
Date:   Tue Jul 21 18:17:10 2020 +0200

    selftest: txtimestamp: fix net ns entry logic
    
    [ Upstream commit b346c0c85892cb8c53e8715734f71ba5bbec3387 ]
    
    According to 'man 8 ip-netns', if `ip netns identify` returns an empty string,
    there's no net namespace associated with current PID: fix the net ns entrance
    logic.
    
    Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 705beef22791a98f953ea719bd7b32274ac073ac
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Tue Jul 21 15:23:12 2020 +0900

    net: ethernet: ravb: exit if re-initialization fails in tx timeout
    
    [ Upstream commit 015c5d5e6aa3523c758a70eb87b291cece2dbbb4 ]
    
    According to the report of [1], this driver is possible to cause
    the following error in ravb_tx_timeout_work().
    
    ravb e6800000.ethernet ethernet: failed to switch device to config mode
    
    This error means that the hardware could not change the state
    from "Operation" to "Configuration" while some tx and/or rx queue
    are operating. After that, ravb_config() in ravb_dmac_init() will fail,
    and then any descriptors will be not allocaled anymore so that NULL
    pointer dereference happens after that on ravb_start_xmit().
    
    To fix the issue, the ravb_tx_timeout_work() should check
    the return values of ravb_stop_dma() and ravb_dmac_init().
    If ravb_stop_dma() fails, ravb_tx_timeout_work() re-enables TX and RX
    and just exits. If ravb_dmac_init() fails, just exits.
    
    [1]
    https://lore.kernel.org/linux-renesas-soc/20200518045452.2390-1-dirk.behme@de.bosch.com/
    
    Reported-by: Dirk Behme <dirk.behme@de.bosch.com>
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Reviewed-by: Sergei Shtylyov <sergei.shtylyov@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 058750909bb932560063e5e6052c9a159431d549
Author: Liam Beguin <liambeguin@gmail.com>
Date:   Sat Jul 18 16:10:21 2020 -0400

    parisc: add support for cmpxchg on u8 pointers
    
    [ Upstream commit b344d6a83d01c52fddbefa6b3b4764da5b1022a0 ]
    
    The kernel test bot reported[1] that using set_mask_bits on a u8 causes
    the following issue on parisc:
    
            hppa-linux-ld: drivers/phy/ti/phy-tusb1210.o: in function `tusb1210_probe':
            >> (.text+0x2f4): undefined reference to `__cmpxchg_called_with_bad_pointer'
            >> hppa-linux-ld: (.text+0x324): undefined reference to `__cmpxchg_called_with_bad_pointer'
            hppa-linux-ld: (.text+0x354): undefined reference to `__cmpxchg_called_with_bad_pointer'
    
    Add support for cmpxchg on u8 pointers.
    
    [1] https://lore.kernel.org/patchwork/patch/1272617/#1468946
    
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Liam Beguin <liambeguin@gmail.com>
    Tested-by: Dave Anglin <dave.anglin@bell.net>
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4255c45aef23f960c8cb1f9ba8995b01e86a97e7
Author: Vincent Chen <vincent.chen@sifive.com>
Date:   Fri Jul 10 10:40:54 2020 +0800

    riscv: kasan: use local_tlb_flush_all() to avoid uninitialized __sbi_rfence
    
    [ Upstream commit 4cb699d0447be8e0906539f93cbe41e19598ee5a ]
    
    It fails to boot the v5.8-rc4 kernel with CONFIG_KASAN because kasan_init
    and kasan_early_init use uninitialized __sbi_rfence as executing the
    tlb_flush_all(). Actually, at this moment, only the CPU which is
    responsible for the system initialization enables the MMU. Other CPUs are
    parking at the .Lsecondary_start. Hence the tlb_flush_all() is able to be
    replaced by local_tlb_flush_all() to avoid using uninitialized
    __sbi_rfence.
    
    Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 01f3ac5fcc8824306898ea25af0e9eadafcd5da5
Author: Ming Lei <ming.lei@redhat.com>
Date:   Mon Jul 20 10:54:35 2020 +0800

    scsi: core: Run queue in case of I/O resource contention failure
    
    [ Upstream commit 3f0dcfbcd2e162fc0a11c1f59b7acd42ee45f126 ]
    
    I/O requests may be held in scheduler queue because of resource contention.
    The starvation scenario was handled properly in the regular completion
    path but we failed to account for it during I/O submission. This lead to
    the hang captured below. Make sure we run the queue when resource
    contention is encountered in the submission path.
    
    [   39.054963] scsi 13:0:0:0: rejecting I/O to dead device
    [   39.058700] scsi 13:0:0:0: rejecting I/O to dead device
    [   39.087855] sd 13:0:0:1: [sdd] Synchronizing SCSI cache
    [   39.088909] scsi 13:0:0:1: rejecting I/O to dead device
    [   39.095351] scsi 13:0:0:1: rejecting I/O to dead device
    [   39.096962] scsi 13:0:0:1: rejecting I/O to dead device
    [  247.021859] INFO: task scsi-stress-rem:813 blocked for more than 122 seconds.
    [  247.023258]       Not tainted 5.8.0-rc2 #8
    [  247.024069] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    [  247.025331] scsi-stress-rem D    0   813    802 0x00004000
    [  247.025334] Call Trace:
    [  247.025354]  __schedule+0x504/0x55f
    [  247.027987]  schedule+0x72/0xa8
    [  247.027991]  blk_mq_freeze_queue_wait+0x63/0x8c
    [  247.027994]  ? do_wait_intr_irq+0x7a/0x7a
    [  247.027996]  blk_cleanup_queue+0x4b/0xc9
    [  247.028000]  __scsi_remove_device+0xf6/0x14e
    [  247.028002]  scsi_remove_device+0x21/0x2b
    [  247.029037]  sdev_store_delete+0x58/0x7c
    [  247.029041]  kernfs_fop_write+0x10d/0x14f
    [  247.031281]  vfs_write+0xa2/0xdf
    [  247.032670]  ksys_write+0x6b/0xb3
    [  247.032673]  do_syscall_64+0x56/0x82
    [  247.034053]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  247.034059] RIP: 0033:0x7f69f39e9008
    [  247.036330] Code: Bad RIP value.
    [  247.036331] RSP: 002b:00007ffdd8116498 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    [  247.037613] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f69f39e9008
    [  247.039714] RDX: 0000000000000002 RSI: 000055cde92a0ab0 RDI: 0000000000000001
    [  247.039715] RBP: 000055cde92a0ab0 R08: 000000000000000a R09: 00007f69f3a79e80
    [  247.039716] R10: 000000000000000a R11: 0000000000000246 R12: 00007f69f3abb780
    [  247.039717] R13: 0000000000000002 R14: 00007f69f3ab6740 R15: 0000000000000002
    
    Link: https://lore.kernel.org/r/20200720025435.812030-1-ming.lei@redhat.com
    Cc: linux-block@vger.kernel.org
    Cc: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9663e0251f38de2215d766034c851eaf3f3d25e
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Sat Jul 18 00:31:49 2020 -0500

    nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
    
    [ Upstream commit 1e8fd3a97f2d83a7197876ceb4f37b4c2b00a0f3 ]
    
    The implementation of s3fwrn5_recv_frame() is supposed to consume skb on
    all execution paths. Release skb before returning -ENODEV.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f4ad9dbc0224db919f5387fa146e07f2006f50f2
Author: Oded Gabbay <oded.gabbay@gmail.com>
Date:   Sun Jul 12 23:34:57 2020 +0300

    habanalabs: prevent possible out-of-bounds array access
    
    [ Upstream commit cea7a0449ea3fa4883bf5dc8397f000d6b67d6cd ]
    
    Queue index is received from the user. Therefore, we must validate it
    before using it to access the queue props array.
    
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Reviewed-by: Tomer Tayar <ttayar@habana.ai>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15692a520ee4d3d21d78b5e63cf7467d691cf1db
Author: Daniele Albano <d.albano@gmail.com>
Date:   Sat Jul 18 14:15:16 2020 -0600

    io_uring: always allow drain/link/hardlink/async sqe flags
    
    [ Upstream commit 61710e437f2807e26a3402543bdbb7217a9c8620 ]
    
    We currently filter these for timeout_remove/async_cancel/files_update,
    but we only should be filtering for fixed file and buffer select. This
    also causes a second read of sqe->flags, which isn't needed.
    
    Just check req->flags for the relevant bits. This then allows these
    commands to be used in links, for example, like everything else.
    
    Signed-off-by: Daniele Albano <d.albano@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 35d0ab9e3de8515d48c31086f1765ab5f149976c
Author: Paolo Pisati <paolo.pisati@canonical.com>
Date:   Thu Jul 16 17:51:14 2020 +0200

    selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
    
    [ Upstream commit aba69d49fb49c9166596dd78926514173b7f9ab5 ]
    
    Fix ip_defrag.sh when CONFIG_NF_DEFRAG_IPV6=m:
    
    $ sudo ./ip_defrag.sh
    + set -e
    + mktemp -u XXXXXX
    + readonly NETNS=ns-rGlXcw
    + trap cleanup EXIT
    + setup
    + ip netns add ns-rGlXcw
    + ip -netns ns-rGlXcw link set lo up
    + ip netns exec ns-rGlXcw sysctl -w net.ipv4.ipfrag_high_thresh=9000000
    + ip netns exec ns-rGlXcw sysctl -w net.ipv4.ipfrag_low_thresh=7000000
    + ip netns exec ns-rGlXcw sysctl -w net.ipv4.ipfrag_time=1
    + ip netns exec ns-rGlXcw sysctl -w net.ipv6.ip6frag_high_thresh=9000000
    + ip netns exec ns-rGlXcw sysctl -w net.ipv6.ip6frag_low_thresh=7000000
    + ip netns exec ns-rGlXcw sysctl -w net.ipv6.ip6frag_time=1
    + ip netns exec ns-rGlXcw sysctl -w net.netfilter.nf_conntrack_frag6_high_thresh=9000000
    + cleanup
    + ip netns del ns-rGlXcw
    
    $ ls -la /proc/sys/net/netfilter/nf_conntrack_frag6_high_thresh
    ls: cannot access '/proc/sys/net/netfilter/nf_conntrack_frag6_high_thresh': No such file or directory
    
    $ sudo modprobe nf_defrag_ipv6
    $ ls -la /proc/sys/net/netfilter/nf_conntrack_frag6_high_thresh
    -rw-r--r-- 1 root root 0 Jul 14 12:34 /proc/sys/net/netfilter/nf_conntrack_frag6_high_thresh
    
    Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
    Reviewed-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 653070b08c76c75cdaec48d7afc464caa027296a
Author: Laurence Oberman <loberman@redhat.com>
Date:   Tue Jul 14 18:08:05 2020 -0400

    qed: Disable "MFW indication via attention" SPAM every 5 minutes
    
    [ Upstream commit 1d61e21852d3161f234b9656797669fe185c251b ]
    
    This is likely firmware causing this but its starting to annoy customers.
    Change the message level to verbose to prevent the spam.
    Note that this seems to only show up with ISCSI enabled on the HBA via the
    qedi driver.
    
    Signed-off-by: Laurence Oberman <loberman@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1ba55a5f2ff43ef966d5bbf3813b728a563b347
Author: Paolo Pisati <paolo.pisati@canonical.com>
Date:   Tue Jul 14 17:40:55 2020 +0200

    selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
    
    [ Upstream commit 651149f60376758a4759f761767965040f9e4464 ]
    
    During setup():
    ...
            for ns in h0 r1 h1 h2 h3
            do
                    create_ns ${ns}
            done
    ...
    
    while in cleanup():
    ...
            for n in h1 r1 h2 h3 h4
            do
                    ip netns del ${n} 2>/dev/null
            done
    ...
    
    and after removing the stderr redirection in cleanup():
    
    $ sudo ./fib_nexthop_multiprefix.sh
    ...
    TEST: IPv4: host 0 to host 3, mtu 1400                              [ OK ]
    TEST: IPv6: host 0 to host 3, mtu 1400                              [ OK ]
    Cannot remove namespace file "/run/netns/h4": No such file or directory
    $ echo $?
    1
    
    and a non-zero return code, make kselftests fail (even if the test
    itself is fine):
    
    ...
    not ok 34 selftests: net: fib_nexthop_multiprefix.sh # exit=1
    ...
    
    Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
    Reviewed-by: David Ahern <dsahern@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f9286c0aa4e2f8315a1957a5420aa4b0fcb1b7bd
Author: Geert Uytterhoeven <geert@linux-m68k.org>
Date:   Mon Jul 13 13:05:13 2020 +0200

    usb: hso: Fix debug compile warning on sparc32
    
    [ Upstream commit e0484010ec05191a8edf980413fc92f28050c1cc ]
    
    On sparc32, tcflag_t is "unsigned long", unlike on all other
    architectures, where it is "unsigned int":
    
        drivers/net/usb/hso.c: In function ‘hso_serial_set_termios’:
        include/linux/kern_levels.h:5:18: warning: format ‘%d’ expects argument of type ‘unsigned int’, but argument 4 has type ‘tcflag_t {aka long unsigned int}’ [-Wformat=]
        drivers/net/usb/hso.c:1393:3: note: in expansion of macro ‘hso_dbg’
           hso_dbg(0x16, "Termios called with: cflags new[%d] - old[%d]\n",
           ^~~~~~~
        include/linux/kern_levels.h:5:18: warning: format ‘%d’ expects argument of type ‘unsigned int’, but argument 5 has type ‘tcflag_t {aka long unsigned int}’ [-Wformat=]
        drivers/net/usb/hso.c:1393:3: note: in expansion of macro ‘hso_dbg’
           hso_dbg(0x16, "Termios called with: cflags new[%d] - old[%d]\n",
           ^~~~~~~
    
    As "unsigned long" is 32-bit on sparc32, fix this by casting all tcflag_t
    parameters to "unsigned int".
    While at it, use "%u" to format unsigned numbers.
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9b2b5d3ae916716aaec67c2bd8d379d6f27d93e5
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Fri Jun 12 09:38:00 2020 +0200

    iwlwifi: fix crash in iwl_dbg_tlv_alloc_trigger
    
    [ Upstream commit ea0cca61d628662e4a1b26c77c7646f9a0257069 ]
    
    The tlv passed to iwl_dbg_tlv_alloc_trigger comes from a loaded firmware
    file. The memory can be marked as read-only as firmware could be
    shared. In anyway, writing to this memory is not expected. So,
    iwl_dbg_tlv_alloc_trigger can crash now:
    
      BUG: unable to handle page fault for address: ffffae2c01bfa794
      PF: supervisor write access in kernel mode
      PF: error_code(0x0003) - permissions violation
      PGD 107d51067 P4D 107d51067 PUD 107d52067 PMD 659ad2067 PTE 8000000662298161
      CPU: 2 PID: 161 Comm: kworker/2:1 Not tainted 5.7.0-3.gad96a07-default #1 openSUSE Tumbleweed (unreleased)
      RIP: 0010:iwl_dbg_tlv_alloc_trigger+0x25/0x60 [iwlwifi]
      Code: eb f2 0f 1f 00 66 66 66 66 90 83 7e 04 33 48 89 f8 44 8b 46 10 48 89 f7 76 40 41 8d 50 ff 83 fa 19 77 23 8b 56 20 85 d2 75 07 <c7> 46 20 ff ff ff ff 4b 8d 14 40 48 c1 e2 04 48 8d b4 10 00 05 00
      RSP: 0018:ffffae2c00417ce8 EFLAGS: 00010246
      RAX: ffff8f0522334018 RBX: ffff8f0522334018 RCX: ffffffffc0fc26c0
      RDX: 0000000000000000 RSI: ffffae2c01bfa774 RDI: ffffae2c01bfa774
      RBP: 0000000000000000 R08: 0000000000000004 R09: 0000000000000001
      R10: 0000000000000034 R11: ffffae2c01bfa77c R12: ffff8f0522334230
      R13: 0000000001000009 R14: ffff8f0523fdbc00 R15: ffff8f051f395800
      FS:  0000000000000000(0000) GS:ffff8f0527c80000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffffae2c01bfa794 CR3: 0000000389eba000 CR4: 00000000000006e0
      Call Trace:
       iwl_dbg_tlv_alloc+0x79/0x120 [iwlwifi]
       iwl_parse_tlv_firmware.isra.0+0x57d/0x1550 [iwlwifi]
       iwl_req_fw_callback+0x3f8/0x6a0 [iwlwifi]
       request_firmware_work_func+0x47/0x90
       process_one_work+0x1e3/0x3b0
       worker_thread+0x46/0x340
       kthread+0x115/0x140
       ret_from_fork+0x1f/0x40
    
    As can be seen, write bit is not set in the PTE. Read of
    trig->occurrences succeeds in iwl_dbg_tlv_alloc_trigger, but
    trig->occurrences = cpu_to_le32(-1); fails there, obviously.
    
    This is likely because we (at SUSE) use compressed firmware and that is
    marked as RO after decompression (see fw_map_paged_buf).
    
    Fix it by creating a temporary buffer in case we need to change the
    memory.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Reported-by: Dieter Nützel <Dieter@nuetzel-hh.de>
    Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Cc: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Cc: Luca Coelho <luciano.coelho@intel.com>
    Cc: Intel Linux Wireless <linuxwifi@intel.com>
    Cc: Kalle Valo <kvalo@codeaurora.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: linux-wireless@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/20200612073800.27742-1-jslaby@suse.cz
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8eb0a0344978db9ab6cbb425e9c7a1a668a68698
Author: Lorenzo Bianconi <lorenzo@kernel.org>
Date:   Sat May 30 23:51:27 2020 +0200

    mt76: mt7615: fix lmac queue debugsfs entry
    
    [ Upstream commit d941f47caa386931c3b598ad1b43d5ddd65869aa ]
    
    acs and wmm index are swapped in mt7615_queues_acq respect to the hw
    design
    
    Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c5b77c8a6f1f679edd448816c2dbe2b8ad9fbc9
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sat Aug 1 07:07:50 2020 +0000

    vxlan: fix memleak of fdb
    
    [ Upstream commit fda2ec62cf1aa7cbee52289dc8059cd3662795da ]
    
    When vxlan interface is deleted, all fdbs are deleted by vxlan_flush().
    vxlan_flush() flushes fdbs but it doesn't delete fdb, which contains
    all-zeros-mac because it is deleted by vxlan_uninit().
    But vxlan_uninit() deletes only the fdb, which contains both all-zeros-mac
    and default vni.
    So, the fdb, which contains both all-zeros-mac and non-default vni
    will not be deleted.
    
    Test commands:
        ip link add vxlan0 type vxlan dstport 4789 external
        ip link set vxlan0 up
        bridge fdb add to 00:00:00:00:00:00 dst 172.0.0.1 dev vxlan0 via lo \
                src_vni 10000 self permanent
        ip link del vxlan0
    
    kmemleak reports as follows:
    unreferenced object 0xffff9486b25ced88 (size 96):
      comm "bridge", pid 2151, jiffies 4294701712 (age 35506.901s)
      hex dump (first 32 bytes):
        02 00 00 00 ac 00 00 01 40 00 09 b1 86 94 ff ff  ........@.......
        46 02 00 00 00 00 00 00 a7 03 00 00 12 b5 6a 6b  F.............jk
      backtrace:
        [<00000000c10cf651>] vxlan_fdb_append.part.51+0x3c/0xf0 [vxlan]
        [<000000006b31a8d9>] vxlan_fdb_create+0x184/0x1a0 [vxlan]
        [<0000000049399045>] vxlan_fdb_update+0x12f/0x220 [vxlan]
        [<0000000090b1ef00>] vxlan_fdb_add+0x12a/0x1b0 [vxlan]
        [<0000000056633c2c>] rtnl_fdb_add+0x187/0x270
        [<00000000dd5dfb6b>] rtnetlink_rcv_msg+0x264/0x490
        [<00000000fc44dd54>] netlink_rcv_skb+0x4a/0x110
        [<00000000dff433e7>] netlink_unicast+0x18e/0x250
        [<00000000b87fb421>] netlink_sendmsg+0x2e9/0x400
        [<000000002ed55153>] ____sys_sendmsg+0x237/0x260
        [<00000000faa51c66>] ___sys_sendmsg+0x88/0xd0
        [<000000006c3982f1>] __sys_sendmsg+0x4e/0x80
        [<00000000a8f875d2>] do_syscall_64+0x56/0xe0
        [<000000003610eefa>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    unreferenced object 0xffff9486b1c40080 (size 128):
      comm "bridge", pid 2157, jiffies 4294701754 (age 35506.866s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 f8 dc 42 b2 86 94 ff ff  ..........B.....
        6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
      backtrace:
        [<00000000a2981b60>] vxlan_fdb_create+0x67/0x1a0 [vxlan]
        [<0000000049399045>] vxlan_fdb_update+0x12f/0x220 [vxlan]
        [<0000000090b1ef00>] vxlan_fdb_add+0x12a/0x1b0 [vxlan]
        [<0000000056633c2c>] rtnl_fdb_add+0x187/0x270
        [<00000000dd5dfb6b>] rtnetlink_rcv_msg+0x264/0x490
        [<00000000fc44dd54>] netlink_rcv_skb+0x4a/0x110
        [<00000000dff433e7>] netlink_unicast+0x18e/0x250
        [<00000000b87fb421>] netlink_sendmsg+0x2e9/0x400
        [<000000002ed55153>] ____sys_sendmsg+0x237/0x260
        [<00000000faa51c66>] ___sys_sendmsg+0x88/0xd0
        [<000000006c3982f1>] __sys_sendmsg+0x4e/0x80
        [<00000000a8f875d2>] do_syscall_64+0x56/0xe0
        [<000000003610eefa>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fixes: 3ad7a4b141eb ("vxlan: support fdb and learning in COLLECT_METADATA mode")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2631484864da8e9d8988df1c030ec3805113dcd8
Author: Wei Li <liwei391@huawei.com>
Date:   Fri Jul 24 15:11:10 2020 +0800

    perf tools: Fix record failure when mixed with ARM SPE event
    
    [ Upstream commit bd3c628f8fafa6cbd6a1ca440034b841f0080160 ]
    
    When recording with cache-misses and arm_spe_x event, I found that it
    will just fail without showing any error info if i put cache-misses
    after 'arm_spe_x' event.
    
      [root@localhost 0620]# perf record -e cache-misses \
                                    -e arm_spe_0/ts_enable=1,pct_enable=1,pa_enable=1,load_filter=1,jitter=1,store_filter=1,min_latency=0/ sleep 1
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.067 MB perf.data ]
      [root@localhost 0620]#
      [root@localhost 0620]# perf record -e arm_spe_0/ts_enable=1,pct_enable=1,pa_enable=1,load_filter=1,jitter=1,store_filter=1,min_latency=0/ \
                                         -e  cache-misses sleep 1
      [root@localhost 0620]#
    
    The current code can only work if the only event to be traced is an
    'arm_spe_x', or if it is the last event to be specified. Otherwise the
    last event type will be checked against all the arm_spe_pmus[i]->types,
    none will match and an out of bound 'i' index will be used in
    arm_spe_recording_init().
    
    We don't support concurrent multiple arm_spe_x events currently, that
    is checked in arm_spe_recording_options(), and it will show the relevant
    info. So add the check and record of the first found 'arm_spe_pmu' to
    fix this issue here.
    
    Fixes: ffd3d18c20b8 ("perf tools: Add ARM Statistical Profiling Extensions (SPE) support")
    Signed-off-by: Wei Li <liwei391@huawei.com>
    Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Tested-by-by: Leo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kim Phillips <kim.phillips@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lore.kernel.org/lkml/20200724071111.35593-2-liwei391@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 017193553c93c284466d9e7ebe60e8b61e6a4c10
Author: Xin Xiong <xiongx18@fudan.edu.cn>
Date:   Thu Jul 30 18:29:41 2020 +0800

    net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
    
    [ Upstream commit e692139e6af339a1495ef401b2d95f7f9d1c7a44 ]
    
    The function invokes bpf_prog_inc(), which increases the reference
    count of a bpf_prog object "rq->xdp_prog" if the object isn't NULL.
    
    The refcount leak issues take place in two error handling paths. When
    either mlx5_wq_ll_create() or mlx5_wq_cyc_create() fails, the function
    simply returns the error code and forgets to drop the reference count
    increased earlier, causing a reference count leak of "rq->xdp_prog".
    
    Fix this issue by jumping to the error handling path err_rq_wq_destroy
    while either function fails.
    
    Fixes: 422d4c401edd ("net/mlx5e: RX, Split WQ objects for different RQ types")
    Signed-off-by: Xin Xiong <xiongx18@fudan.edu.cn>
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a04c4b395192523d8f3bd9f9baae56e491e80f09
Author: Jianbo Liu <jianbol@mellanox.com>
Date:   Thu Jul 2 01:06:37 2020 +0000

    net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring
    
    [ Upstream commit 0faddfe6b7953e224a1283f89f671ef6a9ba73de ]
    
    The modified flow_context fields in FTE must be indicated in
    modify_enable bitmask. Previously, the misc bit in modify_enable is
    always set as source vport must be set for each rule. So, when parsing
    vxlan/gre/geneve/qinq rules, this bit is not set because those are all
    from the same misc fileds that source vport fields are located at, and
    we don't need to set the indicator twice.
    
    After adding per vport tables for mirroring, misc bit is not set, then
    firmware syndrome happens. To fix it, set the bit wherever misc fileds
    are changed. This also makes it unnecessary to check misc fields and set
    the misc bit accordingly in metadata matching, so here remove it.
    
    Besides, flow_source must be specified for uplink because firmware
    will check it and some actions are only allowed for packets received
    from uplink.
    
    Fixes: 96e326878fa5 ("net/mlx5e: Eswitch, Use per vport tables for mirroring")
    Signed-off-by: Jianbo Liu <jianbol@mellanox.com>
    Reviewed-by: Chris Mi <chrism@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b23edecdd956ac83905f4095d79a6b80a7280d74
Author: Wang Hai <wanghai38@huawei.com>
Date:   Thu Jul 30 15:30:00 2020 +0800

    net: gemini: Fix missing clk_disable_unprepare() in error path of gemini_ethernet_port_probe()
    
    [ Upstream commit 85496a29224188051b6135eb38da8afd4c584765 ]
    
    Fix the missing clk_disable_unprepare() before return
    from gemini_ethernet_port_probe() in the error handling case.
    
    Fixes: 4d5ae32f5e1e ("net: ethernet: Add a driver for Gemini gigabit ethernet")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 370a5b59dfde43e02bde05951867bc31cbbf9c93
Author: Shannon Nelson <snelson@pensando.io>
Date:   Wed Jul 29 10:52:17 2020 -0700

    ionic: unlock queue mutex in error path
    
    [ Upstream commit 59929fbb45e06da7d501d3a97f10a91912181f7c ]
    
    On an error return, jump to the unlock at the end to be sure
    to unlock the queue_lock mutex.
    
    Fixes: 0925e9db4dc8 ("ionic: use mutex to protect queue operations")
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Julia Lawall <julia.lawall@lip6.fr>
    Signed-off-by: Shannon Nelson <snelson@pensando.io>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4e6da6f098ff11b84d1464c16491c7bd811c10e5
Author: Landen Chao <landen.chao@mediatek.com>
Date:   Wed Jul 29 10:15:17 2020 +0200

    net: ethernet: mtk_eth_soc: fix MTU warnings
    
    [ Upstream commit 555a893303872e044fb86f0a5834ce78d41ad2e2 ]
    
    in recent kernel versions there are warnings about incorrect MTU size
    like these:
    
    eth0: mtu greater than device maximum
    mtk_soc_eth 1b100000.ethernet eth0: error -22 setting MTU to include DSA overhead
    
    Fixes: bfcb813203e6 ("net: dsa: configure the MTU for switch ports")
    Fixes: 72579e14a1d3 ("net: dsa: don't fail to probe if we couldn't set the MTU")
    Fixes: 7a4c53bee332 ("net: report invalid mtu value via netlink extack")
    Signed-off-by: Landen Chao <landen.chao@mediatek.com>
    Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1ded3ed1c29e084bd9b787fc219e05a50bffe1c9
Author: Lu Wei <luwei32@huawei.com>
Date:   Wed Jul 29 11:50:05 2020 +0800

    net: nixge: fix potential memory leak in nixge_probe()
    
    [ Upstream commit 366228ed01f6882cc203e3d5b40010dfae0be1c3 ]
    
    If some processes in nixge_probe() fail, free_netdev(dev)
    needs to be called to aviod a memory leak.
    
    Fixes: 87ab207981ec ("net: nixge: Separate ctrl and dma resources")
    Fixes: abcd3d6fc640 ("net: nixge: Fix error path for obtaining mac address")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Lu Wei <luwei32@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cffcb4a3f4c6e830ef2d1d9cfb261562ad2af0f8
Author: Hangbin Liu <liuhangbin@gmail.com>
Date:   Mon Jul 27 19:04:55 2020 +0800

    selftests/bpf: fix netdevsim trap_flow_action_cookie read
    
    [ Upstream commit 4bbca662df2523ff7ad3224463f1f28e6a118044 ]
    
    When read netdevsim trap_flow_action_cookie, we need to init it first,
    or we will get "Invalid argument" error.
    
    Fixes: d3cbb907ae57 ("netdevsim: add ACL trap reporting cookie as a metadata")
    Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15a9441c207a546ae7cadfe092aea5ae9751c967
Author: Alain Michaud <alainm@chromium.org>
Date:   Mon Jul 27 20:48:55 2020 +0000

    Bluetooth: fix kernel oops in store_pending_adv_report
    
    [ Upstream commit a2ec905d1e160a33b2e210e45ad30445ef26ce0e ]
    
    Fix kernel oops observed when an ext adv data is larger than 31 bytes.
    
    This can be reproduced by setting up an advertiser with advertisement
    larger than 31 bytes.  The issue is not sensitive to the advertisement
    content.  In particular, this was reproduced with an advertisement of
    229 bytes filled with 'A'.  See stack trace below.
    
    This is fixed by not catching ext_adv as legacy adv are only cached to
    be able to concatenate a scanable adv with its scan response before
    sending it up through mgmt.
    
    With ext_adv, this is no longer necessary.
    
      general protection fault: 0000 [#1] SMP PTI
      CPU: 6 PID: 205 Comm: kworker/u17:0 Not tainted 5.4.0-37-generic #41-Ubuntu
      Hardware name: Dell Inc. XPS 15 7590/0CF6RR, BIOS 1.7.0 05/11/2020
      Workqueue: hci0 hci_rx_work [bluetooth]
      RIP: 0010:hci_bdaddr_list_lookup+0x1e/0x40 [bluetooth]
      Code: ff ff e9 26 ff ff ff 0f 1f 44 00 00 0f 1f 44 00 00 55 48 8b 07 48 89 e5 48 39 c7 75 0a eb 24 48 8b 00 48 39 f8 74 1c 44 8b 06 <44> 39 40 10 75 ef 44 0f b7 4e 04 66 44 39 48 14 75 e3 38 50 16 75
      RSP: 0018:ffffbc6a40493c70 EFLAGS: 00010286
      RAX: 4141414141414141 RBX: 000000000000001b RCX: 0000000000000000
      RDX: 0000000000000000 RSI: ffff9903e76c100f RDI: ffff9904289d4b28
      RBP: ffffbc6a40493c70 R08: 0000000093570362 R09: 0000000000000000
      R10: 0000000000000000 R11: ffff9904344eae38 R12: ffff9904289d4000
      R13: 0000000000000000 R14: 00000000ffffffa3 R15: ffff9903e76c100f
      FS: 0000000000000000(0000) GS:ffff990434580000(0000) knlGS:0000000000000000
      CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007feed125a000 CR3: 00000001b860a003 CR4: 00000000003606e0
      Call Trace:
        process_adv_report+0x12e/0x560 [bluetooth]
        hci_le_meta_evt+0x7b2/0xba0 [bluetooth]
        hci_event_packet+0x1c29/0x2a90 [bluetooth]
        hci_rx_work+0x19b/0x360 [bluetooth]
        process_one_work+0x1eb/0x3b0
        worker_thread+0x4d/0x400
        kthread+0x104/0x140
    
    Fixes: c215e9397b00 ("Bluetooth: Process extended ADV report event")
    Reported-by: Andy Nguyen <theflow@google.com>
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Reported-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
    Signed-off-by: Alain Michaud <alainm@chromium.org>
    Tested-by: Sonny Sasaka <sonnysasaka@chromium.org>
    Acked-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9e8290bddb8e5eb5cc4342b290557de48c6ebea
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Thu Jul 30 10:56:49 2020 +0100

    arm64: csum: Fix handling of bad packets
    
    [ Upstream commit 05fb3dbda187bbd9cc1cd0e97e5d6595af570ac6 ]
    
    Although iph is expected to point to at least 20 bytes of valid memory,
    ihl may be bogus, for example on reception of a corrupt packet. If it
    happens to be less than 5, we really don't want to run away and
    dereference 16GB worth of memory until it wraps back to exactly zero...
    
    Fixes: 0e455d8e80aa ("arm64: Implement optimised IP checksum helpers")
    Reported-by: guodeqing <geffrey.guo@huawei.com>
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 333e7d5ed10ca3d7bd37e5e3f3e2b72b2184bc26
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Thu Jul 30 08:37:01 2020 -0700

    arm64/alternatives: move length validation inside the subsection
    
    [ Upstream commit 966a0acce2fca776391823381dba95c40e03c339 ]
    
    Commit f7b93d42945c ("arm64/alternatives: use subsections for replacement
    sequences") breaks LLVM's integrated assembler, because due to its
    one-pass design, it cannot compute instruction sequence lengths before the
    layout for the subsection has been finalized. This change fixes the build
    by moving the .org directives inside the subsection, so they are processed
    after the subsection layout is known.
    
    Fixes: f7b93d42945c ("arm64/alternatives: use subsections for replacement sequences")
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Link: https://github.com/ClangBuiltLinux/linux/issues/1078
    Link: https://lore.kernel.org/r/20200730153701.3892953-1-samitolvanen@google.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 67a153c6a469d8741a160ef45f22f2f39f45b8c3
Author: Leon Romanovsky <leon@kernel.org>
Date:   Thu Jul 30 11:27:19 2020 +0300

    RDMA/core: Free DIM memory in error unwind
    
    [ Upstream commit fb448ce87a4a9482b084e67faf804aec79ed9b43 ]
    
    The memory allocated for the DIM wasn't freed in in error unwind path, fix
    it by calling to rdma_dim_destroy().
    
    Fixes: da6629793aa6 ("RDMA/core: Provide RDMA DIM support for ULPs")
    Link: https://lore.kernel.org/r/20200730082719.1582397-4-leon@kernel.org
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Reviewed-by: Max Gurtovoy <maxg@mellanox.com <mailto:maxg@mellanox.com>>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 70a7bf39aa0d4c920245bf394e13b2b8d3ff5d80
Author: Leon Romanovsky <leon@kernel.org>
Date:   Thu Jul 30 11:27:18 2020 +0300

    RDMA/core: Stop DIM before destroying CQ
    
    [ Upstream commit 5d46b289d04b98eb992b2f8b67745cc0953e16b1 ]
    
    HW destroy operation should be last operation after all possible CQ users
    completed their work, so move DIM work cancellation before such destroy
    call.
    
    Fixes: da6629793aa6 ("RDMA/core: Provide RDMA DIM support for ULPs")
    Link: https://lore.kernel.org/r/20200730082719.1582397-3-leon@kernel.org
    Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22b7b2bb0fd6d05437d95c1a81f8e5eecfc14272
Author: Remi Pommarel <repk@triplefau.lt>
Date:   Sat Jul 4 15:54:19 2020 +0200

    mac80211: mesh: Free pending skb when destroying a mpath
    
    [ Upstream commit 5e43540c2af0a0c0a18e39579b1ad49541f87506 ]
    
    A mpath object can hold reference on a list of skb that are waiting for
    mpath resolution to be sent. When destroying a mpath this skb list
    should be cleaned up in order to not leak memory.
    
    Fixing that kind of leak:
    
    unreferenced object 0xffff0000181c9300 (size 1088):
      comm "openvpn", pid 1782, jiffies 4295071698 (age 80.416s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 f9 80 36 00 00 00 00 00  ..........6.....
        02 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00  ...@............
      backtrace:
        [<000000004bc6a443>] kmem_cache_alloc+0x1a4/0x2f0
        [<000000002caaef13>] sk_prot_alloc.isra.39+0x34/0x178
        [<00000000ceeaa916>] sk_alloc+0x34/0x228
        [<00000000ca1f1d04>] inet_create+0x198/0x518
        [<0000000035626b1c>] __sock_create+0x134/0x328
        [<00000000a12b3a87>] __sys_socket+0xb0/0x158
        [<00000000ff859f23>] __arm64_sys_socket+0x40/0x58
        [<00000000263486ec>] el0_svc_handler+0xd0/0x1a0
        [<0000000005b5157d>] el0_svc+0x8/0xc
    unreferenced object 0xffff000012973a40 (size 216):
      comm "openvpn", pid 1782, jiffies 4295082137 (age 38.660s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        00 c0 06 16 00 00 ff ff 00 93 1c 18 00 00 ff ff  ................
      backtrace:
        [<000000004bc6a443>] kmem_cache_alloc+0x1a4/0x2f0
        [<0000000023c8c8f9>] __alloc_skb+0xc0/0x2b8
        [<000000007ad950bb>] alloc_skb_with_frags+0x60/0x320
        [<00000000ef90023a>] sock_alloc_send_pskb+0x388/0x3c0
        [<00000000104fb1a3>] sock_alloc_send_skb+0x1c/0x28
        [<000000006919d2dd>] __ip_append_data+0xba4/0x11f0
        [<0000000083477587>] ip_make_skb+0x14c/0x1a8
        [<0000000024f3d592>] udp_sendmsg+0xaf0/0xcf0
        [<000000005aabe255>] inet_sendmsg+0x5c/0x80
        [<000000008651ea08>] __sys_sendto+0x15c/0x218
        [<000000003505c99b>] __arm64_sys_sendto+0x74/0x90
        [<00000000263486ec>] el0_svc_handler+0xd0/0x1a0
        [<0000000005b5157d>] el0_svc+0x8/0xc
    
    Fixes: 2bdaf386f99c (mac80211: mesh: move path tables into if_mesh)
    Signed-off-by: Remi Pommarel <repk@triplefau.lt>
    Link: https://lore.kernel.org/r/20200704135419.27703-1-repk@triplefau.lt
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4f3193e08602462a806e8f53212e79c60a6f7488
Author: Remi Pommarel <repk@triplefau.lt>
Date:   Sat Jul 4 15:50:07 2020 +0200

    mac80211: mesh: Free ie data when leaving mesh
    
    [ Upstream commit 6a01afcf8468d3ca2bd8bbb27503f60dcf643b20 ]
    
    At ieee80211_join_mesh() some ie data could have been allocated (see
    copy_mesh_setup()) and need to be cleaned up when leaving the mesh.
    
    This fixes the following kmemleak report:
    
    unreferenced object 0xffff0000116bc600 (size 128):
      comm "wpa_supplicant", pid 608, jiffies 4294898983 (age 293.484s)
      hex dump (first 32 bytes):
        30 14 01 00 00 0f ac 04 01 00 00 0f ac 04 01 00  0...............
        00 0f ac 08 00 00 00 00 c4 65 40 00 00 00 00 00  .........e@.....
      backtrace:
        [<00000000bebe439d>] __kmalloc_track_caller+0x1c0/0x330
        [<00000000a349dbe1>] kmemdup+0x28/0x50
        [<0000000075d69baa>] ieee80211_join_mesh+0x6c/0x3b8 [mac80211]
        [<00000000683bb98b>] __cfg80211_join_mesh+0x1e8/0x4f0 [cfg80211]
        [<0000000072cb507f>] nl80211_join_mesh+0x520/0x6b8 [cfg80211]
        [<0000000077e9bcf9>] genl_family_rcv_msg+0x374/0x680
        [<00000000b1bd936d>] genl_rcv_msg+0x78/0x108
        [<0000000022c53788>] netlink_rcv_skb+0xb0/0x1c0
        [<0000000011af8ec9>] genl_rcv+0x34/0x48
        [<0000000069e41f53>] netlink_unicast+0x268/0x2e8
        [<00000000a7517316>] netlink_sendmsg+0x320/0x4c0
        [<0000000069cba205>] ____sys_sendmsg+0x354/0x3a0
        [<00000000e06bab0f>] ___sys_sendmsg+0xd8/0x120
        [<0000000037340728>] __sys_sendmsg+0xa4/0xf8
        [<000000004fed9776>] __arm64_sys_sendmsg+0x44/0x58
        [<000000001c1e5647>] el0_svc_handler+0xd0/0x1a0
    
    Fixes: c80d545da3f7 (mac80211: Let userspace enable and configure vendor specific path selection.)
    Signed-off-by: Remi Pommarel <repk@triplefau.lt>
    Link: https://lore.kernel.org/r/20200704135007.27292-1-repk@triplefau.lt
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22e142108d34c5b802c37c7826799df41a11dafa
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Jul 29 18:38:42 2020 +0200

    espintcp: handle short messages instead of breaking the encap socket
    
    [ Upstream commit fadd1a63a7b4df295a01fa50b2f4e447542bee59 ]
    
    Currently, short messages (less than 4 bytes after the length header)
    will break the stream of messages. This is unnecessary, since we can
    still parse messages even if they're too short to contain any usable
    data. This is also bogus, as keepalive messages (a single 0xff byte),
    though not needed with TCP encapsulation, should be allowed.
    
    This patch changes the stream parser so that short messages are
    accepted and dropped in the kernel. Messages that contain a valid SPI
    or non-ESP header are processed as before.
    
    Fixes: e27cca96cd68 ("xfrm: add espintcp (RFC 8229)")
    Reported-by: Andrew Cagney <cagney@libreswan.org>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82547aa3a8da8b672dd6c26a70d09d32d9bb6296
Author: Andrii Nakryiko <andriin@fb.com>
Date:   Tue Jul 28 21:09:12 2020 -0700

    bpf: Fix map leak in HASH_OF_MAPS map
    
    [ Upstream commit 1d4e1eab456e1ee92a94987499b211db05f900ea ]
    
    Fix HASH_OF_MAPS bug of not putting inner map pointer on bpf_map_elem_update()
    operation. This is due to per-cpu extra_elems optimization, which bypassed
    free_htab_elem() logic doing proper clean ups. Make sure that inner map is put
    properly in optimized case as well.
    
    Fixes: 8c290e60fa2a ("bpf: fix hashmap extra_elems logic")
    Signed-off-by: Andrii Nakryiko <andriin@fb.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Song Liu <songliubraving@fb.com>
    Link: https://lore.kernel.org/bpf/20200729040913.2815687-1-andriin@fb.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 30007e098da0becf77c9974690c8af69faa4e247
Author: Thomas Falcon <tlfalcon@linux.ibm.com>
Date:   Wed Jul 29 16:36:32 2020 -0500

    ibmvnic: Fix IRQ mapping disposal in error path
    
    [ Upstream commit 27a2145d6f826d1fad9de06ac541b1016ced3427 ]
    
    RX queue IRQ mappings are disposed in both the TX IRQ and RX IRQ
    error paths. Fix this and dispose of TX IRQ mappings correctly in
    case of an error.
    
    Fixes: ea22d51a7831 ("ibmvnic: simplify and improve driver probe function")
    Signed-off-by: Thomas Falcon <tlfalcon@linux.ibm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2b821dbb3dd8c3e274de586295483acd3f98edae
Author: Amit Cohen <amitc@mellanox.com>
Date:   Wed Jul 29 12:26:48 2020 +0300

    selftests: ethtool: Fix test when only two speeds are supported
    
    [ Upstream commit 10fef9ca6a879e7bee090b8e51c9812d438d3fb1 ]
    
    The test case check_highest_speed_is_chosen() configures $h1 to
    advertise a subset of its supported speeds and checks that $h2 chooses
    the highest speed from the subset.
    
    To find the common advertised speeds between $h1 and $h2,
    common_speeds_get() is called.
    
    Currently, the first speed returned from common_speeds_get() is removed
    claiming "h1 does not advertise this speed". The claim is wrong because
    the function is called after $h1 already advertised a subset of speeds.
    
    In case $h1 supports only two speeds, it will advertise a single speed
    which will be later removed because of previously mentioned bug. This
    results in the test needlessly failing. When more than two speeds are
    supported this is not an issue because the first advertised speed
    is the lowest one.
    
    Fix this by not removing any speed from the list of commonly advertised
    speeds.
    
    Fixes: 64916b57c0b1 ("selftests: forwarding: Add speed and auto-negotiation test")
    Reported-by: Danielle Ratson <danieller@mellanox.com>
    Signed-off-by: Amit Cohen <amitc@mellanox.com>
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d0a348346fdf4277ab91463f3bff9f054b198311
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Wed Jul 29 12:26:47 2020 +0300

    mlxsw: spectrum_router: Fix use-after-free in router init / de-init
    
    [ Upstream commit 5515c3448d55bdcb5ff8a1778aa84f34e4205596 ]
    
    Several notifiers are registered as part of router initialization.
    Since some of these notifiers are registered before the end of the
    initialization, it is possible for them to access uninitialized or freed
    memory when processing notifications [1].
    
    Additionally, some of these notifiers queue work items on a workqueue.
    If these work items are executed after the router was de-initialized,
    they will access freed memory.
    
    Fix both problems by moving the registration of the notifiers to the end
    of the router initialization and flush the work queue after they are
    unregistered.
    
    [1]
    BUG: KASAN: use-after-free in __mutex_lock_common kernel/locking/mutex.c:938 [inline]
    BUG: KASAN: use-after-free in __mutex_lock+0xeea/0x1340 kernel/locking/mutex.c:1103
    Read of size 8 at addr ffff888038c3a6e0 by task kworker/u4:1/61
    
    CPU: 1 PID: 61 Comm: kworker/u4:1 Not tainted 5.8.0-rc2+ #36
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    Workqueue: mlxsw_core_ordered mlxsw_sp_inet6addr_event_work
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xf6/0x16e lib/dump_stack.c:118
     print_address_description.constprop.0+0x1c/0x250 mm/kasan/report.c:383
     __kasan_report mm/kasan/report.c:513 [inline]
     kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530
     __mutex_lock_common kernel/locking/mutex.c:938 [inline]
     __mutex_lock+0xeea/0x1340 kernel/locking/mutex.c:1103
     mlxsw_sp_inet6addr_event_work+0xb3/0x1b0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7123
     process_one_work+0xa3e/0x17a0 kernel/workqueue.c:2269
     worker_thread+0x9e/0x1050 kernel/workqueue.c:2415
     kthread+0x355/0x470 kernel/kthread.c:291
     ret_from_fork+0x22/0x30 arch/x86/entry/entry_64.S:293
    
    Allocated by task 1298:
     save_stack+0x1b/0x40 mm/kasan/common.c:48
     set_track mm/kasan/common.c:56 [inline]
     __kasan_kmalloc mm/kasan/common.c:494 [inline]
     __kasan_kmalloc.constprop.0+0xc2/0xd0 mm/kasan/common.c:467
     kmalloc include/linux/slab.h:555 [inline]
     kzalloc include/linux/slab.h:669 [inline]
     mlxsw_sp_router_init+0xb2/0x1d20 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:8074
     mlxsw_sp_init+0xbd8/0x3ac0 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:2932
     __mlxsw_core_bus_device_register+0x657/0x10d0 drivers/net/ethernet/mellanox/mlxsw/core.c:1375
     mlxsw_core_bus_device_register drivers/net/ethernet/mellanox/mlxsw/core.c:1436 [inline]
     mlxsw_devlink_core_bus_device_reload_up+0xcd/0x150 drivers/net/ethernet/mellanox/mlxsw/core.c:1133
     devlink_reload net/core/devlink.c:2959 [inline]
     devlink_reload+0x281/0x3b0 net/core/devlink.c:2944
     devlink_nl_cmd_reload+0x2f1/0x7c0 net/core/devlink.c:2987
     genl_family_rcv_msg_doit net/netlink/genetlink.c:691 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:736 [inline]
     genl_rcv_msg+0x611/0x9d0 net/netlink/genetlink.c:753
     netlink_rcv_skb+0x152/0x440 net/netlink/af_netlink.c:2469
     genl_rcv+0x24/0x40 net/netlink/genetlink.c:764
     netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
     netlink_unicast+0x53a/0x750 net/netlink/af_netlink.c:1329
     netlink_sendmsg+0x850/0xd90 net/netlink/af_netlink.c:1918
     sock_sendmsg_nosec net/socket.c:652 [inline]
     sock_sendmsg+0x150/0x190 net/socket.c:672
     ____sys_sendmsg+0x6d8/0x840 net/socket.c:2363
     ___sys_sendmsg+0xff/0x170 net/socket.c:2417
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2450
     do_syscall_64+0x56/0xa0 arch/x86/entry/common.c:359
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Freed by task 1348:
     save_stack+0x1b/0x40 mm/kasan/common.c:48
     set_track mm/kasan/common.c:56 [inline]
     kasan_set_free_info mm/kasan/common.c:316 [inline]
     __kasan_slab_free+0x12c/0x170 mm/kasan/common.c:455
     slab_free_hook mm/slub.c:1474 [inline]
     slab_free_freelist_hook mm/slub.c:1507 [inline]
     slab_free mm/slub.c:3072 [inline]
     kfree+0xe6/0x320 mm/slub.c:4063
     mlxsw_sp_fini+0x340/0x4e0 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:3132
     mlxsw_core_bus_device_unregister+0x16c/0x6d0 drivers/net/ethernet/mellanox/mlxsw/core.c:1474
     mlxsw_devlink_core_bus_device_reload_down+0x8e/0xc0 drivers/net/ethernet/mellanox/mlxsw/core.c:1123
     devlink_reload+0xc6/0x3b0 net/core/devlink.c:2952
     devlink_nl_cmd_reload+0x2f1/0x7c0 net/core/devlink.c:2987
     genl_family_rcv_msg_doit net/netlink/genetlink.c:691 [inline]
     genl_family_rcv_msg net/netlink/genetlink.c:736 [inline]
     genl_rcv_msg+0x611/0x9d0 net/netlink/genetlink.c:753
     netlink_rcv_skb+0x152/0x440 net/netlink/af_netlink.c:2469
     genl_rcv+0x24/0x40 net/netlink/genetlink.c:764
     netlink_unicast_kernel net/netlink/af_netlink.c:1303 [inline]
     netlink_unicast+0x53a/0x750 net/netlink/af_netlink.c:1329
     netlink_sendmsg+0x850/0xd90 net/netlink/af_netlink.c:1918
     sock_sendmsg_nosec net/socket.c:652 [inline]
     sock_sendmsg+0x150/0x190 net/socket.c:672
     ____sys_sendmsg+0x6d8/0x840 net/socket.c:2363
     ___sys_sendmsg+0xff/0x170 net/socket.c:2417
     __sys_sendmsg+0xe5/0x1b0 net/socket.c:2450
     do_syscall_64+0x56/0xa0 arch/x86/entry/common.c:359
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    The buggy address belongs to the object at ffff888038c3a000
     which belongs to the cache kmalloc-2k of size 2048
    The buggy address is located 1760 bytes inside of
     2048-byte region [ffff888038c3a000, ffff888038c3a800)
    The buggy address belongs to the page:
    page:ffffea0000e30e00 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 head:ffffea0000e30e00 order:3 compound_mapcount:0 compound_pincount:0
    flags: 0x100000000010200(slab|head)
    raw: 0100000000010200 dead000000000100 dead000000000122 ffff88806c40c000
    raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff888038c3a580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888038c3a600: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff888038c3a680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                           ^
     ffff888038c3a700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff888038c3a780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    Fixes: 965fa8e600d2 ("mlxsw: spectrum_router: Make RIF deletion more robust")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b24a92db58c8d2c48cb98e9c8dddac1179887162
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Wed Jul 29 12:26:46 2020 +0300

    mlxsw: core: Free EMAD transactions using kfree_rcu()
    
    [ Upstream commit 3c8ce24b037648a5a15b85888b259a74b05ff97d ]
    
    The lifetime of EMAD transactions (i.e., 'struct mlxsw_reg_trans') is
    managed using RCU. They are freed using kfree_rcu() once the transaction
    ends.
    
    However, in case the transaction failed it is freed immediately after being
    removed from the active transactions list. This is problematic because it is
    still possible for a different CPU to dereference the transaction from an RCU
    read-side critical section while traversing the active transaction list in
    mlxsw_emad_rx_listener_func(). In which case, a use-after-free is triggered
    [1].
    
    Fix this by freeing the transaction after a grace period by calling
    kfree_rcu().
    
    [1]
    BUG: KASAN: use-after-free in mlxsw_emad_rx_listener_func+0x969/0xac0 drivers/net/ethernet/mellanox/mlxsw/core.c:671
    Read of size 8 at addr ffff88800b7964e8 by task syz-executor.2/2881
    
    CPU: 0 PID: 2881 Comm: syz-executor.2 Not tainted 5.8.0-rc4+ #44
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    Call Trace:
     <IRQ>
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xf6/0x16e lib/dump_stack.c:118
     print_address_description.constprop.0+0x1c/0x250 mm/kasan/report.c:383
     __kasan_report mm/kasan/report.c:513 [inline]
     kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530
     mlxsw_emad_rx_listener_func+0x969/0xac0 drivers/net/ethernet/mellanox/mlxsw/core.c:671
     mlxsw_core_skb_receive+0x571/0x700 drivers/net/ethernet/mellanox/mlxsw/core.c:2061
     mlxsw_pci_cqe_rdq_handle drivers/net/ethernet/mellanox/mlxsw/pci.c:595 [inline]
     mlxsw_pci_cq_tasklet+0x12a6/0x2520 drivers/net/ethernet/mellanox/mlxsw/pci.c:651
     tasklet_action_common.isra.0+0x13f/0x3e0 kernel/softirq.c:550
     __do_softirq+0x223/0x964 kernel/softirq.c:292
     asm_call_on_stack+0x12/0x20 arch/x86/entry/entry_64.S:711
     </IRQ>
     __run_on_irqstack arch/x86/include/asm/irq_stack.h:22 [inline]
     run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:48 [inline]
     do_softirq_own_stack+0x109/0x140 arch/x86/kernel/irq_64.c:77
     invoke_softirq kernel/softirq.c:387 [inline]
     __irq_exit_rcu kernel/softirq.c:417 [inline]
     irq_exit_rcu+0x16f/0x1a0 kernel/softirq.c:429
     sysvec_apic_timer_interrupt+0x4e/0xd0 arch/x86/kernel/apic/apic.c:1091
     asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:587
    RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline]
    RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160 [inline]
    RIP: 0010:_raw_spin_unlock_irqrestore+0x3b/0x40 kernel/locking/spinlock.c:191
    Code: e8 2a c3 f4 fc 48 89 ef e8 12 96 f5 fc f6 c7 02 75 11 53 9d e8 d6 db 11 fd 65 ff 0d 1f 21 b3 56 5b 5d c3 e8 a7 d7 11 fd 53 9d <eb> ed 0f 1f 00 55 48 89 fd 65 ff 05 05 21 b3 56 ff 74 24 08 48 8d
    RSP: 0018:ffff8880446ffd80 EFLAGS: 00000286
    RAX: 0000000000000006 RBX: 0000000000000286 RCX: 0000000000000006
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffa94ecea9
    RBP: ffff888012934408 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000001 R11: fffffbfff57be301 R12: 1ffff110088dffc1
    R13: ffff888037b817c0 R14: ffff88802442415a R15: ffff888024424000
     __do_sys_perf_event_open+0x1b5d/0x2bd0 kernel/events/core.c:11874
     do_syscall_64+0x56/0xa0 arch/x86/entry/common.c:384
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x473dbd
    Code: Bad RIP value.
    RSP: 002b:00007f21e5e9cc28 EFLAGS: 00000246 ORIG_RAX: 000000000000012a
    RAX: ffffffffffffffda RBX: 000000000057bf00 RCX: 0000000000473dbd
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000040
    RBP: 000000000057bf00 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000003 R11: 0000000000000246 R12: 000000000057bf0c
    R13: 00007ffd0493503f R14: 00000000004d0f46 R15: 00007f21e5e9cd80
    
    Allocated by task 871:
     save_stack+0x1b/0x40 mm/kasan/common.c:48
     set_track mm/kasan/common.c:56 [inline]
     __kasan_kmalloc mm/kasan/common.c:494 [inline]
     __kasan_kmalloc.constprop.0+0xc2/0xd0 mm/kasan/common.c:467
     kmalloc include/linux/slab.h:555 [inline]
     kzalloc include/linux/slab.h:669 [inline]
     mlxsw_core_reg_access_emad+0x70/0x1410 drivers/net/ethernet/mellanox/mlxsw/core.c:1812
     mlxsw_core_reg_access+0xeb/0x540 drivers/net/ethernet/mellanox/mlxsw/core.c:1991
     mlxsw_sp_port_get_hw_xstats+0x335/0x7e0 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1130
     update_stats_cache+0xf4/0x140 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1173
     process_one_work+0xa3e/0x17a0 kernel/workqueue.c:2269
     worker_thread+0x9e/0x1050 kernel/workqueue.c:2415
     kthread+0x355/0x470 kernel/kthread.c:291
     ret_from_fork+0x22/0x30 arch/x86/entry/entry_64.S:293
    
    Freed by task 871:
     save_stack+0x1b/0x40 mm/kasan/common.c:48
     set_track mm/kasan/common.c:56 [inline]
     kasan_set_free_info mm/kasan/common.c:316 [inline]
     __kasan_slab_free+0x12c/0x170 mm/kasan/common.c:455
     slab_free_hook mm/slub.c:1474 [inline]
     slab_free_freelist_hook mm/slub.c:1507 [inline]
     slab_free mm/slub.c:3072 [inline]
     kfree+0xe6/0x320 mm/slub.c:4052
     mlxsw_core_reg_access_emad+0xd45/0x1410 drivers/net/ethernet/mellanox/mlxsw/core.c:1819
     mlxsw_core_reg_access+0xeb/0x540 drivers/net/ethernet/mellanox/mlxsw/core.c:1991
     mlxsw_sp_port_get_hw_xstats+0x335/0x7e0 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1130
     update_stats_cache+0xf4/0x140 drivers/net/ethernet/mellanox/mlxsw/spectrum.c:1173
     process_one_work+0xa3e/0x17a0 kernel/workqueue.c:2269
     worker_thread+0x9e/0x1050 kernel/workqueue.c:2415
     kthread+0x355/0x470 kernel/kthread.c:291
     ret_from_fork+0x22/0x30 arch/x86/entry/entry_64.S:293
    
    The buggy address belongs to the object at ffff88800b796400
     which belongs to the cache kmalloc-512 of size 512
    The buggy address is located 232 bytes inside of
     512-byte region [ffff88800b796400, ffff88800b796600)
    The buggy address belongs to the page:
    page:ffffea00002de500 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 head:ffffea00002de500 order:2 compound_mapcount:0 compound_pincount:0
    flags: 0x100000000010200(slab|head)
    raw: 0100000000010200 dead000000000100 dead000000000122 ffff88806c402500
    raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff88800b796380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
     ffff88800b796400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff88800b796480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                              ^
     ffff88800b796500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
     ffff88800b796580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    Fixes: caf7297e7ab5 ("mlxsw: core: Introduce support for asynchronous EMAD register access")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94a4279be84b9ab7d150334a1f1d9cad65a2f9fa
Author: Ido Schimmel <idosch@mellanox.com>
Date:   Wed Jul 29 12:26:45 2020 +0300

    mlxsw: core: Increase scope of RCU read-side critical section
    
    [ Upstream commit 7d8e8f3433dc8d1dc87c1aabe73a154978fb4c4d ]
    
    The lifetime of the Rx listener item ('rxl_item') is managed using RCU,
    but is dereferenced outside of RCU read-side critical section, which can
    lead to a use-after-free.
    
    Fix this by increasing the scope of the RCU read-side critical section.
    
    Fixes: 93c1edb27f9e ("mlxsw: Introduce Mellanox switch driver core")
    Signed-off-by: Ido Schimmel <idosch@mellanox.com>
    Reviewed-by: Jiri Pirko <jiri@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02963f5752032ab987fae7b450d5e1e357e7425b
Author: Christoph Hellwig <hch@lst.de>
Date:   Tue Jul 28 13:09:03 2020 +0200

    nvme: add a Identify Namespace Identification Descriptor list quirk
    
    [ Upstream commit 5bedd3afee8eb01ccd256f0cd2cc0fa6f841417a ]
    
    Add a quirk for a device that does not support the Identify Namespace
    Identification Descriptor list despite claiming 1.3 compliance.
    
    Fixes: ea43d9709f72 ("nvme: fix identify error status silent ignore")
    Reported-by: Ingo Brunberg <ingo_brunberg@web.de>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Tested-by: Ingo Brunberg <ingo_brunberg@web.de>
    Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bb24063d83ce49ded3775309102d69fff542e57
Author: Guillaume Nault <gnault@redhat.com>
Date:   Sat Jul 25 15:06:47 2020 +0200

    bareudp: forbid mixing IP and MPLS in multiproto mode
    
    [ Upstream commit 302d201b5cdf6f4781ee6cd9862f377f975d6c43 ]
    
    In multiproto mode, bareudp_xmit() accepts sending multicast MPLS and
    IPv6 packets regardless of the bareudp ethertype. In practice, this
    let an IP tunnel send multicast MPLS packets, or an MPLS tunnel send
    IPv6 packets.
    
    We need to restrict the test further, so that the multiproto mode only
    enables
      * IPv6 for IPv4 tunnels,
      * or multicast MPLS for unicast MPLS tunnels.
    
    To improve clarity, the protocol validation is moved to its own
    function, where each logical test has its own condition.
    
    v2: s/ntohs/htons/
    
    Fixes: 4b5f67232d95 ("net: Special handling for IP & MPLS.")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9e387a01b5a2544bc4d54a814b47ab0b8f7f4ecd
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Sat Jul 25 10:13:54 2020 +0530

    octeontx2-pf: Unregister netdev at driver remove
    
    [ Upstream commit ed543f5c6a988d8a863d2436794230cef2c82389 ]
    
    Added unregister_netdev in the driver remove
    function. Generally unregister_netdev is called
    after disabling all the device interrupts but here
    it is called before disabling device mailbox
    interrupts. The reason behind this is VF needs
    mailbox interrupt to communicate with its PF to
    clean up its resources during otx2_stop.
    otx2_stop disables packet I/O and queue interrupts
    first and by using mailbox interrupt communicates
    to PF to free VF resources. Hence this patch
    calls unregister_device just before
    disabling mailbox interrupts.
    
    Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e58cb2408ffc34841e4bca58e4409642256c590
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Sat Jul 25 10:13:53 2020 +0530

    octeontx2-pf: cancel reset_task work
    
    [ Upstream commit c0376f473c5cc2ef94f8e1e055d173293cc3698c ]
    
    During driver exit cancel the queued
    reset_task work in VF driver.
    
    Fixes: 3184fb5ba96e ("octeontx2-vf: Virtual function driver support")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 836abae2b652dfd4880483f73fc68f3ec3f4645f
Author: Subbaraya Sundeep <sbhatta@marvell.com>
Date:   Sat Jul 25 10:13:52 2020 +0530

    octeontx2-pf: Fix reset_task bugs
    
    [ Upstream commit 948a66338f44c16f52c0f03f6ad81a6f59eb5604 ]
    
    Two bugs exist in the code related to reset_task
    in PF driver one is the missing protection
    against network stack ndo_open and ndo_close.
    Other one is the missing cancel_work.
    This patch fixes those problems.
    
    Fixes: 4ff7d1488a84 ("octeontx2-pf: Error handling support")
    Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0edbe2dd2987bb6c7929b01b8f764bc294d78970
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 24 16:15:43 2020 -0700

    mlx4: disable device on shutdown
    
    [ Upstream commit 3cab8c65525920f00d8f4997b3e9bb73aecb3a8e ]
    
    It appears that not disabling a PCI device on .shutdown may lead to
    a Hardware Error with particular (perhaps buggy) BIOS versions:
    
        mlx4_en: eth0: Close port called
        mlx4_en 0000:04:00.0: removed PHC
        reboot: Restarting system
        {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1
        {1}[Hardware Error]: event severity: fatal
        {1}[Hardware Error]:  Error 0, type: fatal
        {1}[Hardware Error]:   section_type: PCIe error
        {1}[Hardware Error]:   port_type: 4, root port
        {1}[Hardware Error]:   version: 1.16
        {1}[Hardware Error]:   command: 0x4010, status: 0x0143
        {1}[Hardware Error]:   device_id: 0000:00:02.2
        {1}[Hardware Error]:   slot: 0
        {1}[Hardware Error]:   secondary_bus: 0x04
        {1}[Hardware Error]:   vendor_id: 0x8086, device_id: 0x2f06
        {1}[Hardware Error]:   class_code: 000604
        {1}[Hardware Error]:   bridge: secondary_status: 0x2000, control: 0x0003
        {1}[Hardware Error]:   aer_uncor_status: 0x00100000, aer_uncor_mask: 0x00000000
        {1}[Hardware Error]:   aer_uncor_severity: 0x00062030
        {1}[Hardware Error]:   TLP Header: 40000018 040000ff 791f4080 00000000
    [hw error repeats]
        Kernel panic - not syncing: Fatal hardware error!
        CPU: 0 PID: 2189 Comm: reboot Kdump: loaded Not tainted 5.6.x-blabla #1
        Hardware name: HP ProLiant DL380 Gen9/ProLiant DL380 Gen9, BIOS P89 05/05/2017
    
    Fix the mlx4 driver.
    
    This is a very similar problem to what had been fixed in:
    commit 0d98ba8d70b0 ("scsi: hpsa: disable device during shutdown")
    to address https://bugzilla.kernel.org/show_bug.cgi?id=199779.
    
    Fixes: 2ba5fbd62b25 ("net/mlx4_core: Handle AER flow properly")
    Reported-by: Jake Lawrence <lawja@fb.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d1ccc048372956621f1250098ff2f85ae5411317
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Fri Jul 24 20:12:53 2020 +1000

    rhashtable: Fix unprotected RCU dereference in __rht_ptr
    
    [ Upstream commit 1748f6a2cbc4694523f16da1c892b59861045b9d ]
    
    The rcu_dereference call in rht_ptr_rcu is completely bogus because
    we've already dereferenced the value in __rht_ptr and operated on it.
    This causes potential double readings which could be fatal.  The RCU
    dereference must occur prior to the comparison in __rht_ptr.
    
    This patch changes the order of RCU dereference so that it is done
    first and the result is then fed to __rht_ptr.  The RCU marking
    changes have been minimised using casts which will be removed in
    a follow-up patch.
    
    Fixes: ba6306e3f648 ("rhashtable: Remove RCU marking from...")
    Reported-by: "Gong, Sishuai" <sishuai@purdue.edu>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2531a9b130179b3ee478576a194af30de81270b4
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jul 28 14:10:30 2020 +0200

    net: lan78xx: fix transfer-buffer memory leak
    
    [ Upstream commit 63634aa679ba8b5e306ad0727120309ae6ba8a8e ]
    
    The interrupt URB transfer-buffer was never freed on disconnect or after
    probe errors.
    
    Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
    Cc: Woojung.Huh@microchip.com <Woojung.Huh@microchip.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b677f601d5e4802e345fdb1d91596fbc1a0c19f5
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jul 28 14:10:29 2020 +0200

    net: lan78xx: add missing endpoint sanity check
    
    [ Upstream commit 8d8e95fd6d69d774013f51e5f2ee10c6e6d1fc14 ]
    
    Add the missing endpoint sanity check to prevent a NULL-pointer
    dereference should a malicious device lack the expected endpoints.
    
    Note that the driver has a broken endpoint-lookup helper,
    lan78xx_get_endpoints(), which can end up accepting interfaces in an
    altsetting without endpoints as long as *some* altsetting has a bulk-in
    and a bulk-out endpoint.
    
    Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
    Cc: Woojung.Huh@microchip.com <Woojung.Huh@microchip.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e66f308d9c71447a2b5a14779ec03b3f0e1a01a
Author: Alaa Hleihel <alaa@mellanox.com>
Date:   Wed Jul 15 11:46:30 2020 +0300

    net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
    
    [ Upstream commit 350a63249d270b1f5bd05c7e2a24cd8de0f9db20 ]
    
    After the cited commit, function 'mlx5_eswitch_set_vport_vlan' started
    to acquire esw->state_lock.
    However, esw is not defined for VF devices, hence attempting to set vf
    VLANID on a VF dev will cause a kernel panic.
    
    Fix it by moving up the (redundant) esw validation from function
    '__mlx5_eswitch_set_vport_vlan' since the rest of the callers now have
    and use a valid esw.
    
    For example with vf device eth4:
     # ip link set dev eth4 vf 0 vlan 0
    
    Trace of the panic:
     [  411.409842] BUG: unable to handle page fault for address: 00000000000011b8
     [  411.449745] #PF: supervisor read access in kernel mode
     [  411.452348] #PF: error_code(0x0000) - not-present page
     [  411.454938] PGD 80000004189c9067 P4D 80000004189c9067 PUD 41899a067 PMD 0
     [  411.458382] Oops: 0000 [#1] SMP PTI
     [  411.460268] CPU: 4 PID: 5711 Comm: ip Not tainted 5.8.0-rc4_for_upstream_min_debug_2020_07_08_22_04 #1
     [  411.462447] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
     [  411.464158] RIP: 0010:__mutex_lock+0x4e/0x940
     [  411.464928] Code: fd 41 54 49 89 f4 41 52 53 89 d3 48 83 ec 70 44 8b 1d ee 03 b0 01 65 48 8b 04 25 28 00 00 00 48 89 45 c8 31 c0 45 85 db 75 0a <48> 3b 7f 60 0f 85 7e 05 00 00 49 8d 45 68 41 56 41 b8 01 00 00 00
     [  411.467678] RSP: 0018:ffff88841fcd74b0 EFLAGS: 00010246
     [  411.468562] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
     [  411.469715] RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000000001158
     [  411.470812] RBP: ffff88841fcd7550 R08: ffffffffa00fa1ce R09: 0000000000000000
     [  411.471835] R10: ffff88841fcd7570 R11: 0000000000000000 R12: 0000000000000002
     [  411.472862] R13: 0000000000001158 R14: ffffffffa00fa1ce R15: 0000000000000000
     [  411.474004] FS:  00007faee7ca6b80(0000) GS:ffff88846fc00000(0000) knlGS:0000000000000000
     [  411.475237] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     [  411.476129] CR2: 00000000000011b8 CR3: 000000041909c006 CR4: 0000000000360ea0
     [  411.477260] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
     [  411.478340] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
     [  411.479332] Call Trace:
     [  411.479760]  ? __nla_validate_parse.part.6+0x57/0x8f0
     [  411.482825]  ? mlx5_eswitch_set_vport_vlan+0x3e/0xa0 [mlx5_core]
     [  411.483804]  mlx5_eswitch_set_vport_vlan+0x3e/0xa0 [mlx5_core]
     [  411.484733]  mlx5e_set_vf_vlan+0x41/0x50 [mlx5_core]
     [  411.485545]  do_setlink+0x613/0x1000
     [  411.486165]  __rtnl_newlink+0x53d/0x8c0
     [  411.486791]  ? mark_held_locks+0x49/0x70
     [  411.487429]  ? __lock_acquire+0x8fe/0x1eb0
     [  411.488085]  ? rcu_read_lock_sched_held+0x52/0x60
     [  411.488998]  ? kmem_cache_alloc_trace+0x16d/0x2d0
     [  411.489759]  rtnl_newlink+0x47/0x70
     [  411.490357]  rtnetlink_rcv_msg+0x24e/0x450
     [  411.490978]  ? netlink_deliver_tap+0x92/0x3d0
     [  411.491631]  ? validate_linkmsg+0x330/0x330
     [  411.492262]  netlink_rcv_skb+0x47/0x110
     [  411.492852]  netlink_unicast+0x1ac/0x270
     [  411.493551]  netlink_sendmsg+0x336/0x450
     [  411.494209]  sock_sendmsg+0x30/0x40
     [  411.494779]  ____sys_sendmsg+0x1dd/0x1f0
     [  411.495378]  ? copy_msghdr_from_user+0x5c/0x90
     [  411.496082]  ___sys_sendmsg+0x87/0xd0
     [  411.496683]  ? lock_acquire+0xb9/0x3a0
     [  411.497322]  ? lru_cache_add+0x5/0x170
     [  411.497944]  ? find_held_lock+0x2d/0x90
     [  411.498568]  ? handle_mm_fault+0xe46/0x18c0
     [  411.499205]  ? __sys_sendmsg+0x51/0x90
     [  411.499784]  __sys_sendmsg+0x51/0x90
     [  411.500341]  do_syscall_64+0x59/0x2e0
     [  411.500938]  ? asm_exc_page_fault+0x8/0x30
     [  411.501609]  ? rcu_read_lock_sched_held+0x52/0x60
     [  411.502350]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
     [  411.503093] RIP: 0033:0x7faee73b85a7
     [  411.503654] Code: Bad RIP value.
    
    Fixes: 0e18134f4f9f ("net/mlx5e: Eswitch, use state_lock to synchronize vlan change")
    Signed-off-by: Alaa Hleihel <alaa@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Reviewed-by: Vlad Buslov <vladbu@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 453a1da83fbe29b88d94e5cd78e6e9daf591ef2f
Author: Ron Diskin <rondi@mellanox.com>
Date:   Sun Apr 5 13:58:40 2020 +0300

    net/mlx5e: Modify uplink state on interface up/down
    
    [ Upstream commit 7d0314b11cdd92bca8b89684c06953bf114605fc ]
    
    When setting the PF interface up/down, notify the firmware to update
    uplink state via MODIFY_VPORT_STATE, when E-Switch is enabled.
    
    This behavior will prevent sending traffic out on uplink port when PF is
    down, such as sending traffic from a VF interface which is still up.
    Currently when calling mlx5e_open/close(), the driver only sends PAOS
    command to notify the firmware to set the physical port state to
    up/down, however, it is not sufficient. When VF is in "auto" state, it
    follows the uplink state, which was not updated on mlx5e_open/close()
    before this patch.
    
    When switchdev mode is enabled and uplink representor is first enabled,
    set the uplink port state value back to its FW default "AUTO".
    
    Fixes: 63bfd399de55 ("net/mlx5e: Send PAOS command on interface up/down")
    Signed-off-by: Ron Diskin <rondi@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7ae12b6ba18aa8466249dda9a8ab2676a835d8bb
Author: Eran Ben Elisha <eranbe@mellanox.com>
Date:   Mon Jul 20 18:34:37 2020 +0300

    net/mlx5: Query PPS pin operational status before registering it
    
    [ Upstream commit ed56d749c366be269d58b29597392e4a0ae71c0a ]
    
    In a special configuration, a ConnectX6-Dx pin pps-out might be activated
    when driver is loaded. Fix the driver to always read the operational pin
    mode when registering it, and advertise it accordingly.
    
    Fixes: ee7f12205abc ("net/mlx5e: Implement 1PPS support")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 649b20bcad9209ffce4f7006b068b76d35198e29
Author: Eran Ben Elisha <eranbe@mellanox.com>
Date:   Wed Jul 8 11:10:01 2020 +0300

    net/mlx5: Verify Hardware supports requested ptp function on a given pin
    
    [ Upstream commit 071995c877a8646209d55ff8edddd2b054e7424c ]
    
    Fix a bug where driver did not verify Hardware pin capabilities for
    PTP functions.
    
    Fixes: ee7f12205abc ("net/mlx5e: Implement 1PPS support")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: Ariel Levkovich <lariel@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2ad5aeae572b94aeb50443c0c13a99c9b4f64baa
Author: Eran Ben Elisha <eranbe@mellanox.com>
Date:   Wed Jul 8 18:53:19 2020 +0300

    net/mlx5: Fix a bug of using ptp channel index as pin index
    
    [ Upstream commit 88c8cf92db48b2e359fe3051ad8e09829c1bee5d ]
    
    On PTP mlx5_ptp_enable(on=0) flow, driver mistakenly used channel index
    as pin index.
    
    After ptp patch marked in fixes tag was introduced, driver can freely
    call ptp_find_pin() as part of the .enable() callback.
    
    Fix driver mlx5_ptp_enable(on=0) flow to always use ptp_find_pin(). With
    that, Driver will use the correct pin index in mlx5_ptp_enable(on=0) flow.
    
    In addition, when initializing the pins, always set channel to zero. As
    all pins can be attached to all channels, let ptp_set_pinfunc() to move
    them between the channels.
    
    For stable branches, this fix to be applied only on kernels that includes
    both patches in fixes tag. Otherwise, mlx5_ptp_enable(on=0) will be stuck
    on pincfg_mux.
    
    Fixes: 62582a7ee783 ("ptp: Avoid deadlocks in the programmable pin code.")
    Fixes: ee7f12205abc ("net/mlx5e: Implement 1PPS support")
    Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
    Reviewed-by: Ariel Levkovich <lariel@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aea8f69d54c5e7628a85fdf5ad61295b0e53645e
Author: Aya Levin <ayal@mellanox.com>
Date:   Wed Jul 1 12:21:53 2020 +0300

    net/mlx5e: Fix error path of device attach
    
    [ Upstream commit 5cd39b6e9a420329a9a408894be7ba8aa7dd755e ]
    
    On failure to attach the netdev, fix the rollback by re-setting the
    device's state back to MLX5E_STATE_DESTROYING.
    
    Failing to attach doesn't stop statistics polling via .ndo_get_stats64.
    In this case, although the device is not attached, it falsely continues
    to query the firmware for counters. Setting the device's state back to
    MLX5E_STATE_DESTROYING prevents the firmware counters query.
    
    Fixes: 26e59d8077a3 ("net/mlx5e: Implement mlx5e interface attach/detach callbacks")
    Signed-off-by: Aya Levin <ayal@mellanox.com>
    Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 45e3e2218841a3b54383e71dbf0716b3daa42a27
Author: Parav Pandit <parav@mellanox.com>
Date:   Sat Jun 27 13:11:56 2020 +0300

    net/mlx5: E-switch, Destroy TSAR after reload interface
    
    [ Upstream commit 0c2600c619578f759cf3d5192b01bd14e281f24c ]
    
    When eswitch offloads is enabled, TSAR is created before reloading
    the interfaces.
    However when eswitch offloads mode is disabled, TSAR is disabled before
    reloading the interfaces.
    
    To keep the eswitch enable/disable sequence as mirror, destroy TSAR
    after reloading the interfaces.
    
    Fixes: 1bd27b11c1df ("net/mlx5: Introduce E-switch QoS management")
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8727b95dece5d6d5bb25d4c95784018de45d10bc
Author: Parav Pandit <parav@mellanox.com>
Date:   Sat Jun 27 13:29:28 2020 +0300

    net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
    
    [ Upstream commit 2b8e9c7c3fd0e31091edb1c66cc06ffe4988ca21 ]
    
    When either esw_legacy_enable() or esw_offloads_enable() fails,
    code missed to destroy the created TSAR.
    
    Hence, add the missing call to destroy the TSAR.
    
    Fixes: 610090ebce92 ("net/mlx5: E-switch, Initialize TSAR Qos hardware block before its user vports")
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Reviewed-by: Roi Dayan <roid@mellanox.com>
    Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d2f8514a7a9ca5535e14c89eeda7fc19b9afc9e
Author: Guojia Liao <liaoguojia@huawei.com>
Date:   Tue Jul 28 10:16:52 2020 +0800

    net: hns3: fix for VLAN config when reset failed
    
    [ Upstream commit b7b5d25bdd7bdea7d72a41e0a97b1b8f3dea2ee7 ]
    
    When device is resetting or reset failed, firmware is unable to
    handle mailbox. VLAN should not be configured in this case.
    
    Fixes: fe4144d47eef ("net: hns3: sync VLAN filter entries when kill VLAN ID failed")
    Signed-off-by: Guojia Liao <liaoguojia@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fa5fc634790e269899082c5be981ffd3cf845663
Author: Guojia Liao <liaoguojia@huawei.com>
Date:   Tue Jul 28 10:16:51 2020 +0800

    net: hns3: fix aRFS FD rules leftover after add a user FD rule
    
    [ Upstream commit efe3fa45f770f1d66e2734ee7a3523c75694ff04 ]
    
    When user had created a FD rule, all the aRFS rules should be clear up.
    HNS3 process flow as below:
    1.get spin lock of fd_ruls_list
    2.clear up all aRFS rules
    3.release lock
    4.get spin lock of fd_ruls_list
    5.creat a rules
    6.release lock;
    
    There is a short period of time between step 3 and step 4, which would
    creatting some new aRFS FD rules if driver was receiving packet.
    So refactor the fd_rule_lock to fix it.
    
    Fixes: 441228875706 ("net: hns3: refine the flow director handle")
    Signed-off-by: Guojia Liao <liaoguojia@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9bbbf4c214f55d58e7fb331a89fba29b64e4fe23
Author: Jian Shen <shenjian15@huawei.com>
Date:   Tue Jul 28 10:16:50 2020 +0800

    net: hns3: add reset check for VF updating port based VLAN
    
    [ Upstream commit a6f7bfdc78ddd8d719d108fef973b4e4a5a6ac6b ]
    
    Currently hclgevf_update_port_base_vlan_info() may be called when
    VF is resetting,  which may cause hns3_nic_net_open() being called
    twice unexpectedly.
    
    So fix it by adding a reset check for it, and extend critical
    region for rntl_lock in hclgevf_update_port_base_vlan_info().
    
    Fixes: 92f11ea177cd ("net: hns3: fix set port based VLAN issue for VF")
    Signed-off-by: Jian Shen <shenjian15@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 27db51ffbf40be084d8132afb26152e55753e3ab
Author: Yonglong Liu <liuyonglong@huawei.com>
Date:   Tue Jul 28 10:16:49 2020 +0800

    net: hns3: fix a TX timeout issue
    
    [ Upstream commit a7e90ee5965fafc53d36e8b3205f08c88d7bc11f ]
    
    When the queue depth and queue parameters are modified, there is
    a low probability that TX timeout occurs. The two operations cause
    the link to be down or up when the watchdog is still working. All
    queues are stopped when the link is down. After the carrier is on,
    all queues are woken up. If the watchdog detects the link between
    the carrier on and wakeup queues, a false TX timeout occurs.
    
    So fix this issue by modifying the sequence of carrier on and queue
    wakeup, which is symmetrical to the link down action.
    
    Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
    Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b404147128db4cbebe81524ceb8e13ed7c120f32
Author: Yunsheng Lin <linyunsheng@huawei.com>
Date:   Tue Jul 28 10:16:48 2020 +0800

    net: hns3: fix desc filling bug when skb is expanded or lineared
    
    [ Upstream commit cfdaeba5ddc98b303639a3265c2031ac5db249d6 ]
    
    The linear and frag data part may be changed when the skb is expanded
    or lineared in skb_cow_head() or skb_checksum_help(), which is called
    by hns3_fill_skb_desc(), so the linear len return by skb_headlen()
    before the calling of hns3_fill_skb_desc() is unreliable.
    
    Move hns3_fill_skb_desc() before the calling of skb_headlen() to fix
    this bug.
    
    Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
    Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2b26ef58b3400b4a9b9b9919d94afec8751a874b
Author: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
Date:   Thu Jul 23 01:13:19 2020 +0200

    sh: Fix validation of system call number
    
    [ Upstream commit 04a8a3d0a73f51c7c2da84f494db7ec1df230e69 ]
    
    The slow path for traced system call entries accessed a wrong memory
    location to get the number of the maximum allowed system call number.
    Renumber the numbered "local" label for the correct location to avoid
    collisions with actual local labels.
    
    Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
    Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
    Fixes: f3a8308864f920d2 ("sh: Add a few missing irqflags tracing markers.")
    Signed-off-by: Rich Felker <dalias@libc.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1db7c80b9813a0e1f8ba0817371c20369155ce1c
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Fri Jul 17 13:10:07 2020 +0200

    sh/tlb: Fix PGTABLE_LEVELS > 2
    
    [ Upstream commit c7bcbc8ab9cb20536b8f50c62a48cebda965fdba ]
    
    Geert reported that his SH7722-based Migo-R board failed to boot after
    commit:
    
      c5b27a889da9 ("sh/tlb: Convert SH to generic mmu_gather")
    
    That commit fell victim to copying the wrong pattern --
    __pmd_free_tlb() used to be implemented with pmd_free().
    
    Fixes: c5b27a889da9 ("sh/tlb: Convert SH to generic mmu_gather")
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Rich Felker <dalias@libc.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aa3daddb7f70540b0e9f87927ad0c19f8636f347
Author: Tanner Love <tannerlove@google.com>
Date:   Mon Jul 27 12:25:31 2020 -0400

    selftests/net: tcp_mmap: fix clang warning for target arch PowerPC
    
    [ Upstream commit 94b6c13be57cdedb7cf4d33dbcd066fad133f22b ]
    
    When size_t maps to unsigned int (e.g. on 32-bit powerpc), then the
    comparison with 1<<35 is always true. Clang 9 threw:
    warning: result of comparison of constant 34359738368 with \
    expression of type 'size_t' (aka 'unsigned int') is always true \
    [-Wtautological-constant-out-of-range-compare]
            while (total < FILE_SZ) {
    
    Tested: make -C tools/testing/selftests TARGETS="net" run_tests
    
    Fixes: 192dc405f308 ("selftests: net: add tcp_mmap program")
    Signed-off-by: Tanner Love <tannerlove@google.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fa7dc1ea47eb17ad33f28ed2c58d387f526e708
Author: Tanner Love <tannerlove@google.com>
Date:   Mon Jul 27 12:25:30 2020 -0400

    selftests/net: so_txtime: fix clang issues for target arch PowerPC
    
    [ Upstream commit b4da96ffd30bd4a305045ba5c9b0de5d4aa20dc7 ]
    
    On powerpcle, int64_t maps to long long. Clang 9 threw:
    warning: absolute value function 'labs' given an argument of type \
    'long long' but has parameter of type 'long' which may cause \
    truncation of value [-Wabsolute-value]
            if (labs(tstop - texpect) > cfg_variance_us)
    
    Tested: make -C tools/testing/selftests TARGETS="net" run_tests
    
    Fixes: af5136f95045 ("selftests/net: SO_TXTIME with ETF and FQ")
    Signed-off-by: Tanner Love <tannerlove@google.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 905fccec554c8163cfdb4e6ddbf3706febcc8d9f
Author: Tanner Love <tannerlove@google.com>
Date:   Mon Jul 27 12:25:29 2020 -0400

    selftests/net: psock_fanout: fix clang issues for target arch PowerPC
    
    [ Upstream commit 64f9ede2274980076423583683d44480909b7a40 ]
    
    Clang 9 threw:
    warning: format specifies type 'unsigned short' but the argument has \
    type 'int' [-Wformat]
                    typeflags, PORT_BASE, PORT_BASE + port_off);
    
    Tested: make -C tools/testing/selftests TARGETS="net" run_tests
    
    Fixes: 77f65ebdca50 ("packet: packet fanout rollover during socket overload")
    Signed-off-by: Tanner Love <tannerlove@google.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5f2361f2710189e8ee8a22ffcd2bc4de78ed324c
Author: Tanner Love <tannerlove@google.com>
Date:   Mon Jul 27 12:25:28 2020 -0400

    selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
    
    [ Upstream commit 955cbe91bcf782c09afe369c95a20f0a4b6dcc3c ]
    
    The signedness of char is implementation-dependent. Some systems
    (including PowerPC and ARM) use unsigned char. Clang 9 threw:
    warning: result of comparison of constant -1 with expression of type \
    'char' is always true [-Wtautological-constant-out-of-range-compare]
                                      &arg_index)) != -1) {
    
    Tested: make -C tools/testing/selftests TARGETS="net" run_tests
    
    Fixes: 16e781224198 ("selftests/net: Add a test to validate behavior of rx timestamps")
    Signed-off-by: Tanner Love <tannerlove@google.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 49fe954ca02c51c0af0cf3fa54c88fd63c9d71d6
Author: Sagi Grimberg <sagi@grimberg.me>
Date:   Thu Jul 23 16:42:26 2020 -0700

    nvme-tcp: fix possible hang waiting for icresp response
    
    [ Upstream commit adc99fd378398f4c58798a1c57889872967d56a6 ]
    
    If the controller died exactly when we are receiving icresp
    we hang because icresp may never return. Make sure to set a
    high finite limit.
    
    Fixes: 3f2304f8c6d6 ("nvme-tcp: add NVMe over TCP host driver")
    Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc77fa81043f4b219317430b8c77bcb083c8676f
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Tue Jul 21 15:40:38 2020 +0100

    ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
    
    [ Upstream commit 09781ba0395c46b1c844f47e405e3ce7856f5989 ]
    
    To support the change in "phy: armada-38x: fix NETA lockup when
    repeatedly switching speeds" we need to update the DT with the
    additional register.
    
    Fixes: 14dc100b4411 ("phy: armada38x: add common phy support")
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c0e6189fbfac19a4baf32fd9731e75598ba7d84
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Fri Jul 17 10:34:27 2020 +0200

    xfrm: Fix crash when the hold queue is used.
    
    [ Upstream commit 101dde4207f1daa1fda57d714814a03835dccc3f ]
    
    The commits "xfrm: Move dst->path into struct xfrm_dst"
    and "net: Create and use new helper xfrm_dst_child()."
    changed xfrm bundle handling under the assumption
    that xdst->path and dst->child are not a NULL pointer
    only if dst->xfrm is not a NULL pointer. That is true
    with one exception. If the xfrm hold queue is used
    to wait until a SA is installed by the key manager,
    we create a dummy bundle without a valid dst->xfrm
    pointer. The current xfrm bundle handling crashes
    in that case. Fix this by extending the NULL check
    of dst->xfrm with a test of the DST_XFRM_QUEUE flag.
    
    Fixes: 0f6c480f23f4 ("xfrm: Move dst->path into struct xfrm_dst")
    Fixes: b92cf4aab8e6 ("net: Create and use new helper xfrm_dst_child().")
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 589b5e620160cd5007136f863cedc20b24877f99
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Thu Jul 16 10:09:02 2020 +0200

    espintcp: recv() should return 0 when the peer socket is closed
    
    [ Upstream commit e229c877cde141a4c46cb603a341ce8c909e9a98 ]
    
    man 2 recv says:
    
        RETURN VALUE
    
        When a stream socket peer has performed an orderly shutdown, the
        return value will be 0 (the traditional "end-of-file" return).
    
    Currently, this works for blocking reads, but non-blocking reads will
    return -EAGAIN. This patch overwrites that return value when the peer
    won't send us any more data.
    
    Fixes: e27cca96cd68 ("xfrm: add espintcp (RFC 8229)")
    Reported-by: Andrew Cagney <cagney@libreswan.org>
    Tested-by: Andrew Cagney <cagney@libreswan.org>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b273e491d24021a99a39bad1c3cec0c38221d8c5
Author: Douglas Anderson <dianders@chromium.org>
Date:   Tue Jul 14 08:04:17 2020 -0700

    pinctrl: qcom: Handle broken/missing PDC dual edge IRQs on sc7180
    
    [ Upstream commit c3c0c2e18d943ec4a84162ac679970b592555a4a ]
    
    Depending on how you look at it, you can either say that:
    a) There is a PDC hardware issue (with the specific IP rev that exists
       on sc7180) that causes the PDC not to work properly when configured
       to handle dual edges.
    b) The dual edge feature of the PDC hardware was only added in later
       HW revisions and thus isn't in all hardware.
    
    Regardless of how you look at it, let's work around the lack of dual
    edge support by only ever letting our parent see requests for single
    edge interrupts on affected hardware.
    
    NOTE: it's possible that a driver requesting a dual edge interrupt
    might get several edges coalesced into a single IRQ.  For instance if
    a line starts low and then goes high and low again, the driver that
    requested the IRQ is not guaranteed to be called twice.  However, it
    is guaranteed that once the driver's interrupt handler starts running
    its first instruction that any new edges coming in will cause the
    interrupt to fire again.  This is relatively commonplace for dual-edge
    gpio interrupts (many gpio controllers require software to emulate
    dual edge with single edge) so client drivers should be setup to
    handle it.
    
    Fixes: e35a6ae0eb3a ("pinctrl/msm: Setup GPIO chip in hierarchy")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20200714080254.v3.1.Ie0d730120b232a86a4eac1e2909bcbec844d1766@changeid
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5dfdc33d2c27492320f52a37b5cfa5caac2234a4
Author: Maxime Ripard <maxime@cerno.tech>
Date:   Sat Jul 4 15:08:29 2020 +0200

    ARM: dts sunxi: Relax a bit the CMA pool allocation range
    
    [ Upstream commit 92025b90f18d45e26b7f17d68756b1abd771b9d3 ]
    
    The hardware codec on the A10, A10s, A13 and A20 needs buffer in the
    first 256MB of RAM. This was solved by setting the CMA pool at a fixed
    address in that range.
    
    However, in recent kernels there's something else that comes in and
    reserve some range that end up conflicting with our default pool
    requirement, and thus makes its reservation fail.
    
    The video codec will then use buffers from the usual default pool,
    outside of the range it can access, and will fail to decode anything.
    
    Since we're only concerned about that 256MB, we can however relax the
    allocation to just specify the range that's allowed, and not try to
    enforce a specific address.
    
    Fixes: 5949bc5602cc ("ARM: dts: sun4i-a10: Add Video Engine and reserved memory nodes")
    Fixes: 960432010156 ("ARM: dts: sun5i: Add Video Engine and reserved memory nodes")
    Fixes: c2a641a74850 ("ARM: dts: sun7i-a20: Add Video Engine and reserved memory nodes")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Link: https://lore.kernel.org/r/20200704130829.34297-1-maxime@cerno.tech
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7388c5d12dc5bd7efb2719878be4b0962b15282a
Author: Xin Long <lucien.xin@gmail.com>
Date:   Mon Jun 22 16:40:29 2020 +0800

    xfrm: policy: match with both mark and mask on user interfaces
    
    [ Upstream commit 4f47e8ab6ab796b5380f74866fa5287aca4dcc58 ]
    
    In commit ed17b8d377ea ("xfrm: fix a warning in xfrm_policy_insert_list"),
    it would take 'priority' to make a policy unique, and allow duplicated
    policies with different 'priority' to be added, which is not expected
    by userland, as Tobias reported in strongswan.
    
    To fix this duplicated policies issue, and also fix the issue in
    commit ed17b8d377ea ("xfrm: fix a warning in xfrm_policy_insert_list"),
    when doing add/del/get/update on user interfaces, this patch is to change
    to look up a policy with both mark and mask by doing:
    
      mark.v == pol->mark.v && mark.m == pol->mark.m
    
    and leave the check:
    
      (mark & pol->mark.m) == pol->mark.v
    
    for tx/rx path only.
    
    As the userland expects an exact mark and mask match to manage policies.
    
    v1->v2:
      - make xfrm_policy_mark_match inline and fix the changelog as
        Tobias suggested.
    
    Fixes: 295fae568885 ("xfrm: Allow user space manipulation of SPD mark")
    Fixes: ed17b8d377ea ("xfrm: fix a warning in xfrm_policy_insert_list")
    Reported-by: Tobias Brunner <tobias@strongswan.org>
    Tested-by: Tobias Brunner <tobias@strongswan.org>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2bad90eb8ff30ad74ba68f7458860ca833d380bb
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Tue Apr 28 16:12:08 2020 +0800

    net/x25: Fix null-ptr-deref in x25_disconnect
    
    commit 8999dc89497ab1c80d0718828e838c7cd5f6bffe upstream.
    
    We should check null before do x25_neigh_put in x25_disconnect,
    otherwise may cause null-ptr-deref like this:
    
     #include <sys/socket.h>
     #include <linux/x25.h>
    
     int main() {
        int sck_x25;
        sck_x25 = socket(AF_X25, SOCK_SEQPACKET, 0);
        close(sck_x25);
        return 0;
     }
    
    BUG: kernel NULL pointer dereference, address: 00000000000000d8
    CPU: 0 PID: 4817 Comm: t2 Not tainted 5.7.0-rc3+ #159
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-
    RIP: 0010:x25_disconnect+0x91/0xe0
    Call Trace:
     x25_release+0x18a/0x1b0
     __sock_release+0x3d/0xc0
     sock_close+0x13/0x20
     __fput+0x107/0x270
     ____fput+0x9/0x10
     task_work_run+0x6d/0xb0
     exit_to_usermode_loop+0x102/0x110
     do_syscall_64+0x23c/0x260
     entry_SYSCALL_64_after_hwframe+0x49/0xb3
    
    Reported-by: syzbot+6db548b615e5aeefdce2@syzkaller.appspotmail.com
    Fixes: 4becb7ee5b3d ("net/x25: Fix x25_neigh refcnt leak when x25 disconnect")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 923b9816c925072844efc35dd7b319d5d21455e9
Author: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Date:   Sat Apr 25 21:06:25 2020 +0800

    net/x25: Fix x25_neigh refcnt leak when x25 disconnect
    
    commit 4becb7ee5b3d2829ed7b9261a245a77d5b7de902 upstream.
    
    x25_connect() invokes x25_get_neigh(), which returns a reference of the
    specified x25_neigh object to "x25->neighbour" with increased refcnt.
    
    When x25 connect success and returns, the reference still be hold by
    "x25->neighbour", so the refcount should be decreased in
    x25_disconnect() to keep refcount balanced.
    
    The reference counting issue happens in x25_disconnect(), which forgets
    to decrease the refcnt increased by x25_get_neigh() in x25_connect(),
    causing a refcnt leak.
    
    Fix this issue by calling x25_neigh_put() before x25_disconnect()
    returns.
    
    Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd9534fff26c381d7c1d403728d751a361437502
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sat Jul 25 02:06:23 2020 +0100

    libtraceevent: Fix build with binutils 2.35
    
    commit 39efdd94e314336f4acbac4c07e0f37bdc3bef71 upstream.
    
    In binutils 2.35, 'nm -D' changed to show symbol versions along with
    symbol names, with the usual @@ separator.  When generating
    libtraceevent-dynamic-list we need just the names, so strip off the
    version suffix if present.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
    Cc: linux-trace-devel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e3afee6425394e86fd625ce9d965de3d3fd6d3a2
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Thu Jul 30 15:20:26 2020 -0400

    rds: Prevent kernel-infoleak in rds_notify_queue_get()
    
    commit bbc8a99e952226c585ac17477a85ef1194501762 upstream.
    
    rds_notify_queue_get() is potentially copying uninitialized kernel stack
    memory to userspace since the compiler may leave a 4-byte hole at the end
    of `cmsg`.
    
    In 2016 we tried to fix this issue by doing `= { 0 };` on `cmsg`, which
    unfortunately does not always initialize that 4-byte hole. Fix it by using
    memset() instead.
    
    Cc: stable@vger.kernel.org
    Fixes: f037590fff30 ("rds: fix a leak of kernel memory")
    Fixes: bdbe6fbc6a2f ("RDS: recv.c")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2342427fc3aa634fbe2e1597401cf61705b2868d
Author: Biju Das <biju.das.jz@bp.renesas.com>
Date:   Thu Jul 23 12:10:54 2020 +0100

    drm: of: Fix double-free bug
    
    commit 4ee48cc5586bf519df19894273002aa8ef7b70ad upstream.
    
    Fix double-free bug in the error path.
    
    Fixes: 6529007522de ("drm: of: Add drm_of_lvds_get_dual_link_pixel_order")
    Reported-by: Pavel Machek <pavel@denx.de>
    Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/1595502654-40595-1-git-send-email-biju.das.jz@bp.renesas.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5aa4eb5a6d915cf00bf104ddd76e1adbc3dabdc4
Author: Steve Cohen <cohens@codeaurora.org>
Date:   Mon Jul 20 18:30:50 2020 -0400

    drm: hold gem reference until object is no longer accessed
    
    commit 8490d6a7e0a0a6fab5c2d82d57a3937306660864 upstream.
    
    A use-after-free in drm_gem_open_ioctl can happen if the
    GEM object handle is closed between the idr lookup and
    retrieving the size from said object since a local reference
    is not being held at that point. Hold the local reference
    while the object can still be accessed to fix this and
    plug the potential security hole.
    
    Signed-off-by: Steve Cohen <cohens@codeaurora.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/1595284250-31580-1-git-send-email-cohens@codeaurora.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c71d5b14b2dbece82940b55e5e08da9e9a7f47c3
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sun Jul 19 01:33:22 2020 +0200

    drm/mcde: Fix stability issue
    
    commit aa7bf898d4bf921f61fab078040e8baec3f28126 upstream.
    
    Whenever a display update was sent, apart from updating
    the memory base address, we called mcde_display_send_one_frame()
    which also sent a command to the display requesting the TE IRQ
    and enabling the FIFO.
    
    When continuous updates are running this is wrong: we need
    to only send this to start the flow to the display on
    the very first update. This lead to the display pipeline
    locking up and crashing.
    
    Check if the flow is already running and in that case
    do not call mcde_display_send_one_frame().
    
    This fixes crashes on the Samsung GT-S7710 (Skomer).
    
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Acked-by: Stephan Gerhold <stephan@gerhold.net>
    Cc: Stephan Gerhold <stephan@gerhold.net>
    Cc: stable@vger.kernel.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20200718233323.3407670-1-linus.walleij@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd8af57d844359cc9da8b0c6d70ca078e5371453
Author: Paul Cercueil <paul@crapouillou.net>
Date:   Fri Jul 3 16:13:41 2020 +0200

    drm/dbi: Fix SPI Type 1 (9-bit) transfer
    
    commit 900ab59e2621053b009f707f80b2c19ce0af5dee upstream.
    
    The function mipi_dbi_spi1_transfer() will transfer its payload as 9-bit
    data, the 9th (MSB) bit being the data/command bit. In order to do that,
    it unpacks the 8-bit values into 16-bit values, then sets the 9th bit if
    the byte corresponds to data, clears it otherwise. The 7 MSB are
    padding. The array of now 16-bit values is then passed to the SPI core
    for transfer.
    
    This function was broken since its introduction, as the length of the
    SPI transfer was set to the payload size before its conversion, but the
    payload doubled in size due to the 8-bit -> 16-bit conversion.
    
    Fixes: 02dd95fe3169 ("drm/tinydrm: Add MIPI DBI support")
    Cc: <stable@vger.kernel.org> # 5.4+
    Signed-off-by: Paul Cercueil <paul@crapouillou.net>
    Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
    Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200703141341.1266263-1-paul@crapouillou.net
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd4672ba579a78f14dab65062d95c16f0835947b
Author: Peilin Ye <yepeilin.cs@gmail.com>
Date:   Tue Jul 28 15:29:24 2020 -0400

    drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
    
    commit 543e8669ed9bfb30545fd52bc0e047ca4df7fb31 upstream.
    
    Compiler leaves a 4-byte hole near the end of `dev_info`, causing
    amdgpu_info_ioctl() to copy uninitialized kernel stack memory to userspace
    when `size` is greater than 356.
    
    In 2015 we tried to fix this issue by doing `= {};` on `dev_info`, which
    unfortunately does not initialize that 4-byte hole. Fix it by using
    memset() instead.
    
    Cc: stable@vger.kernel.org
    Fixes: c193fa91b918 ("drm/amdgpu: information leak in amdgpu_info_ioctl()")
    Fixes: d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)")
    Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee27c88788b88c9c1c75e3a9ce580c79c2dba009
Author: Mazin Rezk <mnrzk@protonmail.com>
Date:   Mon Jul 27 05:40:46 2020 +0000

    drm/amd/display: Clear dm_state for fast updates
    
    commit fde9f39ac7f1ffd799a96ffa1e06b2051f0898f1 upstream.
    
    This patch fixes a race condition that causes a use-after-free during
    amdgpu_dm_atomic_commit_tail. This can occur when 2 non-blocking commits
    are requested and the second one finishes before the first. Essentially,
    this bug occurs when the following sequence of events happens:
    
    1. Non-blocking commit #1 is requested w/ a new dm_state #1 and is
    deferred to the workqueue.
    
    2. Non-blocking commit #2 is requested w/ a new dm_state #2 and is
    deferred to the workqueue.
    
    3. Commit #2 starts before commit #1, dm_state #1 is used in the
    commit_tail and commit #2 completes, freeing dm_state #1.
    
    4. Commit #1 starts after commit #2 completes, uses the freed dm_state
    1 and dereferences a freelist pointer while setting the context.
    
    Since this bug has only been spotted with fast commits, this patch fixes
    the bug by clearing the dm_state instead of using the old dc_state for
    fast updates. In addition, since dm_state is only used for its dc_state
    and amdgpu_dm_atomic_commit_tail will retain the dc_state if none is found,
    removing the dm_state should not have any consequences in fast updates.
    
    This use-after-free bug has existed for a while now, but only caused a
    noticeable issue starting from 5.7-rc1 due to 3202fa62f ("slub: relocate
    freelist pointer to middle of object") moving the freelist pointer from
    dm_state->base (which was unused) to dm_state->context (which is
    dereferenced).
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=207383
    Fixes: bd200d190f45 ("drm/amd/display: Don't replace the dc_state for fast updates")
    Reported-by: Duncan <1i5t5.duncan@cox.net>
    Signed-off-by: Mazin Rezk <mnrzk@protonmail.com>
    Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f53aaf88742ccee0e9aa4ed7d700ceeb434d9a7a
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Thu Jul 30 11:02:30 2020 -0400

    Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
    
    commit 87004abfbc27261edd15716515d89ab42198b405 upstream.
    
    This regressed some working configurations so revert it.  Will
    fix this properly for 5.9 and backport then.
    
    This reverts commit 38e0c89a19fd13f28d2b4721035160a3e66e270b.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82742151b6df8ecd15cdabec74364f97fe02b51d
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Mon Jul 27 12:01:27 2020 -0400

    virtio_balloon: fix up endian-ness for free cmd id
    
    commit 168c358af2f8c5a37f8b5f877ba2cc93995606ee upstream.
    
    free cmd id is read using virtio endian, spec says all fields
    in balloon are LE. Fix it up.
    
    Fixes: 86a559787e6f ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
    Cc: stable@vger.kernel.org
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Reviewed-by: Wei Wang <wei.w.wang@intel.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa3c45b30f52594557509e731717c0c07baa252f
Author: Michael Trimarchi <michael@amarulasolutions.com>
Date:   Fri Jul 17 13:33:52 2020 +0530

    ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
    
    commit 4a601da92c2a782e5c022680d476104586b74994 upstream.
    
    The current pin muxing scheme muxes GPIO_1 pad for USB_OTG_ID
    because of which when card is inserted, usb otg is enumerated
    and the card is never detected.
    
    [   64.492645] cfg80211: failed to load regulatory.db
    [   64.492657] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
    [   76.343711] ci_hdrc ci_hdrc.0: EHCI Host Controller
    [   76.349742] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 2
    [   76.388862] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
    [   76.396650] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
    [   76.405412] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [   76.412763] usb usb2: Product: EHCI Host Controller
    [   76.417666] usb usb2: Manufacturer: Linux 5.8.0-rc1-next-20200618 ehci_hcd
    [   76.424623] usb usb2: SerialNumber: ci_hdrc.0
    [   76.431755] hub 2-0:1.0: USB hub found
    [   76.435862] hub 2-0:1.0: 1 port detected
    
    The TRM mentions GPIO_1 pad should be muxed/assigned for card detect
    and ENET_RX_ER pad for USB_OTG_ID for proper operation.
    
    This patch fixes pin muxing as per TRM and is tested on a
    i.Core 1.5 MX6 DL SOM.
    
    [   22.449165] mmc0: host does not support reading read-only switch, assuming write-enable
    [   22.459992] mmc0: new high speed SDHC card at address 0001
    [   22.469725] mmcblk0: mmc0:0001 EB1QT 29.8 GiB
    [   22.478856]  mmcblk0: p1 p2
    
    Fixes: 6df11287f7c9 ("ARM: dts: imx6q: Add Engicam i.CoreM6 Quad/Dual initial support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
    Signed-off-by: Suniel Mahesh <sunil@amarulasolutions.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd90eadcbf79ea04b649384ba79f23cf259fb3dd
Author: Fabio Estevam <festevam@gmail.com>
Date:   Mon Jul 13 11:23:24 2020 -0300

    ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
    
    commit c696afd331be1acb39206aba53048f2386b781fc upstream.
    
    Commit 0672d22a1924 ("ARM: dts: imx: Fix the AR803X phy-mode") fixed the
    phy-mode for fec1, but missed to fix it for the fec2 node.
    
    Fix fec2 to also use "rgmii-id" as the phy-mode.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 0672d22a1924 ("ARM: dts: imx: Fix the AR803X phy-mode")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d89bc173a658be2b6ecf67e9330a59869f91707
Author: Fabio Estevam <festevam@gmail.com>
Date:   Mon Jul 13 11:23:25 2020 -0300

    ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
    
    commit d36f260718d83928e6012247a7e1b9791cdb12ff upstream.
    
    Commit 0672d22a1924 ("ARM: dts: imx: Fix the AR803X phy-mode") fixed the
    phy-mode for fec1, but missed to fix it for the fec2 node.
    
    Fix fec2 to also use "rgmii-id" as the phy-mode.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 0672d22a1924 ("ARM: dts: imx: Fix the AR803X phy-mode")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f36d129d035c4084c7a7a09f3ef9325862f70c89
Author: Jaedon Shin <jaedon.shin@gmail.com>
Date:   Thu Jun 18 18:15:30 2020 +0100

    ARM: 8987/1: VDSO: Fix incorrect clock_gettime64
    
    commit 4405bdf3c57ec28d606bdf5325f1167505bfdcd4 upstream.
    
    __vdso_*() should be removed and fallback used if CNTCVT is not
    available by cntvct_functional(). __vdso_clock_gettime64 when added
    previous commit is using the incorrect CNTCVT value in that state.
    __vdso_clock_gettime64 is also added to remove it's symbol.
    
    Cc: stable@vger.kernel.org
    Fixes: 74d06efb9c2f ("ARM: 8932/1: Add clock_gettime64 entry point")
    Signed-off-by: Jaedon Shin <jaedon.shin@gmail.com>
    Tested-by: Robin Murphy <robin.mruphy@arm.com>
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52b00d08c8d23423d717436eabe84f164df6f664
Author: Will Deacon <will@kernel.org>
Date:   Thu Jun 18 11:16:45 2020 +0100

    ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
    
    commit eec13b42d41b0f3339dcf0c4da43734427c68620 upstream.
    
    Unprivileged memory accesses generated by the so-called "translated"
    instructions (e.g. LDRT) in kernel mode can cause user watchpoints to fire
    unexpectedly. In such cases, the hw_breakpoint logic will invoke the user
    overflow handler which will typically raise a SIGTRAP back to the current
    task. This is futile when returning back to the kernel because (a) the
    signal won't have been delivered and (b) userspace can't handle the thing
    anyway.
    
    Avoid invoking the user overflow handler for watchpoints triggered by
    kernel uaccess routines, and instead single-step over the faulting
    instruction as we would if no overflow handler had been installed.
    
    Cc: <stable@vger.kernel.org>
    Fixes: f81ef4a920c8 ("ARM: 6356/1: hw-breakpoint: add ARM backend for the hw-breakpoint framework")
    Reported-by: Luis Machado <luis.machado@linaro.org>
    Tested-by: Luis Machado <luis.machado@linaro.org>
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5e79834a5cd304ba114fa4b05d75f10a4dce80e
Author: Paul Moore <paul@paul-moore.com>
Date:   Tue Jul 28 15:33:21 2020 -0400

    revert: 1320a4052ea1 ("audit: trigger accompanying records when no rules present")
    
    commit 8ac68dc455d9d18241d44b96800d73229029ed34 upstream.
    
    Unfortunately the commit listed in the subject line above failed
    to ensure that the task's audit_context was properly initialized/set
    before enabling the "accompanying records".  Depending on the
    situation, the resulting audit_context could have invalid values in
    some of it's fields which could cause a kernel panic/oops when the
    task/syscall exists and the audit records are generated.
    
    We will revisit the original patch, with the necessary fixes, in a
    future kernel but right now we just want to fix the kernel panic
    with the least amount of added risk.
    
    Cc: stable@vger.kernel.org
    Fixes: 1320a4052ea1 ("audit: trigger accompanying records when no rules present")
    Reported-by: j2468h@googlemail.com
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit beab956bdc0add5371e52d29c0d6f840c1f55609
Author: Wang Hai <wanghai38@huawei.com>
Date:   Fri Jun 12 17:08:33 2020 +0800

    9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
    
    commit 74d6a5d5662975aed7f25952f62efbb6f6dadd29 upstream.
    
    p9_read_work and p9_fd_cancelled may be called concurrently.
    In some cases, req->req_list may be deleted by both p9_read_work
    and p9_fd_cancelled.
    
    We can fix it by ignoring replies associated with a cancelled
    request and ignoring cancelled request if message has been received
    before lock.
    
    Link: http://lkml.kernel.org/r/20200612090833.36149-1-wanghai38@huawei.com
    Fixes: 60ff779c4abb ("9p: client: remove unused code and any reference to "cancelled" function")
    Cc: <stable@vger.kernel.org> # v3.12+
    Reported-by: syzbot+77a25acfa0382e06ab23@syzkaller.appspotmail.com
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fde502224ed421b7e81b3a332b81d55913c1db0b
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Fri Jul 10 06:36:16 2020 -0400

    vhost/scsi: fix up req type endian-ness
    
    commit 295c1b9852d000580786375304a9800bd9634d15 upstream.
    
    vhost/scsi doesn't handle type conversion correctly
    for request type when using virtio 1.0 and up for BE,
    or cross-endian platforms.
    
    Fix it up using vhost_32_to_cpu.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Jason Wang <jasowang@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f622b80b20b2bd018b52fec92076283b71d8adf0
Author: Mike Marciniszyn <mike.marciniszyn@intel.com>
Date:   Tue Jul 28 14:38:48 2020 -0400

    IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
    
    commit 54a485e9ec084da1a4b32dcf7749c7d760ed8aa5 upstream.
    
    The lookaside count is improperly initialized to the size of the
    Receive Queue with the additional +1.  In the traces below, the
    RQ size is 384, so the count was set to 385.
    
    The lookaside count is then rarely refreshed.  Note the high and
    incorrect count in the trace below:
    
    rvt_get_rwqe: [hfi1_0] wqe ffffc900078e9008 wr_id 55c7206d75a0 qpn c
            qpt 2 pid 3018 num_sge 1 head 1 tail 0, count 385
    rvt_get_rwqe: (hfi1_rc_rcv+0x4eb/0x1480 [hfi1] <- rvt_get_rwqe) ret=0x1
    
    The head,tail indicate there is only one RWQE posted although the count
    says 385 and we correctly return the element 0.
    
    The next call to rvt_get_rwqe with the decremented count:
    
    rvt_get_rwqe: [hfi1_0] wqe ffffc900078e9058 wr_id 0 qpn c
            qpt 2 pid 3018 num_sge 0 head 1 tail 1, count 384
    rvt_get_rwqe: (hfi1_rc_rcv+0x4eb/0x1480 [hfi1] <- rvt_get_rwqe) ret=0x1
    
    Note that the RQ is empty (head == tail) yet we return the RWQE at tail 1,
    which is not valid because of the bogus high count.
    
    Best case, the RWQE has never been posted and the rc logic sees an RWQE
    that is too small (all zeros) and puts the QP into an error state.
    
    In the worst case, a server slow at posting receive buffers might fool
    rvt_get_rwqe() into fetching an old RWQE and corrupt memory.
    
    Fix by deleting the faulty initialization code and creating an
    inline to fetch the posted count and convert all callers to use
    new inline.
    
    Fixes: f592ae3c999f ("IB/rdmavt: Fracture single lock used for posting and processing RWQEs")
    Link: https://lore.kernel.org/r/20200728183848.22226.29132.stgit@awfm-01.aw.intel.com
    Reported-by: Zhaojuan Guo <zguo@redhat.com>
    Cc: <stable@vger.kernel.org> # 5.4.x
    Reviewed-by: Kaike Wan <kaike.wan@intel.com>
    Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Tested-by: Honggang Li <honli@redhat.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f79609b984bae0cc376135ae057a0a8198959d2e
Author: Jason Gunthorpe <jgg@nvidia.com>
Date:   Mon Jul 27 12:57:12 2020 +0300

    RDMA/mlx5: Fix prefetch memory leak if get_prefetchable_mr fails
    
    commit 5351a56b1a4ceafd7a17ebfdf3cda430cdfd365d upstream.
    
    destroy_prefetch_work() must always be called if the work is not going
    to be queued. The num_sge also should have been set to i, not i-1
    which avoids the condition where it shouldn't have been called in the
    first place.
    
    Cc: stable@vger.kernel.org
    Fixes: fb985e278a30 ("RDMA/mlx5: Use SRCU properly in ODP prefetch")
    Link: https://lore.kernel.org/r/20200727095712.495652-1-leon@kernel.org
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3da39ba09c26be197b5817aab2fb06002873c1c8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Jul 28 10:20:33 2020 +0200

    ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
    
    commit c2c3657f0aedb8736a0fb7b2b1985adfb86e7802 upstream.
    
    It's been reported that, when neither nouveau nor Nvidia graphics
    driver is used, the screen starts flickering.  And, after comparing
    between the working case (stable 4.4.x) and the broken case, it turned
    out that the problem comes from the audio component binding.  The
    Nvidia and AMD audio binding code clears the bus->keep_power flag
    whenever snd_hdac_acomp_init() succeeds.  But this doesn't mean that
    the component is actually bound, but it merely indicates that it's
    ready for binding.  So, when both nouveau and Nvidia are blacklisted
    or not ready, the driver keeps running without the audio component but
    also with bus->keep_power = false.  This made the driver runtime PM
    kicked in and powering down when unused, which results in flickering
    in the graphics side, as it seems.
    
    For fixing the bug, this patch moves the bus->keep_power flag change
    into generic_acomp_notifier_set() that is the function called from the
    master_bind callback of component ops; i.e. it's guaranteed that the
    binding succeeded.
    
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208609
    Fixes: 5a858e79c911 ("ALSA: hda - Disable audio component for legacy Nvidia HDMI codecs")
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200728082033.23933-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a18b0253326834c1036ddba4e6d4db0e6c790e82
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Jul 27 18:44:43 2020 +0200

    ALSA: hda: Workaround for spurious wakeups on some Intel platforms
    
    commit a6630529aecb5a3e84370c376ed658e892e6261e upstream.
    
    We've received a regression report on Intel HD-audio controller that
    wakes up immediately after S3 suspend.  The bisection leads to the
    commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
    needed").  This commit replaces the system-suspend to use
    pm_runtime_force_suspend() instead of the direct call of
    __azx_runtime_suspend().  However, by some really mysterious reason,
    pm_runtime_force_suspend() causes a spurious wakeup (although it calls
    the same __azx_runtime_suspend() internally).
    
    As an ugly workaround for now, revert the behavior to call
    __azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
    platforms that may exhibit such a problem, while keeping the new
    standard pm_runtime_force_suspend() and pm_runtime_force_resume()
    pair for the remaining chips.
    
    Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200727164443.4233-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b97627fdfedc1d67eef204a6a30284919a756857
Author: Kailang Yang <kailang@realtek.com>
Date:   Wed Jul 29 15:09:27 2020 +0800

    ALSA: hda/realtek - Fixed HP right speaker no sound
    
    commit 5649625344fe1f4695eace7c37d011e317bf66d5 upstream.
    
    HP NB right speaker had no sound output.
    This platform was connected to I2S Amp for speaker out.(None Realtek I2S Amp IC)
    EC need to check codec GPIO1 pin to initial I2S Amp.
    
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/01285f623ac7447187482fb4a8ecaa7c@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ed6c592f511af8b6d237a0853240f09dcc80a06
Author: PeiSen Hou <pshou@realtek.com>
Date:   Mon Jul 27 13:56:47 2020 +0200

    ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference board (alc256)
    
    commit 6fa38ef1534e7e9320aa15e329eb1404ab2f70ac upstream.
    
    Intel requires to enable power saving mode for intel reference board (alc256)
    
    Signed-off-by: PeiSen Hou <pshou@realtek.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200727115647.10967-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f050d8ef0032625cf761645e855ea43841973c3
Author: Armas Spann <zappel@retarded.farm>
Date:   Fri Jul 24 16:08:37 2020 +0200

    ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus G14(GA401) series with ALC289
    
    commit 293a92c1d9913248b9987b68f3a5d6d2f0aae62b upstream.
    
    This patch fixes a small typo I accidently submitted with the initial patch. The board should be named GA401 not G401.
    
    Fixes: ff53664daff2 ("ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series with ALC289")
    Signed-off-by: Armas Spann <zappel@retarded.farm>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200724140837.302763-1-zappel@retarded.farm
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d40b527e86ba60ae1378bf498942f6fcb9c1892e
Author: Armas Spann <zappel@retarded.farm>
Date:   Fri Jul 24 16:06:16 2020 +0200

    ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series with ALC289
    
    commit 4b43d05a1978a93a19374c6e6b817c9c1ff4ba4b upstream.
    
    This patch adds support for headset mic to the ASUS ROG Zephyrus
    G15(GA502) notebook series by adding the corresponding
    vendor/pci_device id, as well as adding a new fixup for the used
    realtek ALC289. The fixup stets the correct pin to get the headset mic
    correctly recognized on audio-jack.
    
    Signed-off-by: Armas Spann <zappel@retarded.farm>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200724140616.298892-1-zappel@retarded.farm
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e25373748317f481d68aa99949de74f873d165d
Author: Laurence Tratt <laurie@tratt.net>
Date:   Sun Jun 21 08:50:05 2020 +0100

    ALSA: usb-audio: Add implicit feedback quirk for SSL2
    
    commit 3da87ec67a491b9633a82045896c076b794bf938 upstream.
    
    As expected, this requires the same quirk as the SSL2+ in order for the
    clock to sync. This was suggested by, and tested on an SSL2, by Dmitry.
    
    Suggested-by: Dmitry <dpavlushko@gmail.com>
    Signed-off-by: Laurence Tratt <laurie@tratt.net>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200621075005.52mjjfc6dtdjnr3h@overdrive.tratt.net
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5f89c9031dbc3a099237b56577a33afab9c0887
Author: Robert Hancock <hancockrwd@gmail.com>
Date:   Tue Jul 21 20:18:03 2020 -0600

    PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
    
    commit b361663c5a40c8bc758b7f7f2239f7a192180e7c upstream.
    
    Recently ASPM handling was changed to allow ASPM on PCIe-to-PCI/PCI-X
    bridges.  Unfortunately the ASMedia ASM1083/1085 PCIe to PCI bridge device
    doesn't seem to function properly with ASPM enabled.  On an Asus PRIME
    H270-PRO motherboard, it causes errors like these:
    
      pcieport 0000:00:1c.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
      pcieport 0000:00:1c.0: AER:   device [8086:a292] error status/mask=00003000/00002000
      pcieport 0000:00:1c.0: AER:    [12] Timeout
      pcieport 0000:00:1c.0: AER: Corrected error received: 0000:00:1c.0
      pcieport 0000:00:1c.0: AER: can't find device of ID00e0
    
    In addition to flooding the kernel log, this also causes the machine to
    wake up immediately after suspend is initiated.
    
    The device advertises ASPM L0s and L1 support in the Link Capabilities
    register, but the ASMedia web page for ASM1083 [1] claims "No PCIe ASPM
    support".
    
    Windows 10 (build 2004) enables L0s, but it also logs correctable PCIe
    errors.
    
    Add a quirk to disable ASPM for this device.
    
    [1] https://www.asmedia.com.tw/eng/e_show_products.php?cate_index=169&item=114
    
    [bhelgaas: commit log]
    Fixes: 66ff14e59e8a ("PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges")
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=208667
    Link: https://lore.kernel.org/r/20200722021803.17958-1-hancockrwd@gmail.com
    Signed-off-by: Robert Hancock <hancockrwd@gmail.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec25aabaffe687774165ae491cc797d7d8a79454
Author: NeilBrown <neilb@suse.de>
Date:   Fri May 22 12:01:32 2020 +1000

    sunrpc: check that domain table is empty at module unload.
    
    [ Upstream commit f45db2b909c7e76f35850e78f017221f30282b8e ]
    
    The domain table should be empty at module unload.  If it isn't there is
    a bug somewhere.  So check and report.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=206651
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>