Commit graph

899,075 commits

Author SHA1 Message Date
Ritesh Harjani
ed2290e360 UPSTREAM: ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
[ Upstream commit 310c097c2bdbea253d6ee4e064f3e65580ef93ac ]

ext4_xattr_ibody_inline_set() & ext4_xattr_ibody_set() have the exact
same definition.  Hence remove ext4_xattr_ibody_inline_set() and all
its call references. Convert the callers of it to call
ext4_xattr_ibody_set() instead.

[ Modified to preserve ext4_xattr_ibody_set() and remove
  ext4_xattr_ibody_inline_set() instead. -- TYT ]

Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
Link: https://lore.kernel.org/r/fd566b799bbbbe9b668eb5eecde5b5e319e3694f.1622685482.git.riteshh@linux.ibm.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 253759004
Change-Id: Iaf02894c4f88d79d85ed00363fc83d4b3ba8c575
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-05-01 09:20:52 +00:00
Tudor Ambarus
df0f6ba0c5 UPSTREAM: Revert "ext4: fix use-after-free in ext4_xattr_set_entry"
This reverts commit bb8592efcf8ef2f62947745d3182ea05b5256a15 which is
commit 67d7d8ad99beccd9fe92d585b87f1760dc9018e3 upstream.

The order in which patches are queued to stable matters. This patch
has a logical dependency on commit 310c097c2bdbea253d6ee4e064f3e65580ef93ac
upstream, and failing to queue the latter results in a null-ptr-deref
reported at the Link below.

In order to avoid conflicts on stable, revert the commit just so that we
can queue its prerequisite patch first and then queue the same after.

Link: https://syzkaller.appspot.com/bug?extid=d5ebf56f3b1268136afd
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 253759004
Change-Id: I0e09ac2e68c2b21834ccd620c79f73fadc420170
(cherry picked from commit 9400206d9d5eebc0317da4151364ade32d28944f)
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-05-01 09:20:52 +00:00
Duoming Zhou
4716ccc31d UPSTREAM: media: rc: Fix use-after-free bugs caused by ene_tx_irqsim()
[ Upstream commit 29b0589a865b6f66d141d79b2dd1373e4e50fe17 ]

When the ene device is detaching, function ene_remove() will
be called. But there is no function to cancel tx_sim_timer
in ene_remove(), the timer handler ene_tx_irqsim() could race
with ene_remove(). As a result, the UAF bugs could happen,
the process is shown below.

    (cleanup routine)          |        (timer routine)
                               | mod_timer(&dev->tx_sim_timer, ..)
ene_remove()                   | (wait a time)
                               | ene_tx_irqsim()
                               |   dev->hw_lock //USE
                               |   ene_tx_sample(dev) //USE

Fix by adding del_timer_sync(&dev->tx_sim_timer) in ene_remove(),
The tx_sim_timer could stop before ene device is deallocated.

What's more, The rc_unregister_device() and del_timer_sync()
should be called first in ene_remove() and the deallocated
functions such as free_irq(), release_region() and so on
should be called behind them. Because the rc_unregister_device()
is well synchronized. Otherwise, race conditions may happen. The
situations that may lead to race conditions are shown below.

Firstly, the rx receiver is disabled with ene_rx_disable()
before rc_unregister_device() in ene_remove(), which means it
can be enabled again if a process opens /dev/lirc0 between
ene_rx_disable() and rc_unregister_device().

Secondly, the irqaction descriptor is freed by free_irq()
before the rc device is unregistered, which means irqaction
descriptor may be accessed again after it is deallocated.

Thirdly, the timer can call ene_tx_sample() that can write
to the io ports, which means the io ports could be accessed
again after they are deallocated by release_region().

Therefore, the rc_unregister_device() and del_timer_sync()
should be called first in ene_remove().

Suggested by: Sean Young <sean@mess.org>

Bug: 272747251
Fixes: 9ea53b74df ("V4L/DVB: STAGING: remove lirc_ene0100 driver")
Signed-off-by: Duoming Zhou <duoming@zju.edu.cn>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I0076055ed3336b6f2ef4afe8afe68620dc6c2a0a
2023-04-06 07:07:23 +00:00
Paul Lawrence
ae46662afa ANDROID: incremental fs: Evict inodes before freeing mount data
Since evicting inodes triggers writes to the backing file, which uses
the mi_owner field from the mount_info struct, make sure inodes are
evicted before we free the mount_info data

Test: incfs_test
Bug: 270117845
Change-Id: I673b2e0e04b5adc3998caf6f22443598a30338af
Signed-off-by: Paul Lawrence <paullawrence@google.com>
(cherry picked from commit 7899985277527b29c47929a6d6a89c5c89b406ad)
(cherry picked from commit faf3626b8e34df3dfff3a99e6582a9abd24410ce)
2023-04-05 13:07:49 -07:00
Ye Bin
5da4c29d97 UPSTREAM: ext4: fix kernel BUG in 'ext4_write_inline_data_end()'
commit 5c099c4fdc438014d5893629e70a8ba934433ee8 upstream.

Syzbot report follow issue:
------------[ cut here ]------------
kernel BUG at fs/ext4/inline.c:227!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 3629 Comm: syz-executor212 Not tainted 6.1.0-rc5-syzkaller-00018-g59d0d52c30d4 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
RIP: 0010:ext4_write_inline_data+0x344/0x3e0 fs/ext4/inline.c:227
RSP: 0018:ffffc90003b3f368 EFLAGS: 00010293
RAX: 0000000000000000 RBX: ffff8880704e16c0 RCX: 0000000000000000
RDX: ffff888021763a80 RSI: ffffffff821e31a4 RDI: 0000000000000006
RBP: 000000000006818e R08: 0000000000000006 R09: 0000000000068199
R10: 0000000000000079 R11: 0000000000000000 R12: 000000000000000b
R13: 0000000000068199 R14: ffffc90003b3f408 R15: ffff8880704e1c82
FS:  000055555723e3c0(0000) GS:ffff8880b9b00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fffe8ac9080 CR3: 0000000079f81000 CR4: 0000000000350ee0
Call Trace:
 <TASK>
 ext4_write_inline_data_end+0x2a3/0x12f0 fs/ext4/inline.c:768
 ext4_write_end+0x242/0xdd0 fs/ext4/inode.c:1313
 ext4_da_write_end+0x3ed/0xa30 fs/ext4/inode.c:3063
 generic_perform_write+0x316/0x570 mm/filemap.c:3764
 ext4_buffered_write_iter+0x15b/0x460 fs/ext4/file.c:285
 ext4_file_write_iter+0x8bc/0x16e0 fs/ext4/file.c:700
 call_write_iter include/linux/fs.h:2191 [inline]
 do_iter_readv_writev+0x20b/0x3b0 fs/read_write.c:735
 do_iter_write+0x182/0x700 fs/read_write.c:861
 vfs_iter_write+0x74/0xa0 fs/read_write.c:902
 iter_file_splice_write+0x745/0xc90 fs/splice.c:686
 do_splice_from fs/splice.c:764 [inline]
 direct_splice_actor+0x114/0x180 fs/splice.c:931
 splice_direct_to_actor+0x335/0x8a0 fs/splice.c:886
 do_splice_direct+0x1ab/0x280 fs/splice.c:974
 do_sendfile+0xb19/0x1270 fs/read_write.c:1255
 __do_sys_sendfile64 fs/read_write.c:1323 [inline]
 __se_sys_sendfile64 fs/read_write.c:1309 [inline]
 __x64_sys_sendfile64+0x1d0/0x210 fs/read_write.c:1309
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
---[ end trace 0000000000000000 ]---

Above issue may happens as follows:
ext4_da_write_begin
  ext4_da_write_inline_data_begin
    ext4_da_convert_inline_data_to_extent
      ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA);
ext4_da_write_end

ext4_run_li_request
  ext4_mb_prefetch
    ext4_read_block_bitmap_nowait
      ext4_validate_block_bitmap
        ext4_mark_group_bitmap_corrupted(sb, block_group, EXT4_GROUP_INFO_BBITMAP_CORRUPT)
	 percpu_counter_sub(&sbi->s_freeclusters_counter,grp->bb_free);
	  -> sbi->s_freeclusters_counter become zero
ext4_da_write_begin
  if (ext4_nonda_switch(inode->i_sb)) -> As freeclusters_counter is zero will return true
    *fsdata = (void *)FALL_BACK_TO_NONDELALLOC;
    ext4_write_begin
ext4_da_write_end
  if (write_mode == FALL_BACK_TO_NONDELALLOC)
    ext4_write_end
      if (inline_data)
        ext4_write_inline_data_end
	  ext4_write_inline_data
	    BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);
           -> As inode is already convert to extent, so 'pos + len' > inline_size
	   -> then trigger BUG.

To solve this issue, instead of checking ext4_has_inline_data() which
is only cleared after data has been written back, check the
EXT4_STATE_MAY_INLINE_DATA flag in ext4_write_end().

Fixes: f19d5870cb ("ext4: add normal write support for inline data")
Reported-by: syzbot+4faa160fa96bfba639f8@syzkaller.appspotmail.com
Reported-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Ye Bin <yebin10@huawei.com>
Link: https://lore.kernel.org/r/20221206144134.1919987-1-yebin@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
[ta: Fix conflict in if expression and use the local variable inline_data
as it is initialized with ext4_has_inline_data(inode) anyway.]
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 257756238
Change-Id: Ifc77db2f12db2270a2f7100e548e113dee3ee492
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-04-05 12:53:42 +00:00
Pietro Borrello
02a09d4145 UPSTREAM: hid: bigben_probe(): validate report count
[ Upstream commit b94335f899542a0da5fafc38af8edcaf90195843 ]

bigben_probe() does not validate that the output report has the
needed report values in the first field.
A malicious device registering a report with one field and a single
value causes an head OOB write in bigben_worker() when
accessing report_field->value[1] to report_field->value[7].
Use hid_validate_values() which takes care of all the needed checks.

