commit 7a62a4b6212a7f04251fdaf8b049c47aec59c54a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Jul 29 17:19:29 2022 +0200

    Linux 5.10.134
    
    Link: https://lore.kernel.org/r/20220727161012.056867467@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Link: https://lore.kernel.org/r/20220728150340.045826831@linuxfoundation.org
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Rudi Heitbaum <rudi@heitbaum.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb1990a3005e3655e84f9a57b3f30ce96d597dee
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Jul 21 10:30:14 2022 -0700

    watch-queue: remove spurious double semicolon
    
    commit 44e29e64cf1ac0cffb152e0532227ea6d002aa28 upstream.
    
    Sedat Dilek noticed that I had an extraneous semicolon at the end of a
    line in the previous patch.
    
    It's harmless, but unintentional, and while compilers just treat it as
    an extra empty statement, for all I know some other tooling might warn
    about it. So clean it up before other people notice too ;)
    
    Fixes: 353f7988dd84 ("watchqueue: make sure to serialize 'wqueue->defunct' properly")
    Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Reported-by: Sedat Dilek <sedat.dilek@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7c1fc0dec97b882c105a0887bef585471cf1262
Author: Jose Alonso <joalonsof@gmail.com>
Date:   Mon Jun 13 15:32:44 2022 -0300

    net: usb: ax88179_178a needs FLAG_SEND_ZLP
    
    commit 36a15e1cb134c0395261ba1940762703f778438c upstream.
    
    The extra byte inserted by usbnet.c when
     (length % dev->maxpacket == 0) is causing problems to device.
    
    This patch sets FLAG_SEND_ZLP to avoid this.
    
    Tested with: 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
    
    Problems observed:
    ======================================================================
    1) Using ssh/sshfs. The remote sshd daemon can abort with the message:
       "message authentication code incorrect"
       This happens because the tcp message sent is corrupted during the
       USB "Bulk out". The device calculate the tcp checksum and send a
       valid tcp message to the remote sshd. Then the encryption detects
       the error and aborts.
    2) NETDEV WATCHDOG: ... (ax88179_178a): transmit queue 0 timed out
    3) Stop normal work without any log message.
       The "Bulk in" continue receiving packets normally.
       The host sends "Bulk out" and the device responds with -ECONNRESET.
       (The netusb.c code tx_complete ignore -ECONNRESET)
    Under normal conditions these errors take days to happen and in
    intense usage take hours.
    
    A test with ping gives packet loss, showing that something is wrong:
    ping -4 -s 462 {destination}    # 462 = 512 - 42 - 8
    Not all packets fail.
    My guess is that the device tries to find another packet starting
    at the extra byte and will fail or not depending on the next
    bytes (old buffer content).
    ======================================================================
    
    Signed-off-by: Jose Alonso <joalonsof@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08afa87f58d83dfe040572ed591b47e8cb9e225c
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Thu Jul 7 10:25:58 2022 +0200

    tty: use new tty_insert_flip_string_and_push_buffer() in pty_write()
    
    commit a501ab75e7624d133a5a3c7ec010687c8b961d23 upstream.
    
    There is a race in pty_write(). pty_write() can be called in parallel
    with e.g. ioctl(TIOCSTI) or ioctl(TCXONC) which also inserts chars to
    the buffer. Provided, tty_flip_buffer_push() in pty_write() is called
    outside the lock, it can commit inconsistent tail. This can lead to out
    of bounds writes and other issues. See the Link below.
    
    To fix this, we have to introduce a new helper called
    tty_insert_flip_string_and_push_buffer(). It does both
    tty_insert_flip_string() and tty_flip_buffer_commit() under the port
    lock. It also calls queue_work(), but outside the lock. See
    71a174b39f10 (pty: do tty_flip_buffer_push without port->lock in
    pty_write) for the reasons.
    
    Keep the helper internal-only (in drivers' tty.h). It is not intended to
    be used widely.
    
    Link: https://seclists.org/oss-sec/2022/q2/155
    Fixes: 71a174b39f10 (pty: do tty_flip_buffer_push without port->lock in pty_write)
    Cc: 一只狗 <chennbnbnb@gmail.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Suggested-by: Hillf Danton <hdanton@sina.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20220707082558.9250-2-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4bb7ef2d6f6d7158539f95b2fa97d658ea3cf75
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Thu Jul 7 10:25:57 2022 +0200

    tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push()
    
    commit 716b10580283fda66f2b88140e3964f8a7f9da89 upstream.
    
    We will need this new helper in the next patch.
    
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: 一只狗 <chennbnbnb@gmail.com>
    Cc: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20220707082558.9250-1-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c84986d097451203bb79a8bff8d37e56488fbf1d
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Mon Nov 22 12:16:48 2021 +0100

    tty: drop tty_schedule_flip()
    
    commit 5db96ef23bda6c2a61a51693c85b78b52d03f654 upstream.
    
    Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
    tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). All
    users were converted in the previous patches, so remove
    tty_schedule_flip() completely while inlining its body into
    tty_flip_buffer_push().
    
    One less exported function.
    
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20211122111648.30379-4-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d374625cca21ce4f9cdd58170d070b400910ae2
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Mon Nov 22 12:16:47 2021 +0100

    tty: the rest, stop using tty_schedule_flip()
    
    commit b68b914494df4f79b4e9b58953110574af1cb7a2 upstream.
    
    Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
    tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). We are
    going to remove the latter (as it is used less), so call the former in
    the rest of the users.
    
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Matt Turner <mattst88@gmail.com>
    Cc: William Hubbs <w.d.hubbs@gmail.com>
    Cc: Chris Brannon <chris@the-brannons.com>
    Cc: Kirk Reiser <kirk@reisers.ca>
    Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Alexander Gordeev <agordeev@linux.ibm.com>
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20211122111648.30379-3-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a81848252869d929354a879e08807c932444929
Author: Jiri Slaby <jirislaby@kernel.org>
Date:   Mon Nov 22 12:16:46 2021 +0100

    tty: drivers/tty/, stop using tty_schedule_flip()
    
    commit 5f6a85158ccacc3f09744b3aafe8b11ab3b6c6f6 upstream.
    
    Since commit a9c3f68f3cd8d (tty: Fix low_latency BUG) in 2014,
    tty_flip_buffer_push() is only a wrapper to tty_schedule_flip(). We are
    going to remove the latter (as it is used less), so call the former in
    drivers/tty/.
    
    Cc: Vladimir Zapolskiy <vz@mleia.com>
    Reviewed-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Link: https://lore.kernel.org/r/20211122111648.30379-2-jslaby@suse.cz
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0adf21eec59040b31af113e626efd85eb153c728
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jul 19 11:09:01 2022 -0700

    watchqueue: make sure to serialize 'wqueue->defunct' properly
    
    commit 353f7988dd8413c47718f7ca79c030b6fb62cfe5 upstream.
    
    When the pipe is closed, we mark the associated watchqueue defunct by
    calling watch_queue_clear().  However, while that is protected by the
    watchqueue lock, new watchqueue entries aren't actually added under that
    lock at all: they use the pipe->rd_wait.lock instead, and looking up
    that pipe happens without any locking.
    
    The watchqueue code uses the RCU read-side section to make sure that the
    wqueue entry itself hasn't disappeared, but that does not protect the
    pipe_info in any way.
    
    So make sure to actually hold the wqueue lock when posting watch events,
    properly serializing against the pipe being torn down.
    
    Reported-by: Noam Rathaus <noamr@ssd-disclosure.com>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c0a3a9eb262a5e86a36fd5fc4f9fc38470713f13
