Commit Graph

1165241 Commits

Author SHA1 Message Date
Daniele Palmas
da518cc9b6 net: usb: qmi_wwan: fix memory leak for not ip packets
[ Upstream commit 7ab107544b777c3bd7feb9fe447367d8edd5b202 ]

Free the unused skb when not ip packets arrive.

Fixes: c6adf77953 ("net: usb: qmi_wwan: add qmap mux protocol support")
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
Acked-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Kuniyuki Iwashima
05e4a0fa24 sctp: Fix null-ptr-deref in reuseport_add_sock().
[ Upstream commit 9ab0faa7f9ffe31296dbb9bbe6f76c72c14eea18 ]

syzbot reported a null-ptr-deref while accessing sk2->sk_reuseport_cb in
reuseport_add_sock(). [0]

The repro first creates a listener with SO_REUSEPORT.  Then, it creates
another listener on the same port and concurrently closes the first
listener.

The second listen() calls reuseport_add_sock() with the first listener as
sk2, where sk2->sk_reuseport_cb is not expected to be cleared concurrently,
but the close() does clear it by reuseport_detach_sock().

The problem is SCTP does not properly synchronise reuseport_alloc(),
reuseport_add_sock(), and reuseport_detach_sock().

The caller of reuseport_alloc() and reuseport_{add,detach}_sock() must
provide synchronisation for sockets that are classified into the same
reuseport group.

Otherwise, such sockets form multiple identical reuseport groups, and
all groups except one would be silently dead.

  1. Two sockets call listen() concurrently
  2. No socket in the same group found in sctp_ep_hashtable[]
  3. Two sockets call reuseport_alloc() and form two reuseport groups
  4. Only one group hit first in __sctp_rcv_lookup_endpoint() receives
      incoming packets

Also, the reported null-ptr-deref could occur.

TCP/UDP guarantees that would not happen by holding the hash bucket lock.

Let's apply the locking strategy to __sctp_hash_endpoint() and
__sctp_unhash_endpoint().

[0]:
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] PREEMPT SMP KASAN PTI
KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
CPU: 1 UID: 0 PID: 10230 Comm: syz-executor119 Not tainted 6.10.0-syzkaller-12585-g301927d2d2eb #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024
RIP: 0010:reuseport_add_sock+0x27e/0x5e0 net/core/sock_reuseport.c:350
Code: 00 0f b7 5d 00 bf 01 00 00 00 89 de e8 1b a4 ff f7 83 fb 01 0f 85 a3 01 00 00 e8 6d a0 ff f7 49 8d 7e 12 48 89 f8 48 c1 e8 03 <42> 0f b6 04 28 84 c0 0f 85 4b 02 00 00 41 0f b7 5e 12 49 8d 7e 14
RSP: 0018:ffffc9000b947c98 EFLAGS: 00010202
RAX: 0000000000000002 RBX: ffff8880252ddf98 RCX: ffff888079478000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000012
RBP: 0000000000000001 R08: ffffffff8993e18d R09: 1ffffffff1fef385
R10: dffffc0000000000 R11: fffffbfff1fef386 R12: ffff8880252ddac0
R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  00007f24e45b96c0(0000) GS:ffff8880b9300000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffcced5f7b8 CR3: 00000000241be000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __sctp_hash_endpoint net/sctp/input.c:762 [inline]
 sctp_hash_endpoint+0x52a/0x600 net/sctp/input.c:790
 sctp_listen_start net/sctp/socket.c:8570 [inline]
 sctp_inet_listen+0x767/0xa20 net/sctp/socket.c:8625
 __sys_listen_socket net/socket.c:1883 [inline]
 __sys_listen+0x1b7/0x230 net/socket.c:1894
 __do_sys_listen net/socket.c:1902 [inline]
 __se_sys_listen net/socket.c:1900 [inline]
 __x64_sys_listen+0x5a/0x70 net/socket.c:1900
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f24e46039b9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 91 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f24e45b9228 EFLAGS: 00000246 ORIG_RAX: 0000000000000032
RAX: ffffffffffffffda RBX: 00007f24e468e428 RCX: 00007f24e46039b9
RDX: 00007f24e46039b9 RSI: 0000000000000003 RDI: 0000000000000004
RBP: 00007f24e468e420 R08: 00007f24e45b96c0 R09: 00007f24e45b96c0
R10: 00007f24e45b96c0 R11: 0000000000000246 R12: 00007f24e468e42c
R13: 00007f24e465a5dc R14: 0020000000000001 R15: 00007ffcced5f7d8
 </TASK>
Modules linked in:

Fixes: 6ba8457402 ("sctp: process sk_reuseport in sctp_get_port_local")
Reported-by: syzbot+e6979a5d2f10ecb700e4@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=e6979a5d2f10ecb700e4
Tested-by: syzbot+e6979a5d2f10ecb700e4@syzkaller.appspotmail.com
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Acked-by: Xin Long <lucien.xin@gmail.com>
Link: https://patch.msgid.link/20240731234624.94055-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Peter Zijlstra
787f44dc14 x86/mm: Fix pti_clone_entry_text() for i386
[ Upstream commit 3db03fb4995ef85fc41e86262ead7b4852f4bcf0 ]

While x86_64 has PMD aligned text sections, i386 does not have this
luxery. Notably ALIGN_ENTRY_TEXT_END is empty and _etext has PAGE
alignment.

This means that text on i386 can be page granular at the tail end,
which in turn means that the PTI text clones should consistently
account for this.

Make pti_clone_entry_text() consistent with pti_clone_kernel_text().

Fixes: 16a3fe634f ("x86/mm/pti: Clone kernel-image on PTE level for 32 bit")
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Peter Zijlstra
5c580c1050 x86/mm: Fix pti_clone_pgtable() alignment assumption
[ Upstream commit 41e71dbb0e0a0fe214545fe64af031303a08524c ]

Guenter reported dodgy crashes on an i386-nosmp build using GCC-11
that had the form of endless traps until entry stack exhaust and then
#DF from the stack guard.

It turned out that pti_clone_pgtable() had alignment assumptions on
the start address, notably it hard assumes start is PMD aligned. This
is true on x86_64, but very much not true on i386.

These assumptions can cause the end condition to malfunction, leading
to a 'short' clone. Guess what happens when the user mapping has a
short copy of the entry text?

Use the correct increment form for addr to avoid alignment
assumptions.

Fixes: 16a3fe634f ("x86/mm/pti: Clone kernel-image on PTE level for 32 bit")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20240731163105.GG33588@noisy.programming.kicks-ass.net
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Peter Zijlstra
a128cec339 jump_label: Fix the fix, brown paper bags galore
[ Upstream commit 224fa3552029a3d14bec7acf72ded8171d551b88 ]

Per the example of:

  !atomic_cmpxchg(&key->enabled, 0, 1)

the inverse was written as:

  atomic_cmpxchg(&key->enabled, 1, 0)

except of course, that while !old is only true for old == 0, old is
true for everything except old == 0.

Fix it to read:

  atomic_cmpxchg(&key->enabled, 1, 0) == 1

such that only the 1->0 transition returns true and goes on to disable
the keys.

Fixes: 83ab38ef0a0b ("jump_label: Fix concurrency issues in static_key_slow_dec()")
Reported-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Darrick J. Wong <djwong@kernel.org>
Link: https://lkml.kernel.org/r/20240731105557.GY33588@noisy.programming.kicks-ass.net
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Kuppuswamy Sathyanarayanan
5a6a894b3a platform/x86/intel/ifs: Initialize union ifs_status to zero
[ Upstream commit 3114f77e9453daa292ec0906f313a715c69b5943 ]

If the IFS scan test exits prematurely due to a timeout before
completing a single run, the union ifs_status remains uninitialized,
leading to incorrect test status reporting. To prevent this, always
initialize the union ifs_status to zero.

Fixes: 2b40e654b7 ("platform/x86/intel/ifs: Add scan test support")
Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Jithu Joseph <jithu.joseph@intel.com>
Reviewed-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Link: https://lore.kernel.org/r/20240730155930.1754744-1-sathyanarayanan.kuppuswamy@linux.intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Jithu Joseph
84fec10ef5 platform/x86/intel/ifs: Gen2 Scan test support
[ Upstream commit 72b96ee29ed6f7670bbb180ba694816e33d361d1 ]

Width of chunk related bitfields is ACTIVATE_SCAN and SCAN_STATUS MSRs
are different in newer IFS generation compared to gen0.

Make changes to scan test flow such that MSRs are populated
appropriately based on the generation supported by hardware.

Account for the 8/16 bit MSR bitfield width differences between gen0 and
newer generations for the scan test trace event too.

Signed-off-by: Jithu Joseph <jithu.joseph@intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tested-by: Pengfei Xu <pengfei.xu@intel.com>
Link: https://lore.kernel.org/r/20231005195137.3117166-5-jithu.joseph@intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Stable-dep-of: 3114f77e9453 ("platform/x86/intel/ifs: Initialize union ifs_status to zero")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:43 +02:00
Yipeng Zou
a2484dc702 irqchip/mbigen: Fix mbigen node address layout
[ Upstream commit 6be6cba9c4371d27f78d900ccfe34bb880d9ee20 ]

The mbigen interrupt chip has its per node registers located in a
contiguous region of page sized chunks. The code maps them into virtual
address space as a contiguous region and determines the address of a node
by using the node ID as index.

                    mbigen chip
       |-----------------|------------|--------------|
   mgn_node_0         mgn_node_1     ...         mgn_node_i