Bug: 268589017
Fixes: 256a90ed9e ("HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Link: https://lore.kernel.org/r/20230211-bigben-oob-v1-1-d2849688594c@diag.uniroma1.it
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I575c5d4c8a63a2065752a45c47b23cf725cc57ae
2023-03-31 12:41:36 +00:00
Pietro Borrello
63c050ea59 UPSTREAM: HID: bigben: use spinlock to safely schedule workers
[ Upstream commit 76ca8da989c7d97a7f76c75d475fe95a584439d7 ]

Use spinlocks to deal with workers introducing a wrapper
bigben_schedule_work(), and several spinlock checks.
Otherwise, bigben_set_led() may schedule bigben->worker after the
structure has been freed, causing a use-after-free.

Bug: 268589017
Fixes: 4eb1b01de5b9 ("HID: hid-bigbenff: fix race condition for scheduled work during removal")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-3-7860c5763c38@diag.uniroma1.it
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia3f47b68264f6c492597b0b0603f6822dc624f2b
2023-03-31 10:37:36 +00:00
Matthias Schiffer
ce095c7400 BACKPORT: of: base: Skip CPU nodes with "fail"/"fail-..." status
Allow fully disabling CPU nodes using status = "fail".

This allows a bootloader to change the number of available CPUs (for
example when a common DTS is used for SoC variants with different numbers
of cores) without deleting the nodes altogether, which could require
additional fixups to avoid dangling phandle references.

Unknown status values (everything that is not "okay"/"ok", "disabled" or
"fail"/"fail-...") will continue to be interpreted like "disabled",
meaning that the CPU can be enabled during boot.

References:
- https://www.spinics.net/lists/devicetree-spec/msg01007.html
- https://github.com/devicetree-org/dt-schema/pull/61

Bug: 275500667
Change-Id: I0d0028c1d5f529c43f184556ac661c50fe026741
Link: https://lore.kernel.org/all/CAL_Jsq+1LsTBdVaODVfmB0eme2jMpNL4VgKk-OM7rQWyyF0Jbw@mail.gmail.com/
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Tested-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com>
Reviewed-by: Frank Rowand <frank.rowand@sony.com>
Link: https://lore.kernel.org/r/20211122114536.2981-1-matthias.schiffer@ew.tq-group.com
Signed-off-by: Rob Herring <robh@kernel.org>
(cherry picked from commit 4fdd0736a3b1634613d1d2eeb3328d27522052fb)
Signed-off-by: Komal Bajaj <quic_kbajaj@quicinc.com>
2023-03-29 17:55:50 +00:00
Pietro Borrello
cdbef3965f UPSTREAM: HID: bigben_worker() remove unneeded check on report_field
[ Upstream commit 27d2a2fd844ec7da70d19fabb482304fd1e0595b ]

bigben_worker() checks report_field to be non-NULL.
The check has been added in commit
918aa1ef104d ("HID: bigbenff: prevent null pointer dereference")
to prevent a NULL pointer crash.
However, the true root cause was a missing check for output
reports, patched in commit
c7bf714f8755 ("HID: check empty report_list in bigben_probe()"),
where the type-confused report list_entry was overlapping with
a NULL pointer, which was then causing the crash.

Bug: 268589017
Fixes: 918aa1ef104d ("HID: bigbenff: prevent null pointer dereference")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-2-7860c5763c38@diag.uniroma1.it
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ide36490e2e4482f6cf9af931bef052f172419e31
2023-03-29 15:10:03 +01:00
Pietro Borrello
dfeba42a9c UPSTREAM: HID: bigben: use spinlock to protect concurrent accesses
[ Upstream commit 9fefb6201c4f8dd9f58c581b2a66e5cde2895ea2 ]

bigben driver has a worker that may access data concurrently.
Proct the accesses using a spinlock.

Bug: 268589017
Fixes: 256a90ed9e ("HID: hid-bigbenff: driver for BigBen Interactive PS3OFMINIPAD gamepad")
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
Link: https://lore.kernel.org/r/20230125-hid-unregister-leds-v4-1-7860c5763c38@diag.uniroma1.it
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I8b7a34cba4c79c26f3d1912c97a83820d88bd5a4
2023-03-29 15:09:16 +01:00
Laurent Vivier
13e656b3b5 UPSTREAM: hwrng: virtio - add an internal buffer
hwrng core uses two buffers that can be mixed in the
virtio-rng queue.

If the buffer is provided with wait=0 it is enqueued in the
virtio-rng queue but unused by the caller.
On the next call, core provides another buffer but the
first one is filled instead and the new one queued.
And the caller reads the data from the new one that is not
updated, and the data in the first one are lost.

To avoid this mix, virtio-rng needs to use its own unique
internal buffer at a cost of a data copy to the caller buffer.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Link: https://lore.kernel.org/r/20211028101111.128049-2-lvivier@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit bf3175bc50a3754dc427e2f5046e17a9fafc8be7)
Bug: 249566340
Change-Id: Ica2fd680de4bb359923b94dae48c00f6207a6876
Signed-off-by: Alistair Delva <adelva@google.com>
2023-03-23 16:32:53 +00:00
Greg Kroah-Hartman
b86f2ce54f Merge tag 'android11-5.4.233_r00' into android11-5.4
This is the merge of the upstream LTS release of 5.4.233 into the
android11-5.4 branch.

It contains the following commits:

6bb176e034 Merge 5.4.233 into android11-5.4-lts
7f7f254975 Revert "iommu: Add gfp parameter to iommu_ops::map"
7f7f83ce87 Revert "iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()"
bbf1c13935 Revert "RDMA/usnic: use iommu_map_atomic() under spin_lock()"
69f65d442e Linux 5.4.233
c6cc0121d4 bpf: add missing header file include
5d873a6c65 Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"
99e3fd21f8 ext4: Fix function prototype mismatch for ext4_feat_ktype
6f86bb6f85 wifi: mwifiex: Add missing compatible string for SD8787
6c750ed036 uaccess: Add speculation barrier to copy_from_user()
4d2e5de071 mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
787ef0db01 drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
100cf2af1b alarmtimer: Prevent starvation by small intervals and SIG_IGN
dab2066c5f powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
113e0cde39 can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
f93a1a5bdc KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
db209f39f1 KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
dc399695df random: always mix cycle counter in add_latent_entropy()
eff0e02f7d powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
ead0689bd6 wifi: rtl8xxxu: gen2: Turn on the rate control
0a77a966aa drm/etnaviv: don't truncate physical page address
fa2845b216 drm: etnaviv: fix common struct sg_table related issues
4626550b09 scatterlist: add generic wrappers for iterating over sgtable objects
fe3e217272 dma-mapping: add generic helpers for mapping sgtable objects
abc4ede193 Merge 5.4.232 into android11-5.4-lts
64121e2adf Linux 5.4.232
8b47e324af iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
7519069f1f net: sched: sch: Fix off by one in htb_activate_prios()
5660a6ffa7 ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
52844d8382 nilfs2: fix underflow in second superblock position calculations
9f95a161a7 kvm: initialize all of the kvm_debugregs structure before sending it to userspace
9f4abf2048 i40e: Add checking for null for nlmsg_find_attr()
e71554a09e ipv6: Fix tcp socket connection with DSCP.
388886f970 ipv6: Fix datagram socket connection with DSCP.
905199dac2 ixgbe: add double of VLAN header when computing the max MTU
df099e6556 net: mpls: fix stale pointer if allocation fails during device rename
736f8f66d7 net: stmmac: Restrict warning on disabling DMA store and fwd mode
1a2c795142 bnxt_en: Fix mqprio and XDP ring checking logic
de44bdebcf net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
a753352622 net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
0c2651c763 dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
a4e9411769 sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
e1b54b5612 net: bgmac: fix BCM5358 support by setting correct flags
8a4d05b0ff i40e: add double of VLAN header when computing the max MTU
fdeb4c258b ixgbe: allow to increase MTU to 3K with XDP enabled
32d81fd54e revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
4c8011e77c net: Fix unwanted sign extension in netdev_stats_to_stats64()
6b08c9fc72 Revert "mm: Always release pages to the buddy allocator in memblock_free_late()."
8c07792e79 hugetlb: check for undefined shift on 32 bit architectures
7caeb5457b sched/psi: Fix use-after-free in ep_remove_wait_queue()
6c38aa4020 ALSA: hda/realtek - fixed wrong gpio assigned
6e0ef3fc65 ALSA: hda/conexant: add a new hda codec SN6180
e9b488d60f mmc: mmc_spi: fix error handling in mmc_spi_probe()
761db46b29 mmc: sdio: fix possible resource leaks in some error paths
98895c225e ipv4: Fix incorrect route flushing when source address is deleted
04a331c9dd Revert "ipv4: Fix incorrect route flushing when source address is deleted"
85eda80883 xfs: sync lazy sb accounting on quiesce of read-only mounts
fb8ee907c1 xfs: prevent UAF in xfs_log_item_in_current_chkpt
7c07806ab0 xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
313699d505 xfs: ensure inobt record walks always make forward progress
7f9309a9f5 xfs: fix missing CoW blocks writeback conversion retry
6246b3a18f xfs: only relog deferred intent items if free space in the log gets low
09d6181447 xfs: expose the log push threshold
5d711e4136 xfs: periodically relog deferred intent items
870e7d7108 xfs: change the order in which child and parent defer ops are finished
f5af1d5c2d xfs: fix an incore inode UAF in xfs_bui_recover
efcdc2e70e xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
abad319dee xfs: clean up bmap intent item recovery checking
6601531db8 xfs: xfs_defer_capture should absorb remaining transaction reservation
411b14e68c xfs: xfs_defer_capture should absorb remaining block reservations
3324249e6e xfs: proper replay of deferred ops queued during log recovery
1c89c04305 xfs: fix finobt btree block recovery ordering
6678b2787b xfs: log new intent items created as part of finishing recovered intent items
562da8e704 xfs: refactor xfs_defer_finish_noroll
42a2406f90 xfs: turn dfp_intent into a xfs_log_item
e11f1516fc xfs: merge the ->diff_items defer op into ->create_intent
e84096edf8 xfs: merge the ->log_item defer op into ->create_intent
64b21eaa33 xfs: factor out a xfs_defer_create_intent helper
d24633f3c2 xfs: remove the xfs_inode_log_item_t typedef
e0373eeaaa xfs: remove the xfs_efd_log_item_t typedef
94e0639992 xfs: remove the xfs_efi_log_item_t typedef
83ef55c428 netfilter: nft_tproxy: restrict to prerouting hook
b6ac5e6be5 btrfs: free device in btrfs_close_devices for a single device filesystem
4326d0080f aio: fix mremap after fork null-deref
62b19b9f3a nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
16409f7d9c s390/decompressor: specify __decompress() buf len to avoid overflow
fbe71c5dac net: sched: sch: Bounds check priority
09561d5e6a net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
a74d3b0ea9 net/rose: Fix to not accept on connected socket
ec54c946b4 tools/virtio: fix the vringh test for virtio ring changes
6644685f79 ASoC: cs42l56: fix DT probe
d23b66b16e selftests/bpf: Verify copy_register_state() preserves parent/live fields
a94695e0f9 migrate: hugetlb: check for hugetlb shared PMD in node migration
bcd34f1eea bpf: Always return target ifindex in bpf_fib_lookup
776f2ccfdc nvme-pci: Move enumeration by class to be last in the table
5c86809882 arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
4b97dab7cd arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
f0302e98ed arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
1509e93916 riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
bb3187311e ceph: flush cap releases when the session is flushed
9b5d37d328 usb: typec: altmodes/displayport: Fix probe pin assign check
d9758f7deb usb: core: add quirk for Alcor Link AK9563 smartcard reader
43379fcace net: USB: Fix wrong-direction WARNING in plusb.c
1bcb431237 pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
2b763f7de1 pinctrl: single: fix potential NULL dereference
cc1affa234 pinctrl: aspeed: Fix confusing types in return value
f209431be1 ALSA: pci: lx6464es: fix a debug loop
1aab663ecb selftests: forwarding: lib: quote the sysctl values
ba38eacade rds: rds_rm_zerocopy_callback() use list_first_entry()
87a5e3fc84 ice: Do not use WQ_MEM_RECLAIM flag for workqueue
f312958f58 ionic: clean interrupt before enabling queue to avoid credit race
a532f7ebf9 net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
73b8e217fe bonding: fix error checking in bond_debug_reregister()
c89ddf134c xfrm: fix bug with DSCP copy to v6 from v4 tunnel
80282a3d10 RDMA/usnic: use iommu_map_atomic() under spin_lock()
fe4d708668 iommu: Add gfp parameter to iommu_ops::map
4a779187db IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
7896accedf IB/hfi1: Restore allocated resources on failed copyout
ae774f480d can: j1939: do not wait 250 ms if the same addr was already claimed
56ee31167c tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw
039f935ae0 ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
7e43bb69bc btrfs: zlib: zero-initialize zlib workspace
ed29d8b309 btrfs: limit device extents to the device size
9f296c615e iio:adc:twl6030: Enable measurement of VAC
9cf5e99c1a wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads
e5142a4935 f2fs: fix to do sanity check on i_extra_isize in is_alive()
3b3d3127f5 fbdev: smscufx: fix error handling code in ufx_usb_probe
8edda487f0 powerpc/imc-pmu: Revert nest_init_lock to being a mutex
fc8548c75c serial: 8250_dma: Fix DMA Rx rearm race
71d6b277c4 serial: 8250_dma: Fix DMA Rx completion race
ec5b4ca3d3 xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
5af2f74f90 mm: swap: properly update readahead statistics in unuse_pte_range()
ce62df33fc nvmem: core: fix cell removal on error
1369322c1d Squashfs: fix handling and sanity checking of xattr_ids count
d49c85a191 mm/swapfile: add cond_resched() in get_swap_pages()
c127bf9a95 fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
6d86b4ceb0 mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
845a3708f0 riscv: disable generation of unwind tables
c89af52d91 parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
8e6cc45ba8 parisc: Fix return code of pdc_iodc_print()
7f5df45fcb iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
4b82cc9f7f iio: adc: berlin2-adc: Add missing of_node_put() in error path
a300e358c6 iio: hid: fix the retval in accel_3d_capture_sample
2035cfb958 efi: Accept version 2 of memory attributes table
f6ea834e8d watchdog: diag288_wdt: fix __diag288() inline assembly
78e55b52b2 watchdog: diag288_wdt: do not use stack buffers for hardware data
4abcd352a0 fbcon: Check font dimension limits
e00d6a74c3 Input: i8042 - add Clevo PCX0DX to i8042 quirk table
faed5af8a9 Input: i8042 - add TUXEDO devices to i8042 quirk tables
ee77a19ee5 Input: i8042 - merge quirk tables
a789c05516 Input: i8042 - move __initconst to fix code styling warning
d0332cbf53 vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
5bf0010b87 usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
db3798943a usb: dwc3: qcom: enable vbus override when in OTG dr-mode
fefffc7825 usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
e4650c04de iio: adc: stm32-dfsdm: fill module aliases
165511b99e net/x25: Fix to not accept on connected socket
b05664e036 i2c: rk3x: fix a bunch of kernel-doc warnings
d4d765f476 scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
6122ce1de1 scsi: target: core: Fix warning on RT kernels
d92a25627b efi: fix potential NULL deref in efi_mem_reserve_persistent
ed6c5e8caf net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
743f7b51fe virtio-net: Keep stop() to follow mirror sequence of open()
aed972fbf6 selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking
df1213a267 selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
6c70ece3d3 selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
d47f886d0c selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
db3f016ad5 ata: libata: Fix sata_down_spd_limit() when no link speed is reported
6950df42a0 can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
cb079b0770 net: phy: meson-gxl: Add generic dummy stubs for MMD register access
db76fc535f squashfs: harden sanity check in squashfs_read_xattr_id_table
dffe83a198 netfilter: br_netfilter: disable sabotage_in hook after first suppression
20355b9569 netrom: Fix use-after-free caused by accept on already connected socket
03eb2a1b03 fix "direction" argument of iov_iter_kvec()
34b0fab797 fix iov_iter_bvec() "direction" argument
50b70599c0 WRITE is "data source", not destination...
21081886de scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT"
14be8b0c4e arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
d6870f3800 ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
412fddc096 ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
79dfde344e bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
53785fd9b3 firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region
e367c7b762 Merge 5.4.231 into android11-5.4-lts
59342376e8 Linux 5.4.231
268d595d4d Revert "xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()"
6c24a20223 usb: host: xhci-plat: add wakeup entry at sysfs
1c1291a84e Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt
af51fc23a0 ipv6: ensure sane device mtu in tunnels
a7cc1b5d76 exit: Use READ_ONCE() for all oops/warn limit reads
eb768617da docs: Fix path paste-o for /sys/kernel/warn_count
6f18d28c26 panic: Expose "warn_count" to sysfs
7c1273646f panic: Introduce warn_limit
51538bdde3 panic: Consolidate open-coded panic_on_warn checks
7020a9234e exit: Allow oops_limit to be disabled
5a3482f2c1 exit: Expose "oops_count" to sysfs
28facdf7b0 exit: Put an upper limit on how often we can oops
3fa431bac2 ia64: make IA64_MCA_RECOVERY bool instead of tristate
86926761ca csky: Fix function name in csky_alignment() and die()
3bf1fa2c7b h8300: Fix build errors from do_exit() to make_task_dead() transition
fcae924b94 hexagon: Fix function name in die()
49a128ae28 objtool: Add a missing comma to avoid string concatenation
9a18c9c833 exit: Add and use make_task_dead.
2f87e25512 mm: kasan: do not panic if both panic_on_warn and kasan_multishot set
119f6bcef7 panic: unset panic_on_warn inside panic()
f6c20ed17e sysctl: add a new register_sysctl_init() interface
dbe634ce82 dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init
1986cd616b blk-cgroup: fix missing pd_online_fn() while activating policy
4923160393 bpf: Skip task with pid=1 in send_signal_common()
bd393f0ad5 ARM: dts: imx: Fix pca9547 i2c-mux node name
8667280a67 x86/asm: Fix an assembler warning with current binutils
1a5119369a clk: Fix pointer casting to prevent oops in devm_clk_release()
fbf7b0e4ce perf/x86/amd: fix potential integer overflow on shift of a int
f571e34005 netfilter: conntrack: unify established states for SCTP paths
8770cd9d7c x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL
4d1757f9fe block: fix and cleanup bio_check_ro
3a10a4d5d0 nfsd: Ensure knfsd shuts down when the "nfsd" pseudofs is unmounted
5246266958 Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode"
f7a5644129 net: mdio-mux-meson-g12a: force internal PHY off on mux switch
2635c4fd91 net: xgene: Move shared header file into include/linux
a70b966c6c net/phy/mdio-i2c: Move header file to include/linux/mdio
a9a022a0db net/tg3: resolve deadlock in tg3_reset_task() during EEH
92a65b0f20 thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type()
e249cea3ab net: ravb: Fix possible hang if RIS2_QFF1 happen
a7585028ac sctp: fail if no bound addresses can be used for a given scope
dae05cd371 net/sched: sch_taprio: do not schedule in taprio_reset()
fe9b9e621c netrom: Fix use-after-free of a listening socket.
67ac3b4cd5 netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE
8f0eb24f1a ipv4: prevent potential spectre v1 gadget in fib_metrics_match()
746db9ec1e ipv4: prevent potential spectre v1 gadget in ip_metrics_convert()
4cde1d2f16 netlink: annotate data races around sk_state
c64bb85471 netlink: annotate data races around dst_portid and dst_group
ea11a52f55 netlink: annotate data races around nlk->portid
cfdd81ae47 netfilter: nft_set_rbtree: skip elements in transaction from garbage collection
ddd49cbbd4 net: fix UaF in netns ops registration error path
3e5082b1c6 netlink: prevent potential spectre v1 gadgets
66e10d5f39 EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info
594618c701 EDAC/device: Respect any driver-supplied workqueue polling value
a536d87ec7 ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment
768e8cdf93 thermal: intel: int340x: Protect trip temperature from concurrent updates
aa33d334bd KVM: x86/vmx: Do not skip segment attributes if unusable bit is set
91be54849d cifs: Fix oops due to uncleared server->smbd_conn in reconnect
bcb65adaa9 ftrace/scripts: Update the instructions for ftrace-bisect.sh
31b2414abe trace_events_hist: add check for return value of 'create_hist_field'
76b2390fdc tracing: Make sure trace_printk() can output as soon as it can be used
4a4a22dda0 module: Don't wait for GOING modules
1cd70d8427 scsi: hpsa: Fix allocation size for scsi_host_alloc()
4d55f918e1 Bluetooth: hci_sync: cancel cmd_timer if hci_open failed
e588a5872d Revert "Revert "xhci: Set HCD flag to defer primary roothub registration""
8eb5a68064 fs: reiserfs: remove useless new_opts in reiserfs_remount
a61bc9197d netfilter: conntrack: do not renew entry stuck in tcp SYN_SENT state
d39117d779 Revert "selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID"
b4253b47bf mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting
14b70b4b4a mmc: sdhci-esdhc-imx: disable the CMD CRC check for standard tuning
7e66f28ce5 mmc: sdhci-esdhc-imx: clear pending interrupt and halt cqhci
a58c144b9e lockref: stop doing cpu_relax in the cmpxchg loop
d6ff82a4d7 platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK
295690bb05 platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD
890d850cb2 scsi: hisi_sas: Set a port invalid only if there are no devices attached when refreshing port id
45b3fc9cc6 KVM: s390: interrupt: use READ_ONCE() before cmpxchg()
dc0867c447 spi: spidev: remove debug messages that access spidev->spi without locking
0dfd34fb45 ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets
9e02118045 ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC
3163f4ed49 cpufreq: armada-37xx: stop using 0 as NULL pointer
1ec79234c2 s390/debug: add _ASM_S390_ prefix to header guard
1869922405 drm: Add orientation quirk for Lenovo ideapad D330-10IGL
aff2bc5784 ASoC: fsl_micfil: Correct the number of steps on SX controls
1c587aa6cd cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist
8cca0afcce tcp: fix rate_app_limited to default to 1
11a4d51a4f net: dsa: microchip: ksz9477: port map correction in ALU table entry register
02a4a7dc90 driver core: Fix test_async_probe_init saves device in wrong array
276052159b w1: fix WARNING after calling w1_process()
82867190ce w1: fix deadloop in __w1_remove_master_device()
c9ada35340 tcp: avoid the lookup process failing to get sk in ehash table
e963b33723 dmaengine: xilinx_dma: call of_node_put() when breaking out of for_each_child_of_node()
9b4482267e dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling
fe39e74a64 dmaengine: xilinx_dma: use devm_platform_ioremap_resource()
d3065cc562 HID: betop: check shape of output reports
d16b83c804 net: macb: fix PTP TX timestamp failure due to packet padding
18dd3b30d4 dmaengine: Fix double increment of client_count in dma_chan_get()
cbed756bd1 drm/panfrost: fix GENERIC_ATOMIC64 dependency
914c58fec1 net: mlx5: eliminate anonymous module_init & module_exit
7335ba0c03 usb: gadget: f_fs: Ensure ep0req is dequeued before free_request
a8d40942df usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait
edec50677b HID: revert CHERRY_MOUSE_000C quirk
efa29f4ba0 net: stmmac: fix invalid call to mdiobus_get_phy()
8c3653c4e7 HID: check empty report_list in bigben_probe()
89e7fe3999 HID: check empty report_list in hid_validate_values()
8a7b9560a3 net: mdio: validate parameter addr in mdiobus_get_phy()
ce1e79bf31 net: usb: sr9700: Handle negative len
4fd6a6b101 l2tp: Don't sleep and disable BH under writer-side sk_callback_lock
7188c37f3c l2tp: Serialize access to sk_user_data with sk_callback_lock
24c7614d31 net: fix a concurrency bug in l2tp_tunnel_register()
1200388a0b net/sched: sch_taprio: fix possible use-after-free
9042a9a3f2 wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid
de0e084f85 gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode
8df414fce4 net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs
a59cdbda37 net: nfc: Fix use-after-free in local_cleanup()
2a05d513d2 phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in rockchip_usb2phy_power_on()
81b3374944 bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation
8b35c7f692 amd-xgbe: Delay AN timeout during KR training
b85e0bb478 amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent
3d41f4eeab affs: initialize fsdata in affs_truncate()
03965f8ad2 IB/hfi1: Fix expected receive setup error exit issues
f5c918dc4e IB/hfi1: Reserve user expected TIDs
d307c75f43 IB/hfi1: Reject a zero-length user expected buffer
902063a9fe RDMA/core: Fix ib block iterator counter overflow
048c17b619 tomoyo: fix broken dependency on *.conf.default
8d23f5d252 EDAC/highbank: Fix memory leak in highbank_mc_probe()
97445814ef HID: intel_ish-hid: Add check for ishtp_dma_tx_map
4be51ea91a ARM: imx: add missing of_node_put()
12a763015b ARM: imx35: Retrieve the IIM base address from devicetree
3b76bc1598 ARM: imx31: Retrieve the IIM base address from devicetree
61669e6dec ARM: imx27: Retrieve the SYSCTRL base address from devicetree
d4e913bad2 ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'
6d7f384268 memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe()
8959188b2f memory: atmel-sdramc: Fix missing clk_disable_unprepare in atmel_ramc_probe()
310268050d clk: Provide new devm_clk helpers for prepared and enabled clocks
c7ef7185a1 clk: generalize devm_clk_get() a bit
46d9b30a0c Merge changes  into android11-5.4-lts
cc162d31ce Merge branch 'android11-5.4' into android11-5.4-lts
bc37d9c8b3 Merge 5.4.230 into android11-5.4-lts
90245959a5 Linux 5.4.230
29487eed37 mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma
7242fc8c2f x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN
2b1375fac0 drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix
763a74e1de drm/amd/display: Fix set scaling doesn's work
39e0844a1e drm/i915: re-disable RC6p on Sandy Bridge
ffef77794f gsmi: fix null-deref in gsmi_get_variable
b4461af0a5 serial: atmel: fix incorrect baudrate setup
55f9aca283 dmaengine: tegra210-adma: fix global intr clear
5d99369685 serial: pch_uart: Pass correct sg to dma_unmap_sg()
97697a252b dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation
aa1b22daa0 usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210
a21da7f7aa usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate()
83b0aac55d usb: gadget: g_webcam: Send color matching descriptor per frame
004fbb049b usb: typec: altmodes/displayport: Fix pin assignment calculation
a1478ef59b usb: typec: altmodes/displayport: Add pin assignment helper
040e0d1281 usb: host: ehci-fsl: Fix module alias
8d5740ad8f USB: serial: cp210x: add SCALANCE LPE-9000 device id
9a39f4626b USB: gadgetfs: Fix race between mounting and unmounting
1bc1fdd73f cifs: do not include page data when checking signature
89ac597e3e btrfs: fix race between quota rescan and disable leading to NULL pointer deref
61cad0c61c mmc: sunxi-mmc: Fix clock refcount imbalance during unbind
4f96ae71d3 comedi: adv_pci1760: Fix PWM instruction handling
f11a689164 usb: core: hub: disable autosuspend for TI TUSB8041
556dfdb226 misc: fastrpc: Fix use-after-free race condition for maps
4b5c44e924 misc: fastrpc: Don't remove map on creater_process and device_release
04eb41ec96 USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100
7ebb3ecab1 USB: serial: option: add Quectel EM05CN modem
32165699a0 USB: serial: option: add Quectel EM05CN (SG) modem
81affe3b46 USB: serial: option: add Quectel EC200U modem
a7c19d94b8 USB: serial: option: add Quectel EM05-G (RS) modem
5966eda550 USB: serial: option: add Quectel EM05-G (CS) modem
eece7a6c97 USB: serial: option: add Quectel EM05-G (GR) modem
96b02125dd prlimit: do_prlimit needs to have a speculation check
afcb4e0ab8 xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables
84e2e57769 usb: acpi: add helper to check port lpm capability using acpi _DSM
8a6e963bf2 xhci: Add a flag to disable USB3 lpm on a xhci root port level.
cf6e5d3c2d xhci: Add update_hub_device override for PCI xHCI hosts
133b902378 xhci: Fix null pointer dereference when host dies
9891e5c73c usb: xhci: Check endpoint is valid before dereferencing it
643f7da782 xhci-pci: set the dma max_seg_size
890792b579 ALSA: hda/realtek - Turn on power early
e60730280b drm/i915/gt: Reset twice
2e3e2649ea efi: fix userspace infinite retry read efivars after EFI runtime services page fault
b0ba060d32 nilfs2: fix general protection fault in nilfs_btree_insert()
53dd833fd0 Add exception protection processing for vd in axi_chan_handle_err function
33a4d05138 wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices
557e85ff9a f2fs: let's avoid panic if extent_tree is not created
7165dd4c3b RDMA/srp: Move large values to a new enum for gcc13
19304ffb7b net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats
4de1a5af1b selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID
a869f7b054 pNFS/filelayout: Fix coalescing test for single DS
931c2a07ff Revert "net: add atomic_long_t to net_device_stats fields"
b1330360db Revert "PM/devfreq: governor: Add a private governor_data for governor"
68fdd20442 Merge 5.4.229 into android11-5.4-lts
1349fe3a33 Linux 5.4.229
68a37dc77e tipc: call tipc_lxc_xmit without holding node_read_lock
1140c3f7ad ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown
2db88851fa tipc: Add a missing case of TIPC_DIRECT_MSG type
38b5d7054d tty: serial: tegra: Handle RX transfer in PIO mode if DMA wasn't started
3188f80b80 tipc: fix use-after-free in tipc_disc_rcv()
3eeb06132d Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout"
ecd47ffc99 mm: Always release pages to the buddy allocator in memblock_free_late().
5fcf75a8a4 efi: fix NULL-deref in init error path
b30e5dd077 arm64: cmpxchg_double*: hazard against entire exchange variable
ecdd65051b arm64: atomics: remove LL/SC trampolines
f840000928 arm64: atomics: format whitespace consistently
d01d6d2b06 drm/virtio: Fix GEM handle creation UAF
3030f11f27 x86/resctrl: Fix task CLOSID/RMID update race
22c4eeafc3 x86/resctrl: Use task_curr() instead of task_struct->on_cpu to prevent unnecessary IPI
b3f9242467 iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe()
ecfe33e075 iommu/mediatek-v1: Add error handle for mtk_iommu_probe
ec049ae2b4 net/mlx5: Fix ptp max frequency adjustment range
62d707dabb net/mlx5: Rename ptp clock info
2b157c3c5d net/sched: act_mpls: Fix warning during failed attribute validation
9424d2205f nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame()
576eadef2c hvc/xen: lock console list traversal
7d04fe153d tipc: fix unexpected link reset due to discovery messages
95b2d4889f tipc: eliminate checking netns if node established
d6418829ce tipc: improve throughput between nodes in netns
d443308edb regulator: da9211: Use irq handler when ready
43f48e6c30 EDAC/device: Fix period calculation in edac_device_reset_delay_period()
a5b737623e x86/boot: Avoid using Intel mnemonics in AT&T syntax asm
d0c6d2a310 powerpc/imc-pmu: Fix use of mutex in IRQs disabled section
feefb33eef netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function.
e431b4fb1f ext4: fix uninititialized value in 'ext4_evict_inode'
026a4490b5 ext4: fix use-after-free in ext4_orphan_cleanup
fa41a133ea ext4: lost matching-pair of trace in ext4_truncate
1d5524832f ext4: fix bug_on in __es_tree_search caused by bad quota inode
3da22d06e0 quota: Factor out setup of quota inode
ecb9d0d2e1 jbd2: use the correct print format
06bb3f4e3b usb: ulpi: defer ulpi_register on ulpi_read_id timeout
a2689a4464 wifi: wilc1000: sdio: fix module autoloading
3998dba0f7 ipv6: raw: Deduct extension header length in rawv6_push_pending_frames
53cefa802f ixgbe: fix pci device refcount leak
e0d6f3b62b platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe
1ad759df6a drm/msm/adreno: Make adreno quirks not overwrite each other
098416c4e3 cifs: Fix uninitialized memory read for smb311 posix symlink create
d6546426cd ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list
eaa5580a74 ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
c6d29a5ffd net/ulp: prevent ULP without clone op from entering the LISTEN status
b318d41f1b s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple()
f6da927c92 s390/kexec: fix ipl report address for kdump
4bf6e11c34 perf auxtrace: Fix address filter duplicate symbol selection
2e4164d3d1 docs: Fix the docs build with Sphinx 6.0
3ed183074c efi: tpm: Avoid READ_ONCE() for accessing the event log
3ad31129ce KVM: arm64: Fix S1PTW handling on RO memslots
9b83ec63d0 net: sched: disallow noqueue for qdisc classes
aa52acefc6 driver core: Fix bus_type.match() error handling in __driver_attach()
8d60a90560 selftests: set the BUILD variable to absolute path
cad6d2bb47 selftests: Fix kselftest O=objdir build from cluttering top level objdir
320dbbd86f parisc: Align parisc MADV_XXX constants with all other architectures
d868597b71 mbcache: Avoid nesting of cache->c_list_lock under bit locks
da23752d96 hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling
781fa14141 hfs/hfsplus: use WARN_ON for sanity check
b47c690109 ext4: don't allow journal inode to have encrypt flag
1464feb5b6 riscv: uaccess: fix type of 0 variable on error in get_user()
da41069c61 nfsd: fix handling of readdir in v4root vs. mount upcall timeout
8cbd7f2643 x86/bugs: Flush IBP in ib_prctl_set()
ba780bff9f ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
e66ae100e7 udf: Fix extension of the last extent in the file
33df9c5d5e caif: fix memory leak in cfctrl_linkup_request()
3cb1ee82e4 drm/i915: unpin on error in intel_vgpu_shadow_mm_pin()
ebe6d2fcf7 usb: rndis_host: Secure rndis_query check against int overflow
a07b4895b9 drivers/net/bonding/bond_3ad: return when there's no aggregator
2f7a09c1ee perf tools: Fix resources leak in perf_data__open_dir()
6b17b84634 net: sched: cbq: dont intepret cls results when asked to drop
63e469cb54 net: sched: atm: dont intepret cls results when asked to drop
d16e5fefd8 RDMA/mlx5: Fix validation of max_rd_atomic caps for DC
564fdc2f8b RDMA/uverbs: Silence shiftTooManyBitsSigned warning
00616bd191 net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe
904ad95b39 net: amd-xgbe: add missed tasklet_kill
a15cbe9b84 vhost: fix range used in translate_desc()
d8e410315a nfc: Fix potential resource leaks
8f97eeb02a qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure
55ac68b53f net: sched: fix memory leak in tcindex_set_parms
b6a0623f75 net: hns3: add interrupts re-initialization while doing VF FLR
f9c551d874 nfsd: shut down the NFSv4 state objects before the filecache
7eaaee5268 bpf: pull before calling skb_postpull_rcsum()
1d449cd240 SUNRPC: ensure the matching upcall is in-flight upon downcall
af53065276 ext4: fix deadlock due to mbcache entry corruption
711ef736dd mbcache: automatically delete entries from cache on freeing
af8ecc8d20 ext4: fix race when reusing xattr blocks
ea4b9091aa ext4: unindent codeblock in ext4_xattr_block_set()
a5f9bd4bea ext4: remove EA inode entry from mbcache on inode eviction
951ea4d3df mbcache: add functions to delete entry if unused
81b0bb1eb2 mbcache: don't reclaim used entries
c2f1e12b65 ext4: use kmemdup() to replace kmalloc + memcpy
6453836e37 fs: ext4: initialize fsdata in pagecache_write()
1af609646c ext4: use memcpy_to_page() in pagecache_write()
49dac5e017 mm/highmem: Lift memcpy_[to|from]_page to core
f44dcd9dce ext4: correct inconsistent error msg in nojournal mode
b02aa6a05a ext4: goto right label 'failed_mount3a'
e0fce1d665 ravb: Fix "failed to switch device to config mode" message during unbind
0ebcfdc8c9 KVM: nVMX: Properly expose ENABLE_USR_WAIT_PAUSE control to L1
e723bafd8f KVM: VMX: Fix the spelling of CPU_BASED_USE_TSC_OFFSETTING
7290669045 KVM: VMX: Rename NMI_PENDING to NMI_WINDOW
da8ff59210 KVM: VMX: Rename INTERRUPT_PENDING to INTERRUPT_WINDOW
db99c8d6b7 KVM: retpolines: x86: eliminate retpoline from vmx.c exit handlers
2c82f134b9 KVM: x86: optimize more exit handlers in vmx.c
6e3f6d9562 perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged data
fc67c00def perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor
d06a7e2049 dm thin: resume even if in FAIL mode
28cdd90c26 media: s5p-mfc: Fix in register read and write for H264
640075400c media: s5p-mfc: Clear workbit to handle error condition
4a52a1a3ea media: s5p-mfc: Fix to handle reference queue during finishing
b9275d8a92 PM/devfreq: governor: Add a private governor_data for governor
839f3ca8bc btrfs: replace strncpy() with strscpy()
b5db135457 ext4: allocate extended attribute value in vmalloc area
6ef8b0a743 ext4: avoid unaccounted block allocation when expanding inode
b14a553b0f ext4: initialize quota before expanding inode in setproject ioctl
9ef603086c ext4: fix inode leak in ext4_xattr_inode_create() on an error path
7138ef745e ext4: avoid BUG_ON when creating xattrs
4d84ec8e5c ext4: fix error code return to user-space in ext4_get_branch()
a4c3c1d57d ext4: fix corruption when online resizing a 1K bigalloc fs
6f4200ec76 ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline
f263e349ba ext4: init quota for 'old.inode' in 'ext4_rename'
78e335fb57 ext4: fix bug_on in __es_tree_search caused by bad boot loader inode
362ce137d5 ext4: fix reserved cluster accounting in __es_remove_extent()
e1d946d9c8 ext4: add helper to check quota inums
2142dfa1de ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode
4690a4bdcf ext4: fix undefined behavior in bit shift for ext4_check_flag_values
e347c269b5 ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
94b283341f drm/vmwgfx: Validate the box size for the snooped cursor
eea62f0461 drm/connector: send hotplug uevent on connector cleanup
fbfd6dee52 device_cgroup: Roll back to original exceptions after copy failure
5e4500454d parisc: led: Fix potential null-ptr-deref in start_task()
662dc7c6be iommu/amd: Fix ivrs_acpihid cmdline parsing code
93e919d9ac crypto: n2 - add missing hash statesize
a5866d531b PCI/sysfs: Fix double free in error path
65bd096299 PCI: Fix pci_device_is_present() for VFs by checking PF
d23006f2a5 ipmi: fix use after free in _ipmi_destroy_user()
cf19abbe4b ima: Fix a potential NULL pointer access in ima_restore_measurement_list
b163363535 mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type()
74531c23ad ipmi: fix long wait in unload when IPMI disconnect
d4f48c648a efi: Add iMac Pro 2017 to uefi skip cert quirk
2c4832a089 md/bitmap: Fix bitmap chunk size overflow issues
b869cb7a3d cifs: fix missing display of three mount options
149babe5e0 cifs: fix confusing debug message
a29d621309 media: dvb-core: Fix UAF due to refcount races at releasing
b21f62b49e media: dvb-core: Fix double free in dvb_register_device()
50c2379f87 ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod
c42cb66a89 tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line
cb03fc217b tracing/hist: Fix wrong return value in parse_action_params()
f5489d5a24 x86/microcode/intel: Do not retry microcode reloading on the APs
cf79d5410a tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx'
1a5165e80a dm cache: set needs_check flag after aborting metadata
2f097dfac7 dm cache: Fix UAF in destroy()
520b56cfd9 dm clone: Fix UAF in clone_dtr()
792e51aac3 dm integrity: Fix UAF in dm_integrity_dtr()
7ae6aa6493 dm thin: Fix UAF in run_timer_softirq()
f758987ff0 dm thin: Use last transaction's pmd->root when commit failed
200aa33b5d dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata
f472bfc95d dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
52ba5b87a3 binfmt: Fix error return code in load_elf_fdpic_binary()
33933af45d binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
3cdd91a916 cpufreq: Init completion before kobject_init_and_add()
6ccb116e6b selftests: Use optional USERCFLAGS and USERLDFLAGS
2b8f2e127d arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength
b22d683c90 ARM: ux500: do not directly dereference __iomem
c59ee1528b btrfs: fix resolving backrefs for inline extent followed by prealloc
e63e1c6793 mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K
3de2c36283 ktest.pl minconfig: Unset configs instead of just removing them
d10523afa8 kest.pl: Fix grub2 menu handling for rebooting
d089baa5b6 soc: qcom: Select REMAP_MMIO for LLCC driver
bcce46e115 media: stv0288: use explicitly signed char
de2ea2a0ad net/af_packet: make sure to pull mac header
ad3f90a9c4 net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO
aa91afe597 SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails
e027f3b9fa tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak
927860dfa1 tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
f1c08947ab mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING
f4b5a27f56 f2fs: should put a page when checking the summary info
f02d2e2b9b mm, compaction: fix fast_isolate_around() to stay within boundaries
384ef33d37 md: fix a crash in mempool_free
2dae4211b5 pnode: terminate at peers of source
25e8c6ecb4 ALSA: line6: fix stack overflow in line6_midi_transmit
10a07d81f6 ALSA: line6: correct midi status byte when receiving data from podxt
0e727c328e ovl: Use ovl mounter's fsuid and fsgid in ovl_link()
cae6dddef2 hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount
fe83242eab HID: plantronics: Additional PIDs for double volume key presses quirk
b201fe49ee HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint
515959eb49 powerpc/rtas: avoid scheduling in rtas_os_term()
c2fa91abf2 powerpc/rtas: avoid device tree lookups in rtas_os_term()
418ef921cc objtool: Fix SEGFAULT
28046827c3 nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition
24561f5d09 nvme: resync include/linux/nvme.h with nvmecli
e69e8d7867 ata: ahci: Fix PCS quirk application for suspend
e74d9f13a4 nvme-pci: fix doorbell buffer value endianness
e8e2861cc3 cifs: fix oops during encryption
3c3baa40dc media: dvbdev: fix refcnt bug
334a76861b media: dvbdev: fix build warning due to comments
2a0e42877d gcov: add support for checksum field
328f3c084f regulator: core: fix deadlock on regulator enable
fb0407d8cd iio: adc128s052: add proper .data members in adc128_of_match table
bcb052a87d iio: adc: ad_sigma_delta: do not use internal iio_dev lock
ad4eb32ced reiserfs: Add missing calls to reiserfs_security_free()
5a5ef1882f HID: wacom: Ensure bootloader PID is usable in hidraw mode
9e8f60094e usb: dwc3: core: defer probe on ulpi_read_id timeout
7778fa1ca8 ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list
12622fa053 ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB
fad324bc07 pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
e56423bb8e pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
e8a1ccd120 ASoC: rt5670: Remove unbalanced pm_runtime_put()
737058bd0b ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume()
d456c253f3 ASoC: wm8994: Fix potential deadlock
2705bb1661 ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in rockchip_pdm_runtime_resume()
ed1376f771 ASoC: audio-graph-card: fix refcount leak of cpu_ep in __graph_for_each_link()
df9cd38c3b ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in mt8173_rt5650_rt5514_dev_probe()
56f630a0d5 ASoC: Intel: Skylake: Fix driver hang during shutdown
fd0d3bf37d ALSA: hda: add snd_hdac_stop_streams() helper
d5952155d6 ALSA/ASoC: hda: move/rename snd_hdac_ext_stop_streams to hdac_stream.c
bdc2d33fa2 orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init()
2e7c091210 orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string()
511b48ee8e drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()
6c00350c9f drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()
fa71639873 hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param()
713ad301c2 clk: st: Fix memory leak in st_of_quadfs_setup()
0ca298d548 media: si470x: Fix use-after-free in si470x_int_in_callback()
21d26381e1 mmc: f-sdh30: Add quirks for broken timeout clock capability
5bfc53df28 regulator: core: fix use_count leakage when handling boot-on
87fd18016a blk-mq: fix possible memleak when register 'hctx' failed
17217737c1 media: dvb-usb: fix memory leak in dvb_usb_adapter_init()
6d18b44bb4 media: dvbdev: adopts refcnt to avoid UAF
438a4a8dec media: dvb-frontends: fix leak of memory fw
89357aa97b bpf: Prevent decl_tag from being referenced in func_proto arg
7da524781c ppp: associate skb with a device at tx
aadb1507a7 mrp: introduce active flags to prevent UAF when applicant uninit
4bdcc6a5aa net: add atomic_long_t to net_device_stats fields
19d5a0e17a md/raid1: stop mdx_raid1 thread when raid1 array run failed
5d8d046f3d drivers/md/md-bitmap: check the return value of md_bitmap_get_counter()
2b1b145ca1 drm/sti: Use drm_mode_copy()
272d12b5f3 drm/rockchip: Use drm_mode_copy()
20022d551f s390/lcs: Fix return type of lcs_start_xmit()
4bee3c75d5 s390/netiucv: Fix return type of netiucv_tx()
e859e02fbf s390/ctcm: Fix return type of ctc{mp,}m_tx()
f96bd8adc8 igb: Do not free q_vector unless new one was allocated
5b06a8a25e wifi: brcmfmac: Fix potential shift-out-of-bounds in brcmf_fw_alloc_request()
e390838eef hamradio: baycom_epp: Fix return type of baycom_send_packet()
dbe1a6b930 net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()
772431f30c bpf: make sure skb->len != 0 when redirecting to a tunneling device
9066300fe8 ipmi: fix memleak when unload ipmi driver
8234c522ef ASoC: codecs: rt298: Add quirk for KBL-R RVP platform
7360b323e0 wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out
ca57748593 wifi: ath9k: verify the expected usb_endpoints are present
3cc9299036 brcmfmac: return error when getting invalid max_flowrings from dongle
e44bfef5bf drm/etnaviv: add missing quirks for GC300
90103ccb6e hfs: fix OOB Read in __hfs_brec_find
a815a3e019 acct: fix potential integer overflow in encode_comp_t()
d706485dff nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset()
9ef353c92f ACPICA: Fix error code path in acpi_ds_call_control_method()
50163a1158 fs: jfs: fix shift-out-of-bounds in dbDiscardAG
156d440dea udf: Avoid double brelse() in udf_rename()
359616ce58 fs: jfs: fix shift-out-of-bounds in dbAllocAG
419b808504 binfmt_misc: fix shift-out-of-bounds in check_special_flags
3d92527a91 rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
4f1d37ff42 net: stream: purge sk_error_queue in sk_stream_kill_queues()
fbae0dc7e2 myri10ge: Fix an error handling path in myri10ge_probe()
67af8655c8 rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
93e794d4fe net_sched: reject TCF_EM_SIMPLE case for complex ematch module
b3a5c76f61 mailbox: zynq-ipi: fix error handling while device_register() fails
668dc454bc skbuff: Account for tail adjustment during pull operations
8b74211bf6 openvswitch: Fix flow lookup to use unmasked key
0e91836628 rtc: mxc_v2: Add missing clk_disable_unprepare()
b0a6135902 r6040: Fix kmemleak in probe and remove
8bddef54cb nfc: pn533: Clear nfc_target before being used
db77d4d005 mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
82ff73638c mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
5a35d18e79 mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave()
fddac3b457 nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure
f06d3feee9 NFSD: Add tracepoints to NFSD's duplicate reply cache
fe142d5cee nfsd: Define the file access mode enum for tracing
aa5fafd4a6 rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe()
686f0793f7 rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe()
1240ed71a0 remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region()
27441fab26 remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev()
292c0f3b4a pwm: sifive: Call pwm_sifive_update_clock() while mutex is held
2b7ad43574 selftests/powerpc: Fix resource leaks
39633b4051 powerpc/hv-gpci: Fix hv_gpci event list
aed862896d powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe()
d539b77bae powerpc/perf: callchain validate kernel stack pointer bounds
cfb5bbfcb6 powerpc/xive: add missing iounmap() in error path in xive_spapr_populate_irq_data()
f2d60f6ba1 cxl: Fix refcount leak in cxl_calc_capp_routing
9bf842ffdd powerpc/52xx: Fix a resource leak in an error handling path
b703da16dc macintosh/macio-adb: check the return value of ioremap()
b29a2f1dd3 macintosh: fix possible memory leak in macio_add_one_device()
17fd440594 iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe()
8581ec1feb iommu/amd: Fix pci device refcount leak in ppr_notifier()
0d96a6f5db rtc: pcf85063: Fix reading alarm
bb1bdc72dd rtc: snvs: Allow a time difference on clock register read
6a54d03337 include/uapi/linux/swab: Fix potentially missing __always_inline
f170d4bd38 RDMA/siw: Fix pointer cast warning
8ea68b4e3f power: supply: fix null pointer dereferencing in power_supply_get_battery_info
61e80e7929 HSI: omap_ssi_core: Fix error handling in ssi_init()
7ae85631ae perf symbol: correction while adjusting symbol
739b4294f8 perf trace: Handle failure when trace point folder is missed
1b4053ad54 perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number
443aaf605f perf trace: Add a strtoul() method to 'struct syscall_arg_fmt'
339e08e185 perf trace: Allow associating scnprintf routines with well known arg names
97cc27a28d perf trace: Add the syscall_arg_fmt pointer to syscall_arg
a2fcb44f5e perf trace: Factor out the initialization of syscal_arg_fmt->scnprintf
ba67de37ad perf trace: Separate 'struct syscall_fmt' definition from syscall_fmts variable
6086919d8c perf trace: Return error if a system call doesn't exist
f84fff700d power: supply: fix residue sysfs file in error handle route of __power_supply_register()
ef87ed9add HSI: omap_ssi_core: fix possible memory leak in ssi_probe()
e9a32f7523 HSI: omap_ssi_core: fix unbalanced pm_runtime_disable()
0f049375ad fbdev: uvesafb: Fixes an error handling path in uvesafb_probe()
3c9aaa58f7 fbdev: vermilion: decrease reference count in error path
9413f188ef fbdev: via: Fix error in via_core_init()
65dbd8eefa fbdev: pm2fb: fix missing pci_disable_device()
77738055e2 fbdev: ssd1307fb: Drop optional dependency
72c8770e35 samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe()
19b651db94 tracing/hist: Fix issue of losting command info in error_log
fab2536ba1 usb: storage: Add check for kcalloc
cdcbae2c50 i2c: ismt: Fix an out-of-bounds bug in ismt_access()
f3f65c4177 vme: Fix error not catched in fake_init()
e5c97a433c staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor()
288ada16a9 staging: rtl8192u: Fix use after free in ieee80211_rx()
c226717aa8 i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe
d85b5247a7 chardev: fix error handling in cdev_device_add()
110dc34c9f mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
68e54d9ee8 drivers: mcb: fix resource leak in mcb_probe()
80dc47e751 usb: gadget: f_hid: fix refcount leak on error path
c78c87c4e3 usb: gadget: f_hid: fix f_hidg lifetime vs cdev
efa2ed93e5 usb: gadget: f_hid: optional SETUP/SET_REPORT mode
5e193764c2 usb: roles: fix of node refcount leak in usb_role_switch_is_parent()
76740fd8c6 counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
361412dae1 cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter()
60b2ed21a6 cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter()
0078dd8758 misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os
ee2715faf7 misc: tifm: fix possible memory leak in tifm_7xx1_switch_media()
0cd0506237 misc: ocxl: fix possible name leak in ocxl_file_register_afu()
628de998a3 test_firmware: fix memory leak in test_firmware_init()
98c01a728b serial: sunsab: Fix error handling in sunsab_init()
61f4146a7e serial: altera_uart: fix locking in polling mode
ce40c44e62 tty: serial: altera_uart_{r,t}x_chars() need only uart_port
071bb9e363 tty: serial: clean up stop-tx part in altera_uart_tx_chars()
d165388227 serial: pch: Fix PCI device refcount leak in pch_request_dma()
06c886548c serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle.
965f07ea5f serial: amba-pl011: avoid SBSA UART accessing DMACR register
4f257e2eba usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
af4049a2ff usb: typec: Check for ops->exit instead of ops->enter in altmode_exit
a45ba33d39 staging: vme_user: Fix possible UAF in tsi148_dma_list_add
90e227d8b4 usb: fotg210-udc: Fix ages old endianness issues
12d20ba3ce uio: uio_dmem_genirq: Fix deadlock between irq config and handling
eca77a25a7 uio: uio_dmem_genirq: Fix missing unlock in irq configuration
c2163ecc48 vfio: platform: Do not pass return buffer to ACPI _RST method
3e0efc3f3f class: fix possible memory leak in __class_register()
0c44f584e3 serial: tegra: Read DMA status before terminating
dcb26ea75d tty: serial: tegra: Activate RX DMA transfer by request
da64e01da4 drivers: dio: fix possible memory leak in dio_init()
d4bf3fcccd IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces
5cc818ad53 hwrng: geode - Fix PCI device refcount leak
1199f8e029 hwrng: amd - Fix PCI device refcount leak
c75ea343e4 crypto: img-hash - Fix variable dereferenced before check 'hdev->req'
76a9a58a71 orangefs: Fix sysfs not cleanup when dev init failed
5a2028369d RDMA/hfi1: Fix error return code in parse_platform_config()
7917484c99 crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe()
c21a09ed1e f2fs: avoid victim selection from previous victim section
91f63dd622 RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps()
6866154c23 scsi: snic: Fix possible UAF in snic_tgt_create()
be5f1a82ad scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails
eccbec017c scsi: ipr: Fix WARNING in ipr_init()
c9f83544fb scsi: fcoe: Fix possible name leak when device_register() fails
3c4bb9446d scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device()
6fac40d806 scsi: hpsa: Fix error handling in hpsa_add_sas_host()
d60000cb11 scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add()
89e3f7324a crypto: tcrypt - Fix multibuffer skcipher speed test mem leak
f8fc2f1865 scsi: hpsa: Fix possible memory leak in hpsa_init_one()
bd7106a600 RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create failed
a36c929fd7 crypto: ccree - Make cc_debugfs_global_fini() available for module init function
895bbed5ae RDMA/hfi: Decrease PCI device reference count in error path
7e68c0d095 PCI: Check for alloc failure in pci_request_irq()
a234815cee crypto: ccree - Remove debugfs when platform_driver_register failed
ca438aa466 crypto: ccree - swap SHA384 and SHA512 larval hashes at build time
263d21afba scsi: scsi_debug: Fix a warning in resp_write_scat()
b5848661f1 RDMA/siw: Set defined status for work completion with undefined status
ad1676587c RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port
6af043089d RDMA/siw: Fix immediate work request flush to completion queue
ef6079d98f f2fs: fix normal discard process
7826e4c85e RDMA/core: Fix order of nldev_exit call
3339d808b6 apparmor: Use pointer to struct aa_label for lbs_cred
f7368ac846 apparmor: Fix abi check to include v8 abi
e1a68ac015 apparmor: fix lockdep warning when removing a namespace
eb0f78e28c apparmor: fix a memleak in multi_transaction_new()
df121012e4 stmmac: fix potential division by 0
203d604bd5 Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave()
5e832e0182 Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave()
8ae86c1ec2 Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave()
f360585691 Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave()
78e76830c7 Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave()
b38b064cba Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave()
f6d822ce4b Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave()
a6b9e09403 ntb_netdev: Use dev_kfree_skb_any() in interrupt context
3f2946a54b net: lan9303: Fix read error execution path
7d67e8ccfc can: tcan4x5x: Remove invalid write in clear_interrupts
068672e75b net: amd-xgbe: Check only the minimum speed for active/passive cables
291b9669f6 net: amd-xgbe: Fix logic around active and passive cables
bc06c239d5 net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave()
1e39d57a0e hamradio: don't call dev_kfree_skb() under spin_lock_irqsave()
20dd873605 net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave()
3b748ba07b net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave()
4b8256d9bf net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave()
bc51a3cadf net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave()
303000c793 net/tunnel: wait until all sk_user_data reader finish before releasing the sock
0c5f2c7700 net: farsync: Fix kmemleak when rmmods farsync
cf7416aa01 ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave()
9ec5781879 of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop()
a44490abaf drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init()
429370c40d net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload()
bba527e4ec net: defxx: Fix missing err handling in dfx_init()
f54731a70c net: vmw_vsock: vmci: Check memcpy_from_msg()
6f2198914f clk: socfpga: Fix memory leak in socfpga_gate_init()
dbd1a4fdf5 clk: socfpga: use clk_hw_register for a5/c5
49513eabda clk: socfpga: clk-pll: Remove unused variable 'rc'
fe783eeac4 blktrace: Fix output non-blktrace event when blk_classic option enabled
d628d5c5b4 wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware()
1a49bba59d wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h
9e8440a657 spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode
a00b4e0fa2 clk: samsung: Fix memory leak in _samsung_clk_register_pll()
7a2c66429b media: coda: Add check for kmalloc
2b436f1410 media: coda: Add check for dcoda_iram_alloc
6250bc7331 media: c8sectpfe: Add of_node_put() when breaking out of loop
0fcee27507 mmc: mmci: fix return value check of mmc_add_host()
0a41ea4fd4 mmc: wbsd: fix return value check of mmc_add_host()
f59ef2a47a mmc: via-sdmmc: fix return value check of mmc_add_host()
9e11c6bb74 mmc: meson-gx: fix return value check of mmc_add_host()
f153c9e15f mmc: omap_hsmmc: fix return value check of mmc_add_host()
6bb26abb92 mmc: atmel-mci: fix return value check of mmc_add_host()
c7a328cea7 mmc: wmt-sdmmc: fix return value check of mmc_add_host()
3b29f8769d mmc: vub300: fix return value check of mmc_add_host()
3dbb69a024 mmc: toshsd: fix return value check of mmc_add_host()
937112e991 mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host()
0b7b634225 mmc: pxamci: fix return value check of mmc_add_host()
32eb502c97 mmc: mxcmmc: fix return value check of mmc_add_host()
b174f2b36c mmc: moxart: fix return value check of mmc_add_host()
289c964fe1 mmc: alcor: fix return value check of mmc_add_host()
e8f20523cf NFSv4.x: Fail client initialisation if state manager thread can't run
f7a8a1e36d SUNRPC: Fix missing release socket in rpc_sockname()
bcebcb11fc xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
c7e9624d90 ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt
6a8c0abcb5 media: saa7164: fix missing pci_disable_device()
4cabc3af4a bpf, sockmap: fix race in sock_map_free()
35593d60b1 regulator: core: fix resource leak in regulator_register()
90c38f57a8 configfs: fix possible memory leak in configfs_create_dir()
6dea95f640 hsr: Avoid double remove of a node.
de7dbee4bd clk: qcom: clk-krait: fix wrong div2 functions
339ba693da regulator: core: fix module refcount leak in set_supply()
46dfff9102 wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys() fails
624a989db9 spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE
52fb0ffee0 bonding: uninitialized variable in bond_miimon_inspect()
31631c2ab4 bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect
7508b9f4da bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data
d4145d028a netfilter: conntrack: set icmpv6 redirects as RELATED
27c09443dd ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe
981024abf5 drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios()
470a779890 drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios()
190685ff4e ASoC: mediatek: mt8173: Enable IRQ when pdata is ready
0e1e311fd9 wifi: iwlwifi: mvm: fix double free on tx path.
8b0c003e37 ALSA: asihpi: fix missing pci_disable_device()
5447f1ad0b NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
e53a7c28a4 NFSv4.2: Fix initialisation of struct nfs4_label
b2b472bcda NFSv4.2: Fix a memory stomp in decode_attr_security_label
96f3c70600 NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding
2672977dc0 ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd
d63e9eca94 ASoC: dt-bindings: wcd9335: fix reset line polarity in example
4ea79d0747 drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe()
542a87f1cf media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC
8b256d2336 media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer()
9103bf2187 media: dvb-core: Fix ignored return value in dvb_register_frontend()
3359f8d533 pinctrl: pinconf-generic: add missing of_node_put()
ffd53b7892 clk: imx: replace osc_hdmi with dummy
aa79b53df7 clk: imx8mn: correct the usb1_ctrl parent to be usb_bus
1d8521e112 media: imon: fix a race condition in send_packet()
cf9c4c25ca mtd: maps: pxa2xx-flash: fix memory leak in probe
a7fc25159d bonding: fix link recovery in mode 2 when updelay is nonzero
0879f594a7 bonding: Rename slave_arr to usable_slaves
9eaeb3e460 bonding: Export skip slave logic to function
26b94635f1 clk: rockchip: Fix memory leak in rockchip_clk_register_pll()
96be283d10 regulator: core: use kfree_const() to free space conditionally
d884ed9a2f ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT
497279199d ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT
e6364854f5 HID: hid-sensor-custom: set fixed size for custom attributes
75a5bf8eeb bpf: Move skb->len == 0 checks into __bpf_redirect
61688b8819 media: videobuf-dma-contig: use dma_mmap_coherent
9ca9d7fd7d media: platform: exynos4-is: Fix error handling in fimc_md_init()
7b02c50d39 media: solo6x10: fix possible memory leak in solo_sysfs_init()
f81f63168f Input: elants_i2c - properly handle the reset GPIO when power is off
8eb64dc5a7 mtd: lpddr2_nvm: Fix possible null-ptr-deref
8e51f5894d wifi: ath10k: Fix return value in ath10k_pci_init()
8176538866 ima: Fix misuse of dereference of pointer in template_desc_init_fields()
9b7c44885a integrity: Fix memory leakage in keyring allocation error path
4d3dc0de9c amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table()
d39937f8de regulator: core: fix unbalanced of node refcount in regulator_dev_lookup()
a8baccb79d ASoC: pxa: fix null-pointer dereference in filter()
6f13a895ce drm/mediatek: Modify dpi power on/off sequence.
a0f26560be drm/radeon: Add the missed acpi_put_table() to fix memory leak
832d0e19ce rxrpc: Fix ack.bufferSize to be 0 when generating an ack
c9c9350d30 net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write()
fe443b3fe3 media: camss: Clean up received buffers on failed start of streaming
08114dc185 wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port
fa0d32ab84 mtd: Fix device name leak when register device failed in add_mtd_device()
d70fa0a6ce bpf: propagate precision in ALU/ALU64 operations
54f2599060 media: vivid: fix compose size exceed boundary
38d48fd224 ima: Handle -ESTALE returned by ima_filter_rule_match()
ecd0a6f81a ima: Fix fall-through warnings for Clang
55e2430e43 ima: Rename internal filter rule functions
0b7c47b7f3 drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure
3fcdc1534b spi: Update reference to struct spi_controller
d87dd4528d clk: renesas: r9a06g032: Repair grave increment error
a2046e5a36 can: kvaser_usb: Compare requested bittiming parameters with actual parameters in do_set_{,data}_bittiming
7482f95315 can: kvaser_usb: Add struct kvaser_usb_busparams
f3d20de76f can: kvaser_usb_leaf: Fix bogus restart events
ad63992b64 can: kvaser_usb_leaf: Fix wrong CAN state after stopping
9208795770 can: kvaser_usb_leaf: Fix improved state not being reported
60ad08be78 can: kvaser_usb_leaf: Set Warning state even without bus errors
12d95e65f7 can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT
5779a9d0e3 can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to {leaf,usbcan}_cmd_can_error_event
0e56748852 can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device
3a9d74f339 can: kvaser_usb: do not increase tx statistics when sending error message frames
3f2384f09b media: i2c: ad5820: Fix error path
e8e2da03c2 pata_ipx4xx_cf: Fix unsigned comparison with less than zero
5994e7a806 wifi: rtl8xxxu: Fix reading the vendor of combo chips
988bd27de2 wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
9850791d38 wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs()
bb7397f631 rapidio: devices: fix missing put_device in mport_cdev_open
6a95b17e4d hfs: Fix OOB Write in hfs_asc2mac
657fea0a8d relay: fix type mismatch when allocating memory in relay_create_buf()
e275249e5e eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD
311b488405 rapidio: fix possible UAF when kfifo_alloc() fails
7aa5325e1b fs: sysv: Fix sysv_nblocks() returns wrong value
cb5859603c MIPS: OCTEON: warn only once if deprecated link status is being used
b7ca75207e MIPS: BCM63xx: Add check for NULL for clk in clk_enable
14bb4bde3b platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]()
11ad95912b PM: runtime: Do not call __rpm_callback() from rpm_idle()
c40ee4e04b PM: runtime: Improve path in rpm_idle() when no callback
4f983ee5e5 xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource()
29198f667f x86/xen: Fix memory leak in xen_init_lock_cpu()
ec88254208 x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()
6e98158d97 xen/events: only register debug interrupt for 2-level events
314d510535 uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
dfdde4d513 ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
805665aa52 clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled
1bbad5793f rapidio: rio: fix possible name leak in rio_register_mport()
440afd7fd9 rapidio: fix possible name leaks when rio_add_device() fails
7ef516888c ocfs2: fix memory leak in ocfs2_mount_volume()
a4d3062f0a ocfs2: rewrite error handling of ocfs2_fill_super
227cc62e00 ocfs2: ocfs2_mount_volume does cleanup job before return error
5c27b46c20 debugfs: fix error when writing negative value to atomic_t debugfs file
c7bd49275d docs: fault-injection: fix non-working usage of negative values
6865a549f2 lib/notifier-error-inject: fix error when writing -errno to debugfs file
6fc6461672 libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
75940697c0 cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
d25bf9af86 genirq/irqdesc: Don't try to remove non-existing sysfs files
b4e28099cd nfsd: don't call nfsd_file_put from client states seqfile display
e6e295a434 EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper()
d5c06dba46 irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe()
e293263248 perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox()
81b024df47 PNP: fix name memory leak in pnp_alloc_dev()
821afb8c89 selftests/efivarfs: Add checking of the test return value
c0b8cff014 MIPS: vpe-cmp: fix possible memory leak while module exiting
b3325a4435 MIPS: vpe-mt: fix possible memory leak while module exiting
7c8bf45cea ocfs2: fix memory leak in ocfs2_stack_glue_init()
e039929e36 lib/fonts: fix undefined behavior in bit shift for get_default_font
160d6d6f14 proc: fixup uptime selftest
d7b9e43a5c timerqueue: Use rb_entry_safe() in timerqueue_getnext()
248fa44cde perf: Fix possible memleak in pmu_dev_alloc()
044ede4c38 selftests/ftrace: event_triggers: wait longer for test_event_enable
8511186f10 fs: don't audit the capability check in simple_xattr_list()
c907c55dc7 PM: hibernate: Fix mistake in kerneldoc comment
f0ff6c60bc alpha: fix syscall entry in !AUDUT_SYSCALL case
1399ce344e cpuidle: dt: Return the correct numbers of parsed idle states
082b55fe9f tpm/tpm_crb: Fix error message in __crb_relinquish_locality()
4d3126f242 pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
e2516652da ARM: mmp: fix timer_read delay
2de791ff6f pstore/ram: Fix error return code in ramoops_probe()
ded1b82716 arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
03a666631a ARM: dts: turris-omnia: Add switch port 6 node
fe1fc4d84d ARM: dts: turris-omnia: Add ethernet aliases
b20454ea05 ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port
1b7017211e ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port
87b951b7c2 ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port
e3cf3f7a6d ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port
e302758caf ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port
0a8544b723 ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port
f707c3fee2 arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
fdf511fc07 arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
06fbfc5f43 arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
f0c1f46e49 arm64: dts: mt2712e: Fix unit address for pinctrl node
aaabd7e3e4 arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
d69bdb61d5 perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init()
af2256d778 perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init()
1e9186d628 soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe
83cfc38091 soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe
5f07c85ca1 soc: ti: knav_qmss_queue: Use pm_runtime_resume_and_get instead of pm_runtime_get_sync
f5c521195e arm: dts: spear600: Fix clcd interrupt
3a90edbab8 drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static
3459e05ad3 arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias
6a24277840 ARM: dts: qcom: apq8064: fix coresight compatible
1a19212a71 usb: musb: remove extra check in musb_gadget_vbus_draw
40075e7975 net: loopback: use NET_NAME_PREDICTABLE for name_assign_type
9fdc79b571 Bluetooth: L2CAP: Fix u8 overflow
77d5e6f260 HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk
c05a7fa010 HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10
d535a33e83 HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E
7346b2529f HID: ite: Add support for Acer S1002 keyboard-dock
2d91b7a0b0 xen-netback: move removal of "hotplug-status" to the right place
c581439a97 igb: Initialize mailbox message for VF reset
50aa193a4b USB: serial: f81534: fix division by zero on line-speed change
0d6bf63eb3 USB: serial: f81232: fix division by zero on line-speed change
fe0f214385 USB: serial: cp210x: add Kamstrup RF sniffer PIDs
d487670654 USB: serial: option: add Quectel EM05-G modem
b8fb1cba93 usb: gadget: uvc: Prevent buffer overflow in setup handler
2610c2e59c udf: Fix extending file within last block
ade1726d8c udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size
4d835efd56 udf: Fix preallocation discarding at indirect extent boundary
0905c78f62 udf: Discard preallocation before extending file with a hole
0758b50692 tracing/ring-buffer: Only do full wait when cpu != RING_BUFFER_ALL_CPUS
e1d491fcbf ANDROID: Add more hvc devices for virtio-console.
92a0ce5d0a Merge 5.4.228 into android11-5.4-lts
6429852aef Revert "can: af_can: fix NULL pointer dereference in can_rcv_filter"
4ae923b7c6 Merge 5.4.227 into android11-5.4-lts
57e53c3fa3 ANDROID: Revert "tracing/ring-buffer: Have polling block on watermark"
851c2b5fb7 Linux 5.4.228
ff484a9ba4 ASoC: ops: Correct bounds check for second channel on SX controls
7d4aa09299 can: mcba_usb: Fix termination command argument
f843fdcac0 can: sja1000: fix size of OCR_MODE_MASK define
b439b12d10 pinctrl: meditatek: Startup with the IRQs disabled
9796d07c75 ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx()
3c837460f9 nfp: fix use-after-free in area_cache_get()
a40c3c9ae5 block: unhash blkdev part inode when the part is deleted
176ba4c19d mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page
69d4f3baa6 x86/smpboot: Move rcu_cpu_starting() earlier
d1988bf2bb net: bpf: Allow TC programs to call BPF_FUNC_skb_change_head
66bb2e2b24 Linux 5.4.227
898270ec11 can: esd_usb: Allow REC and TEC to return to zero
08bf219d62 net: mvneta: Fix an out of bounds check
6b6d3be366 ipv6: avoid use-after-free in ip6_fragment()
f73eb3fc9b net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq()
f0af234e2e xen/netback: fix build warning
99669d94ce ethernet: aeroflex: fix potential skb leak in greth_init_rings()
3295582cd7 ipv4: Fix incorrect route flushing when table ID 0 is used
2537b637ea ipv4: Fix incorrect route flushing when source address is deleted
36eedb9a05 tipc: Fix potential OOB in tipc_link_proto_rcv()
1b6360a093 net: hisilicon: Fix potential use-after-free in hix5hd2_rx()
e71a46cc8c net: hisilicon: Fix potential use-after-free in hisi_femac_rx()
7081cf86e1 net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq
bc06207b4c net: stmmac: fix "snps,axi-config" node property parsing
7fab7add08 nvme initialize core quirks before calling nvme_init_subsystem
6778434706 NFC: nci: Bounds check struct nfc_target arrays
e5292711b0 i40e: Disallow ip4 and ip6 l4_4_bytes
9337d87da4 i40e: Fix for VF MAC address 0
a1e295517b i40e: Fix not setting default xps_cpus after reset
eec1fc21ed net: mvneta: Prevent out of bounds read in mvneta_config_rss()
ed773dd798 xen-netfront: Fix NULL sring after live migration
18e10a9e0e net: encx24j600: Fix invalid logic in reading of MISTAT register
1356c17758 net: encx24j600: Add parentheses to fix precedence
1831d45404 mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add()
8fb4b50f54 selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload
0834d4b121 net: dsa: ksz: Check return value
2c6cf0afc3 Bluetooth: Fix not cleanup led when bt_init fails
07ea5d74fc Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn()
c66d78aee5 af_unix: Get user_ns from in_skb in unix_diag_get_exact().
9d2ee8abf1 igb: Allocate MSI-X vector when testing
cff8ba243f e1000e: Fix TX dispatch condition
48bd5d3801 gpio: amd8111: Fix PCI device reference count leak
d2be7ba2d4 drm/bridge: ti-sn65dsi86: Fix output polarity setting bug
e2e2181772 ca8210: Fix crash by zero initializing data
efbca8234a ieee802154: cc2520: Fix error return code in cc2520_hw_init()
3982652957 can: af_can: fix NULL pointer dereference in can_rcv_filter
db1ed1b3fb HID: core: fix shift-out-of-bounds in hid_report_raw_event
60bce926a8 HID: hid-lg4ff: Add check for empty lbuf
625814b85f HID: usbhid: Add ALWAYS_POLL quirk for some mice
585a07b820 drm/shmem-helper: Remove errant put in error path
b8419d16f4 KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field
04edfa3dc0 mm/gup: fix gup_pud_range() for dax
35963b3182 memcg: fix possible use-after-free in memcg_write_event_control()
4afc77068e media: v4l2-dv-timings.c: fix too strict blanking sanity checks
91516ba54a Revert "net: dsa: b53: Fix valid setting for MDB entries"
50e1ab7e63 xen/netback: don't call kfree_skb() with interrupts disabled
6b1d47f9c3 xen/netback: do some code cleanup
8fe1bf6f32 xen/netback: Ensure protocol headers don't fall in the non-linear area
5ffc2a7553 mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
48b00ceb54 mm/khugepaged: fix GUP-fast interaction by sending IPI
324abbd8b9 mm/khugepaged: take the right locks for page table retraction
b2963819d0 net: usb: qmi_wwan: add u-blox 0x1342 composition
e35c3ad0c2 9p/xen: check logical size for buffer size
9d5126b574 fbcon: Use kzalloc() in fbcon_prepare_logo()
102459222d regulator: twl6030: fix get status of twl6032 regulators
f2ba66d873 ASoC: soc-pcm: Add NULL check in BE reparenting
3b2c064a8e btrfs: send: avoid unaligned encoded writes when attempting to clone range
63badfed20 ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event
8d16d3826f regulator: slg51000: Wait after asserting CS pin
9327a9c624 9p/fd: Use P9_HDRSZ for header size
671f950d17 ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188
2c2c5d1d10 ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation
29917e381e ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels
3f39d53bc7 ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
135fcc4581 ARM: dts: rockchip: fix ir-receiver node names
368f2c2640 arm: dts: rockchip: fix node name for hym8563 rtc
4b346f07f0 arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4 series