Author: Kees Cook <keescook@chromium.org>
Date:   Wed Jul 13 14:38:19 2022 -0700

    x86/alternative: Report missing return thunk details
    
    commit 65cdf0d623bedf0e069bb64ed52e8bb20105e2ba upstream.
    
    Debugging missing return thunks is easier if we can see where they're
    happening.
    
    Suggested-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/lkml/Ys66hwtFcGbYmoiZ@hirez.programming.kicks-ass.net/
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7b9e5cc8b24d6c800b2b7f8bba44c5914bd6c8f
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Mon Jul 18 13:41:37 2022 +0200

    x86/amd: Use IBPB for firmware calls
    
    commit 28a99e95f55c61855983d36a88c05c178d966bb7 upstream.
    
    On AMD IBRS does not prevent Retbleed; as such use IBPB before a
    firmware call to flush the branch history state.
    
    And because in order to do an EFI call, the kernel maps a whole lot of
    the kernel page table into the EFI page table, do an IBPB just in case
    in order to prevent the scenario of poisoning the BTB and causing an EFI
    call using the unprotected RET there.
    
      [ bp: Massage. ]
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20220715194550.793957-1-cascardo@canonical.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14fc9233aa73e896d21a4998cdd453349a4baa8b
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Mon Feb 14 17:59:38 2022 -0800

    Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks
    
    commit 29fb608396d6a62c1b85acc421ad7a4399085b9f upstream.
    
    Since bt_skb_sendmmsg can be used with the likes of SOCK_STREAM it
    shall return the partial chunks it could allocate instead of freeing
    everything as otherwise it can cause problems like bellow.
    
    Fixes: 81be03e026dc ("Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg")
    Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
    Link: https://lore.kernel.org/r/d7206e12-1b99-c3be-84f4-df22af427ef5@molgen.mpg.de
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215594
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Tested-by: Paul Menzel <pmenzel@molgen.mpg.de> (Nokia N9 (MeeGo/Harmattan)
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f44e65e6f0ee38b124ff4becdce6f8f566f1d1c5
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Thu Sep 16 13:10:49 2021 -0700

    Bluetooth: SCO: Fix sco_send_frame returning skb->len
    
    commit 037ce005af6b8a3e40ee07c6e9266c8997e6a4d6 upstream.
    
    The skb in modified by hci_send_sco which pushes SCO headers thus
    changing skb->len causing sco_sock_sendmsg to fail.
    
    Fixes: 0771cbb3b97d ("Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg")
    Tested-by: Tedd Ho-Jeong An <tedd.an@intel.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8feae8bd22757637921dfbfb74731dac31da461
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Thu Sep 16 13:10:48 2021 -0700

    Bluetooth: Fix passing NULL to PTR_ERR
    
    commit 266191aa8d14b84958aaeb5e96ee4e97839e3d87 upstream.
    
    Passing NULL to PTR_ERR will result in 0 (success), also since the likes of
    bt_skb_sendmsg does never return NULL it is safe to replace the instances of
    IS_ERR_OR_NULL with IS_ERR when checking its return.
    
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Tested-by: Tedd Ho-Jeong An <tedd.an@intel.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5283591c84fae76c3dd7f5a9a2f4db95eae24569
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Sep 3 15:27:32 2021 -0700

    Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg
    
    commit 81be03e026dc0c16dc1c64e088b2a53b73caa895 upstream.
    
    This makes use of bt_skb_sendmmsg instead using memcpy_from_msg which
    is not considered safe to be used when lock_sock is held.
    
    Also make rfcomm_dlc_send handle skb with fragments and queue them all
    atomically.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 341a029cf39cb8492b156535f6b6cbd369fabd14
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Sep 3 15:27:31 2021 -0700

    Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg
    
    commit 0771cbb3b97d3c1d68eecd7f00055f599954c34e upstream.
    
    This makes use of bt_skb_sendmsg instead of allocating a different
    buffer to be used with memcpy_from_msg which cause one extra copy.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cce0e771fb5db6494136d83a8e0790865d370be
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Sep 3 15:27:30 2021 -0700

    Bluetooth: Add bt_skb_sendmmsg helper
    
    commit 97e4e80299844bb5f6ce5a7540742ffbffae3d97 upstream.
    
    This works similarly to bt_skb_sendmsg but can split the msg into
    multiple skb fragments which is useful for stream sockets.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c87b2bc9d74ab550fbc7dc6e5b2bd22aa9da40eb
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date:   Fri Sep 3 15:27:29 2021 -0700

    Bluetooth: Add bt_skb_sendmsg helper
    
    commit 38f64f650dc0e44c146ff88d15a7339efa325918 upstream.
    
    bt_skb_sendmsg helps takes care of allocation the skb and copying the
    the contents of msg over to the skb while checking for possible errors
    so it should be safe to call it without holding lock_sock.
    
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4faf4bbc2d600a921052ff45b1b5914d583d9046
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Dec 18 15:56:24 2020 +0100

    ALSA: memalloc: Align buffer allocations in page size
    
    commit 5c1733e33c888a3cb7f576564d8ad543d5ad4a9e upstream.
    
    Currently the standard memory allocator (snd_dma_malloc_pages*())
    passes the byte size to allocate as is.  Most of the backends
    allocates real pages, hence the actual allocations are aligned in page
    size.  However, the genalloc doesn't seem assuring the size alignment,
    hence it may result in the access outside the buffer when the whole
    memory pages are exposed via mmap.
    
    For avoiding such inconsistencies, this patch makes the allocation
    size always to be aligned in page size.
    
    Note that, after this change, snd_dma_buffer.bytes field contains the
    aligned size, not the originally requested size.  This value is also
    used for releasing the pages in return.
    
    Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
    Link: https://lore.kernel.org/r/20201218145625.2045-2-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1dc861cd68cc83de52b01bec91e7362f8cca1b1
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Nov 10 11:01:03 2021 +0100

    bitfield.h: Fix "type of reg too small for mask" test
    
    [ Upstream commit bff8c3848e071d387d8b0784dc91fa49cd563774 ]
    
    The test: 'mask > (typeof(_reg))~0ull' only works correctly when both
    sides are unsigned, consider:
    
     - 0xff000000 vs (int)~0ull
     - 0x000000ff vs (int)~0ull
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Link: https://lore.kernel.org/r/20211110101324.950210584@infradead.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f62ffdb5e2ee31e04c7b9819eb1e8ef63060eda8
Author: Wang ShaoBo <bobo.shaobowang@huawei.com>
Date:   Fri Sep 11 09:44:14 2020 +0800

    drm/imx/dcss: fix unused but set variable warnings
    
    [ Upstream commit 523be44c334bc4e4c014032738dc277b8909d009 ]
    
    Fix unused but set variable warning building with `make W=1`:
    
    drivers/gpu/drm/imx/dcss/dcss-plane.c:270:6: warning:
     variable ‘pixel_format’ set but not used [-Wunused-but-set-variable]
      u32 pixel_format;
          ^~~~~~~~~~~~
    
    Fixes: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
    Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200911014414.4663-1-bobo.shaobowang@huawei.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 577b624689aa717704eefa858747cc40391d113f
Author: Alexander Aring <aahringo@redhat.com>
Date:   Wed Apr 6 13:34:16 2022 -0400

    dlm: fix pending remove if msg allocation fails
    
    [ Upstream commit ba58995909b5098ca4003af65b0ccd5a8d13dd25 ]
    
    This patch unsets ls_remove_len and ls_remove_name if a message
    allocation of a remove messages fails. In this case we never send a
    remove message out but set the per ls ls_remove_len ls_remove_name
    variable for a pending remove. Unset those variable should indicate
    possible waiters in wait_pending_remove() that no pending remove is
    going on at this moment.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Alexander Aring <aahringo@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cdcd20aa2cd44b83433aa6bf3f86cb48dc58a20a
Author: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Date:   Thu Jul 14 16:15:35 2022 -0700

    x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts
    
    commit eb23b5ef9131e6d65011de349a4d25ef1b3d4314 upstream.
    
    IBRS mitigation for spectre_v2 forces write to MSR_IA32_SPEC_CTRL at
    every kernel entry/exit. On Enhanced IBRS parts setting
    MSR_IA32_SPEC_CTRL[IBRS] only once at boot is sufficient. MSR writes at
    every kernel entry/exit incur unnecessary performance loss.
    
    When Enhanced IBRS feature is present, print a warning about this
    unnecessary performance loss.
    
    Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/2a5eaf54583c2bfe0edc4fea64006656256cca17.1657814857.git.pawan.kumar.gupta@linux.intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26d5eb3c25c3b89bfd62f81f6afea71b350adaf2
Author: Juri Lelli <juri.lelli@redhat.com>
Date:   Thu Jul 14 17:19:08 2022 +0200

    sched/deadline: Fix BUG_ON condition for deboosted tasks
    
    commit ddfc710395cccc61247348df9eb18ea50321cbed upstream.
    
    Tasks the are being deboosted from SCHED_DEADLINE might enter
    enqueue_task_dl() one last time and hit an erroneous BUG_ON condition:
    since they are not boosted anymore, the if (is_dl_boosted()) branch is
    not taken, but the else if (!dl_prio) is and inside this one we
    BUG_ON(!is_dl_boosted), which is of course false (BUG_ON triggered)
    otherwise we had entered the if branch above. Long story short, the
    current condition doesn't make sense and always leads to triggering of a
    BUG.
    
    Fix this by only checking enqueue flags, properly: ENQUEUE_REPLENISH has
    to be present, but additional flags are not a problem.
    
    Fixes: 64be6f1f5f71 ("sched/deadline: Don't replenish from a !SCHED_DEADLINE entity")
    Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Link: https://lkml.kernel.org/r/20220714151908.533052-1-juri.lelli@redhat.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0c722a32f29abc4231e928a1d15b112c4c084934
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Jul 7 12:39:00 2022 +0000

    bpf: Make sure mac_header was set before using it
    
    commit 0326195f523a549e0a9d7fd44c70b26fd7265090 upstream.
    
    Classic BPF has a way to load bytes starting from the mac header.
    
    Some skbs do not have a mac header, and skb_mac_header()
    in this case is returning a pointer that 65535 bytes after
    skb->head.
    
    Existing range check in bpf_internal_load_pointer_neg_helper()
    was properly kicking and no illegal access was happening.
    
    New sanity check in skb_mac_header() is firing, so we need
    to avoid it.
    
    WARNING: CPU: 1 PID: 28990 at include/linux/skbuff.h:2785 skb_mac_header include/linux/skbuff.h:2785 [inline]
    WARNING: CPU: 1 PID: 28990 at include/linux/skbuff.h:2785 bpf_internal_load_pointer_neg_helper+0x1b1/0x1c0 kernel/bpf/core.c:74
    Modules linked in:
    CPU: 1 PID: 28990 Comm: syz-executor.0 Not tainted 5.19.0-rc4-syzkaller-00865-g4874fb9484be #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/29/2022
    RIP: 0010:skb_mac_header include/linux/skbuff.h:2785 [inline]
    RIP: 0010:bpf_internal_load_pointer_neg_helper+0x1b1/0x1c0 kernel/bpf/core.c:74
    Code: ff ff 45 31 f6 e9 5a ff ff ff e8 aa 27 40 00 e9 3b ff ff ff e8 90 27 40 00 e9 df fe ff ff e8 86 27 40 00 eb 9e e8 2f 2c f3 ff <0f> 0b eb b1 e8 96 27 40 00 e9 79 fe ff ff 90 41 57 41 56 41 55 41
    RSP: 0018:ffffc9000309f668 EFLAGS: 00010216
    RAX: 0000000000000118 RBX: ffffffffffeff00c RCX: ffffc9000e417000
    RDX: 0000000000040000 RSI: ffffffff81873f21 RDI: 0000000000000003
    RBP: ffff8880842878c0 R08: 0000000000000003 R09: 000000000000ffff
    R10: 000000000000ffff R11: 0000000000000001 R12: 0000000000000004
    R13: ffff88803ac56c00 R14: 000000000000ffff R15: dffffc0000000000
    FS: 00007f5c88a16700(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007fdaa9f6c058 CR3: 000000003a82c000 CR4: 00000000003506e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    <TASK>
    ____bpf_skb_load_helper_32 net/core/filter.c:276 [inline]
    bpf_skb_load_helper_32+0x191/0x220 net/core/filter.c:264
    
    Fixes: f9aefd6b2aa3 ("net: warn if mac header was not set")
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Link: https://lore.kernel.org/bpf/20220707123900.945305-1-edumazet@google.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddb3f0b68863bd1c5f43177eea476bce316d4993
Author: Wang Cheng <wanngchenng@gmail.com>
Date:   Thu May 19 14:08:54 2022 -0700

    mm/mempolicy: fix uninit-value in mpol_rebind_policy()
    
    commit 018160ad314d75b1409129b2247b614a9f35894c upstream.
    
    mpol_set_nodemask()(mm/mempolicy.c) does not set up nodemask when
    pol->mode is MPOL_LOCAL.  Check pol->mode before access
    pol->w.cpuset_mems_allowed in mpol_rebind_policy()(mm/mempolicy.c).
    
    BUG: KMSAN: uninit-value in mpol_rebind_policy mm/mempolicy.c:352 [inline]
    BUG: KMSAN: uninit-value in mpol_rebind_task+0x2ac/0x2c0 mm/mempolicy.c:368
     mpol_rebind_policy mm/mempolicy.c:352 [inline]
     mpol_rebind_task+0x2ac/0x2c0 mm/mempolicy.c:368
     cpuset_change_task_nodemask kernel/cgroup/cpuset.c:1711 [inline]
     cpuset_attach+0x787/0x15e0 kernel/cgroup/cpuset.c:2278
     cgroup_migrate_execute+0x1023/0x1d20 kernel/cgroup/cgroup.c:2515
     cgroup_migrate kernel/cgroup/cgroup.c:2771 [inline]
     cgroup_attach_task+0x540/0x8b0 kernel/cgroup/cgroup.c:2804
     __cgroup1_procs_write+0x5cc/0x7a0 kernel/cgroup/cgroup-v1.c:520
     cgroup1_tasks_write+0x94/0xb0 kernel/cgroup/cgroup-v1.c:539
     cgroup_file_write+0x4c2/0x9e0 kernel/cgroup/cgroup.c:3852
     kernfs_fop_write_iter+0x66a/0x9f0 fs/kernfs/file.c:296
     call_write_iter include/linux/fs.h:2162 [inline]
     new_sync_write fs/read_write.c:503 [inline]
     vfs_write+0x1318/0x2030 fs/read_write.c:590
     ksys_write+0x28b/0x510 fs/read_write.c:643
     __do_sys_write fs/read_write.c:655 [inline]
     __se_sys_write fs/read_write.c:652 [inline]
     __x64_sys_write+0xdb/0x120 fs/read_write.c:652
     do_syscall_x64 arch/x86/entry/common.c:51 [inline]
     do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Uninit was created at:
     slab_post_alloc_hook mm/slab.h:524 [inline]
     slab_alloc_node mm/slub.c:3251 [inline]
     slab_alloc mm/slub.c:3259 [inline]
     kmem_cache_alloc+0x902/0x11c0 mm/slub.c:3264
     mpol_new mm/mempolicy.c:293 [inline]
     do_set_mempolicy+0x421/0xb70 mm/mempolicy.c:853
     kernel_set_mempolicy mm/mempolicy.c:1504 [inline]
     __do_sys_set_mempolicy mm/mempolicy.c:1510 [inline]
     __se_sys_set_mempolicy+0x44c/0xb60 mm/mempolicy.c:1507
     __x64_sys_set_mempolicy+0xd8/0x110 mm/mempolicy.c:1507
     do_syscall_x64 arch/x86/entry/common.c:51 [inline]
     do_syscall_64+0x54/0xd0 arch/x86/entry/common.c:82
     entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    KMSAN: uninit-value in mpol_rebind_task (2)
    https://syzkaller.appspot.com/bug?id=d6eb90f952c2a5de9ea718a1b873c55cb13b59dc
    
    This patch seems to fix below bug too.
    KMSAN: uninit-value in mpol_rebind_mm (2)
    https://syzkaller.appspot.com/bug?id=f2fecd0d7013f54ec4162f60743a2b28df40926b
    
    The uninit-value is pol->w.cpuset_mems_allowed in mpol_rebind_policy().
    When syzkaller reproducer runs to the beginning of mpol_new(),
    
                mpol_new() mm/mempolicy.c
              do_mbind() mm/mempolicy.c
            kernel_mbind() mm/mempolicy.c
    
    `mode` is 1(MPOL_PREFERRED), nodes_empty(*nodes) is `true` and `flags`
    is 0. Then
    
            mode = MPOL_LOCAL;
            ...
            policy->mode = mode;
            policy->flags = flags;
    
    will be executed. So in mpol_set_nodemask(),
    
                mpol_set_nodemask() mm/mempolicy.c
              do_mbind()
            kernel_mbind()
    
    pol->mode is 4 (MPOL_LOCAL), that `nodemask` in `pol` is not initialized,
    which will be accessed in mpol_rebind_policy().
    
    Link: https://lkml.kernel.org/r/20220512123428.fq3wofedp6oiotd4@ppc.localdomain
    Signed-off-by: Wang Cheng <wanngchenng@gmail.com>
    Reported-by: <syzbot+217f792c92599518a2ab@syzkaller.appspotmail.com>
    Tested-by: <syzbot+217f792c92599518a2ab@syzkaller.appspotmail.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3616776bc51cd3262bb1be60cc01c72e0a1959cf
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Wed Jun 1 03:43:28 2022 +0200

    KVM: Don't null dereference ops->destroy
    
    commit e8bc2427018826e02add7b0ed0fc625a60390ae5 upstream.
    
    A KVM device cleanup happens in either of two callbacks:
    1) destroy() which is called when the VM is being destroyed;
    2) release() which is called when a device fd is closed.
    
    Most KVM devices use 1) but Book3s's interrupt controller KVM devices
    (XICS, XIVE, XIVE-native) use 2) as they need to close and reopen during
    the machine execution. The error handling in kvm_ioctl_create_device()
    assumes destroy() is always defined which leads to NULL dereference as
    discovered by Syzkaller.
    
    This adds a checks for destroy!=NULL and adds a missing release().
    
    This is not changing kvm_destroy_devices() as devices with defined
    release() should have been removed from the KVM devices list by then.
    
    Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 684896e675edd8b669fd3e9f547c5038222d85bc
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Tue Jul 19 09:22:35 2022 +0200

    spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers
    
    commit 4ceaa684459d414992acbefb4e4c31f2dfc50641 upstream.
    
    In case a IRQ based transfer times out the bcm2835_spi_handle_err()
    function is called. Since commit 1513ceee70f2 ("spi: bcm2835: Drop
    dma_pending flag") the TX and RX DMA transfers are unconditionally
    canceled, leading to NULL pointer derefs if ctlr->dma_tx or
    ctlr->dma_rx are not set.
    
    Fix the NULL pointer deref by checking that ctlr->dma_tx and
    ctlr->dma_rx are valid pointers before accessing them.
    
    Fixes: 1513ceee70f2 ("spi: bcm2835: Drop dma_pending flag")
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Link: https://lore.kernel.org/r/20220719072234.2782764-1-mkl@pengutronix.de
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 064852663308c801861bd54789d81421fa4c2928
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:53 2022 -0700

    tcp: Fix data-races around sysctl_tcp_max_reordering.
    
    [ Upstream commit a11e5b3e7a59fde1a90b0eaeaa82320495cf8cae ]
    
    While reading sysctl_tcp_max_reordering, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: dca145ffaa8d ("tcp: allow for bigger reordering level")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 805f1c7ce47030dbb663b7d2a84c9473a27df774
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:51 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_rfc1337.
    
    [ Upstream commit 0b484c91911e758e53656d570de58c2ed81ec6f2 ]
    
    While reading sysctl_tcp_rfc1337, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 03bb3892f3f18fd98717aa6763ab3885416e69d0
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:50 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_stdurg.
    
    [ Upstream commit 4e08ed41cb1194009fc1a916a59ce3ed4afd77cd ]
    
    While reading sysctl_tcp_stdurg, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit daa8b5b8694c05a383fe43ffea679aa2153277cf
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:49 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_retrans_collapse.
    
    [ Upstream commit 1a63cb91f0c2fcdeced6d6edee8d1d886583d139 ]
    
    While reading sysctl_tcp_retrans_collapse, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0e3f82a03ec8c3808e87283e12946227415706c9
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:48 2022 -0700

    tcp: Fix data-races around sysctl_tcp_slow_start_after_idle.
    
    [ Upstream commit 4845b5713ab18a1bb6e31d1fbb4d600240b8b691 ]
    
    While reading sysctl_tcp_slow_start_after_idle, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 35089bb203f4 ("[TCP]: Add tcp_slow_start_after_idle sysctl.")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cc133e4f4bc225079198192623945bb872c08143
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:47 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts.
    
    [ Upstream commit 7c6f2a86ca590d5187a073d987e9599985fb1c7c ]
    
    While reading sysctl_tcp_thin_linear_timeouts, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 36e31b0af587 ("net: TCP thin linear timeouts")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d8781f7cd04091744f474a2bada74772084b9dc9
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:46 2022 -0700

    tcp: Fix data-races around sysctl_tcp_recovery.
    
    [ Upstream commit e7d2ef837e14a971a05f60ea08c47f3fed1a36e4 ]
    
    While reading sysctl_tcp_recovery, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 4f41b1c58a32 ("tcp: use RACK to detect losses")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11e8b013d16e5db63f8f76acceb5b86964098aaa
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:45 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_early_retrans.
    
    [ Upstream commit 52e65865deb6a36718a463030500f16530eaab74 ]
    
    While reading sysctl_tcp_early_retrans, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: eed530b6c676 ("tcp: early retransmit")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ffc388f6f0d65f2a59798d883c63205919e6d452
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:44 2022 -0700

    tcp: Fix data-races around sysctl knobs related to SYN option.
    
    [ Upstream commit 3666f666e99600518ab20982af04a078bbdad277 ]
    
    While reading these knobs, they can be changed concurrently.
    Thus, we need to add READ_ONCE() to their readers.
    
      - tcp_sack
      - tcp_window_scaling
      - tcp_timestamps
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fcaef69c79ec222e55643e666b80b221e70fa6a8
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:43 2022 -0700

    udp: Fix a data-race around sysctl_udp_l3mdev_accept.
    
    [ Upstream commit 3d72bb4188c708bb16758c60822fc4dda7a95174 ]
    
    While reading sysctl_udp_l3mdev_accept, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 63a6fff353d0 ("net: Avoid receiving packets with an l3mdev on unbound UDP sockets")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9add240f76af6d141d2eebd3a1558a0e503a993d
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:42 2022 -0700

    ip: Fix data-races around sysctl_ip_prot_sock.
    
    [ Upstream commit 9b55c20f83369dd54541d9ddbe3a018a8377f451 ]
    
    sysctl_ip_prot_sock is accessed concurrently, and there is always a chance
    of data-race.  So, all readers and writers need some basic protection to
    avoid load/store-tearing.
    
    Fixes: 4548b683b781 ("Introduce a sysctl that modifies the value of PROT_SOCK.")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e045d672ba06e1d35bacb56374d350de0ac99066
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Jul 18 10:26:39 2022 -0700

    ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh.
    
    [ Upstream commit 87507bcb4f5de16bb419e9509d874f4db6c0ad0f ]
    
    While reading sysctl_fib_multipath_use_neigh, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: a6db4494d218 ("net: ipv4: Consider failed nexthops in multipath routes")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36f1d9c607f9457e2d8ff26eb96eb40db74b92fd
Author: Liang He <windhl@126.com>
Date:   Thu Jul 14 16:13:37 2022 +0800

    drm/imx/dcss: Add missing of_node_put() in fail path
    
    [ Upstream commit 02c87df2480ac855d88ee308ce3fa857d9bd55a8 ]
    
    In dcss_dev_create() and dcss_dev_destroy(), we should call of_node_put()
    in fail path or before the dcss's destroy as of_graph_get_port_by_id() has
    increased the refcount.
    
    Fixes: 9021c317b770 ("drm/imx: Add initial support for DCSS on iMX8MQ")
    Signed-off-by: Liang He <windhl@126.com>
    Reviewed-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
    Signed-off-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220714081337.374761-1-windhl@126.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 665cbe91de2f7c97c51ca8fce39aae26477c1948
Author: Hristo Venev <hristo@venev.name>
Date:   Sat Jul 16 11:51:34 2022 +0300

    be2net: Fix buffer overflow in be_get_module_eeprom
    
    [ Upstream commit d7241f679a59cfe27f92cb5c6272cb429fb1f7ec ]
    
    be_cmd_read_port_transceiver_data assumes that it is given a buffer that
    is at least PAGE_DATA_LEN long, or twice that if the module supports SFF
    8472. However, this is not always the case.
    
    Fix this by passing the desired offset and length to
    be_cmd_read_port_transceiver_data so that we only copy the bytes once.
    
    Fixes: e36edd9d26cf ("be2net: add ethtool "-m" option support")
    Signed-off-by: Hristo Venev <hristo@venev.name>
    Link: https://lore.kernel.org/r/20220716085134.6095-1-hristo@venev.name
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47523928557e4988072edbaed4ffae2e0d41b71c
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Mon Jul 18 16:31:43 2022 +0800

    gpio: pca953x: use the correct register address when regcache sync during init
    
    [ Upstream commit b8c768ccdd8338504fb78370747728d5002b1b5a ]
    
    For regcache_sync_region, we need to use pca953x_recalc_addr() to get
    the real register address.
    
    Fixes: ec82d1eba346 ("gpio: pca953x: Zap ad-hoc reg_output cache")
    Fixes: 0f25fda840a9 ("gpio: pca953x: Zap ad-hoc reg_direction cache")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a941e6d5ba3bf989b48490abed9e68d135b44c9b
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Mon Jul 18 16:31:42 2022 +0800

    gpio: pca953x: use the correct range when do regmap sync
    
    [ Upstream commit 2abc17a93867dc816f0ed9d32021dda8078e7330 ]
    
    regmap will sync a range of registers, here use the correct range
    to make sure the sync do not touch other unexpected registers.
    
    Find on pca9557pw on imx8qxp/dxl evk board, this device support
    8 pin, so only need one register(8 bits) to cover all the 8 pins's
    property setting. But when sync the output, we find it actually
    update two registers, output register and the following register.
    
    Fixes: b76574300504 ("gpio: pca953x: Restore registers after suspend/resume cycle")
    Fixes: ec82d1eba346 ("gpio: pca953x: Zap ad-hoc reg_output cache")
    Fixes: 0f25fda840a9 ("gpio: pca953x: Zap ad-hoc reg_direction cache")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 928ded3fc1b9f87fb60b9e977182b5087fed0218
Author: Haibo Chen <haibo.chen@nxp.com>
Date:   Mon Jul 18 16:31:41 2022 +0800

    gpio: pca953x: only use single read/write for No AI mode
    
    [ Upstream commit db8edaa09d7461ec08672a92a2eef63d5882bb79 ]
    
    For the device use NO AI mode(not support auto address increment),
    only use the single read/write when config the regmap.
    
    We meet issue on PCA9557PW on i.MX8QXP/DXL evk board, this device
    do not support AI mode, but when do the regmap sync, regmap will
    sync 3 byte data to register 1, logically this means write first
    data to register 1, write second data to register 2, write third data
    to register 3. But this device do not support AI mode, finally, these
    three data write only into register 1 one by one. the reault is the
    value of register 1 alway equal to the latest data, here is the third
    data, no operation happened on register 2 and register 3. This is
    not what we expect.
    
    Fixes: 49427232764d ("gpio: pca953x: Perform basic regmap conversion")
    Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b82de63f8f817b5735480293dda8e92ba8170c52
Author: Piotr Skajewski <piotrx.skajewski@intel.com>
Date:   Fri Jul 15 14:44:56 2022 -0700

    ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero
    
    [ Upstream commit 1e53834ce541d4fe271cdcca7703e50be0a44f8a ]
    
    It is possible to disable VFs while the PF driver is processing requests
    from the VF driver.  This can result in a panic.
    
    BUG: unable to handle kernel paging request at 000000000000106c
    PGD 0 P4D 0
    Oops: 0000 [#1] SMP NOPTI
    CPU: 8 PID: 0 Comm: swapper/8 Kdump: loaded Tainted: G I      --------- -
    Hardware name: Dell Inc. PowerEdge R740/06WXJT, BIOS 2.8.2 08/27/2020
    RIP: 0010:ixgbe_msg_task+0x4c8/0x1690 [ixgbe]
    Code: 00 00 48 8d 04 40 48 c1 e0 05 89 7c 24 24 89 fd 48 89 44 24 10 83 ff
    01 0f 84 b8 04 00 00 4c 8b 64 24 10 4d 03 a5 48 22 00 00 <41> 80 7c 24 4c
    00 0f 84 8a 03 00 00 0f b7 c7 83 f8 08 0f 84 8f 0a
    RSP: 0018:ffffb337869f8df8 EFLAGS: 00010002
    RAX: 0000000000001020 RBX: 0000000000000000 RCX: 000000000000002b
    RDX: 0000000000000002 RSI: 0000000000000008 RDI: 0000000000000006
    RBP: 0000000000000006 R08: 0000000000000002 R09: 0000000000029780
    R10: 00006957d8f42832 R11: 0000000000000000 R12: 0000000000001020
    R13: ffff8a00e8978ac0 R14: 000000000000002b R15: ffff8a00e8979c80
    FS:  0000000000000000(0000) GS:ffff8a07dfd00000(0000) knlGS:00000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000000000000106c CR3: 0000000063e10004 CR4: 00000000007726e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     <IRQ>
     ? ttwu_do_wakeup+0x19/0x140
     ? try_to_wake_up+0x1cd/0x550
     ? ixgbevf_update_xcast_mode+0x71/0xc0 [ixgbevf]
     ixgbe_msix_other+0x17e/0x310 [ixgbe]
     __handle_irq_event_percpu+0x40/0x180
     handle_irq_event_percpu+0x30/0x80
     handle_irq_event+0x36/0x53
     handle_edge_irq+0x82/0x190
     handle_irq+0x1c/0x30
     do_IRQ+0x49/0xd0
     common_interrupt+0xf/0xf
    
    This can be eventually be reproduced with the following script:
    
    while :
    do
        echo 63 > /sys/class/net/<devname>/device/sriov_numvfs
        sleep 1
        echo 0 > /sys/class/net/<devname>/device/sriov_numvfs
        sleep 1
    done
    
    Add lock when disabling SR-IOV to prevent process VF mailbox communication.
    
    Fixes: d773d1310625 ("ixgbe: Fix memory leak when SR-IOV VFs are direct assigned")
    Signed-off-by: Piotr Skajewski <piotrx.skajewski@intel.com>
    Tested-by: Marek Szlosek <marek.szlosek@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20220715214456.2968711-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6f949e5615f89558416ee18892232305d57a5f38
Author: Dawid Lukwinski <dawid.lukwinski@intel.com>
Date:   Fri Jul 15 14:45:41 2022 -0700

    i40e: Fix erroneous adapter reinitialization during recovery process
    
    [ Upstream commit f838a63369818faadec4ad1736cfbd20ab5da00e ]
    
    Fix an issue when driver incorrectly detects state
    of recovery process and erroneously reinitializes interrupts,
    which results in a kernel error and call trace message.
    
    The issue was caused by a combination of two factors:
    1. Assuming the EMP reset issued after completing
    firmware recovery means the whole recovery process is complete.
    2. Erroneous reinitialization of interrupt vector after detecting
    the above mentioned EMP reset.
    
    Fixes (1) by changing how recovery state change is detected
    and (2) by adjusting the conditional expression to ensure using proper
    interrupt reinitialization method, depending on the situation.
    
    Fixes: 4ff0ee1af016 ("i40e: Introduce recovery mode support")
    Signed-off-by: Dawid Lukwinski <dawid.lukwinski@intel.com>
    Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
    Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20220715214542.2968762-1-anthony.l.nguyen@intel.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c6af94324911ef0846af1a5ce5e049ca736db34b
Author: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
Date:   Fri Jun 24 17:33:01 2022 -0700

    iavf: Fix handling of dummy receive descriptors
    
    [ Upstream commit a9f49e0060301a9bfebeca76739158d0cf91cdf6 ]
    
    Fix memory leak caused by not handling dummy receive descriptor properly.
    iavf_get_rx_buffer now sets the rx_buffer return value for dummy receive
    descriptors. Without this patch, when the hardware writes a dummy
    descriptor, iavf would not free the page allocated for the previous receive
    buffer. This is an unlikely event but can still happen.
    
    [Jesse: massaged commit message]
    
    Fixes: efa14c398582 ("iavf: allow null RX descriptors")
    Signed-off-by: Przemyslaw Patynowski <przemyslawx.patynowski@intel.com>
    Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0dc2f19d8c2636cebda7976b5ea40c6d69f0d891
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:55 2022 -0700

    tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout.
    
    [ Upstream commit 021266ec640c7a4527e6cd4b7349a512b351de1d ]
    
    While reading sysctl_tcp_fastopen_blackhole_timeout, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: cf1ef3f0719b ("net/tcp_fastopen: Disable active side TFO in certain scenarios")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 22938534c611136f35e2ca545bb668073ca5ef49
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:54 2022 -0700

    tcp: Fix data-races around sysctl_tcp_fastopen.
    
    [ Upstream commit 5a54213318c43f4009ae158347aa6016e3b9b55a ]
    
    While reading sysctl_tcp_fastopen, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 2100c8d2d9db ("net-tcp: Fast Open base")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Acked-by: Yuchung Cheng <ycheng@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3ce32e33ab71f5b6b69cba35825f43e5d979f55
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:53 2022 -0700

    tcp: Fix data-races around sysctl_max_syn_backlog.
    
    [ Upstream commit 79539f34743d3e14cc1fa6577d326a82cc64d62f ]
    
    While reading sysctl_max_syn_backlog, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b6c189aa801a9c8749952c65038bc08d4fde8ce4
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:52 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_tw_reuse.
    
    [ Upstream commit cbfc6495586a3f09f6f07d9fb3c7cafe807e3c55 ]
    
    While reading sysctl_tcp_tw_reuse, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd6f1284e380c377932186042ff0b5c987fb2b92
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:51 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_notsent_lowat.
    
    [ Upstream commit 55be873695ed8912eb77ff46d1d1cadf028bd0f3 ]
    
    While reading sysctl_tcp_notsent_lowat, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: c9bee3b7fdec ("tcp: TCP_NOTSENT_LOWAT socket option")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 768e424607203ae0d6fcba708cb41e7962ed9d6a
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:50 2022 -0700

    tcp: Fix data-races around some timeout sysctl knobs.
    
    [ Upstream commit 39e24435a776e9de5c6dd188836cf2523547804b ]
    
    While reading these sysctl knobs, they can be changed concurrently.
    Thus, we need to add READ_ONCE() to their readers.
    
      - tcp_retries1
      - tcp_retries2
      - tcp_orphan_retries
      - tcp_fin_timeout
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 474510e174fb2bc9751e04885e4cc30023bcf9d7
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:49 2022 -0700

    tcp: Fix data-races around sysctl_tcp_reordering.
    
    [ Upstream commit 46778cd16e6a5ad1b2e3a91f6c057c907379418e ]
    
    While reading sysctl_tcp_reordering, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc1a78a2b274bad6b1be1561759ab670640af2d7
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:47 2022 -0700

    tcp: Fix data-races around sysctl_tcp_syncookies.
    
    [ Upstream commit f2e383b5bb6bbc60a0b94b87b3e49a2b1aefd11e ]
    
    While reading sysctl_tcp_syncookies, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fc489055e7e8abe409224ff18863999cede92fbf
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:45 2022 -0700

    tcp: Fix data-races around keepalive sysctl knobs.
    
    [ Upstream commit f2f316e287e6c2e3a1c5bab8d9b77ee03daa0463 ]
    
    While reading sysctl_tcp_keepalive_(time|probes|intvl), they can be changed
    concurrently.  Thus, we need to add READ_ONCE() to their readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f85119fb3fd6985f0f68f3454a826f1e267b4b71
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:43 2022 -0700

    igmp: Fix data-races around sysctl_igmp_max_msf.
    
    [ Upstream commit 6ae0f2e553737b8cce49a1372573c81130ffa80e ]
    
    While reading sysctl_igmp_max_msf, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7d26db0053548f66667da9de680fa45fa6819da5
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:42 2022 -0700

    igmp: Fix a data-race around sysctl_igmp_max_memberships.
    
    [ Upstream commit 6305d821e3b9b5379d348528e5b5faf316383bc2 ]
    
    While reading sysctl_igmp_max_memberships, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 473aad9ad57ff760005377e6f45a2ad4210e08ce
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Fri Jul 15 10:17:41 2022 -0700

    igmp: Fix data-races around sysctl_igmp_llm_reports.
    
    [ Upstream commit f6da2267e71106474fbc0943dc24928b9cb79119 ]
    
    While reading sysctl_igmp_llm_reports, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    This test can be packed into a helper, so such changes will be in the
    follow-up series after net is merged into net-next.
    
      if (ipv4_is_local_multicast(pmc->multiaddr) &&
          !READ_ONCE(net->ipv4.sysctl_igmp_llm_reports))
    
    Fixes: df2cf4a78e48 ("IGMP: Inhibit reports for local multicast groups")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e80ff0b9661384d40e97a0a7d5cc8ae2a00c785d
Author: Tariq Toukan <tariqt@nvidia.com>
Date:   Fri Jul 15 11:42:16 2022 +0300

    net/tls: Fix race in TLS device down flow
    
    [ Upstream commit f08d8c1bb97c48f24a82afaa2fd8c140f8d3da8b ]
    
    Socket destruction flow and tls_device_down function sync against each
    other using tls_device_lock and the context refcount, to guarantee the
    device resources are freed via tls_dev_del() by the end of
    tls_device_down.
    
    In the following unfortunate flow, this won't happen:
    - refcount is decreased to zero in tls_device_sk_destruct.
    - tls_device_down starts, skips the context as refcount is zero, going
      all the way until it flushes the gc work, and returns without freeing
      the device resources.
    - only then, tls_device_queue_ctx_destruction is called, queues the gc
      work and frees the context's device resources.
    
    Solve it by decreasing the refcount in the socket's destruction flow
    under the tls_device_lock, for perfect synchronization.  This does not
    slow down the common likely destructor flow, in which both the refcount
    is decreased and the spinlock is acquired, anyway.
    
    Fixes: e8f69799810c ("net/tls: Add generic NIC offload infrastructure")
    Reviewed-by: Maxim Mikityanskiy <maximmi@nvidia.com>
    Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
    Reviewed-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3ac79f38d354b10925824899cdbd2caadce55ba
Author: Junxiao Chang <junxiao.chang@intel.com>
Date:   Fri Jul 15 15:47:01 2022 +0800

    net: stmmac: fix dma queue left shift overflow issue
    
    [ Upstream commit 613b065ca32e90209024ec4a6bb5ca887ee70980 ]
    
    When queue number is > 4, left shift overflows due to 32 bits
    integer variable. Mask calculation is wrong for MTL_RXQ_DMA_MAP1.
    
    If CONFIG_UBSAN is enabled, kernel dumps below warning:
    [   10.363842] ==================================================================
    [   10.363882] UBSAN: shift-out-of-bounds in /build/linux-intel-iotg-5.15-8e6Tf4/
    linux-intel-iotg-5.15-5.15.0/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:224:12
    [   10.363929] shift exponent 40 is too large for 32-bit type 'unsigned int'
    [   10.363953] CPU: 1 PID: 599 Comm: NetworkManager Not tainted 5.15.0-1003-intel-iotg
    [   10.363956] Hardware name: ADLINK Technology Inc. LEC-EL/LEC-EL, BIOS 0.15.11 12/22/2021
    [   10.363958] Call Trace:
    [   10.363960]  <TASK>
    [   10.363963]  dump_stack_lvl+0x4a/0x5f
    [   10.363971]  dump_stack+0x10/0x12
    [   10.363974]  ubsan_epilogue+0x9/0x45
    [   10.363976]  __ubsan_handle_shift_out_of_bounds.cold+0x61/0x10e
    [   10.363979]  ? wake_up_klogd+0x4a/0x50
    [   10.363983]  ? vprintk_emit+0x8f/0x240
    [   10.363986]  dwmac4_map_mtl_dma.cold+0x42/0x91 [stmmac]
    [   10.364001]  stmmac_mtl_configuration+0x1ce/0x7a0 [stmmac]
    [   10.364009]  ? dwmac410_dma_init_channel+0x70/0x70 [stmmac]
    [   10.364020]  stmmac_hw_setup.cold+0xf/0xb14 [stmmac]
    [   10.364030]  ? page_pool_alloc_pages+0x4d/0x70
    [   10.364034]  ? stmmac_clear_tx_descriptors+0x6e/0xe0 [stmmac]
    [   10.364042]  stmmac_open+0x39e/0x920 [stmmac]
    [   10.364050]  __dev_open+0xf0/0x1a0
    [   10.364054]  __dev_change_flags+0x188/0x1f0
    [   10.364057]  dev_change_flags+0x26/0x60
    [   10.364059]  do_setlink+0x908/0xc40
    [   10.364062]  ? do_setlink+0xb10/0xc40
    [   10.364064]  ? __nla_validate_parse+0x4c/0x1a0
    [   10.364068]  __rtnl_newlink+0x597/0xa10
    [   10.364072]  ? __nla_reserve+0x41/0x50
    [   10.364074]  ? __kmalloc_node_track_caller+0x1d0/0x4d0
    [   10.364079]  ? pskb_expand_head+0x75/0x310
    [   10.364082]  ? nla_reserve_64bit+0x21/0x40
    [   10.364086]  ? skb_free_head+0x65/0x80
    [   10.364089]  ? security_sock_rcv_skb+0x2c/0x50
    [   10.364094]  ? __cond_resched+0x19/0x30
    [   10.364097]  ? kmem_cache_alloc_trace+0x15a/0x420
    [   10.364100]  rtnl_newlink+0x49/0x70
    
    This change fixes MTL_RXQ_DMA_MAP1 mask issue and channel/queue
    mapping warning.
    
    Fixes: d43042f4da3e ("net: stmmac: mapping mtl rx to dma channel")
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=216195
    Reported-by: Cedric Wassenaar <cedric@bytespeed.nl>
    Signed-off-by: Junxiao Chang <junxiao.chang@intel.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f3da643d87636b2605190b292f7c5ea7222707fd
Author: Robert Hancock <robert.hancock@calian.com>
Date:   Tue Jun 14 17:29:19 2022 -0600

    i2c: cadence: Change large transfer count reset logic to be unconditional
    
    [ Upstream commit 4ca8ca873d454635c20d508261bfc0081af75cf8 ]
    
    Problems were observed on the Xilinx ZynqMP platform with large I2C reads.
    When a read of 277 bytes was performed, the controller NAKed the transfer
    after only 252 bytes were transferred and returned an ENXIO error on the
    transfer.
    
    There is some code in cdns_i2c_master_isr to handle this case by resetting
    the transfer count in the controller before it reaches 0, to allow larger
    transfers to work, but it was conditional on the CDNS_I2C_BROKEN_HOLD_BIT
    quirk being set on the controller, and ZynqMP uses the r1p14 version of
    the core where this quirk is not being set. The requirement to do this to
    support larger reads seems like an inherently required workaround due to
    the core only having an 8-bit transfer size register, so it does not
    appear that this should be conditional on the broken HOLD bit quirk which
    is used elsewhere in the driver.
    
    Remove the dependency on the CDNS_I2C_BROKEN_HOLD_BIT for this transfer
    size reset logic to fix this problem.
    
    Fixes: 63cab195bf49 ("i2c: removed work arounds in i2c driver for Zynq Ultrascale+ MPSoC")
    Signed-off-by: Robert Hancock <robert.hancock@calian.com>
    Reviewed-by: Shubhrajyoti Datta <Shubhrajyoti.datta@amd.com>
    Acked-by: Michal Simek <michal.simek@amd.com>
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dd7b5ba44b67566ffde286f60a2f684a56c69e0d
Author: Biao Huang <biao.huang@mediatek.com>
Date:   Thu Jul 14 14:00:14 2022 +0800

    net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow
    
    [ Upstream commit f4c7d8948e866918d61493264dbbd67e45ef2bda ]
    
    Current stmmac driver will prepare/enable ptp_ref clock in
    stmmac_init_tstamp_counter().
    
    The stmmac_pltfr_noirq_suspend will disable it once in suspend flow.
    
    But in resume flow,
            stmmac_pltfr_noirq_resume --> stmmac_init_tstamp_counter
            stmmac_resume --> stmmac_hw_setup --> stmmac_init_ptp --> stmmac_init_tstamp_counter
    ptp_ref clock reference counter increases twice, which leads to unbalance
    ptp clock when resume back.
    
    Move ptp_ref clock prepare/enable out of stmmac_init_tstamp_counter to fix it.
    
    Fixes: 0735e639f129d ("net: stmmac: skip only stmmac_ptp_register when resume from suspend")
    Signed-off-by: Biao Huang <biao.huang@mediatek.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c61aede097d350d890fa1edc9521b0072e14a0b8
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:05 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_probe_interval.
    
    [ Upstream commit 2a85388f1d94a9f8b5a529118a2c5eaa0520d85c ]
    
    While reading sysctl_tcp_probe_interval, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 05cbc0db03e8 ("ipv4: Create probe timer for tcp PMTU as per RFC4821")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d452ce36f2d4c402fa3f5275c9677f80166e7fc6
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:04 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_probe_threshold.
    
    [ Upstream commit 92c0aa4175474483d6cf373314343d4e624e882a ]
    
    While reading sysctl_tcp_probe_threshold, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 6b58e0a5f32d ("ipv4: Use binary search to choose tcp PMTU probe_size")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d5bece4df6090395f891110ef52a6f82d16685db
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:03 2022 -0700

    tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor.
    
    [ Upstream commit 8e92d4423615a5257d0d871fc067aa561f597deb ]
    
    While reading sysctl_tcp_mtu_probe_floor, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: c04b79b6cfd7 ("tcp: add new tcp_mtu_probe_floor sysctl")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 97992e8feff33b3ae154a113ec398546bbacda80
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:02 2022 -0700

    tcp: Fix data-races around sysctl_tcp_min_snd_mss.
    
    [ Upstream commit 78eb166cdefcc3221c8c7c1e2d514e91a2eb5014 ]
    
    While reading sysctl_tcp_min_snd_mss, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 5f3e2bf008c2 ("tcp: add tcp_min_snd_mss sysctl")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 514d2254c7b8aa2d257f5ffc79f0d96be2d6bfda
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:01 2022 -0700

    tcp: Fix data-races around sysctl_tcp_base_mss.
    
    [ Upstream commit 88d78bc097cd8ebc6541e93316c9d9bf651b13e8 ]
    
    While reading sysctl_tcp_base_mss, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 5d424d5a674f ("[TCP]: MTU probing")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77a04845f0d28a3561494a5f3121488470a968a4
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:52:00 2022 -0700

    tcp: Fix data-races around sysctl_tcp_mtu_probing.
    
    [ Upstream commit f47d00e077e7d61baf69e46dde3210c886360207 ]
    
    While reading sysctl_tcp_mtu_probing, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 5d424d5a674f ("[TCP]: MTU probing")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d4f65615db7fca3df9f7e79eadf937e6ddb03c54
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:58 2022 -0700

    tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept.
    
    [ Upstream commit 1a0008f9df59451d0a17806c1ee1a19857032fa8 ]
    
    While reading sysctl_tcp_fwmark_accept, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 84f39b08d786 ("net: support marking accepting TCP sockets")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ee76fe01ff3c0b4efaa500aecc90d7c8d3a8860
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:57 2022 -0700

    ip: Fix a data-race around sysctl_fwmark_reflect.
    
    [ Upstream commit 85d0b4dbd74b95cc492b1f4e34497d3f894f5d9a ]
    
    While reading sysctl_fwmark_reflect, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: e110861f8609 ("net: add a sysctl to reflect the fwmark on replies")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 611ba70e5aca252ef43374dda97ed4cf1c47a07c
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:56 2022 -0700

    ip: Fix a data-race around sysctl_ip_autobind_reuse.
    
    [ Upstream commit 0db232765887d9807df8bcb7b6f29b2871539eab ]
    
    While reading sysctl_ip_autobind_reuse, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its reader.
    
    Fixes: 4b01a9674231 ("tcp: bind(0) remove the SO_REUSEADDR restriction when ephemeral ports are exhausted.")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 94269132d0fc9ee357e555c17a8f85fd6660649b
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:55 2022 -0700

    ip: Fix data-races around sysctl_ip_nonlocal_bind.
    
    [ Upstream commit 289d3b21fb0bfc94c4e98f10635bba1824e5f83c ]
    
    While reading sysctl_ip_nonlocal_bind, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 11038fa781ab916535c53351537b22d6d405667d
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:54 2022 -0700

    ip: Fix data-races around sysctl_ip_fwd_update_priority.
    
    [ Upstream commit 7bf9e18d9a5e99e3c83482973557e9f047b051e7 ]
    
    While reading sysctl_ip_fwd_update_priority, it can be changed
    concurrently.  Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 432e05d32892 ("net: ipv4: Control SKB reprioritization after forwarding")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b96ed5ccb09ae71103023ed13acefb194f609794
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:53 2022 -0700

    ip: Fix data-races around sysctl_ip_fwd_use_pmtu.
    
    [ Upstream commit 60c158dc7b1f0558f6cadd5b50d0386da0000d50 ]
    
    While reading sysctl_ip_fwd_use_pmtu, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: f87c10a8aa1e ("ipv4: introduce ip_dst_mtu_maybe_forward and protect forwarding path against pmtu spoofing")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5e343e3ef464a5dbcc8fd3a99830908e31a4a61d
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Wed Jul 13 13:51:52 2022 -0700

    ip: Fix data-races around sysctl_ip_no_pmtu_disc.
    
    [ Upstream commit 0968d2a441bf6afb551fd99e60fa65ed67068963 ]
    
    While reading sysctl_ip_no_pmtu_disc, it can be changed concurrently.
    Thus, we need to add READ_ONCE() to its readers.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77836dbe35382aaf8108489060c5c89530c77494
Author: Lennert Buytenhek <buytenh@wantstofly.org>
Date:   Thu Jun 2 18:58:11 2022 +0300

    igc: Reinstate IGC_REMOVED logic and implement it properly
    
    [ Upstream commit 7c1ddcee5311f3315096217881d2dbe47cc683f9 ]
    
    The initially merged version of the igc driver code (via commit
    146740f9abc4, "igc: Add support for PF") contained the following
    IGC_REMOVED checks in the igc_rd32/wr32() MMIO accessors:
    
            u32 igc_rd32(struct igc_hw *hw, u32 reg)
            {
                    u8 __iomem *hw_addr = READ_ONCE(hw->hw_addr);
                    u32 value = 0;
    
                    if (IGC_REMOVED(hw_addr))
                            return ~value;
    
                    value = readl(&hw_addr[reg]);
    
                    /* reads should not return all F's */
                    if (!(~value) && (!reg || !(~readl(hw_addr))))
                            hw->hw_addr = NULL;
    
                    return value;
            }
    
    And:
    
            #define wr32(reg, val) \
            do { \
                    u8 __iomem *hw_addr = READ_ONCE((hw)->hw_addr); \
                    if (!IGC_REMOVED(hw_addr)) \
                            writel((val), &hw_addr[(reg)]); \
            } while (0)
    
    E.g. igb has similar checks in its MMIO accessors, and has a similar
    macro E1000_REMOVED, which is implemented as follows:
    
            #define E1000_REMOVED(h) unlikely(!(h))
    
    These checks serve to detect and take note of an 0xffffffff MMIO read
    return from the device, which can be caused by a PCIe link flap or some
    other kind of PCI bus error, and to avoid performing MMIO reads and
    writes from that point onwards.
    
    However, the IGC_REMOVED macro was not originally implemented:
    
            #ifndef IGC_REMOVED
            #define IGC_REMOVED(a) (0)
            #endif /* IGC_REMOVED */
    
    This led to the IGC_REMOVED logic to be removed entirely in a
    subsequent commit (commit 3c215fb18e70, "igc: remove IGC_REMOVED
    function"), with the rationale that such checks matter only for
    virtualization and that igc does not support virtualization -- but a
    PCIe device can become detached even without virtualization being in
    use, and without proper checks, a PCIe bus error affecting an igc
    adapter will lead to various NULL pointer dereferences, as the first
    access after the error will set hw->hw_addr to NULL, and subsequent
    accesses will blindly dereference this now-NULL pointer.
    
    This patch reinstates the IGC_REMOVED checks in igc_rd32/wr32(), and
    implements IGC_REMOVED the way it is done for igb, by checking for the
    unlikely() case of hw_addr being NULL.  This change prevents the oopses
    seen when a PCIe link flap occurs on an igc adapter.
    
    Fixes: 146740f9abc4 ("igc: Add support for PF")
    Signed-off-by: Lennert Buytenhek <buytenh@arista.com>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Acked-by: Sasha Neftin <sasha.neftin@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fb6031203ebbc17fa36aa3a85f007854d118d266
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Wed Oct 20 16:45:00 2021 -0400

    drm/amdgpu/display: add quirk handling for stutter mode
    
    [ Upstream commit 3ce51649cdf23ab463494df2bd6d1e9529ebdc6a ]
    
    Stutter mode is a power saving feature on GPUs, however at
    least one early raven system exhibits stability issues with
    it.  Add a quirk to disable it for that system.
    
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=214417
    Fixes: 005440066f929b ("drm/amdgpu: enable gfxoff again on raven series (v2)")
    Reviewed-by: Harry Wentland <harry.wentland@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 43128b3eee337824158f34da6648163d2f2fb937
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Tue Jul 5 15:07:26 2022 +0200

    perf/core: Fix data race between perf_event_set_output() and perf_mmap_close()
    
    [ Upstream commit 68e3c69803dada336893640110cb87221bb01dcf ]
    
    Yang Jihing reported a race between perf_event_set_output() and
    perf_mmap_close():
    
            CPU1                                    CPU2
    
            perf_mmap_close(e2)
              if (atomic_dec_and_test(&e2->rb->mmap_count)) // 1 - > 0
                detach_rest = true
    
                                                    ioctl(e1, IOC_SET_OUTPUT, e2)
                                                      perf_event_set_output(e1, e2)
    
              ...
              list_for_each_entry_rcu(e, &e2->rb->event_list, rb_entry)
                ring_buffer_attach(e, NULL);
                // e1 isn't yet added and
                // therefore not detached
    
                                                        ring_buffer_attach(e1, e2->rb)
                                                          list_add_rcu(&e1->rb_entry,
                                                                       &e2->rb->event_list)
    
    After this; e1 is attached to an unmapped rb and a subsequent
    perf_mmap() will loop forever more:
    
            again:
                    mutex_lock(&e->mmap_mutex);
                    if (event->rb) {
                            ...
                            if (!atomic_inc_not_zero(&e->rb->mmap_count)) {
                                    ...
                                    mutex_unlock(&e->mmap_mutex);
                                    goto again;
                            }
                    }
    
    The loop in perf_mmap_close() holds e2->mmap_mutex, while the attach
    in perf_event_set_output() holds e1->mmap_mutex. As such there is no
    serialization to avoid this race.
    
    Change perf_event_set_output() to take both e1->mmap_mutex and
    e2->mmap_mutex to alleviate that problem. Additionally, have the loop
    in perf_mmap() detach the rb directly, this avoids having to wait for
    the concurrent perf_mmap_close() to get around to doing it to make
    progress.
    
    Fixes: 9bb5d40cd93c ("perf: Fix mmap() accounting hole")
    Reported-by: Yang Jihong <yangjihong1@huawei.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: Yang Jihong <yangjihong1@huawei.com>
    Link: https://lkml.kernel.org/r/YsQ3jm2GR38SW7uD@worktop.programming.kicks-ass.net
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5694b162f275fb9a9f89422701b2b963be11e496
Author: William Dean <williamsukatube@gmail.com>
Date:   Sun Jul 10 23:49:22 2022 +0800

    pinctrl: ralink: Check for null return of devm_kcalloc
    
    [ Upstream commit c3b821e8e406d5650e587b7ac624ac24e9b780a8 ]
    
    Because of the possible failure of the allocation, data->domains might
    be NULL pointer and will cause the dereference of the NULL pointer
    later.
    Therefore, it might be better to check it and directly return -ENOMEM
    without releasing data manually if fails, because the comment of the
    devm_kmalloc() says "Memory allocated with this function is
    automatically freed on driver detach.".
    
    Fixes: a86854d0c599b ("treewide: devm_kzalloc() -> devm_kcalloc()")
    Reported-by: Hacash Robot <hacashRobot@santino.com>
    Signed-off-by: William Dean <williamsukatube@gmail.com>
    Link: https://lore.kernel.org/r/20220710154922.2610876-1-williamsukatube@163.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 493ceca3271316e74639c89ff8ac35883de64256
Author: Miaoqian Lin <linmq006@gmail.com>
Date:   Mon May 23 18:10:09 2022 +0400

    power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe
    
    [ Upstream commit 80192eff64eee9b3bc0594a47381937b94b9d65a ]
    
    of_find_matching_node_and_match() returns a node pointer with refcount
    incremented, we should use of_node_put() on it when not need anymore.
    Add missing of_node_put() to avoid refcount leak.
    
    Fixes: 0e545f57b708 ("power: reset: driver for the Versatile syscon reboot")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47b696dd654450cdec3103a833e5bf29c4b83bfa
Author: Hangyu Hua <hbh25y@gmail.com>
Date:   Wed Jun 1 14:46:25 2022 +0800

    xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup()
    
    [ Upstream commit f85daf0e725358be78dfd208dea5fd665d8cb901 ]
    
    xfrm_policy_lookup() will call xfrm_pol_hold_rcu() to get a refcount of
    pols[0]. This refcount can be dropped in xfrm_expand_policies() when
    xfrm_expand_policies() return error. pols[0]'s refcount is balanced in
    here. But xfrm_bundle_lookup() will also call xfrm_pols_put() with
    num_pols == 1 to drop this refcount when xfrm_expand_policies() return
    error.
    
    This patch also fix an illegal address access. pols[0] will save a error
    point when xfrm_policy_lookup fails. This lead to xfrm_pols_put to resolve
    an illegal address in xfrm_bundle_lookup's error path.
    
    Fix these by setting num_pols = 0 in xfrm_expand_policies()'s error path.
    
    Fixes: 80c802f3073e ("xfrm: cache bundles instead of policies for outgoing flows")
    Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3777ea39f05aefeadf8b9f5216bf2f7978d2649e
Author: Pali Rohár <pali@kernel.org>
Date:   Tue Jun 28 12:09:22 2022 +0200

    serial: mvebu-uart: correctly report configured baudrate value
    
    commit 4f532c1e25319e42996ec18a1f473fd50c8e575d upstream.
    
    Functions tty_termios_encode_baud_rate() and uart_update_timeout() should
    be called with the baudrate value which was set to hardware. Linux then
    report exact values via ioctl(TCGETS2) to userspace.
    
    Change mvebu_uart_baud_rate_set() function to return baudrate value which
    was set to hardware and propagate this value to above mentioned functions.
    
    With this change userspace would see precise value in termios c_ospeed
    field.
    
    Fixes: 68a0db1d7da2 ("serial: mvebu-uart: add function to change baudrate")
    Cc: stable <stable@kernel.org>
    Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20220628100922.10717-1-pali@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e744aad0c4421c83cec35d62394e9cd210ccade6
Author: Jeffrey Hugo <quic_jhugo@quicinc.com>
Date:   Fri Jul 15 21:37:40 2022 +0000

    PCI: hv: Fix interrupt mapping for multi-MSI
    
    commit a2bad844a67b1c7740bda63e87453baf63c3a7f7 upstream.
    
    According to Dexuan, the hypervisor folks beleive that multi-msi
    allocations are not correct.  compose_msi_msg() will allocate multi-msi
    one by one.  However, multi-msi is a block of related MSIs, with alignment
    requirements.  In order for the hypervisor to allocate properly aligned
    and consecutive entries in the IOMMU Interrupt Remapping Table, there
    should be a single mapping request that requests all of the multi-msi
    vectors in one shot.
    
    Dexuan suggests detecting the multi-msi case and composing a single
    request related to the first MSI.  Then for the other MSIs in the same
    block, use the cached information.  This appears to be viable, so do it.
    
    5.10 backport - add hv_msi_get_int_vector helper function. Fixed merge
    conflict due to delivery_mode name change (APIC_DELIVERY_MODE_FIXED
    is the value given to dest_Fixed). Removed unused variable in
    hv_compose_msi_msg. Fixed reference to msi_desc->pci to point to
    the same is_msix variable. Removed changes to compose_msi_req_v3 since
    it doesn't exist yet.
    
    Suggested-by: Dexuan Cui <decui@microsoft.com>
    Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Reviewed-by: Dexuan Cui <decui@microsoft.com>
    Tested-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/1652282599-21643-1-git-send-email-quic_jhugo@quicinc.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Carl Vanderlip <quic_carlv@quicinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 522bd31d6b4bb783e4454d8f11d012e77c627648
Author: Jeffrey Hugo <quic_jhugo@quicinc.com>
Date:   Fri Jul 15 21:37:39 2022 +0000

    PCI: hv: Reuse existing IRTE allocation in compose_msi_msg()
    
    commit b4b77778ecc5bfbd4e77de1b2fd5c1dd3c655f1f upstream.
    
    Currently if compose_msi_msg() is called multiple times, it will free any
    previous IRTE allocation, and generate a new allocation.  While nothing
    prevents this from occurring, it is extraneous when Linux could just reuse
    the existing allocation and avoid a bunch of overhead.
    
    However, when future IRTE allocations operate on blocks of MSIs instead of
    a single line, freeing the allocation will impact all of the lines.  This
    could cause an issue where an allocation of N MSIs occurs, then some of
    the lines are retargeted, and finally the allocation is freed/reallocated.
    The freeing of the allocation removes all of the configuration for the
    entire block, which requires all the lines to be retargeted, which might
    not happen since some lines might already be unmasked/active.
    
    Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Reviewed-by: Dexuan Cui <decui@microsoft.com>
    Tested-by: Dexuan Cui <decui@microsoft.com>
    Tested-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/1652282582-21595-1-git-send-email-quic_jhugo@quicinc.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Carl Vanderlip <quic_carlv@quicinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73bf070408a7f07e813ab26ebde1b09fca159cd6
Author: Jeffrey Hugo <quic_jhugo@quicinc.com>
Date:   Fri Jul 15 21:37:38 2022 +0000

    PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI
    
    commit 455880dfe292a2bdd3b4ad6a107299fce610e64b upstream.
    
    In the multi-MSI case, hv_arch_irq_unmask() will only operate on the first
    MSI of the N allocated.  This is because only the first msi_desc is cached
    and it is shared by all the MSIs of the multi-MSI block.  This means that
    hv_arch_irq_unmask() gets the correct address, but the wrong data (always
    0).
    
    This can break MSIs.
    
    Lets assume MSI0 is vector 34 on CPU0, and MSI1 is vector 33 on CPU0.
    
    hv_arch_irq_unmask() is called on MSI0.  It uses a hypercall to configure
    the MSI address and data (0) to vector 34 of CPU0.  This is correct.  Then
    hv_arch_irq_unmask is called on MSI1.  It uses another hypercall to
    configure the MSI address and data (0) to vector 33 of CPU0.  This is
    wrong, and results in both MSI0 and MSI1 being routed to vector 33.  Linux
    will observe extra instances of MSI1 and no instances of MSI0 despite the
    endpoint device behaving correctly.
    
    For the multi-MSI case, we need unique address and data info for each MSI,
    but the cached msi_desc does not provide that.  However, that information
    can be gotten from the int_desc cached in the chip_data by
    compose_msi_msg().  Fix the multi-MSI case to use that cached information
    instead.  Since hv_set_msi_entry_from_desc() is no longer applicable,
    remove it.
    
    5.10 backport - removed unused hv_set_msi_entry_from_desc function from
    mshyperv.h instead of pci-hyperv.c. msi_entry.address/data.as_uint32
    changed to direct reference (as they are u32's, just sans union).
    
    Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Link: https://lore.kernel.org/r/1651068453-29588-1-git-send-email-quic_jhugo@quicinc.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Carl Vanderlip <quic_carlv@quicinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1d2f1ce05355742f0fdb721e30ddd03de90be94
Author: Jeffrey Hugo <quic_jhugo@quicinc.com>
Date:   Fri Jul 15 21:37:37 2022 +0000

    PCI: hv: Fix multi-MSI to allow more than one MSI vector
    
    commit 08e61e861a0e47e5e1a3fb78406afd6b0cea6b6d upstream.
    
    If the allocation of multiple MSI vectors for multi-MSI fails in the core
    PCI framework, the framework will retry the allocation as a single MSI
    vector, assuming that meets the min_vecs specified by the requesting
    driver.
    
    Hyper-V advertises that multi-MSI is supported, but reuses the VECTOR
    domain to implement that for x86.  The VECTOR domain does not support
    multi-MSI, so the alloc will always fail and fallback to a single MSI
    allocation.
    
    In short, Hyper-V advertises a capability it does not implement.
    
    Hyper-V can support multi-MSI because it coordinates with the hypervisor
    to map the MSIs in the IOMMU's interrupt remapper, which is something the
    VECTOR domain does not have.  Therefore the fix is simple - copy what the
    x86 IOMMU drivers (AMD/Intel-IR) do by removing
    X86_IRQ_ALLOC_CONTIGUOUS_VECTORS after calling the VECTOR domain's
    pci_msi_prepare().
    
    5.10 backport - adds the hv_msi_prepare wrapper function
    
    Fixes: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs")
    Signed-off-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
    Reviewed-by: Dexuan Cui <decui@microsoft.com>
    Link: https://lore.kernel.org/r/1649856981-14649-1-git-send-email-quic_jhugo@quicinc.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Carl Vanderlip <quic_carlv@quicinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b07240ce4a09d9771d544e15a3a4ec008cc186ad
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Jul 23 17:06:06 2022 +0200

    Revert "m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch"
    
    This reverts commit 87ae522e467e17a13b796e2cb595f9c3943e4d5e which is
    commit db87db65c1059f3be04506d122f8ec9b2fa3b05e upstream.
    
    It is not needed in 5.10.y and causes problems.
    
    Link: https://lore.kernel.org/r/CAK8P3a0vZrXxNp3YhrxFjFunHgxSZBKD9Y4darSODgeFAukCeQ@mail.gmail.com
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Cc: Greg Ungerer <gerg@linux-m68k.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f900c37f13eef18e56f541b525d1e743948e01c
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:32 2022 +0300

    net: inline rollback_registered_many()
    
    commit 0cbe1e57a7b93517100b0eb63d8e445cfbeb630c upstream.
    
    Similar to the change for rollback_registered() -
    rollback_registered_many() was a part of unregister_netdevice_many()
    minus the net_set_todo(), which is no longer needed.
    
    Functionally this patch moves the list_empty() check back after:
    
            BUG_ON(dev_boot_phase);
            ASSERT_RTNL();
    
    but I can't find any reason why that would be an issue.
    
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf2f3d1970c03f14c84515738de5c0cb28c8ebce
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:31 2022 +0300

    net: move rollback_registered_many()
    
    commit bcfe2f1a3818d9dca945b6aca4ae741cb1f75329 upstream.
    
    Move rollback_registered_many() and add a temporary
    forward declaration to make merging the code into
    unregister_netdevice_many() easier to review.
    
    No functional changes.
    
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 672fac0a4372b7cc053bc7458c536eaea450a572
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:30 2022 +0300

    net: inline rollback_registered()
    
    commit 037e56bd965e1bc72c2fa9684ac25b56839a338e upstream.
    
    rollback_registered() is a local helper, it's common for driver
    code to call unregister_netdevice_queue(dev, NULL) when they
    want to unregister netdevices under rtnl_lock. Inline
    rollback_registered() and adjust the only remaining caller.
    
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1158677d46bd67e32d6606d1f8c01d8ba9e6d22
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:29 2022 +0300

    net: move net_set_todo inside rollback_registered()
    
    commit 2014beea7eb165c745706b13659a0f1d0a9a2a61 upstream.
    
    Commit 93ee31f14f6f ("[NET]: Fix free_netdev on register_netdev
    failure.") moved net_set_todo() outside of rollback_registered()
    so that rollback_registered() can be used in the failure path of
    register_netdevice() but without risking a double free.
    
    Since commit cf124db566e6 ("net: Fix inconsistent teardown and
    release of private netdev state."), however, we have a better
    way of handling that condition, since destructors don't call
    free_netdev() directly.
    
    After the change in commit c269a24ce057 ("net: make free_netdev()
    more lenient with unregistering devices") we can now move
    net_set_todo() back.
    
    Reviewed-by: Edwin Peer <edwin.peer@broadcom.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e11856ec37985a5fa8c7ad1cc406a4dd3962ec9
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:28 2022 +0300

    net: make sure devices go through netdev_wait_all_refs
    
    commit 766b0515d5bec4b780750773ed3009b148df8c0a upstream.
    
    If register_netdevice() fails at the very last stage - the
    notifier call - some subsystems may have already seen it and
    grabbed a reference. struct net_device can't be freed right
    away without calling netdev_wait_all_refs().
    
    Now that we have a clean interface in form of dev->needs_free_netdev
    and lenient free_netdev() we can undo what commit 93ee31f14f6f ("[NET]:
    Fix free_netdev on register_netdev failure.") has done and complete
    the unregistration path by bringing the net_set_todo() call back.
    
    After registration fails user is still expected to explicitly
    free the net_device, so make sure ->needs_free_netdev is cleared,
    otherwise rolling back the registration will cause the old double
    free for callers who release rtnl_lock before the free.
    
    This also solves the problem of priv_destructor not being called
    on notifier error.
    
    net_set_todo() will be moved back into unregister_netdevice_queue()
    in a follow up.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reported-by: Yang Yingliang <yangyingliang@huawei.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed6964ff47149091075b0009a26a05c06a4cdcf5
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:27 2022 +0300

    net: make free_netdev() more lenient with unregistering devices
    
    commit c269a24ce057abfc31130960e96ab197ef6ab196 upstream.
    
    There are two flavors of handling netdev registration:
     - ones called without holding rtnl_lock: register_netdev() and
       unregister_netdev(); and
     - those called with rtnl_lock held: register_netdevice() and
       unregister_netdevice().
    
    While the semantics of the former are pretty clear, the same can't
    be said about the latter. The netdev_todo mechanism is utilized to
    perform some of the device unregistering tasks and it hooks into
    rtnl_unlock() so the locked variants can't actually finish the work.
    In general free_netdev() does not mix well with locked calls. Most
    drivers operating under rtnl_lock set dev->needs_free_netdev to true
    and expect core to make the free_netdev() call some time later.
    
    The part where this becomes most problematic is error paths. There is
    no way to unwind the state cleanly after a call to register_netdevice(),
    since unreg can't be performed fully without dropping locks.
    
    Make free_netdev() more lenient, and defer the freeing if device
    is being unregistered. This allows error paths to simply call
    free_netdev() both after register_netdevice() failed, and after
    a call to unregister_netdevice() but before dropping rtnl_lock.
    
    Simplify the error paths which are currently doing gymnastics
    around free_netdev() handling.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2686f62fa78ce4734e871af80161a602d22be843
Author: Jakub Kicinski <kuba@kernel.org>
Date:   Fri Jul 15 19:26:26 2022 +0300

    docs: net: explain struct net_device lifetime
    
    commit 2b446e650b418f9a9e75f99852e2f2560cabfa17 upstream.
    
    Explain the two basic flows of struct net_device's operation.
    
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a99c7c32c85cd5239600533b77a34f884741fcc
Author: Demi Marie Obenour <demi@invisiblethingslab.com>
Date:   Sun Jul 10 19:05:22 2022 -0400

    xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE
    
    commit 166d3863231667c4f64dee72b77d1102cdfad11f upstream.
    
    The error paths of gntdev_mmap() can call unmap_grant_pages() even
    though not all of the pages have been successfully mapped.  This will
    trigger the WARN_ON()s in __unmap_grant_pages_done().  The number of
    warnings can be very large; I have observed thousands of lines of
    warnings in the systemd journal.
    
    Avoid this problem by only warning on unmapping failure if the handle
    being unmapped is not INVALID_GRANT_HANDLE.  The handle field of any
    page that was not successfully mapped will be INVALID_GRANT_HANDLE, so
    this catches all cases where unmapping can legitimately fail.
    
    Fixes: dbe97cff7dd9 ("xen/gntdev: Avoid blocking in unmap_grant_pages()")
    Cc: stable@vger.kernel.org
    Suggested-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
    Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Link: https://lore.kernel.org/r/20220710230522.1563-1-demi@invisiblethingslab.com
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ee0cab11f6626071f8a64c7792406dabdd94c8d
Author: Lee Jones <lee@kernel.org>
Date:   Tue Jul 19 12:52:51 2022 +0100

    io_uring: Use original task for req identity in io_identity_cow()
    
    This issue is conceptually identical to the one fixed in 29f077d07051
    ("io_uring: always use original task when preparing req identity"), so
    rather than reinvent the wheel, I'm shamelessly quoting the commit
    message from that patch - thanks Jens:
    
     "If the ring is setup with IORING_SETUP_IOPOLL and we have more than
      one task doing submissions on a ring, we can up in a situation where
      we assign the context from the current task rather than the request
      originator.
    
      Always use req->task rather than assume it's the same as current.
    
      No upstream patch exists for this issue, as only older kernels with
      the non-native workers have this problem."
    
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Pavel Begunkov <asml.silence@gmail.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: io-uring@vger.kernel.org
    Cc: linux-fsdevel@vger.kernel.org
    Fixes: 5c3462cfd123b ("io_uring: store io_identity in io_uring_task")
    Signed-off-by: Lee Jones <lee@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab5050fd7430dde3a9f073129036d3da3facc8ec
Author: Eric Snowberg <eric.snowberg@oracle.com>
Date:   Wed Jul 20 12:40:27 2022 -0400

    lockdown: Fix kexec lockdown bypass with ima policy
    
    commit 543ce63b664e2c2f9533d089a4664b559c3e6b5b upstream.
    
    The lockdown LSM is primarily used in conjunction with UEFI Secure Boot.
    This LSM may also be used on machines without UEFI.  It can also be
    enabled when UEFI Secure Boot is disabled.  One of lockdown's features
    is to prevent kexec from loading untrusted kernels.  Lockdown can be
    enabled through a bootparam or after the kernel has booted through
    securityfs.
    
    If IMA appraisal is used with the "ima_appraise=log" boot param,
    lockdown can be defeated with kexec on any machine when Secure Boot is
    disabled or unavailable.  IMA prevents setting "ima_appraise=log" from
    the boot param when Secure Boot is enabled, but this does not cover
    cases where lockdown is used without Secure Boot.
    
    To defeat lockdown, boot without Secure Boot and add ima_appraise=log to
    the kernel command line; then:
    
      $ echo "integrity" > /sys/kernel/security/lockdown
      $ echo "appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig" > \
        /sys/kernel/security/ima/policy
      $ kexec -ls unsigned-kernel
    
    Add a call to verify ima appraisal is set to "enforce" whenever lockdown
    is enabled.  This fixes CVE-2022-21505.
    
    Cc: stable@vger.kernel.org
    Fixes: 29d3c1c8dfe7 ("kexec: Allow kexec_file() with appropriate IMA policy when locked down")
    Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>
    Acked-by: Mimi Zohar <zohar@linux.ibm.com>
    Reviewed-by: John Haxby <john.haxby@oracle.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 426336de3557b5b7290399425b5ca142e635a777
Author: Ido Schimmel <idosch@nvidia.com>
Date:   Tue Jul 19 15:26:26 2022 +0300

    mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication
    
    commit e5ec6a2513383fe2ecc2ee3b5f51d97acbbcd4d8 upstream.
    
    mlxsw needs to distinguish nexthops with a gateway from connected
    nexthops in order to write the former to the adjacency table of the
    device. The check used to rely on the fact that nexthops with a gateway
    have a 'link' scope whereas connected nexthops have a 'host' scope. This
    is no longer correct after commit 747c14307214 ("ip: fix dflt addr
    selection for connected nexthop").
    
    Fix that by instead checking the address family of the gateway IP. This
    is a more direct way and also consistent with the IPv6 counterpart in
    mlxsw_sp_rt6_is_gateway().
    
    Cc: stable@vger.kernel.org
    Fixes: 747c14307214 ("ip: fix dflt addr selection for connected nexthop")
    Fixes: 597cfe4fc339 ("nexthop: Add support for IPv4 nexthops")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Amit Cohen <amcohen@nvidia.com>
    Reviewed-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15155fa898cb0530c3c44eaf92df18e04bef613f
Author: Ben Dooks <ben.dooks@codethink.co.uk>
Date:   Sun May 29 16:22:00 2022 +0100

    riscv: add as-options for modules with assembly compontents
    
    commit c1f6eff304e4dfa4558b6a8c6b2d26a91db6c998 upstream.
    
    When trying to load modules built for RISC-V which include assembly files
    the kernel loader errors with "unexpected relocation type 'R_RISCV_ALIGN'"
    due to R_RISCV_ALIGN relocations being generated by the assembler.
    
    The R_RISCV_ALIGN relocations can be removed at the expense of code space
    by adding -mno-relax to gcc and as.  In commit 7a8e7da42250138
    ("RISC-V: Fixes to module loading") -mno-relax is added to the build
    variable KBUILD_CFLAGS_MODULE. See [1] for more info.
    
    The issue is that when kbuild builds a .S file, it invokes gcc with
    the -mno-relax flag, but this is not being passed through to the
    assembler. Adding -Wa,-mno-relax to KBUILD_AFLAGS_MODULE ensures that
    the assembler is invoked correctly. This may have now been fixed in
    gcc[2] and this addition should not stop newer gcc and as from working.
    
    [1] https://github.com/riscv/riscv-elf-psabi-doc/issues/183
    [2] https://github.com/gcc-mirror/gcc/commit/3b0a7d624e64eeb81e4d5e8c62c46d86ef521857
    
    Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
    Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
    Link: https://lore.kernel.org/r/20220529152200.609809-1-ben.dooks@codethink.co.uk
    Fixes: ab1ef68e5401 ("RISC-V: Add sections of PLT and GOT for kernel module")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31f3bb363a8972891b51747f27665663bce17a5b
Author: Fabien Dessenne <fabien.dessenne@foss.st.com>
Date:   Mon Jun 27 16:23:50 2022 +0200

    pinctrl: stm32: fix optional IRQ support to gpios
    
    commit a1d4ef1adf8bbd302067534ead671a94759687ed upstream.
    
    To act as an interrupt controller, a gpio bank relies on the
    "interrupt-parent" of the pin controller.
    When this optional "interrupt-parent" misses, do not create any IRQ domain.
    
    This fixes a "NULL pointer in stm32_gpio_domain_alloc()" kernel crash when
    the interrupt-parent = <exti> property is not declared in the Device Tree.
    
    Fixes: 0eb9f683336d ("pinctrl: Add IRQ support to STM32 gpios")
    Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com>
    Link: https://lore.kernel.org/r/20220627142350.742973-1-fabien.dessenne@foss.st.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>