|--------------|   |--------------|       |----------------------|
[0x0000, 0x0x0FFF] [0x1000, 0x1FFF]    [i*0x1000, (i+1)*0x1000 - 1]

This works correctly up to 10 nodes, but then fails because the 11th's
array slot is used for the MGN_CLEAR registers.

                         mbigen chip
    |-----------|--------|--------|---------------|--------|
mgn_node_0  mgn_node_1  ...  mgn_clear_register  ...   mgn_node_i
                            |-----------------|
                             [0xA000, 0xAFFF]

Skip the MGN_CLEAR register space when calculating the offset for node IDs
greater than or equal to ten.

Fixes: a6c2f87b88 ("irqchip/mbigen: Implement the mbigen irq chip operation functions")
Signed-off-by: Yipeng Zou <zouyipeng@huawei.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20240730014400.1751530-1-zouyipeng@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-14 13:52:42 +02:00
Minchan Kim
ab384f79d4 ANDROID: Update the ABI symbol list
Adding the following symbols:
  - bitmap_find_free_region
  - bitmap_release_region
  - of_graph_get_endpoint_by_regs
  - __traceiter_android_rvh_mapping_shrinkable
  - __traceiter_android_rvh_util_est_update
  - __tracepoint_android_rvh_mapping_shrinkable
  - __tracepoint_android_rvh_util_est_update

Bug: 347958166
Change-Id: I4feadf95bf24da1a1554a828e181d4ec65cc9a32
Signed-off-by: Minchan Kim <minchan@google.com>
2024-08-13 20:24:01 +00:00
Minchan Kim
bbf690e531 ANDROID: add vendor hook for mapping_shrinkable
To control inode memory reclaim, add restricted vendor hook.

Bug: 347958166
Change-Id: Iefb9ef66c9fd5abae99adb1200263e4642f991cc
Signed-off-by: Minchan Kim <minchan@google.com>
2024-08-13 20:23:47 +00:00
Bart Van Assche
660e1a2695 FROMLIST: sd: Retry START STOP UNIT commands
During system resume, sd_start_stop_device() submits a START STOP UNIT
command to the SCSI device that is being resumed. That command is not
retried in case of a unit attention and hence may fail. An example:

[16575.983359] sd 0:0:0:3: [sdd] Starting disk
[16575.983693] sd 0:0:0:3: [sdd] Start/Stop Unit failed: Result: hostbyte=0x00 driverbyte=DRIVER_OK
[16575.983712] sd 0:0:0:3: [sdd] Sense Key : 0x6
[16575.983730] sd 0:0:0:3: [sdd] ASC=0x29 ASCQ=0x0
[16575.983738] sd 0:0:0:3: PM: dpm_run_callback(): scsi_bus_resume+0x0/0xa0 returns -5
[16575.983783] sd 0:0:0:3: PM: failed to resume async: error -5

Make the SCSI core retry the START STOP UNIT command if a retryable
error is encountered.

Cc: Damien Le Moal <dlemoal@kernel.org>
Cc: Mike Christie <michael.christie@oracle.com>
Change-Id: Ic8e0859c4455d93fcabee42f1598858571f5f3d1
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Bug: 348341595
Link: https://lore.kernel.org/linux-scsi/yq17ccp1i4b.fsf@ca-mkp.ca.oracle.com/T/#m52a26a50649b1d537cb129e5653f723509d6bde7
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2024-08-13 19:10:55 +00:00
Bart Van Assche
4ab8dafa79 FROMLIST: scsi: core: Retry passthrough commands if SCMD_RETRY_PASSTHROUGH is set
The SCSI core does not retry passthrough commands even if the SCSI device
reports a retryable unit attention condition. Support retrying in this case
by introducing the SCMD_RETRY_PASSTHROUGH flag.

Cc: Damien Le Moal <dlemoal@kernel.org>
Cc: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Bart Van Assche <bvanassche@google.com>
Bug: 348341595
Link: https://lore.kernel.org/linux-scsi/yq17ccp1i4b.fsf@ca-mkp.ca.oracle.com/T/#mfdb1a3a0d6d4803afe1098bdafc12fd4168e30e0
Change-Id: I44092a0d8853fd61bf619e5bae6d65eaaddad780
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2024-08-13 19:10:55 +00:00
Greg Kroah-Hartman
c6bbb760e9 ANDROID: ABI fixup for abi break in struct dst_ops
In commit 81dd3c82a4 ("net: fix __dst_negative_advice() race") the
struct dst_ops callback negative_advice is callback changes function
parameters.  But as this pointer is part of a structure that is tracked
in the ABI checker, the tool triggers when this is changed.

However, the callback pointer is internal to the networking stack, so
changing the function type is safe, so needing to preserve this is not
required.  To do so, switch the function pointer type back to the old
one so that the checking tools pass, AND then do a hard cast of the
function pointer to the new type when assigning and calling the
function.