Change-Id: I0cec2e1f212747f2f82af4006b2b2c19daa97369
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-03-23 09:12:29 +00:00
Darrick J. Wong
5ccb6ea4bc UPSTREAM: ext4: fix another off-by-one fsmap error on 1k block filesystems
commit c993799baf9c5861f8df91beb80e1611b12efcbd upstream.

Apparently syzbot figured out that issuing this FSMAP call:

struct fsmap_head cmd = {
	.fmh_count	= ...;
	.fmh_keys	= {
		{ .fmr_device = /* ext4 dev */, .fmr_physical = 0, },
		{ .fmr_device = /* ext4 dev */, .fmr_physical = 0, },
	},
...
};
ret = ioctl(fd, FS_IOC_GETFSMAP, &cmd);

Produces this crash if the underlying filesystem is a 1k-block ext4
filesystem:

kernel BUG at fs/ext4/ext4.h:3331!
invalid opcode: 0000 [#1] PREEMPT SMP
CPU: 3 PID: 3227965 Comm: xfs_io Tainted: G        W  O       6.2.0-rc8-achx
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014
RIP: 0010:ext4_mb_load_buddy_gfp+0x47c/0x570 [ext4]
RSP: 0018:ffffc90007c03998 EFLAGS: 00010246
RAX: ffff888004978000 RBX: ffffc90007c03a20 RCX: ffff888041618000
RDX: 0000000000000000 RSI: 00000000000005a4 RDI: ffffffffa0c99b11
RBP: ffff888012330000 R08: ffffffffa0c2b7d0 R09: 0000000000000400
R10: ffffc90007c03950 R11: 0000000000000000 R12: 0000000000000001
R13: 00000000ffffffff R14: 0000000000000c40 R15: ffff88802678c398
FS:  00007fdf2020c880(0000) GS:ffff88807e100000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffd318a5fe8 CR3: 000000007f80f001 CR4: 00000000001706e0
Call Trace:
 <TASK>
 ext4_mballoc_query_range+0x4b/0x210 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
 ext4_getfsmap_datadev+0x713/0x890 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
 ext4_getfsmap+0x2b7/0x330 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
 ext4_ioc_getfsmap+0x153/0x2b0 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
 __ext4_ioctl+0x2a7/0x17e0 [ext4 dfa189daddffe8fecd3cdfd00564e0f265a8ab80]
 __x64_sys_ioctl+0x82/0xa0
 do_syscall_64+0x2b/0x80
 entry_SYSCALL_64_after_hwframe+0x46/0xb0
RIP: 0033:0x7fdf20558aff
RSP: 002b:00007ffd318a9e30 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000000200c0 RCX: 00007fdf20558aff
RDX: 00007fdf1feb2010 RSI: 00000000c0c0583b RDI: 0000000000000003
RBP: 00005625c0634be0 R08: 00005625c0634c40 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fdf1feb2010
R13: 00005625be70d994 R14: 0000000000000800 R15: 0000000000000000

For GETFSMAP calls, the caller selects a physical block device by
writing its block number into fsmap_head.fmh_keys[01].fmr_device.
To query mappings for a subrange of the device, the starting byte of the
range is written to fsmap_head.fmh_keys[0].fmr_physical and the last
byte of the range goes in fsmap_head.fmh_keys[1].fmr_physical.

IOWs, to query what mappings overlap with bytes 3-14 of /dev/sda, you'd
set the inputs as follows:

	fmh_keys[0] = { .fmr_device = major(8, 0), .fmr_physical = 3},
	fmh_keys[1] = { .fmr_device = major(8, 0), .fmr_physical = 14},

Which would return you whatever is mapped in the 12 bytes starting at
physical offset 3.

The crash is due to insufficient range validation of keys[1] in
ext4_getfsmap_datadev.  On 1k-block filesystems, block 0 is not part of
the filesystem, which means that s_first_data_block is nonzero.
ext4_get_group_no_and_offset subtracts this quantity from the blocknr
argument before cracking it into a group number and a block number
within a group.  IOWs, block group 0 spans blocks 1-8192 (1-based)
instead of 0-8191 (0-based) like what happens with larger blocksizes.

The net result of this encoding is that blocknr < s_first_data_block is
not a valid input to this function.  The end_fsb variable is set from
the keys that are copied from userspace, which means that in the above
example, its value is zero.  That leads to an underflow here:

	blocknr = blocknr - le32_to_cpu(es->s_first_data_block);

The division then operates on -1:

	offset = do_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb)) >>
		EXT4_SB(sb)->s_cluster_bits;

