commit 62a337a490a121949fc939a29f5ae1da94871b16
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Feb 16 12:51:47 2022 +0100

    Linux 4.19.230
    
    Link: https://lore.kernel.org/r/20220214092448.285381753@linuxfoundation.org
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>                              =
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Jeffrin Jose T <jeffrin@rajagiritech.edu.in>
    Tested-by: Slade Watkins <slade@sladewatkins.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Hulk Robot <hulkrobot@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30d9f3cbe47e1018ddc8069ac5b5c9e66fbdf727
Author: Song Liu <song@kernel.org>
Date:   Thu Feb 3 16:40:57 2022 -0800

    perf: Fix list corruption in perf_cgroup_switch()
    
    commit 5f4e5ce638e6a490b976ade4a40017b40abb2da0 upstream.
    
    There's list corruption on cgrp_cpuctx_list. This happens on the
    following path:
    
      perf_cgroup_switch: list_for_each_entry(cgrp_cpuctx_list)
          cpu_ctx_sched_in
             ctx_sched_in
                ctx_pinned_sched_in
                  merge_sched_in
                      perf_cgroup_event_disable: remove the event from the list
    
    Use list_for_each_entry_safe() to allow removing an entry during
    iteration.
    
    Fixes: 058fe1c0440e ("perf/core: Make cgroup switch visit only cpuctxs with cgroup events")
    Signed-off-by: Song Liu <song@kernel.org>
    Reviewed-by: Rik van Riel <riel@surriel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20220204004057.2961252-1-song@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48fe82f8a7fa7590740d74978c97e3549883a6f6
Author: Armin Wolf <W_Armin@gmx.de>
Date:   Thu Oct 21 21:05:31 2021 +0200

    hwmon: (dell-smm) Speed up setting of fan speed
    
    commit c0d79987a0d82671bff374c07f2201f9bdf4aaa2 upstream.
    
    When setting the fan speed, i8k_set_fan() calls i8k_get_fan_status(),
    causing an unnecessary SMM call since from the two users of this
    function, only i8k_ioctl_unlocked() needs to know the new fan status
    while dell_smm_write() ignores the new fan status.
    Since SMM calls can be very slow while also making error reporting
    difficult for dell_smm_write(), remove the function call from
    i8k_set_fan() and call it separately in i8k_ioctl_unlocked().
    
    Tested on a Dell Inspiron 3505.
    
    Signed-off-by: Armin Wolf <W_Armin@gmx.de>
    Reviewed-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20211021190531.17379-6-W_Armin@gmx.de
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 255264d81da6edaf4cd4fab836d1ef3ba09af6aa
Author: Kees Cook <keescook@chromium.org>
Date:   Mon Feb 7 20:21:13 2022 -0800

    seccomp: Invalidate seccomp mode to catch death failures
    
    commit 495ac3069a6235bfdf516812a2a9b256671bbdf9 upstream.
    
    If seccomp tries to kill a process, it should never see that process
    again. To enforce this proactively, switch the mode to something
    impossible. If encountered: WARN, reject all syscalls, and attempt to
    kill the process again even harder.
    
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Will Drewry <wad@chromium.org>
    Fixes: 8112c4f140fa ("seccomp: remove 2-phase API")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdc3301b1cdb2daa8ede8fada67e60dc51ca78a6
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Feb 1 11:42:53 2022 +0100

    USB: serial: cp210x: add CPI Bulk Coin Recycler id
    
    commit 6ca0c6283340d819bf9c7d8e76be33c9fbd903ab upstream.
    
    Add the device id for the Crane Payment Innovation / Money Controls Bulk
    Coin Recycler:
    
            https://www.cranepi.com/en/system/files/Support/OM_BCR_EN_V1-04_0.pdf
    
    Reported-by: Scott Russell <Scott.Russell2@ncr.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb0d9a11a1220f1ce1bdcb03472427ee57c9ff43
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Feb 1 11:42:52 2022 +0100

    USB: serial: cp210x: add NCR Retail IO box id
    
    commit b50f8f09c622297d3cf46e332e17ba8adedec9af upstream.
    
    Add the device id for NCR's Retail IO box (CP2105) used in NCR FastLane
    SelfServ Checkout - R6C:
    
            https://www.ncr.com/product-catalog/ncr-fastlane-selfserv-checkout-r6c
    
    Reported-by: Scott Russell <Scott.Russell2@ncr.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bf5479f88ae4988ee3a12ca91ba8c6466630f41