[6.1.y backport note, work around --Werror=cast-function-type issue by
 abusing void * for function pointer types, despite its best effort, C
 still let's us shoot our foot off if we really want to!]

Bug: 343727534
Fixes: 81dd3c82a4 ("net: fix __dst_negative_advice() race")
Change-Id: I48d4ab4bbd29f8edc8fbd7923828b7f78a23e12e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-13 17:05:31 +00:00
Greg Kroah-Hartman
079775fd35 Merge 6.1.94 into android14-6.1-lts
Changes in 6.1.94
	drm: Check output polling initialized before disabling
	drm: Check polling initialized before enabling in drm_helper_probe_single_connector_modes
	Bluetooth: btrtl: Add missing MODULE_FIRMWARE declarations
	maple_tree: fix allocation in mas_sparse_area()
	maple_tree: fix mas_empty_area_rev() null pointer dereference
	mmc: core: Do not force a retune before RPMB switch
	afs: Don't cross .backup mountpoint from backup volume
	riscv: signal: handle syscall restart before get_signal
	nilfs2: fix use-after-free of timer for log writer thread
	drm/i915/audio: Fix audio time stamp programming for DP
	mptcp: avoid some duplicate code in socket option handling
	mptcp: cleanup SOL_TCP handling
	mptcp: fix full TCP keep-alive support
	vxlan: Fix regression when dropping packets due to invalid src addresses
	scripts/gdb: fix SB_* constants parsing
	f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()
	media: lgdt3306a: Add a check against null-pointer-def
	drm/amdgpu: add error handle to avoid out-of-bounds
	bcache: fix variable length array abuse in btree_iter
	wifi: rtw89: correct aSIFSTime for 6GHz band
	ata: pata_legacy: make legacy_exit() work again
	thermal/drivers/qcom/lmh: Check for SCM availability at probe
	soc: qcom: rpmh-rsc: Enhance check for VRM in-flight request
	ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
	arm64: tegra: Correct Tegra132 I2C alias
	arm64: dts: qcom: qcs404: fix bluetooth device address
	md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
	wifi: rtw89: pci: correct TX resource checking for PCI DMA channel of firmware command
	wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
	wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power
	wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE
	wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path
	arm64: dts: hi3798cv200: fix the size of GICR
	media: mc: Fix graph walk in media_pipeline_start
	media: mc: mark the media devnode as registered from the, start
	media: mxl5xx: Move xpt structures off stack
	media: v4l2-core: hold videodev_lock until dev reg, finishes
	mmc: core: Add mmc_gpiod_set_cd_config() function
	mmc: sdhci: Add support for "Tuning Error" interrupts
	mmc: sdhci-acpi: Sort DMI quirks alphabetically
	mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
	mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
	mmc: sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
	fbdev: savage: Handle err return when savagefb_check_var failed
	drm/amdgpu/atomfirmware: add intergrated info v2.3 table
	9p: add missing locking around taking dentry fid list
	drm/amd: Fix shutdown (again) on some SMU v13.0.4/11 platforms
	KVM: arm64: Fix AArch32 register narrowing on userspace write
	KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
	KVM: arm64: AArch32: Fix spurious trapping of conditional instructions
	crypto: ecdsa - Fix module auto-load on add-key
	crypto: ecrdsa - Fix module auto-load on add_key
	crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
	mm: fix race between __split_huge_pmd_locked() and GUP-fast
	scsi: core: Handle devices which return an unusually large VPD page count
	net/ipv6: Fix route deleting failure when metric equals 0
	net/9p: fix uninit-value in p9_client_rpc()
	kmsan: do not wipe out origin when doing partial unpoisoning
	cpufreq: amd-pstate: Fix the inconsistency in max frequency units
	intel_th: pci: Add Meteor Lake-S CPU support
	sparc64: Fix number of online CPUs
	mm/cma: drop incorrect alignment check in cma_init_reserved_mem
	mm/hugetlb: pass correct order_per_bit to cma_declare_contiguous_nid
	watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin
	kdb: Fix buffer overflow during tab-complete
	kdb: Use format-strings rather than '\0' injection in kdb_read()
	kdb: Fix console handling when editing and tab-completing commands
	kdb: Merge identical case statements in kdb_read()
	kdb: Use format-specifiers rather than memset() for padding in kdb_read()
	net: fix __dst_negative_advice() race
	sparc: move struct termio to asm/termios.h
	ext4: set type of ac_groups_linear_remaining to __u32 to avoid overflow
	ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
	parisc: Define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
	parisc: Define sigset_t in parisc uapi header
	s390/ap: Fix crash in AP internal function modify_bitmap()
	s390/cpacf: Split and rework cpacf query functions
	s390/cpacf: Make use of invalid opcode produce a link error
	i3c: master: svc: fix invalidate IBI type and miss call client IBI handler
	EDAC/igen6: Convert PCIBIOS_* return codes to errnos
	nfs: fix undefined behavior in nfs_block_bits()
	NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS
	btrfs: fix crash on racing fsync and size-extending write into prealloc
	powerpc/bpf: enforce full ordering for ATOMIC operations with BPF_FETCH
	smb: client: fix deadlock in smb2_find_smb_tcon()
	smp: Provide 'setup_max_cpus' definition on UP too
	Linux 6.1.94

Change-Id: I0663c36ce2abdcc2ad77b5f86838c727d6b7cc12
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-13 12:02:36 +00:00
Seiya Wang
8288de8306 ANDROID: GKI: Update symbol list for mtk
1 function symbol(s) added
  'struct snd_kcontrol* snd_soc_cnew(const struct snd_kcontrol_new*, void*, const char*, const char*)'

Bug: 359437271
Signed-off-by: Seiya Wang <seiya.wang@mediatek.com>
Change-Id: I53d2771c95cabfc6931a83eb43e1499b9de8bc8b
2024-08-13 09:48:27 +00:00
Greg Kroah-Hartman
9d37e2aae7 ANDROID: add __module_get to db854c symbol list.
In commit e448d1bad7 ("net: qrtr: ns: Fix module refcnt"), a bug was
fixed with regards to reference counting, so now this build target needs
acces to the __module_get symbol (it's already part of the normal
supported list, just not for this target.)

Fixes: e448d1bad7 ("net: qrtr: ns: Fix module refcnt")
Change-Id: Iba1a30ba306340318e88120bd87f7e318554f095
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-12 16:32:49 +00:00
Greg Kroah-Hartman
5ccfb1bf19 Revert "drm/mipi-dsi: use correct return type for the DSC functions"
This reverts commit 26f73934ee which is
commit de1c705c50326acaceaf1f02bc5bf6f267c572bd upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Ib7f794ccd2b16db0b8958640ad7bd8f4e5c7296a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-12 15:34:33 +00:00
Greg Kroah-Hartman
d201efdaa4 Revert "media: cec: core: avoid recursive cec_claim_log_addrs"
This reverts commit 302077d270 which is
commit 47c82aac10a6954d68f29f10d9758d016e8e5af1 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I8c6b68d3db780285be19b84004758f46be37048b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-12 13:28:28 +00:00
Greg Kroah-Hartman
dcb51feb27 Revert "Bluetooth: compute LE flow credits based on recvbuf space"
This reverts commit 632b63f127 which is
commit ce60b9231b66710b6ee24042ded26efee120ecfc upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I6685f67d86c6def437924a4e4bc2bdb88d55024c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-12 13:26:37 +00:00
Greg Kroah-Hartman
a4d90a8f3c Merge 6.1.93 into android14-6.1-lts
Changes in 6.1.93
	SUNRPC: Fix loop termination condition in gss_free_in_token_pages()
	x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
	ftrace: Fix possible use-after-free issue in ftrace_location()
	tty: n_gsm: fix possible out-of-bounds in gsm0_receive()
	tty: n_gsm: fix missing receive state reset after mode switch
	speakup: Fix sizeof() vs ARRAY_SIZE() bug
	serial: 8250_bcm7271: use default_mux_rate if possible
	serial: 8520_mtk: Set RTS on shutdown for Rx in-band wakeup
	io_uring: fail NOP if non-zero op flags is passed in
	Revert "r8169: don't try to disable interrupts if NAPI is, scheduled already"
	r8169: Fix possible ring buffer corruption on fragmented Tx packets.
	ring-buffer: Fix a race between readers and resize checks
	tools/latency-collector: Fix -Wformat-security compile warns
	tools/nolibc/stdlib: fix memory error in realloc()
	net: smc91x: Fix m68k kernel compilation for ColdFire CPU
	nilfs2: fix unexpected freezing of nilfs_segctor_sync()
	nilfs2: fix potential hang in nilfs_detach_log_writer()
	fs/ntfs3: Remove max link count info display during driver init
	fs/ntfs3: Taking DOS names into account during link counting
	fs/ntfs3: Fix case when index is reused during tree transformation
	fs/ntfs3: Break dir enumeration if directory contents error
	ksmbd: avoid to send duplicate oplock break notifications
	ksmbd: ignore trailing slashes in share paths
	ALSA: hda/realtek: fix mute/micmute LEDs don't work for ProBook 440/460 G11.
	ALSA: core: Fix NULL module pointer assignment at card init
	ALSA: Fix deadlocks with kctl removals at disconnection
	KEYS: asymmetric: Add missing dependencies of FIPS_SIGNATURE_SELFTEST
	wifi: mac80211: don't use rate mask for scanning
	wifi: mac80211: ensure beacon is non-S1G prior to extracting the beacon timestamp field
	wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class
	dt-bindings: rockchip: grf: Add missing type to 'pcie-phy' node
	net: usb: qmi_wwan: add Telit FN920C04 compositions
	drm/amd/display: Set color_mgmt_changed to true on unsuspend
	drm/amdgpu: Update BO eviction priorities
	drm/amdgpu: Fix the ring buffer size for queue VM flush
	drm/amdgpu/mes: fix use-after-free issue
	LoongArch: Lately init pmu after smp is online
	selftests: sud_test: return correct emulated syscall value on RISC-V
	sched/isolation: Fix boot crash when maxcpus < first housekeeping CPU
	ASoC: Intel: bytcr_rt5640: Apply Asus T100TA quirk to Asus T100TAM too
	regulator: irq_helpers: duplicate IRQ name
	ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating
	ASoC: dt-bindings: rt5645: add cbj sleeve gpio property
	regulator: vqmmc-ipq4019: fix module autoloading
	ASoC: rt715: add vendor clear control register
	ASoC: rt715-sdca: volume step modification
	KVM: selftests: Add test for uaccesses to non-existent vgic-v2 CPUIF
	x86/efistub: Omit physical KASLR when memory reservations exist
	efi: libstub: only free priv.runtime_map when allocated
	KVM: x86: Don't advertise guest.MAXPHYADDR as host.MAXPHYADDR in CPUID
	genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline
	fpga: dfl-pci: add PCI subdevice ID for Intel D5005 card
	softirq: Fix suspicious RCU usage in __do_softirq()
	ASoC: da7219-aad: fix usage of device_get_named_child_node()
	ALSA: hda: intel-dsp-config: harden I2C/I2S codec detection
	drm/amd/display: Add dtbclk access to dcn315
	drm/amd/display: Add VCO speed parameter for DCN31 FPU
	drm/amdkfd: Flush the process wq before creating a kfd_process
	x86/mm: Remove broken vsyscall emulation code from the page fault code
	nvme: find numa distance only if controller has valid numa id
	nvmet-auth: return the error code to the nvmet_auth_host_hash() callers
	nvmet-auth: replace pr_debug() with pr_err() to report an error.
	nvmet-tcp: fix possible memory leak when tearing down a controller
	nvmet: fix nvme status code when namespace is disabled
	epoll: be better about file lifetimes
	nvmet: prevent sprintf() overflow in nvmet_subsys_nsid_exists()
	openpromfs: finish conversion to the new mount API
	crypto: bcm - Fix pointer arithmetic
	mm/slub, kunit: Use inverted data to corrupt kmem cache
	firmware: raspberrypi: Use correct device for DMA mappings
	ecryptfs: Fix buffer size for tag 66 packet
	nilfs2: fix out-of-range warning
	parisc: add missing export of __cmpxchg_u8()
	crypto: ccp - drop platform ifdef checks
	crypto: x86/nh-avx2 - add missing vzeroupper
	crypto: x86/sha256-avx2 - add missing vzeroupper
	crypto: x86/sha512-avx2 - add missing vzeroupper
	s390/cio: fix tracepoint subchannel type field
	io_uring: don't use TIF_NOTIFY_SIGNAL to test for availability of task_work
	io_uring: use the right type for work_llist empty check
	rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow
	rcu: Fix buffer overflow in print_cpu_stall_info()
	ARM: configs: sunxi: Enable DRM_DW_HDMI
	jffs2: prevent xattr node from overflowing the eraseblock
	soc: mediatek: cmdq: Fix typo of CMDQ_JUMP_RELATIVE
	null_blk: Fix missing mutex_destroy() at module removal
	md: fix resync softlockup when bitmap size is less than array size
	block: open code __blk_account_io_start()
	block: open code __blk_account_io_done()
	block: support to account io_ticks precisely
	wifi: ath10k: poll service ready message before failing
	wifi: brcmfmac: pcie: handle randbuf allocation failure
	wifi: ath11k: don't force enable power save on non-running vdevs
	bpftool: Fix missing pids during link show
	x86/boot: Ignore relocations in .notes sections in walk_relocs() too
	sched/fair: Add EAS checks before updating root_domain::overutilized
	ACPI: Fix Generic Initiator Affinity _OSC bit
	qed: avoid truncating work queue length
	net/mlx5e: Fail with messages when params are not valid for XSK
	mlx5: stop warning for 64KB pages
	bitops: add missing prototype check
	wifi: carl9170: re-fix fortified-memset warning
	bpf: Pack struct bpf_fib_lookup
	scsi: ufs: qcom: Perform read back after writing reset bit
	scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US
	scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0
	scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5
	scsi: ufs: qcom: Perform read back after writing unipro mode
	scsi: ufs: qcom: Perform read back after writing CGC enable
	scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV
	scsi: ufs: core: Perform read back after disabling interrupts
	scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL
	ACPI: LPSS: Advertise number of chip selects via property
	irqchip/alpine-msi: Fix off-by-one in allocation error path
	irqchip/loongson-pch-msi: Fix off-by-one on allocation error path
	ACPI: disable -Wstringop-truncation
	gfs2: Don't forget to complete delayed withdraw
	gfs2: Fix "ignore unlock failures after withdraw"
	x86/boot/64: Clear most of CR4 in startup_64(), except PAE, MCE and LA57
	selftests/bpf: Fix umount cgroup2 error in test_sockmap
	cpufreq: exit() callback is optional
	x86/pat: Introduce lookup_address_in_pgd_attr()
	x86/pat: Restructure _lookup_address_cpa()
	x86/pat: Fix W^X violation false-positives when running as Xen PV guest
	net: export inet_lookup_reuseport and inet6_lookup_reuseport
	net: remove duplicate reuseport_lookup functions
	udp: Avoid call to compute_score on multiple sites
	cppc_cpufreq: Fix possible null pointer dereference
	scsi: libsas: Fix the failure of adding phy with zero-address to port
	scsi: hpsa: Fix allocation size for Scsi_Host private data
	x86/purgatory: Switch to the position-independent small code model
	thermal/drivers/tsens: Fix null pointer dereference
	wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()
	selftests/bpf: Fix a fd leak in error paths in open_netns
	wifi: ath10k: populate board data for WCN3990
	net: dsa: mv88e6xxx: Add support for model-specific pre- and post-reset handlers
	net: dsa: mv88e6xxx: Avoid EEPROM timeout without EEPROM on 88E6250-family switches
	tcp: avoid premature drops in tcp_add_backlog()
	pwm: sti: Convert to platform remove callback returning void
	pwm: sti: Prepare removing pwm_chip from driver data
	pwm: sti: Simplify probe function using devm functions
	drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group
	drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group
	drivers/perf: hisi: hns3: Actually use devm_add_action_or_reset()
	net: give more chances to rcu in netdev_wait_allrefs_any()
	macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
	wifi: carl9170: add a proper sanity check for endpoints
	wifi: ar5523: enable proper endpoint verification
	sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()
	Revert "sh: Handle calling csum_partial with misaligned data"
	wifi: mt76: mt7603: add wpdma tx eof flag for PSE client reset
	libbpf: Fix error message in attach_kprobe_multi
	selftests/binderfs: use the Makefile's rules, not Make's implicit rules
	selftests/resctrl: fix clang build failure: use LOCAL_HDRS
	selftests: default to host arch for LLVM builds
	kunit: Fix kthread reference
	HID: intel-ish-hid: ipc: Add check for pci_alloc_irq_vectors
	scsi: bfa: Ensure the copied buf is NUL terminated
	scsi: qedf: Ensure the copied buf is NUL terminated
	scsi: qla2xxx: Fix debugfs output for fw_resource_count
	kernel/numa.c: Move logging out of numa.h
	x86/numa: Fix SRAT lookup of CFMWS ranges with numa_fill_memblks()
	wifi: mwl8k: initialize cmd->addr[] properly
	HID: amd_sfh: Handle "no sensors" in PM operations
	usb: aqc111: stop lying about skb->truesize
	net: usb: sr9700: stop lying about skb->truesize
	m68k: Fix spinlock race in kernel thread creation
	m68k: mac: Fix reboot hang on Mac IIci
	net: ipv6: fix wrong start position when receive hop-by-hop fragment
	eth: sungem: remove .ndo_poll_controller to avoid deadlocks
	selftests: net: move amt to socat for better compatibility
	net: ethernet: cortina: Locking fixes
	af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg
	net: usb: smsc95xx: stop lying about skb->truesize
	net: openvswitch: fix overwriting ct original tuple for ICMPv6
	ipv6: sr: add missing seg6_local_exit
	ipv6: sr: fix incorrect unregister order
	ipv6: sr: fix invalid unregister error path
	net/mlx5: Add a timeout to acquire the command queue semaphore
	net/mlx5: Discard command completions in internal error
	s390/bpf: Emit a barrier for BPF_FETCH instructions
	riscv, bpf: make some atomic operations fully ordered
	ax25: Use kernel universal linked list to implement ax25_dev_list
	ax25: Fix reference count leak issues of ax25_dev
	ax25: Fix reference count leak issue of net_device
	mptcp: SO_KEEPALIVE: fix getsockopt support
	Bluetooth: Consolidate code around sk_alloc into a helper function
	Bluetooth: compute LE flow credits based on recvbuf space
	Bluetooth: qca: Fix error code in qca_read_fw_build_info()
	drm/bridge: Fix improper bridge init order with pre_enable_prev_first
	printk: Let no_printk() use _printk()
	dev_printk: Add and use dev_no_printk()
	drm/lcdif: Do not disable clocks on already suspended hardware
	drm/panel-samsung-atna33xc20: Use ktime_get_boottime for delays
	drm/dp: Don't attempt AUX transfers when eDP panels are not powered
	drm/panel: atna33xc20: Fix unbalanced regulator in the case HPD doesn't assert
	drm/amd/display: Fix potential index out of bounds in color transformation function
	ASoC: Intel: Disable route checks for Skylake boards
	ASoC: Intel: avs: ssm4567: Do not ignore route checks
	mtd: core: Report error if first mtd_otp_size() call fails in mtd_otp_nvmem_add()
	mtd: rawnand: hynix: fixed typo
	fbdev: shmobile: fix snprintf truncation
	ASoC: kirkwood: Fix potential NULL dereference
	drm/meson: vclk: fix calculation of 59.94 fractional rates
	drm/mediatek: Add 0 size check to mtk_drm_gem_obj
	powerpc/fsl-soc: hide unused const variable
	fbdev: sisfb: hide unused variables
	ASoC: Intel: avs: Fix ASRC module initialization
	ASoC: Intel: avs: Fix potential integer overflow
	media: ngene: Add dvb_ca_en50221_init return value check
	media: rcar-vin: work around -Wenum-compare-conditional warning
	media: radio-shark2: Avoid led_names truncations
	drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference
	drm/msm/dp: allow voltage swing / pre emphasis of 3
	drm/msm/dp: Return IRQ_NONE for unhandled interrupts
	drm/msm/dp: Avoid a long timeout for AUX transfer if nothing connected
	media: ipu3-cio2: Request IRQ earlier
	media: dt-bindings: ovti,ov2680: Fix the power supply names
	fbdev: sh7760fb: allow modular build
	media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries
	drm/arm/malidp: fix a possible null pointer dereference
	drm: vc4: Fix possible null pointer dereference
	ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value
	drm/bridge: anx7625: Don't log an error when DSI host can't be found
	drm/bridge: icn6211: Don't log an error when DSI host can't be found
	drm/bridge: lt8912b: Don't log an error when DSI host can't be found
	drm/bridge: lt9611: Don't log an error when DSI host can't be found
	drm/bridge: lt9611uxc: Don't log an error when DSI host can't be found
	drm/bridge: tc358775: Don't log an error when DSI host can't be found
	drm/bridge: dpc3433: Don't log an error when DSI host can't be found
	drm/panel: novatek-nt35950: Don't log an error when DSI host can't be found
	drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
	drm/mipi-dsi: use correct return type for the DSC functions
	drm/rockchip: vop2: Do not divide height twice for YUV
	clk: samsung: exynosautov9: fix wrong pll clock id value
	RDMA/mlx5: Adding remote atomic access flag to updatable flags
	RDMA/hns: Fix return value in hns_roce_map_mr_sg
	RDMA/hns: Fix deadlock on SRQ async events.
	RDMA/hns: Fix UAF for cq async event
	RDMA/hns: Fix GMV table pagesize
	RDMA/hns: Use complete parentheses in macros
	RDMA/hns: Modify the print level of CQE error
	clk: mediatek: mt8365-mm: fix DPI0 parent
	clk: rs9: fix wrong default value for clock amplitude
	RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt
	RDMA/rxe: Replace pr_xxx by rxe_dbg_xxx in rxe_net.c
	RDMA/rxe: Fix incorrect rxe_put in error path
	IB/mlx5: Use __iowrite64_copy() for write combining stores
	clk: renesas: r8a779a0: Fix CANFD parent clock
	clk: renesas: r9a07g043: Add clock and reset entry for PLIC
	lib/test_hmm.c: handle src_pfns and dst_pfns allocation failure
	clk: qcom: dispcc-sm8450: fix DisplayPort clocks
	clk: qcom: dispcc-sm6350: fix DisplayPort clocks
	clk: qcom: mmcc-msm8998: fix venus clock issue
	x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map
	x86/insn: Add VEX versions of VPDPBUSD, VPDPBUSDS, VPDPWSSD and VPDPWSSDS
	ext4: avoid excessive credit estimate in ext4_tmpfile()
	virt: acrn: stop using follow_pfn
	drivers/virt/acrn: fix PFNMAP PTE checks in acrn_vm_ram_map()
	sunrpc: removed redundant procp check
	ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple
	ext4: fix unit mismatch in ext4_mb_new_blocks_simple
	ext4: try all groups in ext4_mb_new_blocks_simple
	ext4: remove unused parameter from ext4_mb_new_blocks_simple()
	ext4: fix potential unnitialized variable
	SUNRPC: Fix gss_free_in_token_pages()
	selftests/kcmp: remove unused open mode
	RDMA/IPoIB: Fix format truncation compilation errors
	net: add pskb_may_pull_reason() helper
	net: bridge: xmit: make sure we have at least eth header len bytes
	selftests: net: bridge: increase IGMP/MLD exclude timeout membership interval
	net: bridge: mst: fix vlan use-after-free
	net: qrtr: ns: Fix module refcnt
	netrom: fix possible dead-lock in nr_rt_ioctl()
	af_packet: do not call packet_read_pending() from tpacket_destruct_skb()
	sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level
	sched/core: Fix incorrect initialization of the 'burst' parameter in cpu_max_write()
	scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW major version > 5
	perf record: Delete session after stopping sideband thread
	perf probe: Add missing libgen.h header needed for using basename()
	iio: core: Leave private pointer NULL when no private data supplied
	greybus: lights: check return of get_channel_from_mode
	f2fs: multidev: fix to recognize valid zero block address
	f2fs: fix to wait on page writeback in __clone_blkaddrs()
	counter: linux/counter.h: fix Excess kernel-doc description warning
	perf annotate: Get rid of duplicate --group option item
	soundwire: cadence: fix invalid PDI offset
	dmaengine: idma64: Add check for dma_set_max_seg_size
	firmware: dmi-id: add a release callback function
	serial: max3100: Lock port->lock when calling uart_handle_cts_change()
	serial: max3100: Update uart_driver_registered on driver removal
	serial: max3100: Fix bitwise types
	greybus: arche-ctrl: move device table to its right location
	PCI: tegra194: Fix probe path for Endpoint mode
	serial: sc16is7xx: add proper sched.h include for sched_set_fifo()
	interconnect: qcom: qcm2290: Fix mas_snoc_bimc QoS port assignment
	arm64: dts: meson: fix S4 power-controller node
	perf test: Add -w/--workload option
	perf test: Add 'thloop' test workload
	perf test: Add 'leafloop' test workload
	perf test: Add 'sqrtloop' test workload
	perf test: Add 'brstack' test workload
	perf test: Add 'datasym' test workload
	perf tests: Make "test data symbol" more robust on Neoverse N1
	dt-bindings: PCI: rcar-pci-host: Add optional regulators
	dt-bindings: PCI: rcar-pci-host: Add missing IOMMU properties
	f2fs: compress: fix to relocate check condition in f2fs_{release,reserve}_compress_blocks()
	f2fs: compress: fix to relocate check condition in f2fs_ioc_{,de}compress_file()
	f2fs: fix typos in comments
	f2fs: fix to relocate check condition in f2fs_fallocate()
	f2fs: fix to check pinfile flag in f2fs_move_file_range()
	iio: adc: stm32: Fixing err code to not indicate success
	coresight: etm4x: Fix unbalanced pm_runtime_enable()
	perf docs: Document bpf event modifier
	iio: pressure: dps310: support negative temperature values
	coresight: etm4x: Do not hardcode IOMEM access for register restore
	coresight: etm4x: Do not save/restore Data trace control registers
	coresight: etm4x: Safe access for TRCQCLTR
	coresight: etm4x: Fix access to resource selector registers
	fpga: region: add owner module and take its refcount
	microblaze: Remove gcc flag for non existing early_printk.c file
	microblaze: Remove early printk call from cpuinfo-static.c
	perf intel-pt: Fix unassigned instruction op (discovered by MemorySanitizer)
	ovl: remove upper umask handling from ovl_create_upper()
	VMCI: Fix an error handling path in vmci_guest_probe_device()
	dt-bindings: pinctrl: mediatek: mt7622: fix array properties
	watchdog: bd9576: Drop "always-running" property
	watchdog: sa1100: Fix PTR_ERR_OR_ZERO() vs NULL check in sa1100dog_probe()
	usb: gadget: u_audio: Fix race condition use of controls after free during gadget unbind.
	usb: gadget: u_audio: Clear uac pointer when freed.
	stm class: Fix a double free in stm_register_device()
	ppdev: Remove usage of the deprecated ida_simple_xx() API
	ppdev: Add an error check in register_device
	perf bench internals inject-build-id: Fix trap divide when collecting just one DSO
	perf ui browser: Don't save pointer to stack memory
	extcon: max8997: select IRQ_DOMAIN instead of depending on it
	PCI/EDR: Align EDR_PORT_DPC_ENABLE_DSM with PCI Firmware r3.3
	PCI/EDR: Align EDR_PORT_LOCATE_DSM with PCI Firmware r3.3
	perf ui browser: Avoid SEGV on title
	perf report: Avoid SEGV in report__setup_sample_type()
	f2fs: compress: fix to update i_compr_blocks correctly
	f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
	f2fs: fix to release node block count in error path of f2fs_new_node_page()
	f2fs: compress: don't allow unaligned truncation on released compress inode
	serial: sh-sci: protect invalidating RXDMA on shutdown
	libsubcmd: Fix parse-options memory leak
	perf daemon: Fix file leak in daemon_session__control
	f2fs: fix to add missing iput() in gc_data_segment()
	perf stat: Don't display metric header for non-leader uncore events
	LoongArch: Fix callchain parse error with kernel tracepoint events again
	s390/vdso: filter out mno-pic-data-is-text-relative cflag
	s390/vdso64: filter out munaligned-symbols flag for vdso
	s390/vdso: Generate unwind information for C modules
	s390/vdso: Use standard stack frame layout
	s390/ipl: Fix incorrect initialization of len fields in nvme reipl block
	s390/ipl: Fix incorrect initialization of nvme dump block
	s390/boot: Remove alt_stfle_fac_list from decompressor
	Input: ims-pcu - fix printf string overflow
	Input: ioc3kbd - convert to platform remove callback returning void
	Input: ioc3kbd - add device table
	mmc: sdhci_am654: Add tuning algorithm for delay chain
	mmc: sdhci_am654: Write ITAPDLY for DDR52 timing
	mmc: sdhci_am654: Drop lookup for deprecated ti,otap-del-sel
	mmc: sdhci_am654: Add OTAP/ITAP delay enable
	mmc: sdhci_am654: Add ITAPDLYSEL in sdhci_j721e_4bit_set_clock
	mmc: sdhci_am654: Fix ITAPDLY for HS400 timing
	Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation
	drm/msm/dsi: Print dual-DSI-adjusted pclk instead of original mode pclk
	drm/msm/dpu: Always flush the slave INTF on the CTL
	drm/mediatek: dp: Move PHY registration to new function
	drm/mediatek: dp: Add support for embedded DisplayPort aux-bus
	drm/mediatek: dp: Fix mtk_dp_aux_transfer return value
	um: Fix return value in ubd_init()
	um: Add winch to winch_handlers before registering winch IRQ
	um: vector: fix bpfflash parameter evaluation
	fs/ntfs3: Use 64 bit variable to avoid 32 bit overflow
	fs/ntfs3: Use variable length array instead of fixed size
	drm/bridge: tc358775: fix support for jeida-18 and jeida-24
	media: stk1160: fix bounds checking in stk1160_copy_video()
	scsi: qla2xxx: Replace all non-returning strlcpy() with strscpy()
	Input: cyapa - add missing input core locking to suspend/resume functions
	media: flexcop-usb: fix sanity check of bNumEndpoints
	powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp
	um: Fix the -Wmissing-prototypes warning for __switch_mm
	um: Fix the -Wmissing-prototypes warning for get_thread_reg
	um: Fix the declaration of kasan_map_memory
	media: sunxi: a83-mips-csi2: also select GENERIC_PHY
	media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
	media: cec: cec-api: add locking in cec_release()
	media: cec: core: avoid recursive cec_claim_log_addrs
	media: cec: core: avoid confusing "transmit timed out" message
	Revert "drm/bridge: ti-sn65dsi83: Fix enable error path"
	drm/msm: Enable clamp_to_idle for 7c3
	drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails
	null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()
	ALSA: hda/cs_dsp_ctl: Use private_free for control cleanup
	ASoC: mediatek: mt8192: fix register configuration for tdm
	regulator: bd71828: Don't overwrite runtime voltages
	perf/arm-dmc620: Fix lockdep assert in ->event_init()
	x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
	net: Always descend into dsa/ folder with CONFIG_NET_DSA enabled
	ipv6: sr: fix missing sk_buff release in seg6_input_core
	selftests: net: kill smcrouted in the cleanup logic in amt.sh
	nfc: nci: Fix uninit-value in nci_rx_work
	ASoC: tas2552: Add TX path for capturing AUDIO-OUT data
	NFSv4: Fixup smatch warning for ambiguous return
	nfs: keep server info for remounts
	sunrpc: fix NFSACL RPC retry on soft mount
	rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL
	af_unix: Update unix_sk(sk)->oob_skb under sk_receive_queue lock.
	ipv6: sr: fix memleak in seg6_hmac_init_algo
	tcp: Fix shift-out-of-bounds in dctcp_update_alpha().
	pNFS/filelayout: fixup pNfs allocation modes
	openvswitch: Set the skbuff pkt_type for proper pmtud support.
	arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY
	rv: Update rv_en(dis)able_monitor doc to match kernel-doc
	virtio: delete vq in vp_find_vqs_msix() when request_irq() fails
	riscv: stacktrace: Make walk_stackframe cross pt_regs frame
	riscv: stacktrace: fixed walk_stackframe()
	Revert "ixgbe: Manual AN-37 for troublesome link partners for X550 SFI"
	net: fec: avoid lock evasion when reading pps_enable
	tls: fix missing memory barrier in tls_init
	inet: factor out locked section of inet_accept() in a new helper
	net: relax socket state check at accept time.
	nfc: nci: Fix kcov check in nci_rx_work()
	nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()
	drivers/xen: Improve the late XenStore init protocol
	ice: Interpret .set_channels() input differently
	netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
	netfilter: nft_payload: restore vlan q-in-q match support
	spi: Don't mark message DMA mapped when no transfer in it is
	dma-mapping: benchmark: fix node id validation
	dma-mapping: benchmark: handle NUMA_NO_NODE correctly
	nvmet: fix ns enable/disable possible hang
	net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8061
	net/mlx5: Lag, do bond only if slaves agree on roce state
	net/mlx5e: Fix IPsec tunnel mode offload feature check
	net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion
	net/mlx5e: Fix UDP GSO for encapsulated packets
	dma-buf/sw-sync: don't enable IRQ from sync_print_obj()
	bpf: Fix potential integer overflow in resolve_btfids
	ALSA: jack: Use guard() for locking
	ALSA: core: Remove debugfs at disconnection
	ALSA: hda/realtek: Add quirk for ASUS ROG G634Z
	ALSA: hda/realtek: Amend G634 quirk to enable rear speakers
	ALSA: hda/realtek: Adjust G814JZR to use SPI init for amp
	enic: Validate length of nl attributes in enic_set_vf_port
	af_unix: Read sk->sk_hash under bindlock during bind().
	net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM
	bpf: Allow delete from sockmap/sockhash only if update is allowed
	net:fec: Add fec_enet_deinit()
	ice: fix accounting if a VLAN already exists
	netfilter: nft_payload: move struct nft_payload_set definition where it belongs
	netfilter: nft_payload: rebuild vlan header when needed
	netfilter: nft_payload: rebuild vlan header on h_proto access
	netfilter: nft_payload: skbuff vlan metadata mangle support
	netfilter: tproxy: bail out if IP has been disabled on the device
	netfilter: nft_fib: allow from forward/input without iif selector
	kconfig: fix comparison to constant symbols, 'm', 'n'
	drm/i915/guc: avoid FIELD_PREP warning
	spi: stm32: Don't warn about spurious interrupts
	net: dsa: microchip: fix RGMII error in KSZ DSA driver
	net: ena: Add dynamic recycling mechanism for rx buffers
	net: ena: Reduce lines with longer column width boundary
	net: ena: Fix redundant device NUMA node override
	ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound
	powerpc/pseries/lparcfg: drop error message from guest name lookup
	hwmon: (shtc1) Fix property misspelling
	riscv: prevent pt_regs corruption for secondary idle threads
	ALSA: timer: Set lower bound of start tick time
	net: ena: Fix DMA syncing in XDP path when SWIOTLB is on
	Linux 6.1.93

Change-Id: I15fdbacdaee5a6d68347a7fd5218929488d594af
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-12 08:40:51 +00:00
Greg Kroah-Hartman
36790ef5e0 Linux 6.1.104
Link: https://lore.kernel.org/r/20240807150039.247123516@linuxfoundation.org
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
Link: https://lore.kernel.org/r/20240808091131.014292134@linuxfoundation.org
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: ChromeOS CQ Test <chromeos-kernel-stable-merge@google.com>
Tested-by: Pavel Machek (CIP) <pavel@denx.de>
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Tested-by: Peter Schneider <pschneider1968@googlemail.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: kernelci.org bot <bot@kernelci.org>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:02 +02:00
Alexander Maltsev
4440ef0f58 netfilter: ipset: Add list flush to cancel_gc
[ Upstream commit c1193d9bbbd379defe9be3c6de566de684de8a6f ]

Flushing list in cancel_gc drops references to other lists right away,
without waiting for RCU to destroy list. Fixes race when referenced
ipsets can't be destroyed while referring list is scheduled for destroy.

Fixes: 97f7cf1cd80e ("netfilter: ipset: fix performance regression in swap operation")
Signed-off-by: Alexander Maltsev <keltar.gw@gmail.com>
Acked-by: Jozsef Kadlecsik <kadlec@netfilter.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:36:02 +02:00
Liu Jing
33e0f0e51e selftests: mptcp: always close input's FD if opened
commit 7c70bcc2a84cf925f655ea1ac4b8088062b144a3 upstream.

In main_loop_s function, when the open(cfg_input, O_RDONLY) function is
run, the last fd is not closed if the "--cfg_repeat > 0" branch is not
taken.

Fixes: 05be5e273c ("selftests: mptcp: add disconnect tests")
Cc: stable@vger.kernel.org
Signed-off-by: Liu Jing <liujing@cmss.chinamobile.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:02 +02:00
Paolo Abeni
1e161339f5 mptcp: fix duplicate data handling
commit 68cc924729ffcfe90d0383177192030a9aeb2ee4 upstream.

When a subflow receives and discards duplicate data, the mptcp
stack assumes that the consumed offset inside the current skb is
zero.

With multiple subflows receiving data simultaneously such assertion
does not held true. As a result the subflow-level copied_seq will
be incorrectly increased and later on the same subflow will observe
a bad mapping, leading to subflow reset.

Address the issue taking into account the skb consumed offset in
mptcp_subflow_discard_data().

Fixes: 04e4cd4f7c ("mptcp: cleanup mptcp_subflow_discard_data()")
Cc: stable@vger.kernel.org
Link: https://github.com/multipath-tcp/mptcp_net-next/issues/501
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:02 +02:00
Matthieu Baerts (NGI0)
00f283a709 mptcp: pm: only set request_bkup flag when sending MP_PRIO
commit 4258b94831bb7ff28ab80e3c8d94db37db930728 upstream.

The 'backup' flag from mptcp_subflow_context structure is supposed to be
set only when the other peer flagged a subflow as backup, not the
opposite.

Fixes: 067065422f ("mptcp: add the outgoing MP_PRIO support")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:02 +02:00
Paolo Abeni
882bbd872f mptcp: fix bad RCVPRUNED mib accounting
commit 0a567c2a10033bf04ed618368d179bce6977984b upstream.

Since its introduction, the mentioned MIB accounted for the wrong
event: wake-up being skipped as not-needed on some edge condition
instead of incoming skb being dropped after landing in the (subflow)
receive queue.

Move the increment in the correct location.

Fixes: ce599c5163 ("mptcp: properly account bulk freed memory")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:02 +02:00
Paolo Abeni
6d97193121 mptcp: fix NL PM announced address accounting
commit 4b317e0eb287bd30a1b329513531157c25e8b692 upstream.

Currently the per connection announced address counter is never
decreased. As a consequence, after connection establishment, if
the NL PM deletes an endpoint and adds a new/different one, no
additional subflow is created for the new endpoint even if the
current limits allow that.

Address the issue properly updating the signaled address counter
every time the NL PM removes such addresses.

Fixes: 01cacb00b3 ("mptcp: add netlink-based PM")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Matthieu Baerts (NGI0)
09176f8099 mptcp: distinguish rcv vs sent backup flag in requests
commit efd340bf3d7779a3a8ec954d8ec0fb8a10f24982 upstream.

When sending an MP_JOIN + SYN + ACK, it is possible to mark the subflow
as 'backup' by setting the flag with the same name. Before this patch,
the backup was set if the other peer set it in its MP_JOIN + SYN
request.

It is not correct: the backup flag should be set in the MPJ+SYN+ACK only
if the host asks for it, and not mirroring what was done by the other
peer. It is then required to have a dedicated bit for each direction,
similar to what is done in the subflow context.

Fixes: f296234c98 ("mptcp: Add handling of incoming MP_JOIN requests")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Paolo Abeni
991b26e110 mptcp: fix user-space PM announced address accounting
commit 167b93258d1e2230ee3e8a97669b4db4cc9e90aa upstream.

Currently the per-connection announced address counter is never
decreased. When the user-space PM is in use, this just affect
the information exposed via diag/sockopt, but it could still foul
the PM to wrong decision.

Add the missing accounting for the user-space PM's sake.

Fixes: 8b1c94da1e ("mptcp: only send RM_ADDR in nl_cmd_remove")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Heiner Kallweit
f3d0261d91 r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
commit d516b187a9cc2e842030dd005be2735db3e8f395 upstream.

The skb isn't consumed in case of NETDEV_TX_BUSY, therefore don't
increment the tx_dropped counter.

Fixes: 188f4af046 ("r8169: use NETDEV_TX_{BUSY/OK}")
Cc: stable@vger.kernel.org
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/bbba9c48-8bac-4932-9aa1-d2ed63bc9433@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Ma Ke
52977968f3 net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
commit 08f3a5c38087d1569e982a121aad1e6acbf145ce upstream.

It could lead to error happen because the variable res is not updated if
the call to sr_share_read_word returns an error. In this particular case
error code was returned and res stayed uninitialized. Same issue also
applies to sr_read_reg.

This can be avoided by checking the return value of sr_share_read_word
and sr_read_reg, and propagating the error if the read operation failed.

Found by code review.

Cc: stable@vger.kernel.org
Fixes: c9b37458e9 ("USB2NET : SR9700 : One chip USB 1.1 USB2NET SR9700Device Driver Support")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Shigeru Yoshida <syoshida@redhat.com>
Reviewed-by: Hariprasad Kelam <hkelam@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Nikita Zhandarovich
5670466033 drm/i915: Fix possible int overflow in skl_ddi_calculate_wrpll()
commit 5b511572660190db1dc8ba412efd0be0d3781ab6 upstream.

On the off chance that clock value ends up being too high (by means
of skl_ddi_calculate_wrpll() having been called with big enough
value of crtc_state->port_clock * 1000), one possible consequence
may be that the result will not be able to fit into signed int.

Fix this issue by moving conversion of clock parameter from kHz to Hz
into the body of skl_ddi_calculate_wrpll(), as well as casting the
same parameter to u64 type while calculating the value for AFE clock.
This both mitigates the overflow problem and avoids possible erroneous
integer promotion mishaps.

Found by Linux Verification Center (linuxtesting.org) with static
analysis tool SVACE.

Fixes: 82d3543701 ("drm/i915/skl: Implementation of SKL DPLL programming")
Cc: stable@vger.kernel.org
Signed-off-by: Nikita Zhandarovich <n.zhandarovich@fintech.ru>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240729174035.25727-1-n.zhandarovich@fintech.ru
(cherry picked from commit 833cf12846aa19adf9b76bc79c40747726f3c0c1)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Zack Rusin
3b933b16c9 drm/vmwgfx: Fix a deadlock in dma buf fence polling
commit e58337100721f3cc0c7424a18730e4f39844934f upstream.

Introduce a version of the fence ops that on release doesn't remove
the fence from the pending list, and thus doesn't require a lock to
fix poll->fence wait->fence unref deadlocks.

vmwgfx overwrites the wait callback to iterate over the list of all
fences and update their status, to do that it holds a lock to prevent
the list modifcations from other threads. The fence destroy callback
both deletes the fence and removes it from the list of pending
fences, for which it holds a lock.

dma buf polling cb unrefs a fence after it's been signaled: so the poll
calls the wait, which signals the fences, which are being destroyed.
The destruction tries to acquire the lock on the pending fences list
which it can never get because it's held by the wait from which it
was called.

Old bug, but not a lot of userspace apps were using dma-buf polling
interfaces. Fix those, in particular this fixes KDE stalls/deadlock.

Signed-off-by: Zack Rusin <zack.rusin@broadcom.com>
Fixes: 2298e804e9 ("drm/vmwgfx: rework to new fence interface, v2")
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v6.2+
Reviewed-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com>
Reviewed-by: Martin Krastev <martin.krastev@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240722184313.181318-2-zack.rusin@broadcom.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Edmund Raile
b239a37d68 Revert "ALSA: firewire-lib: operate for period elapse event in process context"
commit 3dab73ab925a51ab05543b491bf17463a48ca323 upstream.

Commit 7ba5ca32fe ("ALSA: firewire-lib: operate for period elapse event
in process context") removed the process context workqueue from
amdtp_domain_stream_pcm_pointer() and update_pcm_pointers() to remove
its overhead.

With RME Fireface 800, this lead to a regression since
Kernels 5.14.0, causing an AB/BA deadlock competition for the
substream lock with eventual system freeze under ALSA operation:

thread 0:
    * (lock A) acquire substream lock by
	snd_pcm_stream_lock_irq() in
	snd_pcm_status64()
    * (lock B) wait for tasklet to finish by calling
    	tasklet_unlock_spin_wait() in
	tasklet_disable_in_atomic() in
	ohci_flush_iso_completions() of ohci.c

thread 1:
    * (lock B) enter tasklet
    * (lock A) attempt to acquire substream lock,
    	waiting for it to be released:
	snd_pcm_stream_lock_irqsave() in
    	snd_pcm_period_elapsed() in
	update_pcm_pointers() in
	process_ctx_payloads() in
	process_rx_packets() of amdtp-stream.c

? tasklet_unlock_spin_wait
 </NMI>
 <TASK>
ohci_flush_iso_completions firewire_ohci
amdtp_domain_stream_pcm_pointer snd_firewire_lib
snd_pcm_update_hw_ptr0 snd_pcm
snd_pcm_status64 snd_pcm

? native_queued_spin_lock_slowpath
 </NMI>
 <IRQ>
_raw_spin_lock_irqsave
snd_pcm_period_elapsed snd_pcm
process_rx_packets snd_firewire_lib
irq_target_callback snd_firewire_lib
handle_it_packet firewire_ohci
context_tasklet firewire_ohci

Restore the process context work queue to prevent deadlock
AB/BA deadlock competition for ALSA substream lock of
snd_pcm_stream_lock_irq() in snd_pcm_status64()
and snd_pcm_stream_lock_irqsave() in snd_pcm_period_elapsed().

revert commit 7ba5ca32fe ("ALSA: firewire-lib: operate for period
elapse event in process context")

Replace inline description to prevent future deadlock.

Cc: stable@vger.kernel.org
Fixes: 7ba5ca32fe ("ALSA: firewire-lib: operate for period elapse event in process context")
Reported-by: edmund.raile <edmund.raile@proton.me>
Closes: https://lore.kernel.org/r/kwryofzdmjvzkuw6j3clftsxmoolynljztxqwg76hzeo4simnl@jn3eo7pe642q/
Signed-off-by: Edmund Raile <edmund.raile@protonmail.com>
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240730195318.869840-3-edmund.raile@protonmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:01 +02:00
Edmund Raile
a7cdecede8 Revert "ALSA: firewire-lib: obsolete workqueue for period update"
commit 6ccf9984d6be3c2f804087b736db05c2ec42664b upstream.

prepare resolution of AB/BA deadlock competition for substream lock:
restore workqueue previously used for process context:

revert commit b5b519965c ("ALSA: firewire-lib: obsolete workqueue
for period update")

Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/kwryofzdmjvzkuw6j3clftsxmoolynljztxqwg76hzeo4simnl@jn3eo7pe642q/
Signed-off-by: Edmund Raile <edmund.raile@protonmail.com>
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240730195318.869840-2-edmund.raile@protonmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Mavroudis Chatzilazaridis
fec031e89d ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
commit 3c0b6f924e1259ade38587ea719b693f6f6f2f3e upstream.

ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST fixes combo jack detection and
limits the internal microphone boost that causes clipping on this model.

Signed-off-by: Mavroudis Chatzilazaridis <mavchatz@protonmail.com>
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20240728123601.144017-1-mavchatz@protonmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Takashi Iwai
584e9aa47e ALSA: usb-audio: Correct surround channels in UAC1 channel map
commit b7b7e1ab7619deb3b299b5e5c619c3e6f183a12d upstream.

USB-audio driver puts SNDRV_CHMAP_SL and _SR as left and right
surround channels for UAC1 channel map, respectively.  But they should
have been SNDRV_CHMAP_RL and _RR; the current value *_SL and _SR are
rather "side" channels, not "surround".  I guess I took those
mistakenly when I read the spec mentioning "surround left".

This patch corrects those entries to be the right channels.

Suggested-by: Sylvain BERTRAND <sylvain.bertrand@legeek.net>
Closes: https://lore.kernel.orgZ/qIyJD8lhd8hFhlC@freedom
Fixes: 04324ccc75 ("ALSA: usb-audio: add channel map support")
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20240731142018.24750-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Matthieu Baerts (NGI0)
47ab33e1d6 mptcp: sched: check both directions for backup
commit b6a66e521a2032f7fcba2af5a9bcbaeaa19b7ca3 upstream.

The 'mptcp_subflow_context' structure has two items related to the
backup flags:

 - 'backup': the subflow has been marked as backup by the other peer

 - 'request_bkup': the backup flag has been set by the host

Before this patch, the scheduler was only looking at the 'backup' flag.
That can make sense in some cases, but it looks like that's not what we
wanted for the general use, because either the path-manager was setting
both of them when sending an MP_PRIO, or the receiver was duplicating
the 'backup' flag in the subflow request.

Note that the use of these two flags in the path-manager are going to be
fixed in the next commits, but this change here is needed not to modify
the behaviour.

Fixes: f296234c98 ("mptcp: Add handling of incoming MP_JOIN requests")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Al Viro
5db999fff5 protect the fetch of ->fd[fd] in do_dup2() from mispredictions
commit 8aa37bde1a7b645816cda8b80df4753ecf172bf1 upstream.

both callers have verified that fd is not greater than ->max_fds;
however, misprediction might end up with
        tofree = fdt->fd[fd];
being speculatively executed.  That's wrong for the same reasons
why it's wrong in close_fd()/file_close_fd_locked(); the same
solution applies - array_index_nospec(fd, fdt->max_fds) could differ
from fd only in case of speculative execution on mispredicted path.

Cc: stable@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Naohiro Aota
36dac67972 btrfs: zoned: fix zone_unusable accounting on making block group read-write again
commit 8cd44dd1d17a23d5cc8c443c659ca57aa76e2fa5 upstream.

When btrfs makes a block group read-only, it adds all free regions in the
block group to space_info->bytes_readonly. That free space excludes
reserved and pinned regions. OTOH, when btrfs makes the block group
read-write again, it moves all the unused regions into the block group's
zone_unusable. That unused region includes reserved and pinned regions.
As a result, it counts too much zone_unusable bytes.

Fortunately (or unfortunately), having erroneous zone_unusable does not
affect the calculation of space_info->bytes_readonly, because free
space (num_bytes in btrfs_dec_block_group_ro) calculation is done based on
the erroneous zone_unusable and it reduces the num_bytes just to cancel the
error.

This behavior can be easily discovered by adding a WARN_ON to check e.g,
"bg->pinned > 0" in btrfs_dec_block_group_ro(), and running fstests test
case like btrfs/282.

Fix it by properly considering pinned and reserved in
btrfs_dec_block_group_ro(). Also, add a WARN_ON and introduce
btrfs_space_info_update_bytes_zone_unusable() to catch a similar mistake.

Fixes: 169e0da91a ("btrfs: zoned: track unusable bytes for zones")
CC: stable@vger.kernel.org # 5.15+
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Tatsunosuke Tobita
8bb9cf2edf HID: wacom: Modify pen IDs
commit f0d17d696dfce77c9abc830e4ac2d677890a2dad upstream.

The pen ID, 0x80842, was not the correct ID for wacom driver to
treat. The ID was corrected to 0x8842.
Also, 0x4200 was not the expected ID used on any Wacom device.
Therefore, 0x4200 was removed.

Signed-off-by: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>
Signed-off-by: Tatsunosuke Tobita <tatsunosuke.wacom@gmail.com>
Fixes: bfdc750c4c ("HID: wacom: add three styli to wacom_intuos_get_tool_type")
Cc: stable@kernel.org #6.2
Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
Link: https://patch.msgid.link/20240709055729.17158-1-tatsunosuke.wacom@gmail.com
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:36:00 +02:00
Patryk Duda
1b3777d2f2 platform/chrome: cros_ec_proto: Lock device when updating MKBP version
commit df615907f1bf907260af01ccb904d0e9304b5278 upstream.

The cros_ec_get_host_command_version_mask() function requires that the
caller must have ec_dev->lock mutex before calling it. This requirement
was not met and as a result it was possible that two commands were sent
to the device at the same time.

The problem was observed while using UART backend which doesn't use any
additional locks, unlike SPI backend which locks the controller until
response is received.

Fixes: f74c7557ed ("platform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failure")
Cc: stable@vger.kernel.org
Signed-off-by: Patryk Duda <patrykd@google.com>
Link: https://lore.kernel.org/r/20240730104425.607083-1-patrykd@google.com
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:35:59 +02:00
Alice Ryhl
ed15fdf307 rust: SHADOW_CALL_STACK is incompatible with Rust
commit f126745da81783fb1d082e67bf14c6795e489a88 upstream.

When using the shadow call stack sanitizer, all code must be compiled
with the -ffixed-x18 flag, but this flag is not currently being passed
to Rust. This results in crashes that are extremely difficult to debug.

To ensure that nobody else has to go through the same debugging session
that I had to, prevent configurations that enable both SHADOW_CALL_STACK
and RUST.

It is rather common for people to backport 724a75ac9542 ("arm64: rust:
Enable Rust support for AArch64"), so I recommend applying this fix all
the way back to 6.1.

Cc: stable@vger.kernel.org # 6.1 and later
Fixes: 724a75ac9542 ("arm64: rust: Enable Rust support for AArch64")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Link: https://lore.kernel.org/r/20240729-shadow-call-stack-v4-1-2a664b082ea4@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-11 12:35:59 +02:00
Will Deacon
56ddc3233c arm64: jump_label: Ensure patched jump_labels are visible to all CPUs
[ Upstream commit cfb00a35786414e7c0e6226b277d9f09657eae74 ]

Although the Arm architecture permits concurrent modification and
execution of NOP and branch instructions, it still requires some
synchronisation to ensure that other CPUs consistently execute the newly
written instruction:

 >  When the modified instructions are observable, each PE that is
 >  executing the modified instructions must execute an ISB or perform a
 >  context synchronizing event to ensure execution of the modified
 >  instructions

Prior to commit f6cc0c5016 ("arm64: Avoid calling stop_machine() when
patching jump labels"), the arm64 jump_label patching machinery
performed synchronisation using stop_machine() after each modification,
however this was problematic when flipping static keys from atomic
contexts (namely, the arm_arch_timer CPU hotplug startup notifier) and
so we switched to the _nosync() patching routines to avoid "scheduling
while atomic" BUG()s during boot.

In hindsight, the analysis of the issue in f6cc0c5016 isn't quite
right: it cites the use of IPIs in the default patching routines as the
cause of the lockup, whereas stop_machine() does not rely on IPIs and
the I-cache invalidation is performed using __flush_icache_range(),
which elides the call to kick_all_cpus_sync(). In fact, the blocking
wait for other CPUs is what triggers the BUG() and the problem remains
even after f6cc0c5016, for example because we could block on the
jump_label_mutex. Eventually, the arm_arch_timer driver was fixed to
avoid the static key entirely in commit a862fc2254
("clocksource/arm_arch_timer: Remove use of workaround static key").

This all leaves the jump_label patching code in a funny situation on
arm64 as we do not synchronise with other CPUs to reduce the likelihood
of a bug which no longer exists. Consequently, toggling a static key on
one CPU cannot be assumed to take effect on other CPUs, leading to
potential issues, for example with missing preempt notifiers.

Rather than revert f6cc0c5016 and go back to stop_machine() for each
patch site, implement arch_jump_label_transform_apply() and kick all
the other CPUs with an IPI at the end of patching.

Cc: Alexander Potapenko <glider@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Fixes: f6cc0c5016 ("arm64: Avoid calling stop_machine() when patching jump labels")
Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240731133601.3073-1-will@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:59 +02:00
Zhe Qiao
d7ccf2ca77 riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
[ Upstream commit 0c710050c47d45eb77b28c271cddefc5c785cb40 ]

Handle VM_FAULT_SIGSEGV in the page fault path so that we correctly
kill the process and we don't BUG() the kernel.

Fixes: 07037db5d4 ("RISC-V: Paging and MMU")
Signed-off-by: Zhe Qiao <qiaozhe@iscas.ac.cn>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240731084547.85380-1-qiaozhe@iscas.ac.cn
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:59 +02:00
Maciej Żenczykowski
aa0f864052 ipv6: fix ndisc_is_useropt() handling for PIO
[ Upstream commit a46c68debf3be3a477a69ccbf0a1d050df841676 ]

The current logic only works if the PIO is between two
other ND user options.  This fixes it so that the PIO
can also be either before or after other ND user options
(for example the first or last option in the RA).

side note: there's actually Android tests verifying
a portion of the old broken behaviour, so:
  https://android-review.googlesource.com/c/kernel/tests/+/3196704
fixes those up.

Cc: Jen Linkova <furry@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Patrick Rohr <prohr@google.com>
Cc: David Ahern <dsahern@kernel.org>
Cc: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>
Cc: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Fixes: 048c796beb ("ipv6: adjust ndisc_is_useropt() to also return true for PIO")
Link: https://patch.msgid.link/20240730001748.147636-1-maze@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:59 +02:00
Shahar Shitrit
18b26c7324 net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
[ Upstream commit 3f8e82a020a5c22f9b791f4ac499b8e18007fbda ]

Since the documentation for mlx5_toggle_port_link states that it should
only be used after setting the port register, we add a check for the
return value from mlx5_port_set_eth_ptys to ensure the register was
successfully set before calling it.

Fixes: 667daedaec ("net/mlx5e: Toggle link only after modifying port parameters")
Signed-off-by: Shahar Shitrit <shshitrit@nvidia.com>
Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240730061638.1831002-9-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:59 +02:00
Moshe Shemesh
5d07d1d40a net/mlx5: Fix missing lock on sync reset reload
[ Upstream commit 572f9caa9e7295f8c8822e4122c7ae8f1c412ff9 ]

On sync reset reload work, when remote host updates devlink on reload
actions performed on that host, it misses taking devlink lock before
calling devlink_remote_reload_actions_performed() which results in
triggering lock assert like the following:

WARNING: CPU: 4 PID: 1164 at net/devlink/core.c:261 devl_assert_locked+0x3e/0x50
…
 CPU: 4 PID: 1164 Comm: kworker/u96:6 Tainted: G S      W          6.10.0-rc2+ #116
 Hardware name: Supermicro SYS-2028TP-DECTR/X10DRT-PT, BIOS 2.0 12/18/2015
 Workqueue: mlx5_fw_reset_events mlx5_sync_reset_reload_work [mlx5_core]
 RIP: 0010:devl_assert_locked+0x3e/0x50
…
 Call Trace:
  <TASK>
  ? __warn+0xa4/0x210
  ? devl_assert_locked+0x3e/0x50
  ? report_bug+0x160/0x280
  ? handle_bug+0x3f/0x80
  ? exc_invalid_op+0x17/0x40
  ? asm_exc_invalid_op+0x1a/0x20
  ? devl_assert_locked+0x3e/0x50
  devlink_notify+0x88/0x2b0
  ? mlx5_attach_device+0x20c/0x230 [mlx5_core]
  ? __pfx_devlink_notify+0x10/0x10
  ? process_one_work+0x4b6/0xbb0
  process_one_work+0x4b6/0xbb0
[…]

Fixes: 84a433a40d ("net/mlx5: Lock mlx5 devlink reload callbacks")
Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Maor Gottlieb <maorg@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240730061638.1831002-6-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:59 +02:00
Mark Bloch
d4122d141f net/mlx5: Lag, don't use the hardcoded value of the first port
[ Upstream commit 3fda84dc090390573cfbd0b1d70372663315de21 ]

The cited commit didn't change the body of the loop as it should.
It shouldn't be using MLX5_LAG_P1.

Fixes: 7e978e7714 ("net/mlx5: Lag, use actual number of lag ports")
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Link: https://patch.msgid.link/20240730061638.1831002-5-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:58 +02:00
Kuniyuki Iwashima
91b6df6611 netfilter: iptables: Fix potential null-ptr-deref in ip6table_nat_table_init().
[ Upstream commit c22921df777de5606f1047b1345b8d22ef1c0b34 ]

ip6table_nat_table_init() accesses net->gen->ptr[ip6table_nat_net_ops.id],
but the function is exposed to user space before the entry is allocated
via register_pernet_subsys().

Let's call register_pernet_subsys() before xt_register_template().

Fixes: fdacd57c79 ("netfilter: x_tables: never register tables by default")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-08-11 12:35:58 +02:00