Leaving an impossibly large group number (2^32-1) in blocknr.
ext4_getfsmap_check_keys checked that keys[0].fmr_physical and
keys[1].fmr_physical are in increasing order, but
ext4_getfsmap_datadev adjusts keys[0].fmr_physical to be at least
s_first_data_block.  This implies that we have to check it again after
the adjustment, which is the piece that I forgot.

Reported-by: syzbot+6be2b977c89f79b6b153@syzkaller.appspotmail.com
Fixes: 4a4956249d ("ext4: fix off-by-one fsmap error on 1k block filesystems")
Link: https://syzkaller.appspot.com/bug?id=79d5768e9bfe362911ac1a5057a36fc6b5c30002
Cc: stable@vger.kernel.org
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lore.kernel.org/r/Y+58NPTH7VNGgzdd@magnolia
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 260486287
Change-Id: I07ac9fcb91671016f4b6a10ef5c8711eea74fb26
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-03-17 13:36:44 +00:00
Jun Nie
f756dbba7b UPSTREAM: ext4: refuse to create ea block when umounted
commit f31173c19901a96bb2ebf6bcfec8a08df7095c91 upstream.

The ea block expansion need to access s_root while it is
already set as NULL when umount is triggered. Refuse this
request to avoid panic.

Reported-by: syzbot+2dacb8f015bf1420155f@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?id=3613786cb88c93aa1c6a279b1df6a7b201347d08
Link: https://lore.kernel.org/r/20230103014517.495275-3-jun.nie@linaro.org
Cc: stable@kernel.org
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 262267471
Change-Id: I0a5c974e696cf7a132f3cbb8acbe066edba4660f
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-03-14 18:02:32 +00:00
Jun Nie
aefbae5b92 UPSTREAM: ext4: optimize ea_inode block expansion
commit 1e9d62d252812575ded7c620d8fc67c32ff06c16 upstream.