Author: Stephan Brunner <s.brunner@stephan-brunner.net>
Date:   Sat Jan 8 13:00:20 2022 +0100

    USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
    
    commit fa77ce201f7f2d823b07753575122d1ae5597fbe upstream.
    
    Programmable lab power supplies made by GW Instek, such as the
    GPP-2323, have a USB port exposing a serial port to control the device.
    
    Stringing the supplied Windows driver, references to the ch341 chip are
    found. Binding the existing ch341 driver to the VID/PID of the GPP-2323
    ("GW Instek USB2.0-Serial" as per the USB product name) works out of the
    box, communication and control is now possible.
    
    This patch should work with any GPP series power supply due to
    similarities in the product line.
    
    Signed-off-by: Stephan Brunner <s.brunner@stephan-brunner.net>
    Link: https://lore.kernel.org/r/4a47b864-0816-6f6a-efee-aa20e74bcdc6@stephan-brunner.net
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c6c5106229c19736d34b5c68e52c74371849deb
Author: Pawel Dembicki <paweldembicki@gmail.com>
Date:   Tue Jan 11 23:12:05 2022 +0100

    USB: serial: option: add ZTE MF286D modem
    
    commit d48384c7ed6c8fe4727eaa0f3048f62afd1cd715 upstream.
    
    Modem from ZTE MF286D is an Qualcomm MDM9250 based 3G/4G modem.
    
    T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=5000 MxCh= 0
    D:  Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
    P:  Vendor=19d2 ProdID=1485 Rev=52.87
    S:  Manufacturer=ZTE,Incorporated
    S:  Product=ZTE Technologies MSM
    S:  SerialNumber=MF286DZTED000000
    C:* #Ifs= 7 Cfg#= 1 Atr=80 MxPwr=896mA
    A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
    I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=ff Driver=rndis_host
    E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
    E:  Ad=81(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=01(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=83(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=84(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=03(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
    E:  Ad=86(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=04(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    E:  Ad=88(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=0f(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs
    E:  Ad=05(O) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    E:  Ad=89(I) Atr=02(Bulk) MxPS=1024 Ivl=0ms
    
    Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7fbfa7195cfa5ccff255ab588fe30f749978f1a
Author: Cameron Williams <cang1@live.co.uk>
Date:   Tue Feb 1 10:12:51 2022 +0000

    USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
    
    commit fbb9b194e15a63c56c5664e76ccd0e85c6100cea upstream.
    
    This patch adds support for the Brainboxes US-159, US-235 and US-320
    USB-to-Serial devices.
    
    Signed-off-by: Cameron Williams <cang1@live.co.uk>
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db9aaa3026298d652e98f777bc0f5756e2455dda
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Feb 9 16:37:53 2022 +0100

    usb: gadget: rndis: check size of RNDIS_MSG_SET command
    
    commit 38ea1eac7d88072bbffb630e2b3db83ca649b826 upstream.
    
    Check the size of the RNDIS_MSG_SET command given to us before
    attempting to respond to an invalid message size.
    
    Reported-by: Szymon Heidrich <szymon.heidrich@gmail.com>
    Cc: stable@kernel.org
    Tested-by: Szymon Heidrich <szymon.heidrich@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5eb8d19aee115d8fb354d1eff1b8df700467164
Author: Szymon Heidrich <szymon.heidrich@gmail.com>
Date:   Mon Jan 24 12:14:00 2022 +0100

    USB: gadget: validate interface OS descriptor requests
    
    commit 75e5b4849b81e19e9efe1654b30d7f3151c33c2c upstream.
    
    Stall the control endpoint in case provided index exceeds array size of
    MAX_CONFIG_INTERFACES or when the retrieved function pointer is null.
    
    Signed-off-by: Szymon Heidrich <szymon.heidrich@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb3aac017e47efdc5c785061a0c55ea137195025
Author: Udipto Goswami <quic_ugoswami@quicinc.com>
Date:   Mon Feb 7 09:55:58 2022 +0530

    usb: dwc3: gadget: Prevent core from processing stale TRBs
    
    commit 117b4e96c7f362eb6459543883fc07f77662472c upstream.
    
    With CPU re-ordering on write instructions, there might
    be a chance that the HWO is set before the TRB is updated
    with the new mapped buffer address.
    And in the case where core is processing a list of TRBs
    it is possible that it fetched the TRBs when the HWO is set
    but before the buffer address is updated.
    Prevent this by adding a memory barrier before the HWO
    is updated to ensure that the core always process the
    updated TRBs.
    
    Fixes: f6bafc6a1c9d ("usb: dwc3: convert TRBs into bitshifts")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
    Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
    Link: https://lore.kernel.org/r/1644207958-18287-1-git-send-email-quic_ugoswami@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7aa226d3b7706f39e89bf689d03878af75903bb
Author: Sean Anderson <sean.anderson@seco.com>
Date:   Thu Jan 27 14:00:03 2022 -0500

    usb: ulpi: Call of_node_put correctly
    
    commit 0a907ee9d95e3ac35eb023d71f29eae0aaa52d1b upstream.
    
    of_node_put should always be called on device nodes gotten from
    of_get_*. Additionally, it should only be called after there are no
    remaining users. To address the first issue, call of_node_put if later
    steps in ulpi_register fail. To address the latter, call put_device if
    device_register fails, which will call ulpi_dev_release if necessary.
    
    Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Sean Anderson <sean.anderson@seco.com>
    Link: https://lore.kernel.org/r/20220127190004.1446909-3-sean.anderson@seco.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4395107033a4c6397c669b91eda7c6e31d2ac21a
Author: Sean Anderson <sean.anderson@seco.com>
Date:   Thu Jan 27 14:00:02 2022 -0500

    usb: ulpi: Move of_node_put to ulpi_dev_release
    
    commit 092f45b13e51666fe8ecbf2d6cd247aa7e6c1f74 upstream.
    
    Drivers are not unbound from the device when ulpi_unregister_interface
    is called. Move of_node-freeing code to ulpi_dev_release which is called
    only after all users are gone.
    
    Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Signed-off-by: Sean Anderson <sean.anderson@seco.com>
    Link: https://lore.kernel.org/r/20220127190004.1446909-2-sean.anderson@seco.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 031ec2d7fabb5c01601490671666c55cf92e1b98
Author: TATSUKAWA KOSUKE (立川 江介) <tatsu-ab1@nec.com>
Date:   Wed Jan 26 23:35:02 2022 +0000

    n_tty: wake up poll(POLLRDNORM) on receiving data
    
    commit c816b2e65b0e86b95011418cad334f0524fc33b8 upstream.
    
    The poll man page says POLLRDNORM is equivalent to POLLIN when used as
    an event.
    $ man poll
    <snip>
                  POLLRDNORM
                         Equivalent to POLLIN.
    
    However, in n_tty driver, POLLRDNORM does not return until timeout even
    if there is terminal input, whereas POLLIN returns.
    
    The following test program works until kernel-3.17, but the test stops
    in poll() after commit 57087d515441 ("tty: Fix spurious poll() wakeups").
    
    [Steps to run test program]
      $ cc -o test-pollrdnorm test-pollrdnorm.c
      $ ./test-pollrdnorm
      foo          <-- Type in something from the terminal followed by [RET].
                       The string should be echoed back.
    
      ------------------------< test-pollrdnorm.c >------------------------
      #include <stdio.h>
      #include <errno.h>
      #include <poll.h>
      #include <unistd.h>
    
      void main(void)
      {
            int             n;
            unsigned char   buf[8];
            struct pollfd   fds[1] = {{ 0, POLLRDNORM, 0 }};
    
            n = poll(fds, 1, -1);
            if (n < 0)
                    perror("poll");
            n = read(0, buf, 8);
            if (n < 0)
                    perror("read");
            if (n > 0)
                    write(1, buf, n);
      }
      ------------------------------------------------------------------------
    
    The attached patch fixes this problem.  Many calls to
    wake_up_interruptible_poll() in the kernel source code already specify
    "POLLIN | POLLRDNORM".
    
    Fixes: 57087d515441 ("tty: Fix spurious poll() wakeups")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kosuke Tatsukawa <tatsu-ab1@nec.com>
    Link: https://lore.kernel.org/r/TYCPR01MB81901C0F932203D30E452B3EA5209@TYCPR01MB8190.jpnprd01.prod.outlook.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 482e76aa0d00a42d976f23f63825903fd102b93c
Author: Jakob Koschel <jakobkoschel@gmail.com>
Date:   Thu Jan 27 15:44:05 2022 +0100

    vt_ioctl: add array_index_nospec to VT_ACTIVATE
    
    commit 28cb138f559f8c1a1395f5564f86b8bbee83631b upstream.
    
    in vt_setactivate an almost identical code path has been patched
    with array_index_nospec. In the VT_ACTIVATE path the user input
    is from a system call argument instead of a usercopy.
    For consistency both code paths should have the same mitigations
    applied.
    
    Kasper Acknowledgements: Jakob Koschel, Brian Johannesmeyer, Kaveh
    Razavi, Herbert Bos, Cristiano Giuffrida from the VUSec group at VU
    Amsterdam.
    
    Co-developed-by: Brian Johannesmeyer <bjohannesmeyer@gmail.com>
    Signed-off-by: Brian Johannesmeyer <bjohannesmeyer@gmail.com>
    Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
    Link: https://lore.kernel.org/r/20220127144406.3589293-2-jakobkoschel@gmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 170325aba4608bde3e7d21c9c19b7bc266ac0885
Author: Jakob Koschel <jakobkoschel@gmail.com>
Date:   Thu Jan 27 15:44:04 2022 +0100

    vt_ioctl: fix array_index_nospec in vt_setactivate
    
    commit 61cc70d9e8ef5b042d4ed87994d20100ec8896d9 upstream.
    
    array_index_nospec ensures that an out-of-bounds value is set to zero
    on the transient path. Decreasing the value by one afterwards causes
    a transient integer underflow. vsa.console should be decreased first
    and then sanitized with array_index_nospec.
    
    Kasper Acknowledgements: Jakob Koschel, Brian Johannesmeyer, Kaveh
    Razavi, Herbert Bos, Cristiano Giuffrida from the VUSec group at VU
    Amsterdam.
    
    Co-developed-by: Brian Johannesmeyer <bjohannesmeyer@gmail.com>
    Signed-off-by: Brian Johannesmeyer <bjohannesmeyer@gmail.com>
    Signed-off-by: Jakob Koschel <jakobkoschel@gmail.com>
    Link: https://lore.kernel.org/r/20220127144406.3589293-1-jakobkoschel@gmail.com
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecf0858f28ece12dede38e5ab334119e400a1017
Author: Raju Rangoju <Raju.Rangoju@amd.com>
Date:   Wed Feb 9 10:02:01 2022 +0530

    net: amd-xgbe: disable interrupts during pci removal
    
    [ Upstream commit 68c2d6af1f1e469544d6cbe9a601d96fb9c00e7f ]
    
    Hardware interrupts are enabled during the pci probe, however,
    they are not disabled during pci removal.
    
    Disable all hardware interrupts during pci removal to avoid any
    issues.
    
    Fixes: e75377404726 ("amd-xgbe: Update PCI support to use new IRQ functions")
    Suggested-by: Selwin Sebastian <Selwin.Sebastian@amd.com>
    Signed-off-by: Raju Rangoju <Raju.Rangoju@amd.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b4ba5427c4ea716f73af01b0324209909822485
Author: Jon Maloy <jmaloy@redhat.com>
Date:   Tue Feb 8 22:22:37 2022 -0500

    tipc: rate limit warning for received illegal binding update
    
    [ Upstream commit c7223d687758462826a20e9735305d55bb874c70 ]
    
    It would be easy to craft a message containing an illegal binding table
    update operation. This is handled correctly by the code, but the
    corresponding warning printout is not rate limited as is should be.
    We fix this now.
    
    Fixes: b97bf3fd8f6a ("[TIPC] Initial merge")
    Signed-off-by: Jon Maloy <jmaloy@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8f0ea3777590c16222d4251a49e31dd376ff5ac1
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Feb 8 15:28:22 2022 -0800

    veth: fix races around rq->rx_notify_masked
    
    [ Upstream commit 68468d8c4cd4222a4ca1f185ab5a1c14480d078c ]
    
    veth being NETIF_F_LLTX enabled, we need to be more careful
    whenever we read/write rq->rx_notify_masked.
    
    BUG: KCSAN: data-race in veth_xmit / veth_xmit
    
    write to 0xffff888133d9a9f8 of 1 bytes by task 23552 on cpu 0:
     __veth_xdp_flush drivers/net/veth.c:269 [inline]
     veth_xmit+0x307/0x470 drivers/net/veth.c:350
     __netdev_start_xmit include/linux/netdevice.h:4683 [inline]
     netdev_start_xmit include/linux/netdevice.h:4697 [inline]
     xmit_one+0x105/0x2f0 net/core/dev.c:3473
     dev_hard_start_xmit net/core/dev.c:3489 [inline]
     __dev_queue_xmit+0x86d/0xf90 net/core/dev.c:4116
     dev_queue_xmit+0x13/0x20 net/core/dev.c:4149
     br_dev_queue_push_xmit+0x3ce/0x430 net/bridge/br_forward.c:53
     NF_HOOK include/linux/netfilter.h:307 [inline]
     br_forward_finish net/bridge/br_forward.c:66 [inline]
     NF_HOOK include/linux/netfilter.h:307 [inline]
     __br_forward+0x2e4/0x400 net/bridge/br_forward.c:115
     br_flood+0x521/0x5c0 net/bridge/br_forward.c:242
     br_dev_xmit+0x8b6/0x960
     __netdev_start_xmit include/linux/netdevice.h:4683 [inline]
     netdev_start_xmit include/linux/netdevice.h:4697 [inline]
     xmit_one+0x105/0x2f0 net/core/dev.c:3473
     dev_hard_start_xmit net/core/dev.c:3489 [inline]
     __dev_queue_xmit+0x86d/0xf90 net/core/dev.c:4116
     dev_queue_xmit+0x13/0x20 net/core/dev.c:4149
     neigh_hh_output include/net/neighbour.h:525 [inline]
     neigh_output include/net/neighbour.h:539 [inline]
     ip_finish_output2+0x6f8/0xb70 net/ipv4/ip_output.c:228
     ip_finish_output+0xfb/0x240 net/ipv4/ip_output.c:316
     NF_HOOK_COND include/linux/netfilter.h:296 [inline]
     ip_output+0xf3/0x1a0 net/ipv4/ip_output.c:430
     dst_output include/net/dst.h:451 [inline]
     ip_local_out net/ipv4/ip_output.c:126 [inline]
     ip_send_skb+0x6e/0xe0 net/ipv4/ip_output.c:1570
     udp_send_skb+0x641/0x880 net/ipv4/udp.c:967
     udp_sendmsg+0x12ea/0x14c0 net/ipv4/udp.c:1254
     inet_sendmsg+0x5f/0x80 net/ipv4/af_inet.c:819
     sock_sendmsg_nosec net/socket.c:705 [inline]
     sock_sendmsg net/socket.c:725 [inline]
     ____sys_sendmsg+0x39a/0x510 net/socket.c:2413
     ___sys_sendmsg net/socket.c:2467 [inline]
     __sys_sendmmsg+0x267/0x4c0 net/socket.c:2553
     __do_sys_sendmmsg net/socket.c:2582 [inline]
     __se_sys_sendmmsg net/socket.c:2579 [inline]
     __x64_sys_sendmmsg+0x53/0x60 net/socket.c:2579
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    read to 0xffff888133d9a9f8 of 1 bytes by task 23563 on cpu 1:
     __veth_xdp_flush drivers/net/veth.c:268 [inline]
     veth_xmit+0x2d6/0x470 drivers/net/veth.c:350
     __netdev_start_xmit include/linux/netdevice.h:4683 [inline]
     netdev_start_xmit include/linux/netdevice.h:4697 [inline]
     xmit_one+0x105/0x2f0 net/core/dev.c:3473
     dev_hard_start_xmit net/core/dev.c:3489 [inline]
     __dev_queue_xmit+0x86d/0xf90 net/core/dev.c:4116
     dev_queue_xmit+0x13/0x20 net/core/dev.c:4149
     br_dev_queue_push_xmit+0x3ce/0x430 net/bridge/br_forward.c:53
     NF_HOOK include/linux/netfilter.h:307 [inline]
     br_forward_finish net/bridge/br_forward.c:66 [inline]
     NF_HOOK include/linux/netfilter.h:307 [inline]
     __br_forward+0x2e4/0x400 net/bridge/br_forward.c:115
     br_flood+0x521/0x5c0 net/bridge/br_forward.c:242
     br_dev_xmit+0x8b6/0x960
     __netdev_start_xmit include/linux/netdevice.h:4683 [inline]
     netdev_start_xmit include/linux/netdevice.h:4697 [inline]
     xmit_one+0x105/0x2f0 net/core/dev.c:3473
     dev_hard_start_xmit net/core/dev.c:3489 [inline]
     __dev_queue_xmit+0x86d/0xf90 net/core/dev.c:4116
     dev_queue_xmit+0x13/0x20 net/core/dev.c:4149
     neigh_hh_output include/net/neighbour.h:525 [inline]
     neigh_output include/net/neighbour.h:539 [inline]
     ip_finish_output2+0x6f8/0xb70 net/ipv4/ip_output.c:228
     ip_finish_output+0xfb/0x240 net/ipv4/ip_output.c:316
     NF_HOOK_COND include/linux/netfilter.h:296 [inline]
     ip_output+0xf3/0x1a0 net/ipv4/ip_output.c:430
     dst_output include/net/dst.h:451 [inline]
     ip_local_out net/ipv4/ip_output.c:126 [inline]
     ip_send_skb+0x6e/0xe0 net/ipv4/ip_output.c:1570
     udp_send_skb+0x641/0x880 net/ipv4/udp.c:967
     udp_sendmsg+0x12ea/0x14c0 net/ipv4/udp.c:1254
     inet_sendmsg+0x5f/0x80 net/ipv4/af_inet.c:819
     sock_sendmsg_nosec net/socket.c:705 [inline]
     sock_sendmsg net/socket.c:725 [inline]
     ____sys_sendmsg+0x39a/0x510 net/socket.c:2413
     ___sys_sendmsg net/socket.c:2467 [inline]
     __sys_sendmmsg+0x267/0x4c0 net/socket.c:2553
     __do_sys_sendmmsg net/socket.c:2582 [inline]
     __se_sys_sendmmsg net/socket.c:2579 [inline]
     __x64_sys_sendmmsg+0x53/0x60 net/socket.c:2579
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    value changed: 0x00 -> 0x01
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 23563 Comm: syz-executor.5 Not tainted 5.17.0-rc2-syzkaller-00064-gc36c04c2e132 #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    
    Fixes: 948d4f214fde ("veth: Add driver XDP")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0be943916d781df2b652793bb2d3ae4f9624c10a
Author: Antoine Tenart <atenart@kernel.org>
Date:   Mon Feb 7 18:13:19 2022 +0100

    net: fix a memleak when uncloning an skb dst and its metadata
    
    [ Upstream commit 9eeabdf17fa0ab75381045c867c370f4cc75a613 ]
    
    When uncloning an skb dst and its associated metadata, a new
    dst+metadata is allocated and later replaces the old one in the skb.
    This is helpful to have a non-shared dst+metadata attached to a specific
    skb.
    
    The issue is the uncloned dst+metadata is initialized with a refcount of
    1, which is increased to 2 before attaching it to the skb. When
    tun_dst_unclone returns, the dst+metadata is only referenced from a
    single place (the skb) while its refcount is 2. Its refcount will never
    drop to 0 (when the skb is consumed), leading to a memory leak.
    
    Fix this by removing the call to dst_hold in tun_dst_unclone, as the
    dst+metadata refcount is already 1.
    
    Fixes: fc4099f17240 ("openvswitch: Fix egress tunnel info.")
    Cc: Pravin B Shelar <pshelar@ovn.org>
    Reported-by: Vlad Buslov <vladbu@nvidia.com>
    Tested-by: Vlad Buslov <vladbu@nvidia.com>
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 040e92ea3d7d6f27c1b71d6502e35c54a0939cb7
Author: Antoine Tenart <atenart@kernel.org>
Date:   Mon Feb 7 18:13:18 2022 +0100

    net: do not keep the dst cache when uncloning an skb dst and its metadata
    
    [ Upstream commit cfc56f85e72f5b9c5c5be26dc2b16518d36a7868 ]
    
    When uncloning an skb dst and its associated metadata a new dst+metadata
    is allocated and the tunnel information from the old metadata is copied
    over there.
    
    The issue is the tunnel metadata has references to cached dst, which are
    copied along the way. When a dst+metadata refcount drops to 0 the
    metadata is freed including the cached dst entries. As they are also
    referenced in the initial dst+metadata, this ends up in UaFs.
    
    In practice the above did not happen because of another issue, the
    dst+metadata was never freed because its refcount never dropped to 0
    (this will be fixed in a subsequent patch).
    
    Fix this by initializing the dst cache after copying the tunnel
    information from the old metadata to also unshare the dst cache.
    
    Fixes: d71785ffc7e7 ("net: add dst_cache to ovs vxlan lwtunnel")
    Cc: Paolo Abeni <pabeni@redhat.com>
    Reported-by: Vlad Buslov <vladbu@nvidia.com>
    Tested-by: Vlad Buslov <vladbu@nvidia.com>
    Signed-off-by: Antoine Tenart <atenart@kernel.org>
    Acked-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 12b6703e9546902c56b4b9048b893ad49d62bdd4
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Feb 7 21:34:51 2022 -0800

    ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
    
    [ Upstream commit 5611a00697c8ecc5aad04392bea629e9d6a20463 ]
    
    ip[6]mr_free_table() can only be called under RTNL lock.
    
    RTNL: assertion failed at net/core/dev.c (10367)
    WARNING: CPU: 1 PID: 5890 at net/core/dev.c:10367 unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367
    Modules linked in:
    CPU: 1 PID: 5890 Comm: syz-executor.2 Not tainted 5.16.0-syzkaller-11627-g422ee58dc0ef #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:unregister_netdevice_many+0x1246/0x1850 net/core/dev.c:10367
    Code: 0f 85 9b ee ff ff e8 69 07 4b fa ba 7f 28 00 00 48 c7 c6 00 90 ae 8a 48 c7 c7 40 90 ae 8a c6 05 6d b1 51 06 01 e8 8c 90 d8 01 <0f> 0b e9 70 ee ff ff e8 3e 07 4b fa 4c 89 e7 e8 86 2a 59 fa e9 ee
    RSP: 0018:ffffc900046ff6e0 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: ffff888050f51d00 RSI: ffffffff815fa008 RDI: fffff520008dfece
    RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
    R10: ffffffff815f3d6e R11: 0000000000000000 R12: 00000000fffffff4
    R13: dffffc0000000000 R14: ffffc900046ff750 R15: ffff88807b7dc000
    FS:  00007f4ab736e700(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fee0b4f8990 CR3: 000000001e7d2000 CR4: 00000000003506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     mroute_clean_tables+0x244/0xb40 net/ipv6/ip6mr.c:1509
     ip6mr_free_table net/ipv6/ip6mr.c:389 [inline]
     ip6mr_rules_init net/ipv6/ip6mr.c:246 [inline]
     ip6mr_net_init net/ipv6/ip6mr.c:1306 [inline]
     ip6mr_net_init+0x3f0/0x4e0 net/ipv6/ip6mr.c:1298
     ops_init+0xaf/0x470 net/core/net_namespace.c:140
     setup_net+0x54f/0xbb0 net/core/net_namespace.c:331
     copy_net_ns+0x318/0x760 net/core/net_namespace.c:475
     create_new_namespaces+0x3f6/0xb20 kernel/nsproxy.c:110
     copy_namespaces+0x391/0x450 kernel/nsproxy.c:178
     copy_process+0x2e0c/0x7300 kernel/fork.c:2167
     kernel_clone+0xe7/0xab0 kernel/fork.c:2555
     __do_sys_clone+0xc8/0x110 kernel/fork.c:2672
     do_syscall_x64 arch/x86/entry/common.c:50 [inline]
     do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    RIP: 0033:0x7f4ab89f9059
    Code: Unable to access opcode bytes at RIP 0x7f4ab89f902f.
    RSP: 002b:00007f4ab736e118 EFLAGS: 00000206 ORIG_RAX: 0000000000000038
    RAX: ffffffffffffffda RBX: 00007f4ab8b0bf60 RCX: 00007f4ab89f9059
    RDX: 0000000020000280 RSI: 0000000020000270 RDI: 0000000040200000
    RBP: 00007f4ab8a5308d R08: 0000000020000300 R09: 0000000020000300
    R10: 00000000200002c0 R11: 0000000000000206 R12: 0000000000000000
    R13: 00007ffc3977cc1f R14: 00007f4ab736e300 R15: 0000000000022000
     </TASK>
    
    Fixes: f243e5a7859a ("ipmr,ip6mr: call ip6mr_free_table() on failure path")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: Cong Wang <cong.wang@bytedance.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Link: https://lore.kernel.org/r/20220208053451.2885398-1-eric.dumazet@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c92b23d934f008aea3ec3239d951f6c4cc0c4422
Author: Mahesh Bandewar <maheshb@google.com>
Date:   Mon Feb 7 14:29:01 2022 -0800

    bonding: pair enable_port with slave_arr_updates
    
    [ Upstream commit 23de0d7b6f0e3f9a6283a882594c479949da1120 ]
    
    When 803.2ad mode enables a participating port, it should update
    the slave-array. I have observed that the member links are participating
    and are part of the active aggregator while the traffic is egressing via
    only one member link (in a case where two links are participating). Via
    kprobes I discovered that slave-arr has only one link added while
    the other participating link wasn't part of the slave-arr.
    
    I couldn't see what caused that situation but the simple code-walk
    through provided me hints that the enable_port wasn't always associated
    with the slave-array update.
    
    Fixes: ee6377147409 ("bonding: Simplify the xmit function for modes that use xmit_hash")
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
    Link: https://lore.kernel.org/r/20220207222901.1795287-1-maheshb@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c8e3067f400c53f800dca45d6314aaabd420c846
Author: Samuel Mendoza-Jonas <samjonas@amazon.com>
Date:   Thu Feb 3 14:49:16 2022 -0800

    ixgbevf: Require large buffers for build_skb on 82599VF
    
    [ Upstream commit fe68195daf34d5dddacd3f93dd3eafc4beca3a0e ]
    
    From 4.17 onwards the ixgbevf driver uses build_skb() to build an skb
    around new data in the page buffer shared with the ixgbe PF.
    This uses either a 2K or 3K buffer, and offsets the DMA mapping by
    NET_SKB_PAD + NET_IP_ALIGN. When using a smaller buffer RXDCTL is set to
    ensure the PF does not write a full 2K bytes into the buffer, which is
    actually 2K minus the offset.
    
    However on the 82599 virtual function, the RXDCTL mechanism is not
    available. The driver attempts to work around this by using the SET_LPE
    mailbox method to lower the maximm frame size, but the ixgbe PF driver
    ignores this in order to keep the PF and all VFs in sync[0].
    
    This means the PF will write up to the full 2K set in SRRCTL, causing it
    to write NET_SKB_PAD + NET_IP_ALIGN bytes past the end of the buffer.
    With 4K pages split into two buffers, this means it either writes
    NET_SKB_PAD + NET_IP_ALIGN bytes past the first buffer (and into the
    second), or NET_SKB_PAD + NET_IP_ALIGN bytes past the end of the DMA
    mapping.
    
    Avoid this by only enabling build_skb when using "large" buffers (3K).
    These are placed in each half of an order-1 page, preventing the PF from
    writing past the end of the mapping.
    
    [0]: Technically it only ever raises the max frame size, see
    ixgbe_set_vf_lpe() in ixgbe_sriov.c
    
    Fixes: f15c5ba5b6cd ("ixgbevf: add support for using order 1 pages to receive large frames")
    Signed-off-by: Samuel Mendoza-Jonas <samjonas@amazon.com>
    Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfe5f6fd335d882bcc829a1c8a7d462a455c626e
Author: Udipto Goswami <quic_ugoswami@quicinc.com>
Date:   Thu Jan 27 09:39:55 2022 +0530

    usb: f_fs: Fix use-after-free for epfile
    
    [ Upstream commit ebe2b1add1055b903e2acd86b290a85297edc0b3 ]
    
    Consider a case where ffs_func_eps_disable is called from
    ffs_func_disable as part of composition switch and at the
    same time ffs_epfile_release get called from userspace.
    ffs_epfile_release will free up the read buffer and call
    ffs_data_closed which in turn destroys ffs->epfiles and
    mark it as NULL. While this was happening the driver has
    already initialized the local epfile in ffs_func_eps_disable
    which is now freed and waiting to acquire the spinlock. Once
    spinlock is acquired the driver proceeds with the stale value
    of epfile and tries to free the already freed read buffer
    causing use-after-free.
    
    Following is the illustration of the race:
    
          CPU1                                  CPU2
    
       ffs_func_eps_disable
       epfiles (local copy)
                                            ffs_epfile_release
                                            ffs_data_closed
                                            if (last file closed)
                                            ffs_data_reset
                                            ffs_data_clear
                                            ffs_epfiles_destroy
    spin_lock
    dereference epfiles
    
    Fix this races by taking epfiles local copy & assigning it under
    spinlock and if epfiles(local) is null then update it in ffs->epfiles
    then finally destroy it.
    Extending the scope further from the race, protecting the ep related
    structures, and concurrent accesses.
    
    Fixes: a9e6f83c2df1 ("usb: gadget: f_fs: stop sleeping in ffs_func_eps_disable")
    Co-developed-by: Udipto Goswami <quic_ugoswami@quicinc.com>
    Reviewed-by: John Keeping <john@metanate.com>
    Signed-off-by: Pratham Pratap <quic_ppratap@quicinc.com>
    Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
    Link: https://lore.kernel.org/r/1643256595-10797-1-git-send-email-quic_ugoswami@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0062c75c69d7631330d6f8bfba0bc83057b4f65a
Author: Fabio Estevam <festevam@gmail.com>
Date:   Sun Dec 19 19:42:15 2021 -0300

    ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
    
    [ Upstream commit 993d66140f8d1c1853a3b58b77b43b681eb64dee ]
    
    GPIO7_IO00 is used as SD card detect.
    
    Properly describe this in the devicetree.
    
    Fixes: 40cdaa542cf0 ("ARM: dts: imx6q-udoo: Add initial board support")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 099f1f1d4e5dce788688998888230bc7c2c92910
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Tue Jan 18 19:13:37 2022 +0100

    staging: fbtft: Fix error path in fbtft_driver_module_init()
    
    [ Upstream commit 426aca16e903b387a0b0001d62207a745c67cfd3 ]
    
    If registering the platform driver fails, the function must not return
    without undoing the spi driver registration first.
    
    Fixes: c296d5f9957c ("staging: fbtft: core support")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Link: https://lore.kernel.org/r/20220118181338.207943-1-u.kleine-koenig@pengutronix.de
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54f556dc42ae302ca6d6024be7e6e52461f28963
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Mon Dec 27 19:00:24 2021 +0100

    ARM: dts: meson: Fix the UART compatible strings
    
    [ Upstream commit 5225e1b87432dcf0d0fc3440824b91d04c1d6cc1 ]
    
    The dt-bindings for the UART controller only allow the following values
    for Meson6 SoCs:
    - "amlogic,meson6-uart", "amlogic,meson-ao-uart"
    - "amlogic,meson6-uart"
    
    Use the correct fallback compatible string "amlogic,meson-ao-uart" for
    AO UART. Drop the "amlogic,meson-uart" compatible string from the EE
    domain UART controllers.
    
    Fixes: ec9b59162fd831 ("ARM: dts: meson6: use stable UART bindings")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
    Link: https://lore.kernel.org/r/20211227180026.4068352-2-martin.blumenstingl@googlemail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7ae6c390899ab8b2a5e2faea1957e15e6a19492a
Author: Zechuan Chen <chenzechuan1@huawei.com>
Date:   Tue Dec 28 19:13:38 2021 +0800

    perf probe: Fix ppc64 'perf probe add events failed' case
    
    commit 4624f199327a704dd1069aca1c3cadb8f2a28c6f upstream.
    
    Because of commit bf794bf52a80c627 ("powerpc/kprobes: Fix kallsyms
    lookup across powerpc ABIv1 and ABIv2"), in ppc64 ABIv1, our perf
    command eliminates the need to use the prefix "." at the symbol name.
    
    But when the command "perf probe -a schedule" is executed on ppc64
    ABIv1, it obtains two symbol address information through /proc/kallsyms,
    for example:
    
      cat /proc/kallsyms | grep -w schedule
      c000000000657020 T .schedule
      c000000000d4fdb8 D schedule
    
    The symbol "D schedule" is not a function symbol, and perf will print:
    "p:probe/schedule _text+13958584"Failed to write event: Invalid argument
    
    Therefore, when searching symbols from map and adding probe point for
    them, a symbol type check is added. If the type of symbol is not a
    function, skip it.
    
    Fixes: bf794bf52a80c627 ("powerpc/kprobes: Fix kallsyms lookup across powerpc ABIv1 and ABIv2")
    Signed-off-by: Zechuan Chen <chenzechuan1@huawei.com>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jianlin Lv <Jianlin.Lv@arm.com>
    Cc: Jin Yao <yao.jin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
    Cc: Yang Jihong <yangjihong1@huawei.com>
    Link: https://lore.kernel.org/r/20211228111338.218602-1-chenzechuan1@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    [sudip: adjust context]
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c13ec2c0f4858fe07a6a997ae47d5075ba320550
Author: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Date:   Mon Feb 24 18:46:22 2020 +0200

    net: bridge: fix stale eth hdr pointer in br_dev_xmit
    
    commit 823d81b0fa2cd83a640734e74caee338b5d3c093 upstream.
    
    In br_dev_xmit() we perform vlan filtering in br_allowed_ingress() but
    if the packet has the vlan header inside (e.g. bridge with disabled
    tx-vlan-offload) then the vlan filtering code will use skb_vlan_untag()
    to extract the vid before filtering which in turn calls pskb_may_pull()
    and we may end up with a stale eth pointer. Moreover the cached eth header
    pointer will generally be wrong after that operation. Remove the eth header
    caching and just use eth_hdr() directly, the compiler does the right thing
    and calculates it only once so we don't lose anything.
    
    Fixes: 057658cb33fb ("bridge: suppress arp pkts on BR_NEIGH_SUPPRESS ports")
    Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Eduardo Vela <Nava> <evn@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd5579d43baa42e57e6d90e1204f13123315d71f
Author: Fabio Estevam <festevam@gmail.com>
Date:   Mon Dec 27 13:14:02 2021 -0300

    ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
    
    commit 42c9b28e6862d16db82a56f5667cf4d1f6658cf6 upstream.
    
    Currently, SD card fails to mount due to the following pinctrl error:
    
    [   11.170000] imx23-pinctrl 80018000.pinctrl: pin SSP1_DETECT already requested by 80018000.pinctrl; cannot claim for 80010000.spi
    [   11.180000] imx23-pinctrl 80018000.pinctrl: pin-65 (80010000.spi) status -22
    [   11.190000] imx23-pinctrl 80018000.pinctrl: could not request pin 65 (SSP1_DETECT) from group mmc0-pins-fixup.0  on device 80018000.pinctrl
    [   11.200000] mxs-mmc 80010000.spi: Error applying setting, reverse things back
    
    Fix it by removing the MX23_PAD_SSP1_DETECT pin from the hog group as it
    is already been used by the mmc0-pins-fixup pinctrl group.
    
    With this change the rootfs can be mounted and the imx23-evk board can
    boot successfully.
    
    Cc: <stable@vger.kernel.org>
    Fixes: bc3875f1a61e ("ARM: dts: mxs: modify mx23/mx28 dts files to use pinctrl headers")
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 07e7f7cc619d15645e45d04b1c99550c6d292e9c
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Tue May 11 22:35:17 2021 +0200

    bpf: Add kconfig knob for disabling unpriv bpf by default
    
    commit 08389d888287c3823f80b0216766b71e17f0aba5 upstream.
    
    Add a kconfig knob which allows for unprivileged bpf to be disabled by default.
    If set, the knob sets /proc/sys/kernel/unprivileged_bpf_disabled to value of 2.
    
    This still allows a transition of 2 -> {0,1} through an admin. Similarly,
    this also still keeps 1 -> {1} behavior intact, so that once set to permanently
    disabled, it cannot be undone aside from a reboot.
    
    We've also added extra2 with max of 2 for the procfs handler, so that an admin
    still has a chance to toggle between 0 <-> 2.
    
    Either way, as an additional alternative, applications can make use of CAP_BPF
    that we added a while ago.
    
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/74ec548079189e4e4dffaeb42b8987bb3c852eee.1620765074.git.daniel@iogearbox.net
    [fllinden@amazon.com: backported to 4.19]
    Signed-off-by: Frank van der Linden <fllinden@amazon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf9de6a36b01c25e0c03f92fc09af060ed813304
Author: Jisheng Zhang <jszhang@kernel.org>
Date:   Thu Jan 27 00:52:15 2022 +0800

    net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
    
    [ Upstream commit 9e0db41e7a0b6f1271cbcfb16dbf5b8641b4e440 ]
    
    When readl_poll_timeout() timeout, we'd better directly use its return
    value.
    
    Before this patch:
    [    2.145528] dwmac-sun8i: probe of 4500000.ethernet failed with error -14
    
    After this patch:
    [    2.138520] dwmac-sun8i: probe of 4500000.ethernet failed with error -110
    
    Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
    Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 711cd738414029f9867d5d5e847b91b986c68a61
Author: Amelie Delaunay <amelie.delaunay@foss.st.com>
Date:   Tue Dec 7 14:01:01 2021 +0100

    usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
    
    [ Upstream commit ac55d163855924aa5af9f1560977da8f346963c8 ]
    
    Calling dwc2_hsotg_ep_disable on ep0 (in/out) will lead to the following
    logs before returning -EINVAL:
    dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0
    dwc2 49000000.usb-otg: dwc2_hsotg_ep_disable: called for ep0
    
    To avoid these two logs while suspending, start disabling the endpoint
    from the index 1, as done in dwc2_hsotg_udc_stop:
    
            /* all endpoints should be shutdown */
            for (ep = 1; ep < hsotg->num_of_eps; ep++) {
                    if (hsotg->eps_in[ep])
                            dwc2_hsotg_ep_disable_lock(&hsotg->eps_in[ep]->ep);
                    if (hsotg->eps_out[ep])
                            dwc2_hsotg_ep_disable_lock(&hsotg->eps_out[ep]->ep);
            }
    
    Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
    Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
    Link: https://lore.kernel.org/r/20211207130101.270314-1-amelie.delaunay@foss.st.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ded80123b84253ecc6c6cfd1fbbbd99f51c984ec
Author: ZouMingzhe <mingzhe.zou@easystack.cn>
Date:   Tue Jan 11 13:47:42 2022 +0800

    scsi: target: iscsi: Make sure the np under each tpg is unique
    
    [ Upstream commit a861790afaa8b6369eee8a88c5d5d73f5799c0c6 ]
    
    iscsit_tpg_check_network_portal() has nested for_each loops and is supposed
    to return true when a match is found. However, the tpg loop will still
    continue after existing the tpg_np loop. If this tpg_np is not the last the
    match value will be changed.
    
    Break the outer loop after finding a match and make sure the np under each
    tpg is unique.
    
    Link: https://lore.kernel.org/r/20220111054742.19582-1-mingzhe.zou@easystack.cn
    Signed-off-by: ZouMingzhe <mingzhe.zou@easystack.cn>
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f35b469de7344aa9184d78bff34ee48ad42bab1f
Author: Victor Nogueira <victor@mojatatu.com>
Date:   Tue Jan 18 14:19:09 2022 -0300

    net: sched: Clarify error message when qdisc kind is unknown
    
    [ Upstream commit 973bf8fdd12f0e70ea351c018e68edd377a836d1 ]
    
    When adding a tc rule with a qdisc kind that is not supported or not
    compiled into the kernel, the kernel emits the following error: "Error:
    Specified qdisc not found.". Found via tdc testing when ETS qdisc was not
    compiled in and it was not obvious right away what the message meant
    without looking at the kernel code.
    
    Change the error message to be more explicit and say the qdisc kind is
    unknown.
    
    Signed-off-by: Victor Nogueira <victor@mojatatu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42dc3cf3174ec714732825638947e26923d9ea2a
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Thu Dec 9 14:53:32 2021 -0500

    NFSv4 expose nfs_parse_server_name function
    
    [ Upstream commit f5b27cc6761e27ee6387a24df1a99ca77b360fea ]
    
    Make nfs_parse_server_name available outside of nfs4namespace.c.
    
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 152f7db416c4bfcc8fc01e55cae60f63489580fa
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Thu Dec 9 14:53:29 2021 -0500

    NFSv4 remove zero number of fs_locations entries error check
    
    [ Upstream commit 90e12a3191040bd3854d3e236c35921e4e92a044 ]
    
    Remove the check for the zero length fs_locations reply in the
    xdr decoding, and instead check for that in the migration code.
    
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e6b0f9177c43ff9ad0f1a6dd3639c383373911b7
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Mon Jan 3 14:50:16 2022 -0500

    NFSv4.1: Fix uninitialised variable in devicenotify
    
    [ Upstream commit b05bf5c63b326ce1da84ef42498d8e0e292e694c ]
    
    When decode_devicenotify_args() exits with no entries, we need to
    ensure that the struct cb_devicenotifyargs is initialised to
    { 0, NULL } in order to avoid problems in
    nfs4_callback_devicenotify().
    
    Reported-by: <rtm@csail.mit.edu>
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c9587f72ff4b502c2fd15eb3ccff388eae12d07
Author: Xiaoke Wang <xkernel.wang@foxmail.com>
Date:   Fri Dec 17 01:01:33 2021 +0800

    nfs: nfs4clinet: check the return value of kstrdup()
    
    [ Upstream commit fbd2057e5329d3502a27491190237b6be52a1cb6 ]
    
    kstrdup() returns NULL when some internal memory errors happen, it is
    better to check the return value of it so to catch the memory error in
    time.
    
    Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1789f59f1779c99d0756b40036c62a7519f53543
Author: Olga Kornievskaia <kolga@netapp.com>
Date:   Mon Nov 29 15:33:56 2021 -0500

    NFSv4 only print the label when its queried
    
    [ Upstream commit 2c52c8376db7160a1dd8a681c61c9258405ef143 ]
    
    When the bitmask of the attributes doesn't include the security label,
    don't bother printing it. Since the label might not be null terminated,
    adjust the printing format accordingly.
    
    Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0999040f8077c9bcb00361d2f8c0e390abed343a
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Fri Feb 4 17:05:24 2022 -0500

    NFSD: Fix offset type in I/O trace points
    
    commit 6a4d333d540041d244b2fca29b8417bfde20af81 upstream.
    
    NFSv3 and NFSv4 use u64 offset values on the wire. Record these values
    verbatim without the implicit type case to loff_t.
    
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2b19b51c39e2151936607913f91742a9ebaea8e6
Author: Chuck Lever <chuck.lever@oracle.com>
Date:   Tue Jan 25 16:36:22 2022 -0500

    NFSD: Clamp WRITE offsets
    
    commit 6260d9a56ab352b54891ec66ab0eced57d55abc6 upstream.
    
    Ensure that a client cannot specify a WRITE range that falls in a
    byte range outside what the kernel's internal types (such as loff_t,
    which is signed) can represent. The kiocb iterators, invoked in
    nfsd_vfs_write(), should properly limit write operations to within
    the underlying file system's s_maxbytes.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57e13bdd9634a48c0bdbf988858144350321c0bf
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Wed Feb 2 18:52:01 2022 -0500

    NFS: Fix initialisation of nfs_client cl_flags field
    
    commit 468d126dab45718feeb728319be20bd869a5eaa7 upstream.
    
    For some long forgotten reason, the nfs_client cl_flags field is
    initialised in nfs_get_client() instead of being initialised at
    allocation time. This quirk was harmless until we moved the call to
    nfs_create_rpc_client().
    
    Fixes: dd99e9f98fbf ("NFSv4: Initialise connection to the server in nfs4_alloc_client()")
    Cc: stable@vger.kernel.org # 4.8.x
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 365bf4dafdb9594aaf40ba5b86f2bfe589b7296e
Author: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
Date:   Sun Feb 6 00:49:51 2022 +0300

    net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
    
    commit aec12836e7196e4d360b2cbf20cf7aa5139ad2ec upstream.
    
    When setting up autonegotiation for 88E1118R and compatible PHYs,
    a software reset of PHY is issued before setting up polarity.
    This is incorrect as changes of MDI Crossover Mode bits are
    disruptive to the normal operation and must be followed by a
    software reset to take effect. Let's patch m88e1118_config_aneg()
    to fix the issue mentioned before by invoking software reset
    of the PHY just after setting up MDI-x polarity.
    
    Fixes: 605f196efbf8 ("phy: Add support for Marvell 88E1118 PHY")
    Signed-off-by: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
    Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
    Suggested-by: Andrew Lunn <andrew@lunn.ch>
    Cc: stable@vger.kernel.org
    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>

commit 1cd1178d2f2e695290b9b686dfed65dbf5ffac9f
Author: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Date:   Wed Jan 12 16:31:56 2022 +0800

    mmc: sdhci-of-esdhc: Check for error num after setting mask
    
    commit 40c67c291a93f8846c4a972c9ef1b7ba4544c8d0 upstream.
    
    Because of the possible failure of the dma_supported(), the
    dma_set_mask_and_coherent() may return error num.
    Therefore, it should be better to check it and return the error if
    fails.
    And since the sdhci_setup_host() has already checked the return value of
    the enable_dma, we need not check it in sdhci_resume_host() again.
    
    Fixes: 5552d7ad596c ("mmc: sdhci-of-esdhc: set proper dma mask for ls104x chips")
    Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
    Acked-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20220112083156.1124782-1-jiasheng@iscas.ac.cn
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d9eb5b2ef21c496597f09355d9d6f5508731e98
Author: Roberto Sassu <roberto.sassu@huawei.com>
Date:   Mon Jan 31 18:11:39 2022 +0100

    ima: Allow template selection with ima_template[_fmt]= after ima_hash=
    
    commit bb8e52e4906f148c2faf6656b5106cf7233e9301 upstream.
    
    Commit c2426d2ad5027 ("ima: added support for new kernel cmdline parameter
    ima_template_fmt") introduced an additional check on the ima_template
    variable to avoid multiple template selection.
    
    Unfortunately, ima_template could be also set by the setup function of the
    ima_hash= parameter, when it calls ima_template_desc_current(). This causes
    attempts to choose a new template with ima_template= or with
    ima_template_fmt=, after ima_hash=, to be ignored.
    
    Achieve the goal of the commit mentioned with the new static variable
    template_setup_done, so that template selection requests after ima_hash=
    are not ignored.
    
    Finally, call ima_init_template_list(), if not already done, to initialize
    the list of templates before lookup_template_desc() is called.
    
    Reported-by: Guo Zihua <guozihua@huawei.com>
    Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
    Cc: stable@vger.kernel.org
    Fixes: c2426d2ad5027 ("ima: added support for new kernel cmdline parameter ima_template_fmt")
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c3beddb39ebe4411497629442f594133f29e0cd
Author: Stefan Berger <stefanb@linux.ibm.com>
Date:   Tue Jan 25 17:46:23 2022 -0500

    ima: Remove ima_policy file before directory
    
    commit f7333b9572d0559e00352a926c92f29f061b4569 upstream.
    
    The removal of ima_dir currently fails since ima_policy still exists, so
    remove the ima_policy file before removing the directory.
    
    Fixes: 4af4662fa4a9 ("integrity: IMA policy")
    Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
    Cc: <stable@vger.kernel.org>
    Acked-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e9fa71bab4de31155eebb3074e29f49d6748fd1a
Author: Xiaoke Wang <xkernel.wang@foxmail.com>
Date:   Sat Jan 15 09:11:11 2022 +0800

    integrity: check the return value of audit_log_start()
    
    commit 83230351c523b04ff8a029a4bdf97d881ecb96fc upstream.
    
    audit_log_start() returns audit_buffer pointer on success or NULL on
    error, so it is better to check the return value of it.
    
    Fixes: 3323eec921ef ("integrity: IMA as an integrity service provider")
    Signed-off-by: Xiaoke Wang <xkernel.wang@foxmail.com>
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>