commit 1bab61d3e8cd96f2badf515dcb06e4e1029bc017
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed May 20 08:18:54 2020 +0200

    Linux 4.19.124

commit bf7d61e56eb575ebce54d989f7e9a58a78fc851b
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Tue Mar 17 00:07:18 2020 +0000

    Makefile: disallow data races on gcc-10 as well
    
    commit b1112139a103b4b1101d0d2d72931f2d33d8c978 upstream.
    
    gcc-10 will rename --param=allow-store-data-races=0
    to -fno-allow-store-data-races.
    
    The flag change happened at https://gcc.gnu.org/PR92046.
    
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    Acked-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Cc: Thomas Backlund <tmb@mageia.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7709b2c659fa121a99b8521117787dc9136dfa84
Author: Jim Mattson <jmattson@google.com>
Date:   Mon May 11 15:56:16 2020 -0700

    KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
    
    commit c4e0e4ab4cf3ec2b3f0b628ead108d677644ebd9 upstream.
    
    Bank_num is a one-based count of banks, not a zero-based index. It
    overflows the allocated space only when strictly greater than
    KVM_MAX_MCE_BANKS.
    
    Fixes: a9e38c3e01ad ("KVM: x86: Catch potential overrun in MCE setup")
    Signed-off-by: Jue Wang <juew@google.com>
    Signed-off-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Peter Shier <pshier@google.com>
    Message-Id: <20200511225616.19557-1-jmattson@google.com>
    Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c87f4f38d73a9ef33972fd4b6ae15f19e0d7398
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri May 8 11:59:18 2020 +0200

    ARM: dts: r8a7740: Add missing extal2 to CPG node
    
    commit e47cb97f153193d4b41ca8d48127da14513d54c7 upstream.
    
    The Clock Pulse Generator (CPG) device node lacks the extal2 clock.
    This may lead to a failure registering the "r" clock, or to a wrong
    parent for the "usb24s" clock, depending on MD_CK2 pin configuration and
    boot loader CPG_USBCKCR register configuration.
    
    This went unnoticed, as this does not affect the single upstream board
    configuration, which relies on the first clock input only.
    
    Fixes: d9ffd583bf345e2e ("ARM: shmobile: r8a7740: add SoC clocks to DTS")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Ulrich Hecht <uli+renesas@fpond.eu>
    Link: https://lore.kernel.org/r/20200508095918.6061-1-geert+renesas@glider.be
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48ca4ccf02759b7ae8dea4d916cd91a703e2931d
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Fri Apr 17 16:29:03 2020 +0900

    arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
    
    commit f4d71c6ea9e58c07dd4d02d09c5dd9bb780ec4b1 upstream.
    
    Missing the renesas,ipmmu-main property on ipmmu_vip[01] nodes.
    
    Fixes: 55697cbb44e4 ("arm64: dts: renesas: r8a779{65,80,90}: Add IPMMU devices nodes)
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Link: https://lore.kernel.org/r/1587108543-23786-1-git-send-email-yoshihiro.shimoda.uh@renesas.com
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 609d20896e00ec859e4eb59a567ea91ef9938901
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Apr 8 11:09:26 2020 +0200

    ARM: dts: r8a73a4: Add missing CMT1 interrupts
    
    commit 0f739fdfe9e5ce668bd6d3210f310df282321837 upstream.
    
    The R-Mobile APE6 Compare Match Timer 1 generates 8 interrupts, one for
    each channel, but currently only 1 is described.
    Fix this by adding the missing interrupts.
    
    Fixes: f7b65230019b9dac ("ARM: shmobile: r8a73a4: Add CMT1 node")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20200408090926.25201-1-geert+renesas@glider.be
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1af815dfa6367a34021a9e7133b6f8ef86f250c4
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Fri Mar 27 11:04:14 2020 +0800

    arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
    
    commit 190c7f6fd43a776d4a6da1dac44408104649e9b7 upstream.
    
    The device tree compiler complains that the dwc3 nodes have regs
    properties but no matching unit addresses.
    
    Add the unit addresses to the device node name. While at it, also rename
    the nodes from "dwc3" to "usb", as guidelines require device nodes have
    generic names.
    
    Fixes: 7144224f2c2b ("arm64: dts: rockchip: support dwc3 USB for rk3399")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Link: https://lore.kernel.org/r/20200327030414.5903-7-wens@kernel.org
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1178a33eb23b318080b450d7b70d3bc656d36a7f
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Fri Mar 27 11:04:10 2020 +0800

    arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards
    
    commit 83b994129fb4c18a8460fd395864a28740e5e7fb upstream.
    
    In some board device tree files, "rk805" was used for the RK805 PMIC's
    node name. However the policy for device trees is that generic names
    should be used.
    
    Replace the "rk805" node name with the generic "pmic" name.
    
    Fixes: 1e28037ec88e ("arm64: dts: rockchip: add rk805 node for rk3328-evb")
    Fixes: 955bebde057e ("arm64: dts: rockchip: add rk3328-rock64 board")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Link: https://lore.kernel.org/r/20200327030414.5903-3-wens@kernel.org
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 11b6715f971f9731a33d9396fa31df4ce1a36df3
Author: Marc Zyngier <maz@kernel.org>
Date:   Tue May 5 15:09:53 2020 +0100

    clk: Unlink clock if failed to prepare or enable
    
    commit 018d4671b9bbd4a5c55cf6eab3e1dbc70a50b66e upstream.
    
    On failing to prepare or enable a clock, remove the core structure
    from the list it has been inserted as it is about to be freed.
    
    This otherwise leads to random crashes when subsequent clocks get
    registered, during which parsing of the clock tree becomes adventurous.
    
    Observed with QEMU's RPi-3 emulation.
    
    Fixes: 12ead77432f2 ("clk: Don't try to enable critical clocks if prepare failed")
    Signed-off-by: Marc Zyngier <maz@kernel.org>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: Michael Turquette <mturquette@baylibre.com>
    Link: https://lkml.kernel.org/r/20200505140953.409430-1-maz@kernel.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eea2b01912c140a3003bb84082c686e5065a33bb
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Sun May 3 23:24:46 2020 +0800

    Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
    
    commit f41224efcf8aafe80ea47ac870c5e32f3209ffc8 upstream.
    
    This reverts commit 3b36b13d5e69d6f51ff1c55d1b404a74646c9757.
    
    Enable power save node breaks some systems with ACL225. Revert the patch
    and use a platform specific quirk for the original issue isntead.
    
    Fixes: 3b36b13d5e69 ("ALSA: hda/realtek: Fix pop noise on ALC225")
    BugLink: https://bugs.launchpad.net/bugs/1875916
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20200503152449.22761-1-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3655034daad1a4d5b684f3cea6efe0f7eb676d20
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Thu May 7 05:13:32 2020 +0000

    usb: gadget: legacy: fix error return code in cdc_bind()
    
    commit e8f7f9e3499a6d96f7f63a4818dc7d0f45a7783b upstream.
    
    If 'usb_otg_descriptor_alloc()' fails, we must return a
    negative error code -ENOMEM, not 0.
    
    Fixes: ab6796ae9833 ("usb: gadget: cdc2: allocate and init otg descriptor by otg capabilities")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d08742fefe87032910e341b9218b504a7032e14c
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Thu May 7 05:13:23 2020 +0000

    usb: gadget: legacy: fix error return code in gncm_bind()
    
    commit e27d4b30b71c66986196d8a1eb93cba9f602904a upstream.
    
    If 'usb_otg_descriptor_alloc()' fails, we must return a
    negative error code -ENOMEM, not 0.
    
    Fixes: 1156e91dd7cc ("usb: gadget: ncm: allocate and init otg descriptor by otg capabilities")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c570aea0139678d3a9b7d658f21913617692b541
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun May 3 12:47:07 2020 +0200

    usb: gadget: audio: Fix a missing error return value in audio_bind()
    
    commit 19b94c1f9c9a16d41a8de3ccbdb8536cf1aecdbf upstream.
    
    If 'usb_otg_descriptor_alloc()' fails, we must return an error code, not 0.
    
    Fixes: 56023ce0fd70 ("usb: gadget: audio: allocate and init otg descriptor by otg capabilities")
    Reviewed-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 804bbfc3f28caa09be50bc2733ecc011a8e45c68
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Apr 27 20:04:23 2020 +0200

    usb: gadget: net2272: Fix a memory leak in an error handling path in 'net2272_plat_probe()'
    
    commit ccaef7e6e354fb65758eaddd3eae8065a8b3e295 upstream.
    
    'dev' is allocated in 'net2272_probe_init()'. It must be freed in the error
    handling path, as already done in the remove function (i.e.
    'net2272_plat_remove()')
    
    Fixes: 90fccb529d24 ("usb: gadget: Gadget directory cleanup - group UDC drivers")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ac0e17eba009715b35d029383c20a6ab23cb5e3
Author: John Stultz <john.stultz@linaro.org>
Date:   Mon May 4 23:12:15 2020 +0000

    dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
    
    commit 00e21763f2c8cab21b7befa52996d1b18bde5c42 upstream.
    
    The check for the HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
    causes us to break out of the loop before we call
    dwc3_gadget_ep_reclaim_completed_trb(), which is what likely
    should be clearing the HWO flag.
    
    This can cause odd behavior where we never reclaim all the trbs
    in the sg list, so we never call giveback on a usb req, and that
    will causes transfer stalls.
    
    This effectively resovles the adb stalls seen on HiKey960
    after userland changes started only using AIO in adbd.
    
    Cc: YongQin Liu <yongqin.liu@linaro.org>
    Cc: Anurag Kumar Vulisha <anurag.kumar.vulisha@xilinx.com>
    Cc: Yang Fei <fei.yang@intel.com>
    Cc: Thinh Nguyen <thinhn@synopsys.com>
    Cc: Tejas Joglekar <tejas.joglekar@synopsys.com>
    Cc: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
    Cc: Jack Pham <jackp@codeaurora.org>
    Cc: Josh Gao <jmgao@google.com>
    Cc: Todd Kjos <tkjos@google.com>
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: linux-usb@vger.kernel.org
    Cc: stable@vger.kernel.org #4.20+
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4ebb32efb638e27a8b22c28402f5973e2bd894fc
Author: Justin Swartz <justin.swartz@risingedge.co.za>
Date:   Tue Jan 14 16:25:02 2020 +0000

    clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
    
    commit cec9d101d70a3509da9bd2e601e0b242154ce616 upstream.
    
    The following changes prevent the unrecoverable freezes and rcu_sched
    stall warnings experienced in each of my attempts to take advantage of
    lima.
    
    Replace the COMPOSITE_NOGATE definition of aclk_gpu_pre with a
    COMPOSITE that retains the selection of HDMIPHY as the PLL source, but
    instead makes uses of the aclk_gpu PLL source gate and parent names
    defined by mux_pll_src_4plls_p rather than mux_aclk_gpu_pre_p.
    
    Remove the now unused mux_aclk_gpu_pre_p and the four named but also
    unused definitions (cpll_gpu, gpll_gpu, hdmiphy_gpu and usb480m_gpu)
    of the aclk_gpu PLL source gate.
    
    Use the correct gate offset for aclk_gpu and aclk_gpu_noc.
    
    Fixes: 307a2e9ac524 ("clk: rockchip: add clock controller for rk3228")
    Cc: stable@vger.kernel.org
    Signed-off-by: Justin Swartz <justin.swartz@risingedge.co.za>
    [double-checked against SoC manual and added fixes tag]
    Link: https://lore.kernel.org/r/20200114162503.7548-1-justin.swartz@risingedge.co.za
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfdb18282b6ff1374b4c1a0869fe7ad831fc0aef
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Sat May 16 16:29:20 2020 -0500

    exec: Move would_dump into flush_old_exec
    
    commit f87d1c9559164294040e58f5e3b74a162bf7c6e8 upstream.
    
    I goofed when I added mm->user_ns support to would_dump.  I missed the
    fact that in the case of binfmt_loader, binfmt_em86, binfmt_misc, and
    binfmt_script bprm->file is reassigned.  Which made the move of
    would_dump from setup_new_exec to __do_execve_file before exec_binprm
    incorrect as it can result in would_dump running on the script instead
    of the interpreter of the script.
    
    The net result is that the code stopped making unreadable interpreters
    undumpable.  Which allows them to be ptraced and written to disk
    without special permissions.  Oops.
    
    The move was necessary because the call in set_new_exec was after
    bprm->mm was no longer valid.
    
    To correct this mistake move the misplaced would_dump from
    __do_execve_file into flos_old_exec, before exec_mmap is called.
    
    I tested and confirmed that without this fix I can attach with gdb to
    a script with an unreadable interpreter, and with this fix I can not.
    
    Cc: stable@vger.kernel.org
    Fixes: f84df2a6f268 ("exec: Ensure mm->user_ns contains the execed files")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f95c11060417a410e5f1c3cf28dcaa052dba509
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Thu May 14 15:31:10 2020 -0500

    x86/unwind/orc: Fix error handling in __unwind_start()
    
    commit 71c95825289f585014fe9741b051d32a7a916680 upstream.
    
    The unwind_state 'error' field is used to inform the reliable unwinding
    code that the stack trace can't be trusted.  Set this field for all
    errors in __unwind_start().
    
    Also, move the zeroing out of the unwind_state struct to before the ORC
    table initialization check, to prevent the caller from reading
    uninitialized data if the ORC table is corrupted.
    
    Fixes: af085d9084b4 ("stacktrace/x86: add function for detecting reliable stack traces")
    Fixes: d3a09104018c ("x86/unwinder/orc: Dont bail on stack overflow")
    Fixes: 98d0c8ebf77e ("x86/unwind/orc: Prevent unwinding before ORC initialization")
    Reported-by: Pavel Machek <pavel@denx.de>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/d6ac7215a84ca92b895fdd2e1aa546729417e6e6.1589487277.git.jpoimboe@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15b4f26b7590c3e1f2ba67b734700d84ad4b92bd
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Apr 22 18:11:30 2020 +0200

    x86: Fix early boot crash on gcc-10, third try
    
    commit a9a3ed1eff3601b63aea4fb462d8b3b92c7c1e7e upstream.
    
    ... or the odyssey of trying to disable the stack protector for the
    function which generates the stack canary value.
    
    The whole story started with Sergei reporting a boot crash with a kernel
    built with gcc-10:
    
      Kernel panic — not syncing: stack-protector: Kernel stack is corrupted in: start_secondary
      CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.6.0-rc5—00235—gfffb08b37df9 #139
      Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./H77M—D3H, BIOS F12 11/14/2013
      Call Trace:
        dump_stack
        panic
        ? start_secondary
        __stack_chk_fail
        start_secondary
        secondary_startup_64
      -—-[ end Kernel panic — not syncing: stack—protector: Kernel stack is corrupted in: start_secondary
    
    This happens because gcc-10 tail-call optimizes the last function call
    in start_secondary() - cpu_startup_entry() - and thus emits a stack
    canary check which fails because the canary value changes after the
    boot_init_stack_canary() call.
    
    To fix that, the initial attempt was to mark the one function which
    generates the stack canary with:
    
      __attribute__((optimize("-fno-stack-protector"))) ... start_secondary(void *unused)
    
    however, using the optimize attribute doesn't work cumulatively
    as the attribute does not add to but rather replaces previously
    supplied optimization options - roughly all -fxxx options.
    
    The key one among them being -fno-omit-frame-pointer and thus leading to
    not present frame pointer - frame pointer which the kernel needs.
    
    The next attempt to prevent compilers from tail-call optimizing
    the last function call cpu_startup_entry(), shy of carving out
    start_secondary() into a separate compilation unit and building it with
    -fno-stack-protector, was to add an empty asm("").
    
    This current solution was short and sweet, and reportedly, is supported
    by both compilers but we didn't get very far this time: future (LTO?)
    optimization passes could potentially eliminate this, which leads us
    to the third attempt: having an actual memory barrier there which the
    compiler cannot ignore or move around etc.
    
    That should hold for a long time, but hey we said that about the other
    two solutions too so...
    
    Reported-by: Sergei Trofimovich <slyfox@gentoo.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Tested-by: Kalle Valo <kvalo@codeaurora.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20200314164451.346497-1-slyfox@gentoo.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad149b6e08f1ee582f1d2ffa747f463e9b6f1c40
Author: Adam McCoy <adam@forsedomani.com>
Date:   Wed May 13 11:53:30 2020 +0000

    cifs: fix leaked reference on requeued write
    
    commit a48137996063d22ffba77e077425f49873856ca5 upstream.
    
    Failed async writes that are requeued may not clean up a refcount
    on the file, which can result in a leaked open. This scenario arises
    very reliably when using persistent handles and a reconnect occurs
    while writing.
    
    cifs_writev_requeue only releases the reference if the write fails
    (rc != 0). The server->ops->async_writev operation will take its own
    reference, so the initial reference can always be released.
    
    Signed-off-by: Adam McCoy <adam@forsedomani.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Stable <stable@vger.kernel.org>
    Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 643ca7097dae63661eee1e5fd163dd82e9e1d433
Author: Fabio Estevam <festevam@gmail.com>
Date:   Fri Mar 27 10:36:24 2020 -0300

    ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
    
    commit 0caf34350a25907515d929a9c77b9b206aac6d1e upstream.
    
    The I2C2 pins are already used and the following errors are seen:
    
    imx27-pinctrl 10015000.iomuxc: pin MX27_PAD_I2C2_SDA already requested by 10012000.i2c; cannot claim for 1001d000.i2c
    imx27-pinctrl 10015000.iomuxc: pin-69 (1001d000.i2c) status -22
    imx27-pinctrl 10015000.iomuxc: could not request pin 69 (MX27_PAD_I2C2_SDA) from group i2c2grp  on device 10015000.iomuxc
    imx-i2c 1001d000.i2c: Error applying setting, reverse things back
    imx-i2c: probe of 1001d000.i2c failed with error -22
    
    Fix it by adding the correct I2C1 IOMUX entries for the pinctrl_i2c1 group.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 61664d0b432a ("ARM: dts: imx27 phyCARD-S pinctrl")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Reviewed-by: Stefan Riedmueller <s.riedmueller@phytec.de>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7abecb94bc72529f4e8911cf9511bc0b6828d3d5
Author: Kishon Vijay Abraham I <kishon@ti.com>
Date:   Fri Apr 17 12:13:40 2020 +0530

    ARM: dts: dra7: Fix bus_dma_limit for PCIe
    
    commit 90d4d3f4ea45370d482fa609dbae4d2281b4074f upstream.
    
    Even though commit cfb5d65f2595 ("ARM: dts: dra7: Add bus_dma_limit
    for L3 bus") added bus_dma_limit for L3 bus, the PCIe controller
    gets incorrect value of bus_dma_limit.
    
    Fix it by adding empty dma-ranges property to axi@0 and axi@1
    (parent device tree node of PCIe controller).
    
    Cc: stable@kernel.org
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 563cdec83585719b9e9d42aaa2d6542fa1bfbcfd
Author: Sriharsha Allenki <sallenki@codeaurora.org>
Date:   Thu May 14 14:04:31 2020 +0300

    usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
    
    commit 3c6f8cb92c9178fc0c66b580ea3df1fa3ac1155a upstream.
    
    On platforms with IOMMU enabled, multiple SGs can be coalesced into one
    by the IOMMU driver. In that case the SG list processing as part of the
    completion of a urb on a bulk endpoint can result into a NULL pointer
    dereference with the below stack dump.
    
    <6> Unable to handle kernel NULL pointer dereference at virtual address 0000000c
    <6> pgd = c0004000
    <6> [0000000c] *pgd=00000000
    <6> Internal error: Oops: 5 [#1] PREEMPT SMP ARM
    <2> PC is at xhci_queue_bulk_tx+0x454/0x80c
    <2> LR is at xhci_queue_bulk_tx+0x44c/0x80c
    <2> pc : [<c08907c4>]    lr : [<c08907bc>]    psr: 000000d3
    <2> sp : ca337c80  ip : 00000000  fp : ffffffff
    <2> r10: 00000000  r9 : 50037000  r8 : 00004000
    <2> r7 : 00000000  r6 : 00004000  r5 : 00000000  r4 : 00000000
    <2> r3 : 00000000  r2 : 00000082  r1 : c2c1a200  r0 : 00000000
    <2> Flags: nzcv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment none
    <2> Control: 10c0383d  Table: b412c06a  DAC: 00000051
    <6> Process usb-storage (pid: 5961, stack limit = 0xca336210)
    <snip>
    <2> [<c08907c4>] (xhci_queue_bulk_tx)
    <2> [<c0881b3c>] (xhci_urb_enqueue)
    <2> [<c0831068>] (usb_hcd_submit_urb)
    <2> [<c08350b4>] (usb_sg_wait)
    <2> [<c089f384>] (usb_stor_bulk_transfer_sglist)
    <2> [<c089f2c0>] (usb_stor_bulk_srb)
    <2> [<c089fe38>] (usb_stor_Bulk_transport)
    <2> [<c089f468>] (usb_stor_invoke_transport)
    <2> [<c08a11b4>] (usb_stor_control_thread)
    <2> [<c014a534>] (kthread)
    
    The above NULL pointer dereference is the result of block_len and the
    sent_len set to zero after the first SG of the list when IOMMU driver
    is enabled. Because of this the loop of processing the SGs has run
    more than num_sgs which resulted in a sg_next on the last SG of the
    list which has SG_END set.
    
    Fix this by check for the sg before any attributes of the sg are
    accessed.
    
    [modified reason for null pointer dereference in commit message subject -Mathias]
    Fixes: f9c589e142d04 ("xhci: TD-fragment, align the unsplittable case with a bounce buffer")
    Cc: stable@vger.kernel.org
    Signed-off-by: Sriharsha Allenki <sallenki@codeaurora.org>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20200514110432.25564-2-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a105bb549252e3e8bd9db0bdd81cdd6a853e4238
Author: Kyungtae Kim <kt0755@gmail.com>
Date:   Sun May 10 05:43:34 2020 +0000

    USB: gadget: fix illegal array access in binding with UDC
    
    commit 15753588bcd4bbffae1cca33c8ced5722477fe1f upstream.
    
    FuzzUSB (a variant of syzkaller) found an illegal array access
    using an incorrect index while binding a gadget with UDC.
    
    Reference: https://www.spinics.net/lists/linux-usb/msg194331.html
    
    This bug occurs when a size variable used for a buffer
    is misused to access its strcpy-ed buffer.
    Given a buffer along with its size variable (taken from user input),
    from which, a new buffer is created using kstrdup().
    Due to the original buffer containing 0 value in the middle,
    the size of the kstrdup-ed buffer becomes smaller than that of the original.
    So accessing the kstrdup-ed buffer with the same size variable
    triggers memory access violation.
    
    The fix makes sure no zero value in the buffer,
    by comparing the strlen() of the orignal buffer with the size variable,
    so that the access to the kstrdup-ed buffer is safe.
    
    BUG: KASAN: slab-out-of-bounds in gadget_dev_desc_UDC_store+0x1ba/0x200
    drivers/usb/gadget/configfs.c:266
    Read of size 1 at addr ffff88806a55dd7e by task syz-executor.0/17208
    
    CPU: 2 PID: 17208 Comm: syz-executor.0 Not tainted 5.6.8 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xce/0x128 lib/dump_stack.c:118
     print_address_description.constprop.4+0x21/0x3c0 mm/kasan/report.c:374
     __kasan_report+0x131/0x1b0 mm/kasan/report.c:506
     kasan_report+0x12/0x20 mm/kasan/common.c:641
     __asan_report_load1_noabort+0x14/0x20 mm/kasan/generic_report.c:132
     gadget_dev_desc_UDC_store+0x1ba/0x200 drivers/usb/gadget/configfs.c:266
     flush_write_buffer fs/configfs/file.c:251 [inline]
     configfs_write_file+0x2f1/0x4c0 fs/configfs/file.c:283
     __vfs_write+0x85/0x110 fs/read_write.c:494
     vfs_write+0x1cd/0x510 fs/read_write.c:558
     ksys_write+0x18a/0x220 fs/read_write.c:611
     __do_sys_write fs/read_write.c:623 [inline]
     __se_sys_write fs/read_write.c:620 [inline]
     __x64_sys_write+0x73/0xb0 fs/read_write.c:620
     do_syscall_64+0x9e/0x510 arch/x86/entry/common.c:294
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Signed-off-by: Kyungtae Kim <kt0755@gmail.com>
    Reported-and-tested-by: Kyungtae Kim <kt0755@gmail.com>
    Cc: Felipe Balbi <balbi@kernel.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200510054326.GA19198@pizza01
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8fd38d318e1544ef4ac2dda0bf67c5b6a9cd5b9d
Author: Li Jun <jun.li@nxp.com>
Date:   Thu May 14 14:04:32 2020 +0300

    usb: host: xhci-plat: keep runtime active when removing host
    
    commit 1449cb2c2253d37d998c3714aa9b95416d16d379 upstream.
    
    While removing the host (e.g. for USB role switch from host to device),
    if runtime pm is enabled by user, below oops occurs on dwc3 and cdns3
    platforms.
    Keeping the xhci-plat device active during host removal, and disabling
    runtime pm before calling pm_runtime_set_suspended() fixes them.
    
    oops1:
    Unable to handle kernel NULL pointer dereference at virtual address
    0000000000000240
    Internal error: Oops: 96000004 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 PID: 5 Comm: kworker/0:0 Not tainted 5.4.3-00107-g64d454a-dirty
    Hardware name: FSL i.MX8MP EVK (DT)
    Workqueue: pm pm_runtime_work
    pstate: 60000005 (nZCv daif -PAN -UAO)
    pc : xhci_suspend+0x34/0x698
    lr : xhci_plat_runtime_suspend+0x2c/0x38
    sp : ffff800011ddbbc0
    Call trace:
     xhci_suspend+0x34/0x698
     xhci_plat_runtime_suspend+0x2c/0x38
     pm_generic_runtime_suspend+0x28/0x40
     __rpm_callback+0xd8/0x138
     rpm_callback+0x24/0x98
     rpm_suspend+0xe0/0x448
     rpm_idle+0x124/0x140
     pm_runtime_work+0xa0/0xf8
     process_one_work+0x1dc/0x370
     worker_thread+0x48/0x468
     kthread+0xf0/0x120
     ret_from_fork+0x10/0x1c
    
    oops2:
    usb 2-1: USB disconnect, device number 2
    xhci-hcd xhci-hcd.1.auto: remove, state 4
    usb usb2: USB disconnect, device number 1
    xhci-hcd xhci-hcd.1.auto: USB bus 2 deregistered
    xhci-hcd xhci-hcd.1.auto: remove, state 4
    usb usb1: USB disconnect, device number 1
    Unable to handle kernel NULL pointer dereference at virtual address
    0000000000000138
    Internal error: Oops: 96000004 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 2 PID: 7 Comm: kworker/u8:0 Not tainted 5.6.0-rc4-next-20200304-03578
    Hardware name: Freescale i.MX8QXP MEK (DT)
    Workqueue: 1-0050 tcpm_state_machine_work
    pstate: 20000005 (nzCv daif -PAN -UAO)
    pc : xhci_free_dev+0x214/0x270
    lr : xhci_plat_runtime_resume+0x78/0x88
    sp : ffff80001006b5b0
    Call trace:
     xhci_free_dev+0x214/0x270
     xhci_plat_runtime_resume+0x78/0x88
     pm_generic_runtime_resume+0x30/0x48
     __rpm_callback+0x90/0x148
     rpm_callback+0x28/0x88
     rpm_resume+0x568/0x758
     rpm_resume+0x260/0x758
     rpm_resume+0x260/0x758
     __pm_runtime_resume+0x40/0x88
     device_release_driver_internal+0xa0/0x1c8
     device_release_driver+0x1c/0x28
     bus_remove_device+0xd4/0x158
     device_del+0x15c/0x3a0
     usb_disable_device+0xb0/0x268
     usb_disconnect+0xcc/0x300
     usb_remove_hcd+0xf4/0x1dc
     xhci_plat_remove+0x78/0xe0
     platform_drv_remove+0x30/0x50
     device_release_driver_internal+0xfc/0x1c8
     device_release_driver+0x1c/0x28
     bus_remove_device+0xd4/0x158
     device_del+0x15c/0x3a0
     platform_device_del.part.0+0x20/0x90
     platform_device_unregister+0x28/0x40
     cdns3_host_exit+0x20/0x40
     cdns3_role_stop+0x60/0x90
     cdns3_role_set+0x64/0xd8
     usb_role_switch_set_role.part.0+0x3c/0x68
     usb_role_switch_set_role+0x20/0x30
     tcpm_mux_set+0x60/0xf8
     tcpm_reset_port+0xa4/0xf0
     tcpm_detach.part.0+0x28/0x50
     tcpm_state_machine_work+0x12ac/0x2360
     process_one_work+0x1c8/0x470
     worker_thread+0x50/0x428
     kthread+0xfc/0x128
     ret_from_fork+0x10/0x18
    Code: c8037c02 35ffffa3 17ffe7c3 f9800011 (c85f7c01)
    ---[ end trace 45b1a173d2679e44 ]---
    
    [minor commit message cleanup  -Mathias]
    Cc: Baolin Wang <baolin.wang@linaro.org>
    Cc: <stable@vger.kernel.org>
    Fixes: b0c69b4bace3 ("usb: host: plat: Enable xHCI plat runtime PM")
    Reviewed-by: Peter Chen <peter.chen@nxp.com>
    Tested-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Li Jun <jun.li@nxp.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Link: https://lore.kernel.org/r/20200514110432.25564-3-mathias.nyman@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 073a30cb2e68bbfee67002830d6924d805210efa
Author: Eugeniu Rosca <erosca@de.adit-jv.com>
Date:   Fri May 15 00:02:46 2020 +0200

    usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
    
    commit 76e1ef1d81a4129d7e2fb8c48c83b166d1c8e040 upstream.
    
    On Tue, May 12, 2020 at 09:36:07PM +0800, Kai-Heng Feng wrote [1]:
    > This patch prevents my Raven Ridge xHCI from getting runtime suspend.
    
    The problem described in v5.6 commit 1208f9e1d758c9 ("USB: hub: Fix the
    broken detection of USB3 device in SMSC hub") applies solely to the
    USB5534B hub [2] present on the Kingfisher Infotainment Carrier Board,
    manufactured by Shimafuji Electric Inc [3].
    
    Despite that, the aforementioned commit applied the quirk to _all_ hubs
    carrying vendor ID 0x424 (i.e. SMSC), of which there are more [4] than
    initially expected. Consequently, the quirk is now enabled on platforms
    carrying SMSC/Microchip hub models which potentially don't exhibit the
    original issue.
    
    To avoid reports like [1], further limit the quirk's scope to
    USB5534B [2], by employing both Vendor and Product ID checks.
    
    Tested on H3ULCB + Kingfisher rev. M05.
    
    [1] https://lore.kernel.org/linux-renesas-soc/73933975-6F0E-40F5-9584-D2B8F615C0F3@canonical.com/
    [2] https://www.microchip.com/wwwproducts/en/USB5534B
    [3] http://www.shimafuji.co.jp/wp/wp-content/uploads/2018/08/SBEV-RCAR-KF-M06Board_HWSpecificationEN_Rev130.pdf
    [4] https://devicehunt.com/search/type/usb/vendor/0424/device/any
    
    Fixes: 1208f9e1d758c9 ("USB: hub: Fix the broken detection of USB3 device in SMSC hub")
    Cc: stable@vger.kernel.org # v4.14+
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Cc: Hardik Gajjar <hgajjar@de.adit-jv.com>
    Cc: linux-renesas-soc@vger.kernel.org
    Cc: linux-usb@vger.kernel.org
    Reported-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com>
    Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20200514220246.13290-1-erosca@de.adit-jv.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5c0fbcd2cb5d6f2aa6f241f1a7c42c1a125da8c
Author: Jesus Ramos <jesus-ramos@live.com>
Date:   Mon Apr 27 06:21:39 2020 -0700

    ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
    
    commit 073919e09ca445d4486968e3f851372ff44cf2b5 upstream.
    
    Kingston HyperX headset with 0951:16ad also needs the same quirk for
    delaying the frequency controls.
    
    Signed-off-by: Jesus Ramos <jesus-ramos@live.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/BY5PR19MB3634BA68C7CCA23D8DF428E796AF0@BY5PR19MB3634.namprd19.prod.outlook.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a507658fdb2ad8ca282b0eb42f2a40b805deb1e6
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu May 7 13:44:56 2020 +0200

    ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
    
    commit c1f6e3c818dd734c30f6a7eeebf232ba2cf3181d upstream.
    
    The rawmidi core allows user to resize the runtime buffer via ioctl,
    and this may lead to UAF when performed during concurrent reads or
    writes: the read/write functions unlock the runtime lock temporarily
    during copying form/to user-space, and that's the race window.
    
    This patch fixes the hole by introducing a reference counter for the
    runtime buffer read/write access and returns -EBUSY error when the
    resize is performed concurrently against read/write.
    
    Note that the ref count field is a simple integer instead of
    refcount_t here, since the all contexts accessing the buffer is
    basically protected with a spinlock, hence we need no expensive atomic
    ops.  Also, note that this busy check is needed only against read /
    write functions, and not in receive/transmit callbacks; the race can
    happen only at the spinlock hole mentioned in the above, while the
    whole function is protected for receive / transmit callbacks.
    
    Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/CAFcO6XMWpUVK_yzzCpp8_XP7+=oUpQvuBeCbMffEDkpe8jWrfg@mail.gmail.com
    Link: https://lore.kernel.org/r/s5heerw3r5z.wl-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8685c334d53045b189f84b59bb3c4c58d32f58e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu May 14 18:05:33 2020 +0200

    ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
    
    commit b590b38ca305d6d7902ec7c4f7e273e0069f3bcc upstream.
    
    Lenovo Thinkpad T530 seems to have a sensitive internal mic capture
    that needs to limit the mic boost like a few other Thinkpad models.
    Although we may change the quirk for ALC269_FIXUP_LENOVO_DOCK, this
    hits way too many other laptop models, so let's add a new fixup model
    that limits the internal mic boost on top of the existing quirk and
    apply to only T530.
    
    BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1171293
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200514160533.10337-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f81c4cc9b04042e0948389c936afd1f99f91d23c
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 15:58:04 2020 -0700

    gcc-10: avoid shadowing standard library 'free()' in crypto
    
    commit 1a263ae60b04de959d9ce9caea4889385eefcc7b upstream.
    
    gcc-10 has started warning about conflicting types for a few new
    built-in functions, particularly 'free()'.
    
    This results in warnings like:
    
       crypto/xts.c:325:13: warning: conflicting types for built-in function ‘free’; expected ‘void(void *)’ [-Wbuiltin-declaration-mismatch]
    
    because the crypto layer had its local freeing functions called
    'free()'.
    
    Gcc-10 is in the wrong here, since that function is marked 'static', and
    thus there is no chance of confusion with any standard library function
    namespace.
    
    But the simplest thing to do is to just use a different name here, and
    avoid this gcc mis-feature.
    
    [ Side note: gcc knowing about 'free()' is in itself not the
      mis-feature: the semantics of 'free()' are special enough that a
      compiler can validly do special things when seeing it.
    
      So the mis-feature here is that gcc thinks that 'free()' is some
      restricted name, and you can't shadow it as a local static function.
    
      Making the special 'free()' semantics be a function attribute rather
      than tied to the name would be the much better model ]
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28b0bceefe0d3092d9ce50d00668211f0f39f482
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 15:45:21 2020 -0700

    gcc-10: disable 'restrict' warning for now
    
    commit adc71920969870dfa54e8f40dac8616284832d02 upstream.
    
    gcc-10 now warns about passing aliasing pointers to functions that take
    restricted pointers.
    
    That's actually a great warning, and if we ever start using 'restrict'
    in the kernel, it might be quite useful.  But right now we don't, and it
    turns out that the only thing this warns about is an idiom where we have
    declared a few functions to be "printf-like" (which seems to make gcc
    pick up the restricted pointer thing), and then we print to the same
    buffer that we also use as an input.
    
    And people do that as an odd concatenation pattern, with code like this:
    
        #define sysfs_show_gen_prop(buffer, fmt, ...) \
            snprintf(buffer, PAGE_SIZE, "%s"fmt, buffer, __VA_ARGS__)
    
    where we have 'buffer' as both the destination of the final result, and
    as the initial argument.
    
    Yes, it's a bit questionable.  And outside of the kernel, people do have
    standard declarations like
    
        int snprintf( char *restrict buffer, size_t bufsz,
                      const char *restrict format, ... );
    
    where that output buffer is marked as a restrict pointer that cannot
    alias with any other arguments.
    
    But in the context of the kernel, that 'use snprintf() to concatenate to
    the end result' does work, and the pattern shows up in multiple places.
    And we have not marked our own version of snprintf() as taking restrict
    pointers, so the warning is incorrect for now, and gcc picks it up on
    its own.
    
    If we do start using 'restrict' in the kernel (and it might be a good
    idea if people find places where it matters), we'll need to figure out
    how to avoid this issue for snprintf and friends.  But in the meantime,
    this warning is not useful.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a5530c2f0c6a28e43ffa81999fe2cd412a95275
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 15:40:52 2020 -0700

    gcc-10: disable 'stringop-overflow' warning for now
    
    commit 5a76021c2eff7fcf2f0918a08fd8a37ce7922921 upstream.
    
    This is the final array bounds warning removal for gcc-10 for now.
    
    Again, the warning is good, and we should re-enable all these warnings
    when we have converted all the legacy array declaration cases to
    flexible arrays. But in the meantime, it's just noise.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fa8487621f6dfc2339778674673b7ee69b32b391
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 14:52:44 2020 -0700

    gcc-10: disable 'array-bounds' warning for now
    
    commit 44720996e2d79e47d508b0abe99b931a726a3197 upstream.
    
    This is another fine warning, related to the 'zero-length-bounds' one,
    but hitting the same historical code in the kernel.
    
    Because C didn't historically support flexible array members, we have
    code that instead uses a one-sized array, the same way we have cases of
    zero-sized arrays.
    
    The one-sized arrays come from either not wanting to use the gcc
    zero-sized array extension, or from a slight convenience-feature, where
    particularly for strings, the size of the structure now includes the
    allocation for the final NUL character.
    
    So with a "char name[1];" at the end of a structure, you can do things
    like
    
           v = my_malloc(sizeof(struct vendor) + strlen(name));
    
    and avoid the "+1" for the terminator.
    
    Yes, the modern way to do that is with a flexible array, and using
    'offsetof()' instead of 'sizeof()', and adding the "+1" by hand.  That
    also technically gets the size "more correct" in that it avoids any
    alignment (and thus padding) issues, but this is another long-term
    cleanup thing that will not happen for 5.7.
    
    So disable the warning for now, even though it's potentially quite
    useful.  Having a slew of warnings that then hide more urgent new issues
    is not an improvement.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f43fca7ea249ec9e903c378060dff4a5ef4f8b6
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 14:30:29 2020 -0700

    gcc-10: disable 'zero-length-bounds' warning for now
    
    commit 5c45de21a2223fe46cf9488c99a7fbcf01527670 upstream.
    
    This is a fine warning, but we still have a number of zero-length arrays
    in the kernel that come from the traditional gcc extension.  Yes, they
    are getting converted to flexible arrays, but in the meantime the gcc-10
    warning about zero-length bounds is very verbose, and is hiding other
    issues.
    
    I missed one actual build failure because it was hidden among hundreds
    of lines of warning.  Thankfully I caught it on the second go before
    pushing things out, but it convinced me that I really need to disable
    the new warnings for now.
    
    We'll hopefully be all done with our conversion to flexible arrays in
    the not too distant future, and we can then re-enable this warning.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ec22322218eca4c9fcafdbbf293a0f8faabfb2cb
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sat May 9 13:57:10 2020 -0700

    Stop the ad-hoc games with -Wno-maybe-initialized
    
    commit 78a5255ffb6a1af189a83e493d916ba1c54d8c75 upstream.
    
    We have some rather random rules about when we accept the
    "maybe-initialized" warnings, and when we don't.
    
    For example, we consider it unreliable for gcc versions < 4.9, but also
    if -O3 is enabled, or if optimizing for size.  And then various kernel
    config options disabled it, because they know that they trigger that
    warning by confusing gcc sufficiently (ie PROFILE_ALL_BRANCHES).
    
    And now gcc-10 seems to be introducing a lot of those warnings too, so
    it falls under the same heading as 4.9 did.
    
    At the same time, we have a very straightforward way to _enable_ that
    warning when wanted: use "W=2" to enable more warnings.
    
    So stop playing these ad-hoc games, and just disable that warning by
    default, with the known and straight-forward "if you want to work on the
    extra compiler warnings, use W=123".
    
    Would it be great to have code that is always so obvious that it never
    confuses the compiler whether a variable is used initialized or not?
    Yes, it would.  In a perfect world, the compilers would be smarter, and
    our source code would be simpler.
    
    That's currently not the world we live in, though.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9088569b56038c8750e2356a6b9274f980486c35
Author: Masahiro Yamada <yamada.masahiro@socionext.com>
Date:   Thu Feb 21 13:13:38 2019 +0900

    kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig
    
    commit b303c6df80c9f8f13785aa83a0471fca7e38b24d upstream.
    
    Since -Wmaybe-uninitialized was introduced by GCC 4.7, we have patched
    various false positives:
    
     - commit e74fc973b6e5 ("Turn off -Wmaybe-uninitialized when building
       with -Os") turned off this option for -Os.
    
     - commit 815eb71e7149 ("Kbuild: disable 'maybe-uninitialized' warning
       for CONFIG_PROFILE_ALL_BRANCHES") turned off this option for
       CONFIG_PROFILE_ALL_BRANCHES
    
     - commit a76bcf557ef4 ("Kbuild: enable -Wmaybe-uninitialized warning
       for "make W=1"") turned off this option for GCC < 4.9
       Arnd provided more explanation in https://lkml.org/lkml/2017/3/14/903
    
    I think this looks better by shifting the logic from Makefile to Kconfig.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/350
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51cc5495ff35519ba45d02acbf15999be680d428
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon May 4 09:16:37 2020 -0700

    gcc-10 warnings: fix low-hanging fruit
    
    commit 9d82973e032e246ff5663c9805fbb5407ae932e3 upstream.
    
    Due to a bug-report that was compiler-dependent, I updated one of my
    machines to gcc-10.  That shows a lot of new warnings.  Happily they
    seem to be mostly the valid kind, but it's going to cause a round of
    churn for getting rid of them..
    
    This is the really low-hanging fruit of removing a couple of zero-sized
    arrays in some core code.  We have had a round of these patches before,
    and we'll have many more coming, and there is nothing special about
    these except that they were particularly trivial, and triggered more
    warnings than most.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd2cefcd8815fc4f6dd5226065ac20e613e007b4
Author: Jason Gunthorpe <jgg@ziepe.ca>
Date:   Tue Apr 14 12:10:50 2020 -0300

    pnp: Use list_for_each_entry() instead of open coding
    
    commit 01b2bafe57b19d9119413f138765ef57990921ce upstream.
    
    Aside from good practice, this avoids a warning from gcc 10:
    
    ./include/linux/kernel.h:997:3: warning: array subscript -31 is outside array bounds of ‘struct list_head[1]’ [-Warray-bounds]
      997 |  ((type *)(__mptr - offsetof(type, member))); })
          |  ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./include/linux/list.h:493:2: note: in expansion of macro ‘container_of’
      493 |  container_of(ptr, type, member)
          |  ^~~~~~~~~~~~
    ./include/linux/pnp.h:275:30: note: in expansion of macro ‘list_entry’
      275 | #define global_to_pnp_dev(n) list_entry(n, struct pnp_dev, global_list)
          |                              ^~~~~~~~~~
    ./include/linux/pnp.h:281:11: note: in expansion of macro ‘global_to_pnp_dev’
      281 |  (dev) != global_to_pnp_dev(&pnp_global); \
          |           ^~~~~~~~~~~~~~~~~
    arch/x86/kernel/rtc.c:189:2: note: in expansion of macro ‘pnp_for_each_dev’
      189 |  pnp_for_each_dev(dev) {
    
    Because the common code doesn't cast the starting list_head to the
    containing struct.
    
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    [ rjw: Whitespace adjustments ]
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 89148bf73d7698ca3a92615dd2b9f8c18fa42228
Author: Samu Nuutamo <samu.nuutamo@vincit.fi>
Date:   Mon May 11 13:02:19 2020 +0200

    hwmon: (da9052) Synchronize access with mfd
    
    [ Upstream commit 333e22db228f0bd0c839553015a6a8d3db4ba569 ]
    
    When tsi-as-adc is configured it is possible for in7[0123]_input read to
    return an incorrect value if a concurrent read to in[456]_input is
    performed. This is caused by a concurrent manipulation of the mux
    channel without proper locking as hwmon and mfd use different locks for
    synchronization.
    
    Switch hwmon to use the same lock as mfd when accessing the TSI channel.
    
    Fixes: 4f16cab19a3d5 ("hwmon: da9052: Add support for TSI channel")
    Signed-off-by: Samu Nuutamo <samu.nuutamo@vincit.fi>
    [rebase to current master, reword commit message slightly]
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 893e55eb245e26b5f404f0ba5014883d0b92d224
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Sun Apr 26 10:59:21 2020 +0300

    IB/mlx4: Test return value of calls to ib_get_cached_pkey
    
    [ Upstream commit 6693ca95bd4330a0ad7326967e1f9bcedd6b0800 ]
    
    In the mlx4_ib_post_send() flow, some functions call ib_get_cached_pkey()
    without checking its return value. If ib_get_cached_pkey() returns an
    error code, these functions should return failure.
    
    Fixes: 1ffeb2eb8be9 ("IB/mlx4: SR-IOV IB context objects and proxy/tunnel SQP support")
    Fixes: 225c7b1feef1 ("IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters")
    Fixes: e622f2f4ad21 ("IB: split struct ib_send_wr")
    Link: https://lore.kernel.org/r/20200426075921.130074-1-leon@kernel.org
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 358254300b7bea42924ce3187e6520c242d2953a
Author: Stefano Brivio <sbrivio@redhat.com>
Date:   Sun Mar 22 03:22:00 2020 +0100

    netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
    
    [ Upstream commit 6f7c9caf017be8ab0fe3b99509580d0793bf0833 ]
    
    Replace negations of nft_rbtree_interval_end() with a new helper,
    nft_rbtree_interval_start(), wherever this helps to visualise the
    problem at hand, that is, for all the occurrences except for the
    comparison against given flags in __nft_rbtree_get().
    
    This gets especially useful in the next patch.
    
    Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 63e320a09544dfbae7ceb1b43d4a768bca285325
Author: Christoph Hellwig <hch@lst.de>
Date:   Sun May 10 09:54:41 2020 +0200

    arm64: fix the flush_icache_range arguments in machine_kexec
    
    [ Upstream commit d51c214541c5154dda3037289ee895ea3ded5ebd ]
    
    The second argument is the end "pointer", not the length.
    
    Fixes: d28f6df1305a ("arm64/kexec: Add core kexec support")
    Cc: <stable@vger.kernel.org> # 4.8.x-
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d2413ec1f789f6e21134ff895cd47b5b82613b99
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Apr 30 23:30:48 2020 +0200

    netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
    
    [ Upstream commit 2c407aca64977ede9b9f35158e919773cae2082f ]
    
    gcc-10 warns around a suspicious access to an empty struct member:
    
    net/netfilter/nf_conntrack_core.c: In function '__nf_conntrack_alloc':
    net/netfilter/nf_conntrack_core.c:1522:9: warning: array subscript 0 is outside the bounds of an interior zero-length array 'u8[0]' {aka 'unsigned char[0]'} [-Wzero-length-bounds]
     1522 |  memset(&ct->__nfct_init_offset[0], 0,
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from net/netfilter/nf_conntrack_core.c:37:
    include/net/netfilter/nf_conntrack.h:90:5: note: while referencing '__nfct_init_offset'
       90 |  u8 __nfct_init_offset[0];
          |     ^~~~~~~~~~~~~~~~~~
    
    The code is correct but a bit unusual. Rework it slightly in a way that
    does not trigger the warning, using an empty struct instead of an empty
    array. There are probably more elegant ways to do this, but this is the
    smallest change.
    
    Fixes: c41884ce0562 ("netfilter: conntrack: avoid zeroing timer")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0840f672836387a9bd1153136a9a498f3292cc6f
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Thu Apr 16 06:06:08 2020 -0400

    NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
    
    [ Upstream commit 50eaa652b54df1e2b48dc398d9e6114c9ed080eb ]
    
    Commit 402cb8dda949 ("fscache: Attach the index key and aux data to
    the cookie") added the aux_data and aux_data_len to parameters to
    fscache_acquire_cookie(), and updated the callers in the NFS client.
    In the process it modified the aux_data to include the change_attr,
    but missed adding change_attr to a couple places where aux_data was
    used.  Specifically, when opening a file and the change_attr is not
    added, the following attempt to lookup an object will fail inside
    cachefiles_check_object_xattr() = -116 due to
    nfs_fscache_inode_check_aux() failing memcmp on auxdata and returning
    FSCACHE_CHECKAUX_OBSOLETE.
    
    Fix this by adding nfs_fscache_update_auxdata() to set the auxdata
    from all relevant fields in the inode, including the change_attr.
    
    Fixes: 402cb8dda949 ("fscache: Attach the index key and aux data to the cookie")
    Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8b16f4ab334d87e2ca5b638ce4eaaa2f71f5e24
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Nov 11 21:16:25 2019 +0100

    nfs: fscache: use timespec64 in inode auxdata
    
    [ Upstream commit 6e31ded6895adfca97211118cc9b72236e8f6d53 ]
    
    nfs currently behaves differently on 32-bit and 64-bit kernels regarding
    the on-disk format of nfs_fscache_inode_auxdata.
    
    That format should really be the same on any kernel, and we should avoid
    the 'timespec' type in order to remove that from the kernel later on.
    
    Using plain 'timespec64' would not be good here, since that includes
    implied padding and would possibly leak kernel stack data to the on-disk
    format on 32-bit architectures.
    
    struct __kernel_timespec would work as a replacement, but open-coding
    the two struct members in nfs_fscache_inode_auxdata makes it more
    obvious what's going on here, and keeps the current format for 64-bit
    architectures.
    
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f61787f77dd7256306a817735eff564112922f8e
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Wed Apr 15 16:14:41 2020 -0400

    NFS: Fix fscache super_cookie index_key from changing after umount
    
    [ Upstream commit d9bfced1fbcb35b28d8fbed4e785d2807055ed2b ]
    
    Commit 402cb8dda949 ("fscache: Attach the index key and aux data to
    the cookie") added the index_key and index_key_len parameters to
    fscache_acquire_cookie(), and updated the callers in the NFS client.
    One of the callers was inside nfs_fscache_get_super_cookie()
    and was changed to use the full struct nfs_fscache_key as the
    index_key.  However, a couple members of this structure contain
    pointers and thus will change each time the same NFS share is
    remounted.  Since index_key is used for fscache_cookie->key_hash
    and this subsequently is used to compare cookies, the effectiveness
    of fscache with NFS is reduced to the point at which a umount
    occurs.   Any subsequent remount of the same share will cause a
    unique NFS super_block index_key and key_hash to be generated for
    the same data, rendering any prior fscache data unable to be
    found.  A simple reproducer demonstrates the problem.
    
    1. Mount share with 'fsc', create a file, drop page cache
    systemctl start cachefilesd
    mount -o vers=3,fsc 127.0.0.1:/export /mnt
    dd if=/dev/zero of=/mnt/file1.bin bs=4096 count=1
    echo 3 > /proc/sys/vm/drop_caches
    
    2. Read file into page cache and fscache, then unmount
    dd if=/mnt/file1.bin of=/dev/null bs=4096 count=1
    umount /mnt
    
    3. Remount and re-read which should come from fscache
    mount -o vers=3,fsc 127.0.0.1:/export /mnt
    echo 3 > /proc/sys/vm/drop_caches
    dd if=/mnt/file1.bin of=/dev/null bs=4096 count=1
    
    4. Check for READ ops in mountstats - there should be none
    grep READ: /proc/self/mountstats
    
    Looking at the history and the removed function, nfs_super_get_key(),
    we should only use nfs_fscache_key.key plus any uniquifier, for
    the fscache index_key.
    
    Fixes: 402cb8dda949 ("fscache: Attach the index key and aux data to the cookie")
    Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 57a5bd6c26dce16ad5f4258cf773dbfc9c4f9936
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri May 8 09:22:27 2020 +0300

    mmc: block: Fix request completion in the CQE timeout path
    
    [ Upstream commit c077dc5e0620508a29497dac63a2822324ece52a ]
    
    First, it should be noted that the CQE timeout (60 seconds) is substantial
    so a CQE request that times out is really stuck, and the race between
    timeout and completion is extremely unlikely. Nevertheless this patch
    fixes an issue with it.
    
    Commit ad73d6feadbd7b ("mmc: complete requests from ->timeout")
    preserved the existing functionality, to complete the request.
    However that had only been necessary because the block layer
    timeout handler had been marking the request to prevent it from being
    completed normally. That restriction was removed at the same time, the
    result being that a request that has gone will have been completed anyway.
    That is, the completion was unnecessary.
    
    At the time, the unnecessary completion was harmless because the block
    layer would ignore it, although that changed in kernel v5.0.
    
    Note for stable, this patch will not apply cleanly without patch "mmc:
    core: Fix recursive locking issue in CQE recovery path"
    
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Fixes: ad73d6feadbd7b ("mmc: complete requests from ->timeout")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200508062227.23144-1-adrian.hunter@intel.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8c167dd2fa38f773ef0c1d72f137f5136756e25
Author: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Date:   Wed May 6 20:04:02 2020 +0530

    mmc: core: Check request type before completing the request
    
    [ Upstream commit e6bfb1bf00852b55f4c771f47ae67004c04d3c87 ]
    
    In the request completion path with CQE, request type is being checked
    after the request is getting completed. This is resulting in returning
    the wrong request type and leading to the IO hang issue.
    
    ASYNC request type is getting returned for DCMD type requests.
    Because of this mismatch, mq->cqe_busy flag is never getting cleared
    and the driver is not invoking blk_mq_hw_run_queue. So requests are not
    getting dispatched to the LLD from the block layer.
    
    All these eventually leading to IO hang issues.
    So, get the request type before completing the request.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 1e8e55b67030 ("mmc: block: Add CQE support")
    Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/1588775643-18037-2-git-send-email-vbadigan@codeaurora.org
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3d03be751577d241f3a5f321efa71383a4ab75e8
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Apr 22 12:22:11 2020 +0300

    i40iw: Fix error handling in i40iw_manage_arp_cache()
    
    [ Upstream commit 37e31d2d26a4124506c24e95434e9baf3405a23a ]
    
    The i40iw_arp_table() function can return -EOVERFLOW if
    i40iw_alloc_resource() fails so we can't just test for "== -1".
    
    Fixes: 4e9042e647ff ("i40iw: add hw and utils files")
    Link: https://lore.kernel.org/r/20200422092211.GA195357@mwanda
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f5c38c7b002faad20f7bc64acdc02b80f6aad31
Author: Grace Kao <grace.kao@intel.com>
Date:   Fri Apr 17 12:11:54 2020 +0800

    pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
    
    [ Upstream commit 69388e15f5078c961b9e5319e22baea4c57deff1 ]
    
    According to Braswell NDA Specification Update (#557593),
    concurrent read accesses may result in returning 0xffffffff and write
    instructions may be dropped. We have an established format for the
    commit references, i.e.
    cdca06e4e859 ("pinctrl: baytrail: Add missing spinlock usage in
    byt_gpio_irq_handler")
    
    Fixes: 0bd50d719b00 ("pinctrl: cherryview: prevent concurrent access to GPIO controllers")
    Signed-off-by: Grace Kao <grace.kao@intel.com>
    Reported-by: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Brian Norris <briannorris@chromium.org>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 823fb483dfeea183901f44a33654086b974ef169
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Wed Dec 11 19:32:54 2019 +0200

    pinctrl: baytrail: Enable pin configuration setting for GPIO chip
    
    [ Upstream commit ccd025eaddaeb99e982029446197c544252108e2 ]
    
    It appears that pin configuration for GPIO chip hasn't been enabled yet
    due to absence of ->set_config() callback.
    
    Enable it here for Intel Baytrail.
    
    Fixes: c501d0b149de ("pinctrl: baytrail: Add pin control operations")
    Depends-on: 2956b5d94a76 ("pinctrl / gpio: Introduce .set_config() callback for GPIO chips")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ecf4cb653e63c094eb53af78641074923415d8a3
Author: Andreas Gruenbacher <agruenba@redhat.com>
Date:   Mon Apr 20 19:42:04 2020 +0200

    gfs2: Another gfs2_walk_metadata fix
    
    [ Upstream commit 566a2ab3c9005f62e784bd39022d58d34ef4365c ]
    
    Make sure we don't walk past the end of the metadata in gfs2_walk_metadata: the
    inode holds fewer pointers than indirect blocks.
    
    Slightly clean up gfs2_iomap_get.
    
    Fixes: a27a0c9b6a20 ("gfs2: gfs2_walk_metadata fix")
    Cc: stable@vger.kernel.org # v5.3+
    Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a79765b560f9410a36a785b82871565c93eb539
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Sun May 3 23:24:47 2020 +0800

    ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
    
    [ Upstream commit 52e4e36807aeac1cdd07b14e509c8a64101e1a09 ]
    
    Commit 317d9313925c ("ALSA: hda/realtek - Set default power save node to
    0") makes the ALC225 have pop noise on S3 resume and cold boot.
    
    The previous fix enable power save node universally for ALC225, however
    it makes some ALC225 systems unable to produce any sound.
    
    So let's only enable power save node for the affected Dell Wyse
    platform.
    
    Fixes: 317d9313925c ("ALSA: hda/realtek - Set default power save node to 0")
    BugLink: https://bugs.launchpad.net/bugs/1866357
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Link: https://lore.kernel.org/r/20200503152449.22761-2-kai.heng.feng@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 15e0db6e61c00a7abc64cfcac583637c0707bcfb
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Wed May 13 17:50:48 2020 -0700

    ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
    
    [ Upstream commit 5e698222c70257d13ae0816720dde57c56f81e15 ]
    
    Commit 89163f93c6f9 ("ipc/util.c: sysvipc_find_ipc() should increase
    position index") is causing this bug (seen on 5.6.8):
    
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
    
       # ipcmk -Q
       Message queue id: 0
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
       0x82db8127 0          root       644        0            0
    
       # ipcmk -Q
       Message queue id: 1
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
       0x82db8127 0          root       644        0            0
       0x76d1fb2a 1          root       644        0            0
    
       # ipcrm -q 0
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
       0x76d1fb2a 1          root       644        0            0
       0x76d1fb2a 1          root       644        0            0
    
       # ipcmk -Q
       Message queue id: 2
       # ipcrm -q 2
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
       0x76d1fb2a 1          root       644        0            0
       0x76d1fb2a 1          root       644        0            0
    
       # ipcmk -Q
       Message queue id: 3
       # ipcrm -q 1
       # ipcs -q
    
       ------ Message Queues --------
       key        msqid      owner      perms      used-bytes   messages
       0x7c982867 3          root       644        0            0
       0x7c982867 3          root       644        0            0
       0x7c982867 3          root       644        0            0
       0x7c982867 3          root       644        0            0
    
    Whenever an IPC item with a low id is deleted, the items with higher ids
    are duplicated, as if filling a hole.
    
    new_pos should jump through hole of unused ids, pos can be updated
    inside "for" cycle.
    
    Fixes: 89163f93c6f9 ("ipc/util.c: sysvipc_find_ipc() should increase position index")
    Reported-by: Andreas Schwab <schwab@suse.de>
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Waiman Long <longman@redhat.com>
    Cc: NeilBrown <neilb@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Oberparleiter <oberpar@linux.ibm.com>
    Cc: Davidlohr Bueso <dave@stgolabs.net>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/4921fe9b-9385-a2b4-1dc4-1099be6d2e39@virtuozzo.com
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e00fb78e1265328268c0aa19bab2feec2759cb28
Author: Vasily Averin <vvs@virtuozzo.com>
Date:   Wed Apr 29 12:34:36 2020 +0300

    drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
    
    [ Upstream commit 5b5703dbafae74adfbe298a56a81694172caf5e6 ]
    
    v2: removed TODO reminder
    
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/a4e0ae09-a73c-1c62-04ef-3f990d41bea9@virtuozzo.com
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1b8a1d1351a4cce885ee01a2f47c2c4544138683
Author: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Date:   Tue Apr 28 15:38:36 2020 +0300

    ALSA: hda/hdmi: fix race in monitor detection during probe
    
    [ Upstream commit ca76282b6faffc83601c25bd2a95f635c03503ef ]
    
    A race exists between build_pcms() and build_controls() phases of codec
    setup. Build_pcms() sets up notifier for jack events. If a monitor event
    is received before build_controls() is run, the initial jack state is
    lost and never reported via mixer controls.
    
    The problem can be hit at least with SOF as the controller driver. SOF
    calls snd_hda_codec_build_controls() in its workqueue-based probe and
    this can be delayed enough to hit the race condition.
    
    Fix the issue by invalidating the per-pin ELD information when
    build_controls() is called. The existing call to hdmi_present_sense()
    will update the ELD contents. This ensures initial monitor state is
    correctly reflected via mixer controls.
    
    BugLink: https://github.com/thesofproject/linux/issues/1687
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20200428123836.24512-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 648e920654f4345ecc8765dc5717a4fbce152259
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Apr 10 20:26:29 2020 +0100

    cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
    
    [ Upstream commit 8c539776ac83c0857395e1ccc9c6b516521a2d32 ]
    
    Make a note of the first time we discover the turbo mode has been
    disabled by the BIOS, as otherwise we complain every time we try to
    update the mode.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1cb0aed8cd18181f97ea5f9bf1ed3808300e860d
Author: Lubomir Rintel <lkundrak@v3.sk>
Date:   Sun Apr 19 18:49:09 2020 +0200

    dmaengine: mmp_tdma: Reset channel error on release
    
    [ Upstream commit 0c89446379218698189a47871336cb30286a7197 ]
    
    When a channel configuration fails, the status of the channel is set to
    DEV_ERROR so that an attempt to submit it fails. However, this status
    sticks until the heat end of the universe, making it impossible to
    recover from the error.
    
    Let's reset it when the channel is released so that further use of the
    channel with correct configuration is not impacted.
    
    Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
    Link: https://lore.kernel.org/r/20200419164912.670973-5-lkundrak@v3.sk
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 53d9db75d7a9f28467a62e7aa9507a8601cbfb44
Author: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
Date:   Thu Apr 16 11:53:35 2020 +0530

    dmaengine: pch_dma.c: Avoid data race between probe and irq handler
    
    [ Upstream commit 2e45676a4d33af47259fa186ea039122ce263ba9 ]
    
    pd->dma.dev is read in irq handler pd_irq().
    However, it is set to pdev->dev after request_irq().
    Therefore, set pd->dma.dev to pdev->dev before request_irq() to
    avoid data race between pch_dma_probe() and pd_irq().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
    Link: https://lore.kernel.org/r/20200416062335.29223-1-madhuparnabhowmik10@gmail.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29130f67c174e961196aac0e74a1d35d60c21968
Author: Ilie Halip <ilie.halip@gmail.com>
Date:   Wed Apr 15 17:29:58 2020 +0300

    riscv: fix vdso build with lld
    
    [ Upstream commit 3c1918c8f54166598195d938564072664a8275b1 ]
    
    When building with the LLVM linker this error occurrs:
        LD      arch/riscv/kernel/vdso/vdso-syms.o
      ld.lld: error: no input files
    
    This happens because the lld treats -R as an alias to -rpath, as opposed
    to ld where -R means --just-symbols.
    
    Use the long option name for compatibility between the two.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/805
    Reported-by: Dmitry Golovin <dima@golovin.in>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Ilie Halip <ilie.halip@gmail.com>
    Reviewed-by: Fangrui Song <maskray@google.com>
    Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 99779c24bf4c2b56129df5891902eb4e9a62f275
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue May 12 06:54:30 2020 -0700

    tcp: fix SO_RCVLOWAT hangs with fat skbs
    
    [ Upstream commit 24adbc1676af4e134e709ddc7f34cf2adc2131e4 ]
    
    We autotune rcvbuf whenever SO_RCVLOWAT is set to account for 100%
    overhead in tcp_set_rcvlowat()
    
    This works well when skb->len/skb->truesize ratio is bigger than 0.5
    
    But if we receive packets with small MSS, we can end up in a situation
    where not enough bytes are available in the receive queue to satisfy
    RCVLOWAT setting.
    As our sk_rcvbuf limit is hit, we send zero windows in ACK packets,
    preventing remote peer from sending more data.
    
    Even autotuning does not help, because it only triggers at the time
    user process drains the queue. If no EPOLLIN is generated, this
    can not happen.
    
    Note poll() has a similar issue, after commit
    c7004482e8dc ("tcp: Respect SO_RCVLOWAT in tcp_poll().")
    
    Fixes: 03f45c883c6f ("tcp: avoid extra wakeups for SO_RCVLOWAT users")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31080a892c54dd7852b24c584b9a5f904708fb6f
Author: Kelly Littlepage <kelly@onechronos.com>
Date:   Fri May 8 19:58:46 2020 +0000

    net: tcp: fix rx timestamp behavior for tcp_recvmsg
    
    [ Upstream commit cc4de047b33be247f9c8150d3e496743a49642b8 ]
    
    The stated intent of the original commit is to is to "return the timestamp
    corresponding to the highest sequence number data returned." The current
    implementation returns the timestamp for the last byte of the last fully
    read skb, which is not necessarily the last byte in the recv buffer. This
    patch converts behavior to the original definition, and to the behavior of
    the previous draft versions of commit 98aaa913b4ed ("tcp: Extend
    SOF_TIMESTAMPING_RX_SOFTWARE to TCP recvmsg") which also match this
    behavior.
    
    Fixes: 98aaa913b4ed ("tcp: Extend SOF_TIMESTAMPING_RX_SOFTWARE to TCP recvmsg")
    Co-developed-by: Iris Liu <iris@onechronos.com>
    Signed-off-by: Iris Liu <iris@onechronos.com>
    Signed-off-by: Kelly Littlepage <kelly@onechronos.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Acked-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ccd2503594937b1fa3e7cc07e7e3f7306b032a5
Author: Zefan Li <lizefan@huawei.com>
Date:   Sat May 9 11:32:10 2020 +0800

    netprio_cgroup: Fix unlimited memory leak of v2 cgroups
    
    [ Upstream commit 090e28b229af92dc5b40786ca673999d59e73056 ]
    
    If systemd is configured to use hybrid mode which enables the use of
    both cgroup v1 and v2, systemd will create new cgroup on both the default
    root (v2) and netprio_cgroup hierarchy (v1) for a new session and attach
    task to the two cgroups. If the task does some network thing then the v2
    cgroup can never be freed after the session exited.
    
    One of our machines ran into OOM due to this memory leak.
    
    In the scenario described above when sk_alloc() is called
    cgroup_sk_alloc() thought it's in v2 mode, so it stores
    the cgroup pointer in sk->sk_cgrp_data and increments
    the cgroup refcnt, but then sock_update_netprioidx()
    thought it's in v1 mode, so it stores netprioidx value
    in sk->sk_cgrp_data, so the cgroup refcnt will never be freed.
    
    Currently we do the mode switch when someone writes to the ifpriomap
    cgroup control file. The easiest fix is to also do the switch when
    a task is attached to a new cgroup.
    
    Fixes: bd1060a1d671 ("sock, cgroup: add sock->sk_cgroup")
    Reported-by: Yang Yingliang <yangyingliang@huawei.com>
    Tested-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Zefan Li <lizefan@huawei.com>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1386e64c82aa6fc7384f50f72c0a388c6bbaea4
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Fri May 8 19:28:34 2020 +0200

    net: ipv4: really enforce backoff for redirects
    
    [ Upstream commit 57644431a6c2faac5d754ebd35780cf43a531b1a ]
    
    In commit b406472b5ad7 ("net: ipv4: avoid mixed n_redirects and
    rate_tokens usage") I missed the fact that a 0 'rate_tokens' will
    bypass the backoff algorithm.
    
    Since rate_tokens is cleared after a redirect silence, and never
    incremented on redirects, if the host keeps receiving packets
    requiring redirect it will reply ignoring the backoff.
    
    Additionally, the 'rate_last' field will be updated with the
    cadence of the ingress packet requiring redirect. If that rate is
    high enough, that will prevent the host from generating any
    other kind of ICMP messages
    
    The check for a zero 'rate_tokens' value was likely a shortcut
    to avoid the more complex backoff algorithm after a redirect
    silence period. Address the issue checking for 'n_redirects'
    instead, which is incremented on successful redirect, and
    does not interfere with other ICMP replies.
    
    Fixes: b406472b5ad7 ("net: ipv4: avoid mixed n_redirects and rate_tokens usage")
    Reported-and-tested-by: Colin Walters <walters@redhat.com>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5cdcb17772892135344dfe1acc4864c8d44ff3d3
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Sat May 9 16:45:44 2020 -0700

    net: dsa: loop: Add module soft dependency
    
    [ Upstream commit 3047211ca11bf77b3ecbce045c0aa544d934b945 ]
    
    There is a soft dependency against dsa_loop_bdinfo.ko which sets up the
    MDIO device registration, since there are no symbols referenced by
    dsa_loop.ko, there is no automatic loading of dsa_loop_bdinfo.ko which
    is needed.
    
    Fixes: 98cd1552ea27 ("net: dsa: Mock-up driver")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2afbedce318458d6eed6f0cf6cf0857215f3c3af
Author: Luo bin <luobin9@huawei.com>
Date:   Sun May 10 19:01:08 2020 +0000

    hinic: fix a bug of ndo_stop
    
    [ Upstream commit e8a1b0efd632d1c9db7d4e93da66377c7b524862 ]
    
    if some function in ndo_stop interface returns failure because of
    hardware fault, must go on excuting rest steps rather than return
    failure directly, otherwise will cause memory leak.And bump the
    timeout for SET_FUNC_STATE to ensure that cmd won't return failure
    when hw is busy. Otherwise hw may stomp host memory if we free
    memory regardless of the return value of SET_FUNC_STATE.
    
    Fixes: 51ba902a16e6 ("net-next/hinic: Initialize hw interface")
    Signed-off-by: Luo bin <luobin9@huawei.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 791195cc821f0d5cc8c86ec25d4c9aeca92c5fa6
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Thu May 7 03:25:56 2020 -0400

    virtio_net: fix lockdep warning on 32 bit
    
    [ Upstream commit 01c3259818a11f3cc3cd767adbae6b45849c03c1 ]
    
    When we fill up a receive VQ, try_fill_recv currently tries to count
    kicks using a 64 bit stats counter. Turns out, on a 32 bit kernel that
    uses a seqcount. sequence counts are "lock" constructs where you need to
    make sure that writers are serialized.
    
    In turn, this means that we mustn't run two try_fill_recv concurrently.
    Which of course we don't. We do run try_fill_recv sometimes from a
    softirq napi context, and sometimes from a fully preemptible context,
    but the later always runs with napi disabled.
    
    However, when it comes to the seqcount, lockdep is trying to enforce the
    rule that the same lock isn't accessed from preemptible and softirq
    context - it doesn't know about napi being enabled/disabled. This causes
    a false-positive warning:
    
    WARNING: inconsistent lock state
    ...
    inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
    
    As a work around, shut down the warning by switching
    to u64_stats_update_begin_irqsave - that works by disabling
    interrupts on 32 bit only, is a NOP on 64 bit.
    
    Reported-by: Thomas Gleixner <tglx@linutronix.de>
    Suggested-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4ebd0fc9384668ff0788fc60581141b220eb8dc
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu May 14 13:58:13 2020 -0700

    tcp: fix error recovery in tcp_zerocopy_receive()
    
    [ Upstream commit e776af608f692a7a647455106295fa34469e7475 ]
    
    If user provides wrong virtual address in TCP_ZEROCOPY_RECEIVE
    operation we want to return -EINVAL error.
    
    But depending on zc->recv_skip_hint content, we might return
    -EIO error if the socket has SOCK_DONE set.
    
    Make sure to return -EINVAL in this case.
    
    BUG: KMSAN: uninit-value in tcp_zerocopy_receive net/ipv4/tcp.c:1833 [inline]
    BUG: KMSAN: uninit-value in do_tcp_getsockopt+0x4494/0x6320 net/ipv4/tcp.c:3685
    CPU: 1 PID: 625 Comm: syz-executor.0 Not tainted 5.7.0-rc4-syzkaller #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x1c9/0x220 lib/dump_stack.c:118
     kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:121
     __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:215
     tcp_zerocopy_receive net/ipv4/tcp.c:1833 [inline]
     do_tcp_getsockopt+0x4494/0x6320 net/ipv4/tcp.c:3685
     tcp_getsockopt+0xf8/0x1f0 net/ipv4/tcp.c:3728
     sock_common_getsockopt+0x13f/0x180 net/core/sock.c:3131
     __sys_getsockopt+0x533/0x7b0 net/socket.c:2177
     __do_sys_getsockopt net/socket.c:2192 [inline]
     __se_sys_getsockopt+0xe1/0x100 net/socket.c:2189
     __x64_sys_getsockopt+0x62/0x80 net/socket.c:2189
     do_syscall_64+0xb8/0x160 arch/x86/entry/common.c:297
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x45c829
    Code: 0d b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 db b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00
    RSP: 002b:00007f1deeb72c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000037
    RAX: ffffffffffffffda RBX: 00000000004e01e0 RCX: 000000000045c829
    RDX: 0000000000000023 RSI: 0000000000000006 RDI: 0000000000000009
    RBP: 000000000078bf00 R08: 0000000020000200 R09: 0000000000000000
    R10: 00000000200001c0 R11: 0000000000000246 R12: 00000000ffffffff
    R13: 00000000000001d8 R14: 00000000004d3038 R15: 00007f1deeb736d4
    
    Local variable ----zc@do_tcp_getsockopt created at:
     do_tcp_getsockopt+0x1a74/0x6320 net/ipv4/tcp.c:3670
     do_tcp_getsockopt+0x1a74/0x6320 net/ipv4/tcp.c:3670
    
    Fixes: 05255b823a61 ("tcp: add TCP_ZEROCOPY_RECEIVE support for zerocopy receive")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4347527e01152d3819e6acadef2cf2f696483d94
Author: Maciej Żenczykowski <maze@google.com>
Date:   Tue May 5 11:57:23 2020 -0700

    Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
    
    [ Upstream commit 09454fd0a4ce23cb3d8af65066c91a1bf27120dd ]
    
    This reverts commit 19bda36c4299ce3d7e5bce10bebe01764a655a6d:
    
    | ipv6: add mtu lock check in __ip6_rt_update_pmtu
    |
    | Prior to this patch, ipv6 didn't do mtu lock check in ip6_update_pmtu.
    | It leaded to that mtu lock doesn't really work when receiving the pkt
    | of ICMPV6_PKT_TOOBIG.
    |
    | This patch is to add mtu lock check in __ip6_rt_update_pmtu just as ipv4
    | did in __ip_rt_update_pmtu.
    
    The above reasoning is incorrect.  IPv6 *requires* icmp based pmtu to work.
    There's already a comment to this effect elsewhere in the kernel:
    
      $ git grep -p -B1 -A3 'RTAX_MTU lock'
      net/ipv6/route.c=4813=
    
      static int rt6_mtu_change_route(struct fib6_info *f6i, void *p_arg)
      ...
        /* In IPv6 pmtu discovery is not optional,
           so that RTAX_MTU lock cannot disable it.
           We still use this lock to block changes
           caused by addrconf/ndisc.
        */
    
    This reverts to the pre-4.9 behaviour.
    
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Xin Long <lucien.xin@gmail.com>
    Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: Maciej Żenczykowski <maze@google.com>
    Fixes: 19bda36c4299 ("ipv6: add mtu lock check in __ip6_rt_update_pmtu")
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d6322ab1b5cde17268ec801795bdf422e79a7d0
Author: Guillaume Nault <gnault@redhat.com>
Date:   Thu May 14 12:15:39 2020 +0200

    pppoe: only process PADT targeted at local interfaces
    
    [ Upstream commit b8c158395119be62294da73646a3953c29ac974b ]
    
    We don't want to disconnect a session because of a stray PADT arriving
    while the interface is in promiscuous mode.
    Furthermore, multicast and broadcast packets make no sense here, so
    only PACKET_HOST is accepted.
    
    Reported-by: David Balažic <xerces9@gmail.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Guillaume Nault <gnault@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9a949267f271dfe6651a09b579e31da3b80523c0
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Tue May 12 21:45:53 2020 +0200

    net: phy: fix aneg restart in phy_ethtool_set_eee
    
    [ Upstream commit 9de5d235b60a7cdfcdd5461e70c5663e713fde87 ]
    
    phy_restart_aneg() enables aneg in the PHY. That's not what we want
    if phydev->autoneg is disabled. In this case still update EEE
    advertisement register, but don't enable aneg and don't trigger an
    aneg restart.
    
    Fixes: f75abeb8338e ("net: phy: restart phy autonegotiation after EEE advertisment change")
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit caf6c20c6421ca687751d27b96c8021c655e56e6
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Tue May 12 14:43:14 2020 +0200

    netlabel: cope with NULL catmap
    
    [ Upstream commit eead1c2ea2509fd754c6da893a94f0e69e83ebe4 ]
    
    The cipso and calipso code can set the MLS_CAT attribute on
    successful parsing, even if the corresponding catmap has
    not been allocated, as per current configuration and external
    input.
    
    Later, selinux code tries to access the catmap if the MLS_CAT flag
    is present via netlbl_catmap_getlong(). That may cause null ptr
    dereference while processing incoming network traffic.
    
    Address the issue setting the MLS_CAT flag only if the catmap is
    really allocated. Additionally let netlbl_catmap_getlong() cope
    with NULL catmap.
    
    Reported-by: Matthew Sheets <matthew.sheets@gd-ms.com>
    Fixes: 4b8feff251da ("netlabel: fix the horribly broken catmap functions")
    Fixes: ceba1832b1b2 ("calipso: Set the calipso socket label to match the secattr.")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Acked-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ef834fec2adc51a8d5b5f3de494989e0aff872e
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Thu May 7 12:19:03 2020 -0700

    net: fix a potential recursive NETDEV_FEAT_CHANGE
    
    [ Upstream commit dd912306ff008891c82cd9f63e8181e47a9cb2fb ]
    
    syzbot managed to trigger a recursive NETDEV_FEAT_CHANGE event
    between bonding master and slave. I managed to find a reproducer
    for this:
    
      ip li set bond0 up
      ifenslave bond0 eth0
      brctl addbr br0
      ethtool -K eth0 lro off
      brctl addif br0 bond0
      ip li set br0 up
    
    When a NETDEV_FEAT_CHANGE event is triggered on a bonding slave,
    it captures this and calls bond_compute_features() to fixup its
    master's and other slaves' features. However, when syncing with
    its lower devices by netdev_sync_lower_features() this event is
    triggered again on slaves when the LRO feature fails to change,
    so it goes back and forth recursively until the kernel stack is
    exhausted.
    
    Commit 17b85d29e82c intentionally lets __netdev_update_features()
    return -1 for such a failure case, so we have to just rely on
    the existing check inside netdev_sync_lower_features() and skip
    NETDEV_FEAT_CHANGE event only for this specific failure case.
    
    Fixes: fd867d51f889 ("net/core: generic support for disabling netdev features down stack")
    Reported-by: syzbot+e73ceacfd8560cc8a3ca@syzkaller.appspotmail.com
    Reported-by: syzbot+c2fb6f9ddcea95ba49b5@syzkaller.appspotmail.com
    Cc: Jarod Wilson <jarod@redhat.com>
    Cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Jann Horn <jannh@google.com>
    Reviewed-by: Jay Vosburgh <jay.vosburgh@canonical.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cfd57f735cec63f6af5f6269cda081c153c44d86
Author: Raul E Rangel <rrangel@chromium.org>
Date:   Fri May 8 16:54:21 2020 -0600

    mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
    
    [ Upstream commit 45a3fe3bf93b7cfeddc28ef7386555e05dc57f06 ]
    
    The AMD eMMC 5.0 controller does not support 64 bit DMA.
    
    Fixes: 34597a3f60b1 ("mmc: sdhci-acpi: Add support for ACPI HID of AMD Controller with HS400")
    Signed-off-by: Raul E Rangel <rrangel@chromium.org>
    Link: https://marc.info/?l=linux-mmc&m=158879884514552&w=2
    Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Link: https://lore.kernel.org/r/20200508165344.1.Id5bb8b1ae7ea576f26f9d91c761df7ccffbf58c5@changeid
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34fcb4291e234468f9bf9d4b851c9f522f3bbb13
Author: Wu Bo <wubo40@huawei.com>
Date:   Tue Apr 14 10:13:28 2020 +0800

    scsi: sg: add sg_remove_request in sg_write
    
    commit 83c6f2390040f188cc25b270b4befeb5628c1aee upstream.
    
    If the __copy_from_user function failed we need to call sg_remove_request
    in sg_write.
    
    Link: https://lore.kernel.org/r/610618d9-e983-fd56-ed0f-639428343af7@huawei.com
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Wu Bo <wubo40@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    [groeck: Backport to v5.4.y and older kernels]
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c11fec8151972c93fba530fcdd752a40f794296
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date:   Thu Apr 30 15:04:42 2020 +0100

    virtio-blk: handle block_device_operations callbacks after hot unplug
    
    [ Upstream commit 90b5feb8c4bebc76c27fcaf3e1a0e5ca2d319e9e ]
    
    A userspace process holding a file descriptor to a virtio_blk device can
    still invoke block_device_operations after hot unplug.  This leads to a
    use-after-free accessing vblk->vdev in virtblk_getgeo() when
    ioctl(HDIO_GETGEO) is invoked:
    
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000090
      IP: [<ffffffffc00e5450>] virtio_check_driver_offered_feature+0x10/0x90 [virtio]
      PGD 800000003a92f067 PUD 3a930067 PMD 0
      Oops: 0000 [#1] SMP
      CPU: 0 PID: 1310 Comm: hdio-getgeo Tainted: G           OE  ------------   3.10.0-1062.el7.x86_64 #1
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
      task: ffff9be5fbfb8000 ti: ffff9be5fa890000 task.ti: ffff9be5fa890000
      RIP: 0010:[<ffffffffc00e5450>]  [<ffffffffc00e5450>] virtio_check_driver_offered_feature+0x10/0x90 [virtio]
      RSP: 0018:ffff9be5fa893dc8  EFLAGS: 00010246
      RAX: ffff9be5fc3f3400 RBX: ffff9be5fa893e30 RCX: 0000000000000000
      RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffff9be5fbc10b40
      RBP: ffff9be5fa893dc8 R08: 0000000000000301 R09: 0000000000000301
      R10: 0000000000000000 R11: 0000000000000000 R12: ffff9be5fdc24680
      R13: ffff9be5fbc10b40 R14: ffff9be5fbc10480 R15: 0000000000000000
      FS:  00007f1bfb968740(0000) GS:ffff9be5ffc00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000090 CR3: 000000003a894000 CR4: 0000000000360ff0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       [<ffffffffc016ac37>] virtblk_getgeo+0x47/0x110 [virtio_blk]
       [<ffffffff8d3f200d>] ? handle_mm_fault+0x39d/0x9b0
       [<ffffffff8d561265>] blkdev_ioctl+0x1f5/0xa20
       [<ffffffff8d488771>] block_ioctl+0x41/0x50
       [<ffffffff8d45d9e0>] do_vfs_ioctl+0x3a0/0x5a0
       [<ffffffff8d45dc81>] SyS_ioctl+0xa1/0xc0
    
    A related problem is that virtblk_remove() leaks the vd_index_ida index
    when something still holds a reference to vblk->disk during hot unplug.
    This causes virtio-blk device names to be lost (vda, vdb, etc).
    
    Fix these issues by protecting vblk->vdev with a mutex and reference
    counting vblk so the vd_index_ida index can be removed in all cases.
    
    Fixes: 48e4043d4529 ("virtio: add virtio disk geometry feature")
    Reported-by: Lance Digby <ldigby@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Link: https://lore.kernel.org/r/20200430140442.171016-1-stefanha@redhat.com
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e459398d6066b2a54f530526fd9e84b3bffc9a4f
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Apr 30 23:30:49 2020 +0200

    drop_monitor: work around gcc-10 stringop-overflow warning
    
    [ Upstream commit dc30b4059f6e2abf3712ab537c8718562b21c45d ]
    
    The current gcc-10 snapshot produces a false-positive warning:
    
    net/core/drop_monitor.c: In function 'trace_drop_common.constprop':
    cc1: error: writing 8 bytes into a region of size 0 [-Werror=stringop-overflow=]
    In file included from net/core/drop_monitor.c:23:
    include/uapi/linux/net_dropmon.h:36:8: note: at offset 0 to object 'entries' with size 4 declared here
       36 |  __u32 entries;
          |        ^~~~~~~
    
    I reported this in the gcc bugzilla, but in case it does not get
    fixed in the release, work around it by using a temporary variable.
    
    Fixes: 9a8afc8d3962 ("Network Drop Monitor: Adding drop monitor implementation & Netlink protocol")
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94881
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b77f42f3f454ce7f10832ef68271c6fde1f5f0a
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Sun Apr 26 22:59:21 2020 +0200

    net: moxa: Fix a potential double 'free_irq()'
    
    [ Upstream commit ee8d2267f0e39a1bfd95532da3a6405004114b27 ]
    
    Should an irq requested with 'devm_request_irq' be released explicitly,
    it should be done by 'devm_free_irq()', not 'free_irq()'.
    
    Fixes: 6c821bd9edc9 ("net: Add MOXA ART SoCs ethernet driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 453be5262a1e73d27b8fd937a3b9404d6f5b1cca
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Mon Apr 27 08:18:03 2020 +0200

    net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
    
    [ Upstream commit 10e3cc180e64385edc9890c6855acf5ed9ca1339 ]
    
    A call to 'dma_alloc_coherent()' is hidden in 'sonic_alloc_descriptors()',
    called from 'sonic_probe1()'.
    
    This is correctly freed in the remove function, but not in the error
    handling path of the probe function.
    Fix it and add the missing 'dma_free_coherent()' call.
    
    While at it, rename a label in order to be slightly more informative.
    
    Fixes: efcce839360f ("[PATCH] macsonic/jazzsonic network drivers update")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ad0f43edf60b6fa066d211c13864743d1442731
Author: Hugh Dickins <hughd@google.com>
Date:   Mon Apr 20 18:14:14 2020 -0700

    shmem: fix possible deadlocks on shmlock_user_lock
    
    [ Upstream commit ea0dfeb4209b4eab954d6e00ed136bc6b48b380d ]
    
    Recent commit 71725ed10c40 ("mm: huge tmpfs: try to split_huge_page()
    when punching hole") has allowed syzkaller to probe deeper, uncovering a
    long-standing lockdep issue between the irq-unsafe shmlock_user_lock,
    the irq-safe xa_lock on mapping->i_pages, and shmem inode's info->lock
    which nests inside xa_lock (or tree_lock) since 4.8's shmem_uncharge().
    
    user_shm_lock(), servicing SysV shmctl(SHM_LOCK), wants
    shmlock_user_lock while its caller shmem_lock() holds info->lock with
    interrupts disabled; but hugetlbfs_file_setup() calls user_shm_lock()
    with interrupts enabled, and might be interrupted by a writeback endio
    wanting xa_lock on i_pages.
    
    This may not risk an actual deadlock, since shmem inodes do not take
    part in writeback accounting, but there are several easy ways to avoid
    it.
    
    Requiring interrupts disabled for shmlock_user_lock would be easy, but
    it's a high-level global lock for which that seems inappropriate.
    Instead, recall that the use of info->lock to guard info->flags in
    shmem_lock() dates from pre-3.1 days, when races with SHMEM_PAGEIN and
    SHMEM_TRUNCATE could occur: nowadays it serves no purpose, the only flag
    added or removed is VM_LOCKED itself, and calls to shmem_lock() an inode
    are already serialized by the caller.
    
    Take info->lock out of the chain and the possibility of deadlock or
    lockdep warning goes away.
    
    Fixes: 4595ef88d136 ("shmem: make shmem_inode_info::lock irq-safe")
    Reported-by: syzbot+c8a8197c8852f566b9d9@syzkaller.appspotmail.com
    Reported-by: syzbot+40b71e145e73f78f81ad@syzkaller.appspotmail.com
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Yang Shi <yang.shi@linux.alibaba.com>
    Cc: Yang Shi <yang.shi@linux.alibaba.com>
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.2004161707410.16322@eggly.anvils
    Link: https://lore.kernel.org/lkml/000000000000e5838c05a3152f53@google.com/
    Link: https://lore.kernel.org/lkml/0000000000003712b305a331d3b1@google.com/
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8ab7974fd8212c8cbcb3bca5564730773eadfd24
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Sun May 3 20:50:57 2020 -0700

    net: dsa: Do not make user port errors fatal
    
    commit 86f8b1c01a0a537a73d2996615133be63cdf75db upstream.
    
    Prior to 1d27732f411d ("net: dsa: setup and teardown ports"), we would
    not treat failures to set-up an user port as fatal, but after this
    commit we would, which is a regression for some systems where interfaces
    may be declared in the Device Tree, but the underlying hardware may not
    be present (pluggable daughter cards for instance).
    
    Fixes: 1d27732f411d ("net: dsa: setup and teardown ports")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>