Copy ea data from inode entry when expanding ea block if possible.
Then remove the ea entry if expansion success. Thus memcpy to a
temporary buffer may be avoided.

If the expansion fails, we do not need to recovery the removed ea
entry neither in this way.

Reported-by: syzbot+2dacb8f015bf1420155f@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?id=3613786cb88c93aa1c6a279b1df6a7b201347d08
Link: https://lore.kernel.org/r/20230103014517.495275-2-jun.nie@linaro.org
Cc: stable@kernel.org
Signed-off-by: Jun Nie <jun.nie@linaro.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 262267471
Change-Id: I26e7d45ab21bcf9e38eeb66601067f42b01c11f5
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-03-14 18:02:23 +00:00
Ye Bin
7431096bfd UPSTREAM: ext4: allocate extended attribute value in vmalloc area
commit cc12a6f25e07ed05d5825a1664b67a970842b2ca upstream.

Now, extended attribute value maximum length is 64K. The memory
requested here does not need continuous physical addresses, so it is
appropriate to use kvmalloc to request memory. At the same time, it
can also cope with the situation that the extended attribute will
become longer in the future.

Signed-off-by: Ye Bin <yebin10@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20221208023233.1231330-3-yebin@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 262267471
Change-Id: I92a4a66d8220f46f26a89100ba41c659559443a7
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
2023-03-14 18:02:23 +00:00
Tejun Heo
7cfbc7501b BACKPORT: FROMGIT: cgroup: Use separate src/dst nodes when preloading css_sets for migration
Each cset (css_set) is pinned by its tasks. When we're moving tasks around
across csets for a migration, we need to hold the source and destination
csets to ensure that they don't go away while we're moving tasks about. This
is done by linking cset->mg_preload_node on either the
mgctx->preloaded_dst_csets or mgctx->preloaded_dst_csets list. Using the
same cset->mg_preload_node for both the src and dst lists was deemed okay as
a cset can't be both the source and destination at the same time.

Unfortunately, this overloading becomes problematic when multiple tasks are
involved in a migration and some of them are identity noop migrations while
others are actually moving across cgroups. For example, this can happen with
the following sequence on cgroup1:

 #1> mkdir -p /sys/fs/cgroup/misc/a/b
 #2> echo $$ > /sys/fs/cgroup/misc/a/cgroup.procs
 #3> RUN_A_COMMAND_WHICH_CREATES_MULTIPLE_THREADS &
 #4> PID=$!
 #5> echo $PID > /sys/fs/cgroup/misc/a/b/tasks
 #6> echo $PID > /sys/fs/cgroup/misc/a/cgroup.procs

the process including the group leader back into a. In this final migration,
non-leader threads would be doing identity migration while the group leader
is doing an actual one.

After #3, let's say the whole process was in cset A, and that after #4, the
leader moves to cset B. Then, during #6, the following happens:

 1. cgroup_migrate_add_src() is called on B for the leader.

 2. cgroup_migrate_add_src() is called on A for the other threads.

 3. cgroup_migrate_prepare_dst() is called. It scans the src list.

 3. It notices that B wants to migrate to A, so it tries to A to the dst
    list but realizes that its ->mg_preload_node is already busy.

 4. and then it notices A wants to migrate to A as it's an identity
    migration, it culls it by list_del_init()'ing its ->mg_preload_node and
    putting references accordingly.

 5. The rest of migration takes place with B on the src list but nothing on
    the dst list.

This means that A isn't held while migration is in progress. If all tasks
leave A before the migration finishes and the incoming task pins it, the
cset will be destroyed leading to use-after-free.

This is caused by overloading cset->mg_preload_node for both src and dst
preload lists. We wanted to exclude the cset from the src list but ended up
inadvertently excluding it from the dst list too.

This patch fixes the issue by separating out cset->mg_preload_node into
->mg_src_preload_node and ->mg_dst_preload_node, so that the src and dst
preloadings don't interfere with each other.

Bug: 236582926
Change-Id: Ieaf1c0c8fc23753570897fd6e48a54335ab939ce
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Mukesh Ojha <quic_mojha@quicinc.com>
Reported-by: shisiyuan <shisiyuan19870131@gmail.com>
Link: http://lkml.kernel.org/r/1654187688-27411-1-git-send-email-shisiyuan@xiaomi.com
Link: https://lore.kernel.org/lkml/Yh+RGIJ0f3nrqIiN@slm.duckdns.org/#t
Fixes: f817de9851 ("cgroup: prepare migration path for unified hierarchy")
Cc: stable@vger.kernel.org # v3.16+
(cherry picked from commit 07fd5b6cdf3cc30bfde8fe0f644771688be04447
 https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-5.19-fixes)
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
[mojha: Move the two new list heads into a wrapper ext_css_set struct to ensure
 ABI doesn't break and also defined a macro init_css_set which will be replaced
 with init_ext_css_set.cset to avoid too much code changes]
Signed-off-by: Srinivasarao Pathipati <quic_spathi@quicinc.com>
2023-03-14 16:59:42 +00:00
Vaisakh Murali
b62f2af118
ANDROID: fs/f2fs: fixup __f2fs_cluster_blocks with F2FS_FS_COMPRESSION
Commit 3cf0f8245d introduced `inode` as
a parameter to F2FS_I_SB() but never declared from where it was
supposed to be accessed from.

This leads to a compile error with CONFIG_F2FS_FS_COMPRESSION enabled:

In file included from fs/f2fs/compress.c:17:
fs/f2fs/compress.c: In function '__f2fs_cluster_blocks':
fs/f2fs/compress.c:813:39: error: 'inode' undeclared (first use in this function)
  813 |                 f2fs_bug_on(F2FS_I_SB(inode),
      |                                       ^~~~~
fs/f2fs/f2fs.h:38:38: note: in definition of macro 'f2fs_bug_on'
   38 |                         set_sbi_flag(sbi, SBI_NEED_FSCK);               \
      |                                      ^~~
fs/f2fs/compress.c:813:39: note: each undeclared identifier is reported only once for each function it appears in
  813 |                 f2fs_bug_on(F2FS_I_SB(inode),
      |                                       ^~~~~
fs/f2fs/f2fs.h:38:38: note: in definition of macro 'f2fs_bug_on'
   38 |                         set_sbi_flag(sbi, SBI_NEED_FSCK);               \
      |

Test: Enable CONFIG_F2FS_FS_COMPRESSION, check compile.
Fixes: 3cf0f8245d ("BACKPORT: f2fs: compress: remove unneeded preallocation")
Change-Id: I40015a66b8b872c86ff782b30581b24f752bb19a
Signed-off-by: Vaisakh Murali <vaisakhmurali@gmail.com>
2023-03-01 19:22:22 +06:00
Udipto Goswami
9f71ba69cd UPSTREAM: usb: gadget: f_fs: Ensure ep0req is dequeued before free_request
As per the documentation, function usb_ep_free_request guarantees
the request will not be queued or no longer be re-queued (or
otherwise used). However, with the current implementation it
doesn't make sure that the request in ep0 isn't reused.

Fix this by dequeuing the ep0req on functionfs_unbind before
freeing the request to align with the definition.

Fixes: ddf8abd259 ("USB: f_fs: the FunctionFS driver")
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Tested-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Link: https://lore.kernel.org/r/20221215052906.8993-3-quic_ugoswami@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 265837309
Bug: 266213784
(cherry picked from commit ce405d561b020e5a46340eb5146805a625dcacee https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-linus)
Change-Id: Idbc5f13cedac59cbc893d229383b01662f4e4a03
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
Signed-off-by: Lee Jones <joneslee@google.com>
2023-02-27 15:41:25 +00:00
Jim Mattson
62b8ef0458 UPSTREAM: KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
[ Upstream commit 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5 ]

According to Intel's document on Indirect Branch Restricted
Speculation, "Enabling IBRS does not prevent software from controlling
the predicted targets of indirect branches of unrelated software
executed later at the same predictor mode (for example, between two
different user applications, or two different virtual machines). Such
isolation can be ensured through use of the Indirect Branch Predictor
Barrier (IBPB) command." This applies to both basic and enhanced IBRS.

Since L1 and L2 VMs share hardware predictor modes (guest-user and
guest-kernel), hardware IBRS is not sufficient to virtualize
IBRS. (The way that basic IBRS is implemented on pre-eIBRS parts,
hardware IBRS is actually sufficient in practice, even though it isn't
sufficient architecturally.)

For virtual CPUs that support IBRS, add an indirect branch prediction
barrier on emulated VM-exit, to ensure that the predicted targets of
indirect branches executed in L1 cannot be controlled by software that
was executed in L2.

Since we typically don't intercept guest writes to IA32_SPEC_CTRL,
perform the IBPB at emulated VM-exit regardless of the current
IA32_SPEC_CTRL.IBRS value, even though the IBPB could technically be
deferred until L1 sets IA32_SPEC_CTRL.IBRS, if IA32_SPEC_CTRL.IBRS is
clear at emulated VM-exit.

This is CVE-2022-2196.

Bug: 265479180
Fixes: 5c911beff20a ("KVM: nVMX: Skip IBPB when switching between vmcs01 and vmcs02")
Cc: Sean Christopherson <seanjc@google.com>
Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20221019213620.1953281-3-jmattson@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ic3ac006d834719d41f8a84c7a557d60b82e05197
2023-02-27 12:15:21 +00:00
Greg Kroah-Hartman
6bb176e034 Merge 5.4.233 into android11-5.4-lts
Changes in 5.4.233
	dma-mapping: add generic helpers for mapping sgtable objects
	scatterlist: add generic wrappers for iterating over sgtable objects
	drm: etnaviv: fix common struct sg_table related issues
	drm/etnaviv: don't truncate physical page address
	wifi: rtl8xxxu: gen2: Turn on the rate control
	powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
	random: always mix cycle counter in add_latent_entropy()
	KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
	KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
	can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
	powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
	alarmtimer: Prevent starvation by small intervals and SIG_IGN
	drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
	mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
	uaccess: Add speculation barrier to copy_from_user()
	wifi: mwifiex: Add missing compatible string for SD8787
	ext4: Fix function prototype mismatch for ext4_feat_ktype
	Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"
	bpf: add missing header file include
	Linux 5.4.233

Change-Id: I83441dec5bd3c2ad6af19017fe9b467f7ffa2ea5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-02-27 11:20:30 +00:00
Greg Kroah-Hartman
7f7f254975 Revert "iommu: Add gfp parameter to iommu_ops::map"
This reverts commit fe4d708668 which is
commit 781ca2de89bae1b1d2c96df9ef33e9a324415995 upstream.

It breaks the Android kernel api and was added only because a RDMA/IB
change needed it, which is not needed for Android systems at all, so it
is safe to revert.

Bug: 161946584
Change-Id: I64d05d14206bd40c6453035833df3209c0c5e1b9
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-02-27 11:20:12 +00:00
Greg Kroah-Hartman
7f7f83ce87 Revert "iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()"
This reverts commit 8b47e324af which is
commit 3057fb9377eb5e73386dd0d8804bf72bdd23e391 upstream.

It is needed to be reverted as a dependent change on it is being
reverted to preserve the Android kernel abi.

Bug: 161946584
Change-Id: Ida9dc39ce7faf2a33aae9bde9741fdf25e2f0303
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-02-27 11:20:12 +00:00
Greg Kroah-Hartman
bbf1c13935 Revert "RDMA/usnic: use iommu_map_atomic() under spin_lock()"
This reverts commit 80282a3d10 which is
commit b7e08a5a63a11627601915473c3b569c1f6c6c06 upstream.

It will not build as a pre-requsite commit was reverted as it broke the
Android kernel abi and it was needed for this change.  This change is
not needed for Android systems so it is safe to revert.

Bug: 161946584
Change-Id: I4dabb4a6943fc128fb54c8f7a80a694823c1c5f8
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-02-25 15:51:15 +00:00
Greg Kroah-Hartman
69f65d442e Linux 5.4.233
Link: https://lore.kernel.org/r/20230223130425.680784802@linuxfoundation.org
Link: https://lore.kernel.org/r/20230223141539.591151658@linuxfoundation.org
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Slade Watkins <srw@sladewatkins.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:27 +01:00
Linus Torvalds
c6cc0121d4 bpf: add missing header file include
commit f3dd0c53370e70c0f9b7e931bbec12916f3bb8cc upstream.

Commit 74e19ef0ff80 ("uaccess: Add speculation barrier to
copy_from_user()") built fine on x86-64 and arm64, and that's the extent
of my local build testing.

It turns out those got the <linux/nospec.h> include incidentally through
other header files (<linux/kvm_host.h> in particular), but that was not
true of other architectures, resulting in build errors

  kernel/bpf/core.c: In function ‘___bpf_prog_run’:
  kernel/bpf/core.c:1913:3: error: implicit declaration of function ‘barrier_nospec’

so just make sure to explicitly include the proper <linux/nospec.h>
header file to make everybody see it.

Fixes: 74e19ef0ff80 ("uaccess: Add speculation barrier to copy_from_user()")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Viresh Kumar <viresh.kumar@linaro.org>
Reported-by: Huacai Chen <chenhuacai@loongson.cn>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Tested-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:27 +01:00
Vladimir Oltean
5d873a6c65 Revert "net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"
commit af7b29b1deaac6da3bb7637f0e263dfab7bfc7a3 upstream.

taprio_attach() has this logic at the end, which should have been
removed with the blamed patch (which is now being reverted):

	/* access to the child qdiscs is not needed in offload mode */
	if (FULL_OFFLOAD_IS_ENABLED(q->flags)) {
		kfree(q->qdiscs);
		q->qdiscs = NULL;
	}

because otherwise, we make use of q->qdiscs[] even after this array was
deallocated, namely in taprio_leaf(). Therefore, whenever one would try
to attach a valid child qdisc to a fully offloaded taprio root, one
would immediately dereference a NULL pointer.

$ tc qdisc replace dev eno0 handle 8001: parent root taprio \
	num_tc 8 \
	map 0 1 2 3 4 5 6 7 \
	queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
	max-sdu 0 0 0 0 0 200 0 0 \
	base-time 200 \
	sched-entry S 80 20000 \
	sched-entry S a0 20000 \
	sched-entry S 5f 60000 \
	flags 2
$ max_frame_size=1500
$ data_rate_kbps=20000
$ port_transmit_rate_kbps=1000000
$ idleslope=$data_rate_kbps
$ sendslope=$(($idleslope - $port_transmit_rate_kbps))
$ locredit=$(($max_frame_size * $sendslope / $port_transmit_rate_kbps))
$ hicredit=$(($max_frame_size * $idleslope / $port_transmit_rate_kbps))
$ tc qdisc replace dev eno0 parent 8001:7 cbs \
	idleslope $idleslope \
	sendslope $sendslope \
	hicredit $hicredit \
	locredit $locredit \
	offload 0

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000030
pc : taprio_leaf+0x28/0x40
lr : qdisc_leaf+0x3c/0x60
Call trace:
 taprio_leaf+0x28/0x40
 tc_modify_qdisc+0xf0/0x72c
 rtnetlink_rcv_msg+0x12c/0x390
 netlink_rcv_skb+0x5c/0x130
 rtnetlink_rcv+0x1c/0x2c

The solution is not as obvious as the problem. The code which deallocates
q->qdiscs[] is in fact copied and pasted from mqprio, which also
deallocates the array in mqprio_attach() and never uses it afterwards.

Therefore, the identical cleanup logic of priv->qdiscs[] that
mqprio_destroy() has is deceptive because it will never take place at
qdisc_destroy() time, but just at raw ops->destroy() time (otherwise
said, priv->qdiscs[] do not last for the entire lifetime of the mqprio
root), but rather, this is just the twisted way in which the Qdisc API
understands error path cleanup should be done (Qdisc_ops :: destroy() is
called even when Qdisc_ops :: init() never succeeded).

Side note, in fact this is also what the comment in mqprio_init() says:

	/* pre-allocate qdisc, attachment can't fail */

Or reworded, mqprio's priv->qdiscs[] scheme is only meant to serve as
data passing between Qdisc_ops :: init() and Qdisc_ops :: attach().

[ this comment was also copied and pasted into the initial taprio
  commit, even though taprio_attach() came way later ]

The problem is that taprio also makes extensive use of the q->qdiscs[]
array in the software fast path (taprio_enqueue() and taprio_dequeue()),
but it does not keep a reference of its own on q->qdiscs[i] (you'd think
that since it creates these Qdiscs, it holds the reference, but nope,
this is not completely true).

To understand the difference between taprio_destroy() and mqprio_destroy()
one must look before commit 13511704f8d7 ("net: taprio offload: enforce
qdisc to netdev queue mapping"), because that just muddied the waters.

In the "original" taprio design, taprio always attached itself (the root
Qdisc) to all netdev TX queues, so that dev_qdisc_enqueue() would go
through taprio_enqueue().

It also called qdisc_refcount_inc() on itself for as many times as there
were netdev TX queues, in order to counter-balance what tc_get_qdisc()
does when destroying a Qdisc (simplified for brevity below):

	if (n->nlmsg_type == RTM_DELQDISC)
		err = qdisc_graft(dev, parent=NULL, new=NULL, q, extack);

qdisc_graft(where "new" is NULL so this deletes the Qdisc):

	for (i = 0; i < num_q; i++) {
		struct netdev_queue *dev_queue;

		dev_queue = netdev_get_tx_queue(dev, i);

		old = dev_graft_qdisc(dev_queue, new);
		if (new && i > 0)
			qdisc_refcount_inc(new);

		qdisc_put(old);
		~~~~~~~~~~~~~~
		this decrements taprio's refcount once for each TX queue
	}

	notify_and_destroy(net, skb, n, classid,
			   rtnl_dereference(dev->qdisc), new);
			   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			   and this finally decrements it to zero,
			   making qdisc_put() call qdisc_destroy()

The q->qdiscs[] created using qdisc_create_dflt() (or their
replacements, if taprio_graft() was ever to get called) were then
privately freed by taprio_destroy().

This is still what is happening after commit 13511704f8d7 ("net: taprio
offload: enforce qdisc to netdev queue mapping"), but only for software
mode.

In full offload mode, the per-txq "qdisc_put(old)" calls from
qdisc_graft() now deallocate the child Qdiscs rather than decrement
taprio's refcount. So when notify_and_destroy(taprio) finally calls
taprio_destroy(), the difference is that the child Qdiscs were already
deallocated.

And this is exactly why the taprio_attach() comment "access to the child
qdiscs is not needed in offload mode" is deceptive too. Not only the
q->qdiscs[] array is not needed, but it is also necessary to get rid of
it as soon as possible, because otherwise, we will also call qdisc_put()
on the child Qdiscs in qdisc_destroy() -> taprio_destroy(), and this
will cause a nasty use-after-free/refcount-saturate/whatever.

In short, the problem is that since the blamed commit, taprio_leaf()
needs q->qdiscs[] to not be freed by taprio_attach(), while qdisc_destroy()
-> taprio_destroy() does need q->qdiscs[] to be freed by taprio_attach()
for full offload. Fixing one problem triggers the other.

All of this can be solved by making taprio keep its q->qdiscs[i] with a
refcount elevated at 2 (in offloaded mode where they are attached to the
netdev TX queues), both in taprio_attach() and in taprio_graft(). The
generic qdisc_graft() would just decrement the child qdiscs' refcounts
to 1, and taprio_destroy() would give them the final coup de grace.

However the rabbit hole of changes is getting quite deep, and the
complexity increases. The blamed commit was supposed to be a bug fix in
the first place, and the bug it addressed is not so significant so as to
justify further rework in stable trees. So I'd rather just revert it.
I don't know enough about multi-queue Qdisc design to make a proper
judgement right now regarding what is/isn't idiomatic use of Qdisc
concepts in taprio. I will try to study the problem more and come with a
different solution in net-next.

Fixes: 1461d212ab27 ("net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs")
Reported-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Reported-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Link: https://lore.kernel.org/r/20221004220100.1650558-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:27 +01:00
Kees Cook
99e3fd21f8 ext4: Fix function prototype mismatch for ext4_feat_ktype
commit 118901ad1f25d2334255b3d50512fa20591531cd upstream.

With clang's kernel control flow integrity (kCFI, CONFIG_CFI_CLANG),
indirect call targets are validated against the expected function
pointer prototype to make sure the call target is valid to help mitigate
ROP attacks. If they are not identical, there is a failure at run time,
which manifests as either a kernel panic or thread getting killed.

ext4_feat_ktype was setting the "release" handler to "kfree", which
doesn't have a matching function prototype. Add a simple wrapper
with the correct prototype.

This was found as a result of Clang's new -Wcast-function-type-strict
flag, which is more sensitive than the simpler -Wcast-function-type,
which only checks for type width mismatches.

Note that this code is only reached when ext4 is a loadable module and
it is being unloaded:

 CFI failure at kobject_put+0xbb/0x1b0 (target: kfree+0x0/0x180; expected type: 0x7c4aa698)
 ...
 RIP: 0010:kobject_put+0xbb/0x1b0
 ...
 Call Trace:
  <TASK>
  ext4_exit_sysfs+0x14/0x60 [ext4]
  cleanup_module+0x67/0xedb [ext4]

Fixes: b99fee58a2 ("ext4: create ext4_feat kobject dynamically")
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Eric Biggers <ebiggers@kernel.org>
Cc: stable@vger.kernel.org
Build-tested-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20230103234616.never.915-kees@kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Link: https://lore.kernel.org/r/20230104210908.gonna.388-kees@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:27 +01:00
Lukas Wunner
6f86bb6f85 wifi: mwifiex: Add missing compatible string for SD8787
commit 36dd7a4c6226133b0b7aa92b8e604e688d958d0c upstream.

Commit e3fffc1f0b ("devicetree: document new marvell-8xxx and
pwrseq-sd8787 options") documented a compatible string for SD8787 in
the devicetree bindings, but neglected to add it to the mwifiex driver.

Fixes: e3fffc1f0b ("devicetree: document new marvell-8xxx and pwrseq-sd8787 options")
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: stable@vger.kernel.org # v4.11+
Cc: Matt Ranostay <mranostay@ti.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/320de5005ff3b8fd76be2d2b859fd021689c3681.1674827105.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:27 +01:00
Dave Hansen
6c750ed036 uaccess: Add speculation barrier to copy_from_user()
commit 74e19ef0ff8061ef55957c3abd71614ef0f42f47 upstream.

The results of "access_ok()" can be mis-speculated.  The result is that
you can end speculatively:

	if (access_ok(from, size))
		// Right here

even for bad from/size combinations.  On first glance, it would be ideal
to just add a speculation barrier to "access_ok()" so that its results
can never be mis-speculated.

But there are lots of system calls just doing access_ok() via
"copy_to_user()" and friends (example: fstat() and friends).  Those are
generally not problematic because they do not _consume_ data from
userspace other than the pointer.  They are also very quick and common
system calls that should not be needlessly slowed down.

"copy_from_user()" on the other hand uses a user-controller pointer and
is frequently followed up with code that might affect caches.  Take
something like this:

	if (!copy_from_user(&kernelvar, uptr, size))
		do_something_with(kernelvar);

If userspace passes in an evil 'uptr' that *actually* points to a kernel
addresses, and then do_something_with() has cache (or other)
side-effects, it could allow userspace to infer kernel data values.

Add a barrier to the common copy_from_user() code to prevent
mis-speculated values which happen after the copy.

Also add a stub for architectures that do not define barrier_nospec().
This makes the macro usable in generic code.

Since the barrier is now usable in generic code, the x86 #ifdef in the
BPF code can also go away.

Reported-by: Jordy Zomer <jordyzomer@google.com>
Suggested-by: Linus Torvalds <torvalds@linuxfoundation.org>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>   # BPF bits
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:26 +01:00
Pavel Skripkin
4d2e5de071 mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh
commit 8b5cb7e41d9d77ffca036b0239177de123394a55 upstream.

Syzbot hit NULL deref in rhashtable_free_and_destroy(). The problem was
in mesh_paths and mpp_paths being NULL.

mesh_pathtbl_init() could fail in case of memory allocation failure, but
nobody cared, since ieee80211_mesh_init_sdata() returns void. It led to
leaving 2 pointers as NULL. Syzbot has found null deref on exit path,
but it could happen anywhere else, because code assumes these pointers are
valid.

Since all ieee80211_*_setup_sdata functions are void and do not fail,
let's embedd mesh_paths and mpp_paths into parent struct to avoid
adding error handling on higher levels and follow the pattern of others
setup_sdata functions

Fixes: 60854fd945 ("mac80211: mesh: convert path table to rhashtable")
Reported-and-tested-by: syzbot+860268315ba86ea6b96b@syzkaller.appspotmail.com
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Link: https://lore.kernel.org/r/20211230195547.23977-1-paskripkin@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
[pchelkin@ispras.ru: adapt a comment spell fixing issue]
Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:26 +01:00
Zheng Wang
787ef0db01 drm/i915/gvt: fix double free bug in split_2MB_gtt_entry
commit 4a61648af68f5ba4884f0e3b494ee1cabc4b6620 upstream.

If intel_gvt_dma_map_guest_page failed, it will call
ppgtt_invalidate_spt, which will finally free the spt.
But the caller function ppgtt_populate_spt_by_guest_entry
does not notice that, it will free spt again in its error
path.

Fix this by canceling the mapping of DMA address and freeing sub_spt.
Besides, leave the handle of spt destroy to caller function instead
of callee function when error occurs.

Fixes: b901b252b6 ("drm/i915/gvt: Add 2M huge gtt support")
Signed-off-by: Zheng Wang <zyytlz.wz@163.com>
Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20221229165641.1192455-1-zyytlz.wz@163.com
Signed-off-by: Ovidiu Panait <ovidiu.panait@eng.windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:26 +01:00
Thomas Gleixner
100cf2af1b alarmtimer: Prevent starvation by small intervals and SIG_IGN
commit d125d1349abeb46945dc5e98f7824bf688266f13 upstream.

syzbot reported a RCU stall which is caused by setting up an alarmtimer
with a very small interval and ignoring the signal. The reproducer arms the
alarm timer with a relative expiry of 8ns and an interval of 9ns. Not a
problem per se, but that's an issue when the signal is ignored because then
the timer is immediately rearmed because there is no way to delay that
rearming to the signal delivery path.  See posix_timer_fn() and commit
58229a1899 ("posix-timers: Prevent softirq starvation by small intervals
and SIG_IGN") for details.

The reproducer does not set SIG_IGN explicitely, but it sets up the timers
signal with SIGCONT. That has the same effect as explicitely setting
SIG_IGN for a signal as SIGCONT is ignored if there is no handler set and
the task is not ptraced.

The log clearly shows that:

   [pid  5102] --- SIGCONT {si_signo=SIGCONT, si_code=SI_TIMER, si_timerid=0, si_overrun=316014, si_int=0, si_ptr=NULL} ---

It works because the tasks are traced and therefore the signal is queued so
the tracer can see it, which delays the restart of the timer to the signal
delivery path. But then the tracer is killed:

   [pid  5087] kill(-5102, SIGKILL <unfinished ...>
   ...
   ./strace-static-x86_64: Process 5107 detached

and after it's gone the stall can be observed:

   syzkaller login: [   79.439102][    C0] hrtimer: interrupt took 68471 ns
   [  184.460538][    C1] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
   ...
   [  184.658237][    C1] rcu: Stack dump where RCU GP kthread last ran:
   [  184.664574][    C1] Sending NMI from CPU 1 to CPUs 0:
   [  184.669821][    C0] NMI backtrace for cpu 0
   [  184.669831][    C0] CPU: 0 PID: 5108 Comm: syz-executor192 Not tainted 6.2.0-rc6-next-20230203-syzkaller #0
   ...
   [  184.670036][    C0] Call Trace:
   [  184.670041][    C0]  <IRQ>
   [  184.670045][    C0]  alarmtimer_fired+0x327/0x670

posix_timer_fn() prevents that by checking whether the interval for
timers which have the signal ignored is smaller than a jiffie and
artifically delay it by shifting the next expiry out by a jiffie. That's
accurate vs. the overrun accounting, but slightly inaccurate
vs. timer_gettimer(2).

The comment in that function says what needs to be done and there was a fix
available for the regular userspace induced SIG_IGN mechanism, but that did
not work due to the implicit ignore for SIGCONT and similar signals. This
needs to be worked on, but for now the only available workaround is to do
exactly what posix_timer_fn() does:

Increase the interval of self-rearming timers, which have their signal
ignored, to at least a jiffie.

Interestingly this has been fixed before via commit ff86bf0c65
("alarmtimer: Rate limit periodic intervals") already, but that fix got
lost in a later rework.

Reported-by: syzbot+b9564ba6e8e00694511b@syzkaller.appspotmail.com
Fixes: f2c45807d3 ("alarmtimer: Switch over to generic set/get/rearm routine")
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <jstultz@google.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/87k00q1no2.ffs@tglx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-25 11:53:26 +01:00
Sean Anderson
dab2066c5f powerpc: dts: t208x: Disable 10G on MAC1 and MAC2
[ Upstream commit 8d8bee13ae9e316443c6666286360126a19c8d94 ]

There aren't enough resources to run these ports at 10G speeds. Disable
10G for these ports, reverting to the previous speed.

Fixes: 36926a7d70c2 ("powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G")
Reported-by: Camelia Alexandra Groza <camelia.groza@nxp.com>
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Camelia Groza <camelia.groza@nxp.com>
Tested-by: Camelia Groza <camelia.groza@nxp.com>
Link: https://lore.kernel.org/r/20221216172937.2960054-1-sean.anderson@seco.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:26 +01:00
Marc Kleine-Budde
113e0cde39 can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len
[ Upstream commit f006229135b7debf4037adb1eb93e358559593db ]

Debian's gcc-13 [1] throws the following error in
kvaser_usb_hydra_cmd_size():

[1] gcc version 13.0.0 20221214 (experimental) [master r13-4693-g512098a3316] (Debian 13-20221214-1)

| drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c:502:65: error:
| array subscript ‘struct kvaser_cmd_ext[0]’ is partly outside array
| bounds of ‘unsigned char[32]’ [-Werror=array-bounds=]
|   502 |                 ret = le16_to_cpu(((struct kvaser_cmd_ext *)cmd)->len);

kvaser_usb_hydra_cmd_size() returns the size of given command. It
depends on the command number (cmd->header.cmd_no). For extended
commands (cmd->header.cmd_no == CMD_EXTENDED) the above shown code is
executed.

Help gcc to recognize that this code path is not taken in all cases,
by calling kvaser_usb_hydra_cmd_size() directly after assigning the
command number.

Fixes: aec5fb2268 ("can: kvaser_usb: Add support for Kvaser USB hydra family")
Cc: Jimmy Assarsson <extja@kvaser.com>
Cc: Anssi Hannula <anssi.hannula@bitwise.fi>
Link: https://lore.kernel.org/all/20221219110104.1073881-1-mkl@pengutronix.de
Tested-by: Jimmy Assarsson <extja@kvaser.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:26 +01:00
Jim Mattson
f93a1a5bdc KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
[ Upstream commit 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5 ]

According to Intel's document on Indirect Branch Restricted
Speculation, "Enabling IBRS does not prevent software from controlling
the predicted targets of indirect branches of unrelated software
executed later at the same predictor mode (for example, between two
different user applications, or two different virtual machines). Such
isolation can be ensured through use of the Indirect Branch Predictor
Barrier (IBPB) command." This applies to both basic and enhanced IBRS.

Since L1 and L2 VMs share hardware predictor modes (guest-user and
guest-kernel), hardware IBRS is not sufficient to virtualize
IBRS. (The way that basic IBRS is implemented on pre-eIBRS parts,
hardware IBRS is actually sufficient in practice, even though it isn't
sufficient architecturally.)

For virtual CPUs that support IBRS, add an indirect branch prediction
barrier on emulated VM-exit, to ensure that the predicted targets of
indirect branches executed in L1 cannot be controlled by software that
was executed in L2.

Since we typically don't intercept guest writes to IA32_SPEC_CTRL,
perform the IBPB at emulated VM-exit regardless of the current
IA32_SPEC_CTRL.IBRS value, even though the IBPB could technically be
deferred until L1 sets IA32_SPEC_CTRL.IBRS, if IA32_SPEC_CTRL.IBRS is
clear at emulated VM-exit.

This is CVE-2022-2196.

Fixes: 5c911beff20a ("KVM: nVMX: Skip IBPB when switching between vmcs01 and vmcs02")
Cc: Sean Christopherson <seanjc@google.com>
Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20221019213620.1953281-3-jmattson@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:26 +01:00
Sean Christopherson
db209f39f1 KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception
[ Upstream commit 17122c06b86c9f77f45b86b8e62c3ed440847a59 ]

Treat any exception during instruction decode for EMULTYPE_SKIP as a
"full" emulation failure, i.e. signal failure instead of queuing the
exception.  When decoding purely to skip an instruction, KVM and/or the
CPU has already done some amount of emulation that cannot be unwound,
e.g. on an EPT misconfig VM-Exit KVM has already processeed the emulated
MMIO.  KVM already does this if a #UD is encountered, but not for other
exceptions, e.g. if a #PF is encountered during fetch.

In SVM's soft-injection use case, queueing the exception is particularly
problematic as queueing exceptions while injecting events can put KVM
into an infinite loop due to bailing from VM-Enter to service the newly
pending exception.  E.g. multiple warnings to detect such behavior fire:

  ------------[ cut here ]------------
  WARNING: CPU: 3 PID: 1017 at arch/x86/kvm/x86.c:9873 kvm_arch_vcpu_ioctl_run+0x1de5/0x20a0 [kvm]
  Modules linked in: kvm_amd ccp kvm irqbypass
  CPU: 3 PID: 1017 Comm: svm_nested_soft Not tainted 6.0.0-rc1+ #220
  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
  RIP: 0010:kvm_arch_vcpu_ioctl_run+0x1de5/0x20a0 [kvm]
  Call Trace:
   kvm_vcpu_ioctl+0x223/0x6d0 [kvm]
   __x64_sys_ioctl+0x85/0xc0
   do_syscall_64+0x2b/0x50
   entry_SYSCALL_64_after_hwframe+0x46/0xb0
  ---[ end trace 0000000000000000 ]---
  ------------[ cut here ]------------
  WARNING: CPU: 3 PID: 1017 at arch/x86/kvm/x86.c:9987 kvm_arch_vcpu_ioctl_run+0x12a3/0x20a0 [kvm]
  Modules linked in: kvm_amd ccp kvm irqbypass
  CPU: 3 PID: 1017 Comm: svm_nested_soft Tainted: G        W          6.0.0-rc1+ #220
  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015
  RIP: 0010:kvm_arch_vcpu_ioctl_run+0x12a3/0x20a0 [kvm]
  Call Trace:
   kvm_vcpu_ioctl+0x223/0x6d0 [kvm]
   __x64_sys_ioctl+0x85/0xc0
   do_syscall_64+0x2b/0x50
   entry_SYSCALL_64_after_hwframe+0x46/0xb0
  ---[ end trace 0000000000000000 ]---

Fixes: 6ea6e84309 ("KVM: x86: inject exceptions produced by x86_decode_insn")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20220930233632.1725475-1-seanjc@google.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:26 +01:00
Jason A. Donenfeld
dc399695df random: always mix cycle counter in add_latent_entropy()
[ Upstream commit d7bf7f3b813e3755226bcb5114ad2ac477514ebf ]

add_latent_entropy() is called every time a process forks, in
kernel_clone(). This in turn calls add_device_randomness() using the
latent entropy global state. add_device_randomness() does two things:

   2) Mixes into the input pool the latent entropy argument passed; and
   1) Mixes in a cycle counter, a sort of measurement of when the event
      took place, the high precision bits of which are presumably
      difficult to predict.

(2) is impossible without CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y. But (1) is
always possible. However, currently CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n
disables both (1) and (2), instead of just (2).

This commit causes the CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n case to still
do (1) by passing NULL (len 0) to add_device_randomness() when add_latent_
entropy() is called.

Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: PaX Team <pageexec@freemail.hu>
Cc: Emese Revfy <re.emese@gmail.com>
Fixes: 38addce8b6 ("gcc-plugins: Add latent_entropy plugin")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Sean Anderson
eff0e02f7d powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G
[ Upstream commit 36926a7d70c2d462fca1ed85bfee000d17fd8662 ]

On the T208X SoCs, MAC1 and MAC2 support XGMII. Add some new MAC dtsi
fragments, and mark the QMAN ports as 10G.

Fixes: da414bb923 ("powerpc/mpc85xx: Add FSL QorIQ DPAA FMan support to the SoC device tree(s)")
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Bitterblue Smith
ead0689bd6 wifi: rtl8xxxu: gen2: Turn on the rate control
[ Upstream commit 791082ec0ab843e0be07c8ce3678e4c2afd2e33d ]

Re-enable the function rtl8xxxu_gen2_report_connect.

It informs the firmware when connecting to a network. This makes the
firmware enable the rate control, which makes the upload faster.

It also informs the firmware when disconnecting from a network. In the
past this made reconnecting impossible because it was sending the
auth on queue 0x7 (TXDESC_QUEUE_VO) instead of queue 0x12
(TXDESC_QUEUE_MGNT):

wlp0s20f0u3: send auth to 90:55:de:__:__:__ (try 1/3)
wlp0s20f0u3: send auth to 90:55:de:__:__:__ (try 2/3)
wlp0s20f0u3: send auth to 90:55:de:__:__:__ (try 3/3)
wlp0s20f0u3: authentication with 90:55:de:__:__:__ timed out

Probably the firmware disables the unnecessary TX queues when it
knows it's disconnected.

However, this was fixed in commit edd5747aa12e ("wifi: rtl8xxxu: Fix
skb misuse in TX queue selection").

Fixes: c59f13bbea ("rtl8xxxu: Work around issue with 8192eu and 8723bu devices not reconnecting")
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/43200afc-0c65-ee72-48f8-231edd1df493@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Lucas Stach
0a77a966aa drm/etnaviv: don't truncate physical page address
[ Upstream commit d37c120b73128690434cc093952439eef9d56af1 ]

While the interface for the MMU mapping takes phys_addr_t to hold a
full 64bit address when necessary and MMUv2 is able to map physical
addresses with up to 40bit, etnaviv_iommu_map() truncates the address
to 32bits. Fix this by using the correct type.

Fixes: 931e97f3af ("drm/etnaviv: mmuv2: support 40 bit phys address")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Marek Szyprowski
fa2845b216 drm: etnaviv: fix common struct sg_table related issues
[ Upstream commit 182354a526a0540c9197e03d9fce8a949ffd36ca ]

The Documentation/DMA-API-HOWTO.txt states that the dma_map_sg() function
returns the number of the created entries in the DMA address space.
However the subsequent calls to the dma_sync_sg_for_{device,cpu}() and
dma_unmap_sg must be called with the original number of the entries
passed to the dma_map_sg().

struct sg_table is a common structure used for describing a non-contiguous
memory buffer, used commonly in the DRM and graphics subsystems. It
consists of a scatterlist with memory pages and DMA addresses (sgl entry),
as well as the number of scatterlist entries: CPU pages (orig_nents entry)
and DMA mapped pages (nents entry).

It turned out that it was a common mistake to misuse nents and orig_nents
entries, calling DMA-mapping functions with a wrong number of entries or
ignoring the number of mapped entries returned by the dma_map_sg()
function.

To avoid such issues, lets use a common dma-mapping wrappers operating
directly on the struct sg_table objects and use scatterlist page
iterators where possible. This, almost always, hides references to the
nents and orig_nents entries, making the code robust, easier to follow
and copy/paste safe.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Stable-dep-of: d37c120b7312 ("drm/etnaviv: don't truncate physical page address")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Marek Szyprowski
4626550b09 scatterlist: add generic wrappers for iterating over sgtable objects
[ Upstream commit 709d6d73c756107fb8a292a9f957d630097425fa ]

struct sg_table is a common structure used for describing a memory
buffer. It consists of a scatterlist with memory pages and DMA addresses
(sgl entry), as well as the number of scatterlist entries: CPU pages
(orig_nents entry) and DMA mapped pages (nents entry).

It turned out that it was a common mistake to misuse nents and orig_nents
entries, calling the scatterlist iterating functions with a wrong number
of the entries.

To avoid such issues, lets introduce a common wrappers operating directly
on the struct sg_table objects, which take care of the proper use of
the nents and orig_nents entries.

While touching this, lets clarify some ambiguities in the comments for
the existing for_each helpers.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Stable-dep-of: d37c120b7312 ("drm/etnaviv: don't truncate physical page address")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Marek Szyprowski
fe3e217272 dma-mapping: add generic helpers for mapping sgtable objects
[ Upstream commit d9d200bcebc1f6e56f0178cbb8db9953e8cc9a11 ]

struct sg_table is a common structure used for describing a memory
buffer. It consists of a scatterlist with memory pages and DMA addresses
(sgl entry), as well as the number of scatterlist entries: CPU pages
(orig_nents entry) and DMA mapped pages (nents entry).

It turned out that it was a common mistake to misuse nents and orig_nents
entries, calling DMA-mapping functions with a wrong number of entries or
ignoring the number of mapped entries returned by the dma_map_sg
function.

To avoid such issues, let's introduce a common wrappers operating
directly on the struct sg_table objects, which take care of the proper
use of the nents and orig_nents entries.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Stable-dep-of: d37c120b7312 ("drm/etnaviv: don't truncate physical page address")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-02-25 11:53:25 +01:00
Greg Kroah-Hartman
abc4ede193 This is the 5.4.232 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmP2AZoACgkQONu9yGCS
 aT4Kog//cMOCPvc+9yam5NCZj76k9jzIfteKMZzvSyxjV/ShPGynLIwcR26vE4j1
 CtEB0aknuxgpqthfCahjjf51POhYLJD62H62UtTfxgIkWxnETd8F6y2xvuVXsds5
 mC0LUzQ9md6slgTTIobQF9ilIGAt/yKPOg89fUXNYzNsO2us46XZCmZOXg5MVwlI
 hXYQuVBze1VhWt40J8TYDFckjoQLUgH6lBawWHC8/r2MBBydzX1cZEyL2TXhDfFS
 7t9gWXKteAFE6GWfgAY6MrtqGx+X25Xe7qds4V8v6FgxR2MFeo94+k3DbhXRnjjY
 gA6czJBurGzhiXWo2E4laYlEMfsY0qkl17M49C/LwkJhZCSjF60b0Vo0dNfLLogZ
 cWsG6qcrfV8/js5h97kFSluWZ4VM7xTgcJQ/qtU/O8IprRQioCERjvm4Dl+/emXI
 ycFaiZOP3RvYdHxADIsItm46C7WzpzqZpjjs+9jHEaACrnOQfepGGFmgImMd9P8r
 kkU5KUtPQoAgSFfPz1tvJgyQiazONRAKtg1UprPOnLN0PsBQrE8ekCOk9lDoW60l
 t+G2lC0dJBYkcKC+4jHa9y18U7wz/eYdYE+K/u8kUENYFLSBfYxIqbXPxQZcq6aO
 TnyVr1n+Dd3HXtLX58+vDE2RUjosvCXctBGrE6Q56d8AKXh6FvM=
 =rk4j
 -----END PGP SIGNATURE-----

Merge 5.4.232 into android11-5.4-lts

Changes in 5.4.232
	firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region
	bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
	ASoC: Intel: bytcr_rt5651: Drop reference count of ACPI device after use
	ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
	arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
	scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT"
	WRITE is "data source", not destination...
	fix iov_iter_bvec() "direction" argument
	fix "direction" argument of iov_iter_kvec()
	netrom: Fix use-after-free caused by accept on already connected socket
	netfilter: br_netfilter: disable sabotage_in hook after first suppression
	squashfs: harden sanity check in squashfs_read_xattr_id_table
	net: phy: meson-gxl: Add generic dummy stubs for MMD register access
	can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate
	ata: libata: Fix sata_down_spd_limit() when no link speed is reported
	selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning
	selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided
	selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs
	selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking
	virtio-net: Keep stop() to follow mirror sequence of open()
	net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
	efi: fix potential NULL deref in efi_mem_reserve_persistent
	scsi: target: core: Fix warning on RT kernels
	scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress
	i2c: rk3x: fix a bunch of kernel-doc warnings
	net/x25: Fix to not accept on connected socket
	iio: adc: stm32-dfsdm: fill module aliases
	usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API
	usb: dwc3: qcom: enable vbus override when in OTG dr-mode
	usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
	vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF
	Input: i8042 - move __initconst to fix code styling warning
	Input: i8042 - merge quirk tables
	Input: i8042 - add TUXEDO devices to i8042 quirk tables
	Input: i8042 - add Clevo PCX0DX to i8042 quirk table
	fbcon: Check font dimension limits
	watchdog: diag288_wdt: do not use stack buffers for hardware data
	watchdog: diag288_wdt: fix __diag288() inline assembly
	efi: Accept version 2 of memory attributes table
	iio: hid: fix the retval in accel_3d_capture_sample
	iio: adc: berlin2-adc: Add missing of_node_put() in error path
	iio:adc:twl6030: Enable measurements of VUSB, VBAT and others
	parisc: Fix return code of pdc_iodc_print()
	parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case
	riscv: disable generation of unwind tables
	mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps
	fpga: stratix10-soc: Fix return value check in s10_ops_write_init()
	mm/swapfile: add cond_resched() in get_swap_pages()
	Squashfs: fix handling and sanity checking of xattr_ids count
	nvmem: core: fix cell removal on error
	mm: swap: properly update readahead statistics in unuse_pte_range()
	xprtrdma: Fix regbuf data not freed in rpcrdma_req_create()
	serial: 8250_dma: Fix DMA Rx completion race
	serial: 8250_dma: Fix DMA Rx rearm race
	powerpc/imc-pmu: Revert nest_init_lock to being a mutex
	fbdev: smscufx: fix error handling code in ufx_usb_probe
	f2fs: fix to do sanity check on i_extra_isize in is_alive()
	wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads
	iio:adc:twl6030: Enable measurement of VAC
	btrfs: limit device extents to the device size
	btrfs: zlib: zero-initialize zlib workspace
	ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
	tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw
	can: j1939: do not wait 250 ms if the same addr was already claimed
	IB/hfi1: Restore allocated resources on failed copyout
	IB/IPoIB: Fix legacy IPoIB due to wrong number of queues
	iommu: Add gfp parameter to iommu_ops::map
	RDMA/usnic: use iommu_map_atomic() under spin_lock()
	xfrm: fix bug with DSCP copy to v6 from v4 tunnel
	bonding: fix error checking in bond_debug_reregister()
	net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY
	ionic: clean interrupt before enabling queue to avoid credit race
	ice: Do not use WQ_MEM_RECLAIM flag for workqueue
	rds: rds_rm_zerocopy_callback() use list_first_entry()
	selftests: forwarding: lib: quote the sysctl values
	ALSA: pci: lx6464es: fix a debug loop
	pinctrl: aspeed: Fix confusing types in return value
	pinctrl: single: fix potential NULL dereference
	pinctrl: intel: Restore the pins that used to be in Direct IRQ mode
	net: USB: Fix wrong-direction WARNING in plusb.c
	usb: core: add quirk for Alcor Link AK9563 smartcard reader
	usb: typec: altmodes/displayport: Fix probe pin assign check
	ceph: flush cap releases when the session is flushed
	riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte
	arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
	arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
	arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
	nvme-pci: Move enumeration by class to be last in the table
	bpf: Always return target ifindex in bpf_fib_lookup
	migrate: hugetlb: check for hugetlb shared PMD in node migration
	selftests/bpf: Verify copy_register_state() preserves parent/live fields
	ASoC: cs42l56: fix DT probe
	tools/virtio: fix the vringh test for virtio ring changes
	net/rose: Fix to not accept on connected socket
	net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC
	net: sched: sch: Bounds check priority
	s390/decompressor: specify __decompress() buf len to avoid overflow
	nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association
	aio: fix mremap after fork null-deref
	btrfs: free device in btrfs_close_devices for a single device filesystem
	netfilter: nft_tproxy: restrict to prerouting hook
	xfs: remove the xfs_efi_log_item_t typedef
	xfs: remove the xfs_efd_log_item_t typedef
	xfs: remove the xfs_inode_log_item_t typedef
	xfs: factor out a xfs_defer_create_intent helper
	xfs: merge the ->log_item defer op into ->create_intent
	xfs: merge the ->diff_items defer op into ->create_intent
	xfs: turn dfp_intent into a xfs_log_item
	xfs: refactor xfs_defer_finish_noroll
	xfs: log new intent items created as part of finishing recovered intent items
	xfs: fix finobt btree block recovery ordering
	xfs: proper replay of deferred ops queued during log recovery
	xfs: xfs_defer_capture should absorb remaining block reservations
	xfs: xfs_defer_capture should absorb remaining transaction reservation
	xfs: clean up bmap intent item recovery checking
	xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering
	xfs: fix an incore inode UAF in xfs_bui_recover
	xfs: change the order in which child and parent defer ops are finished
	xfs: periodically relog deferred intent items
	xfs: expose the log push threshold
	xfs: only relog deferred intent items if free space in the log gets low
	xfs: fix missing CoW blocks writeback conversion retry
	xfs: ensure inobt record walks always make forward progress
	xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks
	xfs: prevent UAF in xfs_log_item_in_current_chkpt
	xfs: sync lazy sb accounting on quiesce of read-only mounts
	Revert "ipv4: Fix incorrect route flushing when source address is deleted"
	ipv4: Fix incorrect route flushing when source address is deleted
	mmc: sdio: fix possible resource leaks in some error paths
	mmc: mmc_spi: fix error handling in mmc_spi_probe()
	ALSA: hda/conexant: add a new hda codec SN6180
	ALSA: hda/realtek - fixed wrong gpio assigned
	sched/psi: Fix use-after-free in ep_remove_wait_queue()
	hugetlb: check for undefined shift on 32 bit architectures
	Revert "mm: Always release pages to the buddy allocator in memblock_free_late()."
	net: Fix unwanted sign extension in netdev_stats_to_stats64()
	revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
	ixgbe: allow to increase MTU to 3K with XDP enabled
	i40e: add double of VLAN header when computing the max MTU
	net: bgmac: fix BCM5358 support by setting correct flags
	sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list
	dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions.
	net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path
	net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence
	bnxt_en: Fix mqprio and XDP ring checking logic
	net: stmmac: Restrict warning on disabling DMA store and fwd mode
	net: mpls: fix stale pointer if allocation fails during device rename
	ixgbe: add double of VLAN header when computing the max MTU
	ipv6: Fix datagram socket connection with DSCP.
	ipv6: Fix tcp socket connection with DSCP.
	i40e: Add checking for null for nlmsg_find_attr()
	kvm: initialize all of the kvm_debugregs structure before sending it to userspace
	nilfs2: fix underflow in second superblock position calculations
	ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
	net: sched: sch: Fix off by one in htb_activate_prios()
	iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
	Linux 5.4.232

Change-Id: I607aaac0f8477eb9a0f059e0a9d2f5c037fb19fc
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-02-22 12:30:48 +00:00
Greg Kroah-Hartman
64121e2adf Linux 5.4.232
Link: https://lore.kernel.org/r/20230220133602.515342638@linuxfoundation.org
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: Guenter Roeck <linux@roeck-us.net>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Tested-by: Hulk Robot <hulkrobot@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-22 12:50:42 +01:00
Joerg Roedel
8b47e324af iommu/amd: Pass gfp flags to iommu_map_page() in amd_iommu_map()
commit 3057fb9377eb5e73386dd0d8804bf72bdd23e391 upstream.

A recent commit added a gfp parameter to amd_iommu_map() to make it
callable from atomic context, but forgot to pass it down to
iommu_map_page() and left GFP_KERNEL there. This caused
sleep-while-atomic warnings and needs to be fixed.

Reported-by: Qian Cai <cai@lca.pw>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map")
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-22 12:50:42 +01:00
Dan Carpenter
7519069f1f net: sched: sch: Fix off by one in htb_activate_prios()
commit 9cec2aaffe969f2a3e18b5ec105fc20bb908e475 upstream.

The > needs be >= to prevent an out of bounds access.

Fixes: de5ca4c3852f ("net: sched: sch: Bounds check priority")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/Y+D+KN18FQI2DKLq@kili
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-22 12:50:42 +01:00
Pierre-Louis Bossart
5660a6ffa7 ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak
commit 1f810d2b6b2fbdc5279644d8b2c140b1f7c9d43d upstream.

The HDaudio stream allocation is done first, and in a second step the
LOSIDV parameter is programmed for the multi-link used by a codec.

This leads to a possible stream_tag leak, e.g. if a DisplayAudio link
is not used. This would happen when a non-Intel graphics card is used
and userspace unconditionally uses the Intel Display Audio PCMs without
checking if they are connected to a receiver with jack controls.

We should first check that there is a valid multi-link entry to
configure before allocating a stream_tag. This change aligns the
dma_assign and dma_cleanup phases.

Complements: b0cd60f3e9f5 ("ALSA/ASoC: hda: clarify bus_get_link() and bus_link_get() helpers")
Link: https://github.com/thesofproject/linux/issues/4151
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20230216162340.19480-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-22 12:50:42 +01:00
Ryusuke Konishi
52844d8382 nilfs2: fix underflow in second superblock position calculations
commit 99b9402a36f0799f25feee4465bfa4b8dfa74b4d upstream.

Macro NILFS_SB2_OFFSET_BYTES, which computes the position of the second
superblock, underflows when the argument device size is less than 4096
bytes.  Therefore, when using this macro, it is necessary to check in
advance that the device size is not less than a lower limit, or at least
that underflow does not occur.

The current nilfs2 implementation lacks this check, causing out-of-bound
block access when mounting devices smaller than 4096 bytes:

 I/O error, dev loop0, sector 36028797018963960 op 0x0:(READ) flags 0x0
 phys_seg 1 prio class 2
 NILFS (loop0): unable to read secondary superblock (blocksize = 1024)

In addition, when trying to resize the filesystem to a size below 4096
bytes, this underflow occurs in nilfs_resize_fs(), passing a huge number
of segments to nilfs_sufile_resize(), corrupting parameters such as the
number of segments in superblocks.  This causes excessive loop iterations
in nilfs_sufile_resize() during a subsequent resize ioctl, causing
semaphore ns_segctor_sem to block for a long time and hang the writer
thread:

 INFO: task segctord:5067 blocked for more than 143 seconds.
      Not tainted 6.2.0-rc8-syzkaller-00015-gf6feea56f66d #0
 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
 task:segctord        state:D stack:23456 pid:5067  ppid:2
 flags:0x00004000
 Call Trace:
  <TASK>
  context_switch kernel/sched/core.c:5293 [inline]
  __schedule+0x1409/0x43f0 kernel/sched/core.c:6606
  schedule+0xc3/0x190 kernel/sched/core.c:6682
  rwsem_down_write_slowpath+0xfcf/0x14a0 kernel/locking/rwsem.c:1190
  nilfs_transaction_lock+0x25c/0x4f0 fs/nilfs2/segment.c:357
  nilfs_segctor_thread_construct fs/nilfs2/segment.c:2486 [inline]
  nilfs_segctor_thread+0x52f/0x1140 fs/nilfs2/segment.c:2570
  kthread+0x270/0x300 kernel/kthread.c:376
  ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:308
  </TASK>
 ...
 Call Trace:
  <TASK>
  folio_mark_accessed+0x51c/0xf00 mm/swap.c:515
  __nilfs_get_page_block fs/nilfs2/page.c:42 [inline]
  nilfs_grab_buffer+0x3d3/0x540 fs/nilfs2/page.c:61
  nilfs_mdt_submit_block+0xd7/0x8f0 fs/nilfs2/mdt.c:121
  nilfs_mdt_read_block+0xeb/0x430 fs/nilfs2/mdt.c:176
  nilfs_mdt_get_block+0x12d/0xbb0 fs/nilfs2/mdt.c:251
  nilfs_sufile_get_segment_usage_block fs/nilfs2/sufile.c:92 [inline]
  nilfs_sufile_truncate_range fs/nilfs2/sufile.c:679 [inline]
  nilfs_sufile_resize+0x7a3/0x12b0 fs/nilfs2/sufile.c:777
  nilfs_resize_fs+0x20c/0xed0 fs/nilfs2/super.c:422
  nilfs_ioctl_resize fs/nilfs2/ioctl.c:1033 [inline]
  nilfs_ioctl+0x137c/0x2440 fs/nilfs2/ioctl.c:1301
  ...

This fixes these issues by inserting appropriate minimum device size
checks or anti-underflow checks, depending on where the macro is used.

Link: https://lkml.kernel.org/r/0000000000004e1dfa05f4a48e6b@google.com
Link: https://lkml.kernel.org/r/20230214224043.24141-1-konishi.ryusuke@gmail.com
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Reported-by: <syzbot+f0c4082ce5ebebdac63b@syzkaller.appspotmail.com>
Tested-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-22 12:50:41 +01:00