Commit Graph

1739 Commits

Author SHA1 Message Date
Greg Kroah-Hartman 67767146c7 Revert "Bluetooth: hci_core: Fix use-after-free in vhci_flush()"
This reverts commit ce23b73f0f which is
commit 1d6123102e9fbedc8d25bf4731da6d513173e49e 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: Id61431c9decd8e97b69d0a3871b2658242c092ee
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-07-10 18:45:42 +00:00
Greg Kroah-Hartman a778622fe4 Merge 6.12.36 into android16-6.12-lts
GKI (arm64) relevant 43 out of 213 changes, affecting 47 files +324/-116
  8a997e1ab5 mailbox: Not protect module_put with spin_lock_irqsave [1 file, +1/-1]
  dcd5b32139 leds: multicolor: Fix intensity setting while SW blinking [1 file, +2/-1]
  3a0f33c420 fuse: fix race between concurrent setattrs from multiple nodes [1 file, +11/-0]
  9f0fa01811 PCI: dwc: Make link training more robust by setting PORT_LOGIC_LINK_WIDTH to one lane [1 file, +1/-4]
  53809d38ec usb: Add checks for snprintf() calls in usb_alloc_dev() [1 file, +10/-4]
  cf69fedbb1 usb: gadget: f_hid: wake up readers on disable/unbind [1 file, +17/-2]
  10cc2cfd3e usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode [1 file, +4/-0]
  1ef2737432 usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set [1 file, +2/-2]
  1818fc3602 ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock [1 file, +2/-0]
  ae2353d862 scsi: ufs: core: Don't perform UFS clkscaling during host async scan [1 file, +3/-0]
  0437390086 ovl: Check for NULL d_inode() in ovl_dentry_upper() [1 file, +3/-1]
  4149f0ee5e f2fs: don't over-report free space or inodes in statvfs [1 file, +18/-12]
  61a9ad7b69 af_unix: Don't leave consecutive consumed OOB skbs. [1 file, +11/-2]
  93abf5e0d5 fs/proc/task_mmu: fix PAGE_IS_PFNZERO detection for the huge zero folio [1 file, +1/-1]
  29d39e0d5f lib/group_cpus: fix NULL pointer dereference from group_cpus_evenly() [1 file, +8/-1]
  a4f182ffa3 HID: wacom: fix crash in wacom_aes_battery_handler() [1 file, +1/-0]
  ce23b73f0f Bluetooth: hci_core: Fix use-after-free in vhci_flush() [2 files, +32/-4]
  0ee87c2814 ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3() [1 file, +2/-0]
  b10a795364 attach_recursive_mnt(): do not lock the covering tree when sliding something under it [1 file, +4/-4]
  949060a623 af_unix: Don't set -ECONNRESET for consumed OOB skb. [1 file, +12/-6]
  dbcd546400 vsock/uapi: fix linux/vm_sockets.h userspace compilation errors [1 file, +4/-0]
  104048a4a4 net: selftests: fix TCP packet checksum [1 file, +3/-2]
  2b8788496f serial: core: restore of_node information in sysfs [1 file, +1/-0]
  5a8400ebc2 Bluetooth: L2CAP: Fix L2CAP MTU negotiation [1 file, +8/-1]
  cf95f8426f maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate() [1 file, +3/-1]
  7b4ac8433c mm/gup: revert "mm: gup: fix infinite loop within __get_longterm_locked" [1 file, +10/-4]
  c465f52333 f2fs: fix to zero post-eof page [1 file, +38/-0]
  a85999b987 HID: wacom: fix memory leak on kobject creation failure [1 file, +3/-1]
  2746d02066 HID: wacom: fix memory leak on sysfs attribute creation failure [1 file, +1/-0]
  70017f56b1 HID: wacom: fix kobject reference count leak [1 file, +1/-0]
  6a87e79404 scsi: ufs: core: Fix clk scaling to be conditional in reset and restore [1 file, +2/-1]
  0519b61075 media: uvcvideo: Rollback non processed entities on error [1 file, +23/-11]
  8b8a366e8c io_uring: fix potential page leak in io_sqe_buffer_register() [1 file, +5/-4]
  53fd75f25b io_uring/rsrc: fix folio unpinning [1 file, +9/-4]
  50998b0ae7 io_uring/rsrc: don't rely on user vaddr alignment [2 files, +5/-1]
  399214d703 io_uring/net: improve recv bundles [1 file, +18/-0]
  0c07f2bf49 io_uring/net: only retry recv bundle for a full transfer [1 file, +10/-4]
  725fcba8bd io_uring/net: only consider msg_inq if larger than 1 [1 file, +2/-2]
  b8be3ae062 io_uring/net: always use current transfer count for buffer put [1 file, +1/-1]
  c8d152b8c1 io_uring/net: mark iov as dynamically allocated even for single segments [1 file, +6/-5]
  560c3b51c7 io_uring/kbuf: flag partial buffer mappings [3 files, +17/-8]
  1f4b030e08 mm/vma: reset VMA iterator on commit_merge() OOM failure [1 file, +8/-19]
  287b9cec2e usb: typec: tcpm: PSSourceOffTimer timeout in PR_Swap enters ERROR_RECOVERY [1 file, +1/-2]

Changes in 6.12.36
	cifs: Correctly set SMB1 SessionKey field in Session Setup Request
	cifs: Fix cifs_query_path_info() for Windows NT servers
	cifs: Fix encoding of SMB1 Session Setup NTLMSSP Request in non-UNICODE mode
	NFSv4: Always set NLINK even if the server doesn't support it
	NFSv4.2: fix listxattr to return selinux security label
	NFSv4.2: fix setattr caching of TIME_[MODIFY|ACCESS]_SET when timestamps are delegated
	mailbox: Not protect module_put with spin_lock_irqsave
	mfd: max14577: Fix wakeup source leaks on device unbind
	sunrpc: don't immediately retransmit on seqno miss
	dm vdo indexer: don't read request structure after enqueuing
	leds: multicolor: Fix intensity setting while SW blinking
	fuse: fix race between concurrent setattrs from multiple nodes
	cxl/region: Add a dev_err() on missing target list entries
	NFSv4: xattr handlers should check for absent nfs filehandles
	hwmon: (pmbus/max34440) Fix support for max34451
	ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension
	ksmbd: provide zero as a unique ID to the Mac client
	rust: module: place cleanup_module() in .exit.text section
	rust: arm: fix unknown (to Clang) argument '-mno-fdpic'
	dmaengine: idxd: Check availability of workqueue allocated by idxd wq driver before using
	dmaengine: xilinx_dma: Set dma_device directions
	PCI: dwc: Make link training more robust by setting PORT_LOGIC_LINK_WIDTH to one lane
	PCI: apple: Fix missing OF node reference in apple_pcie_setup_port
	PCI: imx6: Add workaround for errata ERR051624
	nvme-tcp: fix I/O stalls on congested sockets
	nvme-tcp: sanitize request list handling
	md/md-bitmap: fix dm-raid max_write_behind setting
	amd/amdkfd: fix a kfd_process ref leak
	bcache: fix NULL pointer in cache_set_flush()
	drm/amdgpu: seq64 memory unmap uses uninterruptible lock
	drm/scheduler: signal scheduled fence when kill job
	iio: pressure: zpa2326: Use aligned_s64 for the timestamp
	um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h
	um: use proper care when taking mmap lock during segfault
	8250: microchip: pci1xxxx: Add PCIe Hot reset disable support for Rev C0 and later devices
	coresight: Only check bottom two claim bits
	usb: dwc2: also exit clock_gating when stopping udc while suspended
	iio: adc: ad_sigma_delta: Fix use of uninitialized status_pos
	misc: tps6594-pfsm: Add NULL pointer check in tps6594_pfsm_probe()
	usb: potential integer overflow in usbg_make_tpg()
	tty: serial: uartlite: register uart driver in init
	usb: common: usb-conn-gpio: use a unique name for usb connector device
	usb: Add checks for snprintf() calls in usb_alloc_dev()
	usb: cdc-wdm: avoid setting WDM_READ for ZLP-s
	usb: gadget: f_hid: wake up readers on disable/unbind
	usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode
	usb: typec: mux: do not return on EOPNOTSUPP in {mux, switch}_set
	riscv: add a data fence for CMODX in the kernel mode
	ALSA: hda: Ignore unsol events for cards being shut down
	ALSA: hda: Add new pci id for AMD GPU display HD audio controller
	ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock
	ASoC: rt1320: fix speaker noise when volume bar is 100%
	ceph: fix possible integer overflow in ceph_zero_objects()
	scsi: ufs: core: Don't perform UFS clkscaling during host async scan
	ovl: Check for NULL d_inode() in ovl_dentry_upper()
	btrfs: handle csum tree error with rescue=ibadroots correctly
	drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1
	Revert "drm/i915/gem: Allow EXEC_CAPTURE on recoverable contexts on DG1"
	btrfs: factor out nocow ordered extent and extent map generation into a helper
	btrfs: use unsigned types for constants defined as bit shifts
	btrfs: fix qgroup reservation leak on failure to allocate ordered extent
	fs/jfs: consolidate sanity checking in dbMount
	jfs: validate AG parameters in dbMount() to prevent crashes
	ASoC: codec: wcd9335: Convert to GPIO descriptors
	ASoC: codecs: wcd9335: Fix missing free of regulator supplies
	f2fs: don't over-report free space or inodes in statvfs
	PCI: apple: Use helper function for_each_child_of_node_scoped()
	PCI: apple: Set only available ports up
	accel/ivpu: Do not fail on cmdq if failed to allocate preemption buffers
	accel/ivpu: Remove copy engine support
	accel/ivpu: Make command queue ID allocated on XArray
	accel/ivpu: Separate DB ID and CMDQ ID allocations from CMDQ allocation
	accel/ivpu: Add debugfs interface for setting HWS priority bands
	accel/ivpu: Trigger device recovery on engine reset/resume failure
	af_unix: Don't leave consecutive consumed OOB skbs.
	i2c: tiny-usb: disable zero-length read messages
	i2c: robotfuzz-osif: disable zero-length read messages
	ata: ahci: Use correct DMI identifier for ASUSPRO-D840SA LPM quirk
	smb: client: remove \t from TP_printk statements
	mm/damon/sysfs-schemes: free old damon_sysfs_scheme_filter->memcg_path on write
	ASoC: amd: yc: Add DMI quirk for Lenovo IdeaPad Slim 5 15
	s390/pkey: Prevent overflow in size calculation for memdup_user()
	fs/proc/task_mmu: fix PAGE_IS_PFNZERO detection for the huge zero folio
	lib/group_cpus: fix NULL pointer dereference from group_cpus_evenly()
	Revert "riscv: Define TASK_SIZE_MAX for __access_ok()"
	Revert "riscv: misaligned: fix sleeping function called during misaligned access handling"
	drm/xe/display: Add check for alloc_ordered_workqueue()
	HID: wacom: fix crash in wacom_aes_battery_handler()
	atm: clip: prevent NULL deref in clip_push()
	Bluetooth: hci_core: Fix use-after-free in vhci_flush()
	ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3()
	attach_recursive_mnt(): do not lock the covering tree when sliding something under it
	libbpf: Fix null pointer dereference in btf_dump__free on allocation failure
	ethernet: ionic: Fix DMA mapping tests
	wifi: mac80211: fix beacon interval calculation overflow
	af_unix: Don't set -ECONNRESET for consumed OOB skb.
	wifi: mac80211: Add link iteration macro for link data
	wifi: mac80211: Create separate links for VLAN interfaces
	wifi: mac80211: finish link init before RCU publish
	vsock/uapi: fix linux/vm_sockets.h userspace compilation errors
	bnxt: properly flush XDP redirect lists
	um: ubd: Add missing error check in start_io_thread()
	libbpf: Fix possible use-after-free for externs
	net: enetc: Correct endianness handling in _enetc_rd_reg64
	netlink: specs: tc: replace underscores with dashes in names
	atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().
	ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X507UAR
	net: selftests: fix TCP packet checksum
	drm/amdgpu/discovery: optionally use fw based ip discovery
	drm/amd: Adjust output for discovery error handling
	drm/i915: fix build error some more
	drm/bridge: ti-sn65dsi86: make use of debugfs_init callback
	drm/bridge: ti-sn65dsi86: Add HPD for DisplayPort connector type
	drm/xe: Process deferred GGTT node removals on device unwind
	smb: client: fix potential deadlock when reconnecting channels
	smb: smbdirect: add smbdirect_pdu.h with protocol definitions
	smb: client: make use of common smbdirect_pdu.h
	smb: smbdirect: add smbdirect.h with public structures
	smb: smbdirect: add smbdirect_socket.h
	smb: client: make use of common smbdirect_socket
	smb: smbdirect: introduce smbdirect_socket_parameters
	smb: client: make use of common smbdirect_socket_parameters
	cifs: Fix the smbd_response slab to allow usercopy
	cifs: Fix reading into an ITER_FOLIOQ from the smbdirect code
	EDAC/amd64: Fix size calculation for Non-Power-of-Two DIMMs
	x86/traps: Initialize DR6 by writing its architectural reset value
	staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher()
	dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive
	serial: core: restore of_node information in sysfs
	serial: imx: Restore original RXTL for console to fix data loss
	Bluetooth: L2CAP: Fix L2CAP MTU negotiation
	dm-raid: fix variable in journal device check
	btrfs: fix a race between renames and directory logging
	btrfs: update superblock's device bytes_used when dropping chunk
	spi: spi-cadence-quadspi: Fix pm runtime unbalance
	net: libwx: fix the creation of page_pool
	maple_tree: fix MA_STATE_PREALLOC flag in mas_preallocate()
	mm/gup: revert "mm: gup: fix infinite loop within __get_longterm_locked"
	f2fs: fix to zero post-eof page
	HID: lenovo: Restrict F7/9/11 mode to compact keyboards only
	HID: wacom: fix memory leak on kobject creation failure
	HID: wacom: fix memory leak on sysfs attribute creation failure
	HID: wacom: fix kobject reference count leak
	scsi: megaraid_sas: Fix invalid node index
	scsi: ufs: core: Fix clk scaling to be conditional in reset and restore
	drm/ast: Fix comment on modeset lock
	drm/cirrus-qemu: Fix pitch programming
	drm/etnaviv: Protect the scheduler's pending list with its lock
	drm/tegra: Assign plane type before registration
	drm/tegra: Fix a possible null pointer dereference
	drm/udl: Unregister device before cleaning up on disconnect
	drm/msm/gpu: Fix crash when throttling GPU immediately during boot
	drm/amdkfd: Fix race in GWS queue scheduling
	drm/bridge: cdns-dsi: Fix the clock variable for mode_valid()
	drm/bridge: cdns-dsi: Fix phy de-init and flag it so
	drm/bridge: cdns-dsi: Fix connecting to next bridge
	drm/bridge: cdns-dsi: Check return value when getting default PHY config
	drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready
	drm/amd/display: Add null pointer check for get_first_active_display()
	drm/amdgpu: amdgpu_vram_mgr_new(): Clamp lpfn to total vram
	drm/amd/display: Correct non-OLED pre_T11_delay.
	drm/xe/vm: move rebind_work init earlier
	drm/xe/sched: stop re-submitting signalled jobs
	drm/xe/guc_submit: add back fix
	drm/amd/display: Fix RMCM programming seq errors
	drm/amdgpu: Add kicker device detection
	drm/amd/display: Check dce_hwseq before dereferencing it
	drm/xe: Fix memset on iomem
	drm/xe: Fix taking invalid lock on wedge
	drm/xe: Fix early wedge on GuC load failure
	drm/i915/dsi: Fix off by one in BXT_MIPI_TRANS_VTOTAL
	drm/amdgpu: Fix SDMA UTC_L1 handling during start/stop sequences
	drm/amdgpu: switch job hw_fence to amdgpu_fence
	drm/amd/display: Fix mpv playback corruption on weston
	media: uvcvideo: Rollback non processed entities on error
	x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE
	x86/pkeys: Simplify PKRU update in signal frame
	net: libwx: fix Tx L4 checksum
	io_uring: fix potential page leak in io_sqe_buffer_register()
	io_uring/rsrc: fix folio unpinning
	io_uring/rsrc: don't rely on user vaddr alignment
	io_uring/net: improve recv bundles
	io_uring/net: only retry recv bundle for a full transfer
	io_uring/net: only consider msg_inq if larger than 1
	io_uring/net: always use current transfer count for buffer put
	io_uring/net: mark iov as dynamically allocated even for single segments
	io_uring/kbuf: flag partial buffer mappings
	mm/vma: reset VMA iterator on commit_merge() OOM failure
	r8169: add support for RTL8125D
	net: phy: realtek: merge the drivers for internal NBase-T PHY's
	net: phy: realtek: add RTL8125D-internal PHY
	btrfs: do proper folio cleanup when cow_file_range() failed
	iio: dac: ad3552r: changes to use FIELD_PREP
	iio: dac: ad3552r: extract common code (no changes in behavior intended)
	iio: dac: ad3552r-common: fix ad3541/2r ranges
	drm/xe: Carve out wopcm portion from the stolen memory
	usb: typec: tcpm: PSSourceOffTimer timeout in PR_Swap enters ERROR_RECOVERY
	drm/msm/dp: account for widebus and yuv420 during mode validation
	drm/fbdev-dma: Add shadow buffering for deferred I/O
	btrfs: skip inodes without loaded extent maps when shrinking extent maps
	btrfs: make the extent map shrinker run asynchronously as a work queue job
	btrfs: do regular iput instead of delayed iput during extent map shrinking
	riscv/atomic: Do proper sign extension also for unsigned in arch_cmpxchg
	arm64: dts: rockchip: Add avdd HDMI supplies to RockPro64 board dtsi
	ALSA: hda/realtek: Bass speaker fixup for ASUS UM5606KA
	drm/amdkfd: remove gfx 12 trap handler page size cap
	drm/amdkfd: Fix instruction hazard in gfx12 trap handler
	net: stmmac: Fix accessing freed irq affinity_hint
	spi: fsl-qspi: use devm function instead of driver remove
	btrfs: zoned: fix extent range end unlock in cow_file_range()
	btrfs: fix use-after-free on inode when scanning root during em shrinking
	spi: fsl-qspi: Fix double cleanup in probe error path
	Linux 6.12.36

Change-Id: Ie7748fa6d766a9cf7800e67297e404cb90bd359c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-07-10 18:44:05 +00:00
Greg Kroah-Hartman 5f92e5fdd1 Revert "Bluetooth: MGMT: Protect mgmt_pending list with its own lock"
This reverts commit 4e83f2dbb2 which is
commit 6fe26f694c824b8a4dbf50c635bee1302e3f099c 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: Ia71be8ae26f83011527d07fbbfdf9d6d282f23a4
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-07-09 09:56:33 +00:00
Greg Kroah-Hartman 036a0d8df2 Merge 6.12.34 into android16-6.12-lts
GKI (arm64) relevant 105 out of 506 changes, affecting 145 files +1290/-523
  623074162b sched: Fix trace_sched_switch(.prev_state) [1 file, +4/-2]
  781bbc8252 perf/core: Fix broken throttling when max_samples_per_tick=1 [1 file, +8/-8]
  451a18d71b sched/core: Tweak wait_task_inactive() to force dequeue sched_delayed tasks [1 file, +6/-0]
  5b814cde62 brd: fix aligned_sector from brd_do_discard() [1 file, +1/-1]
  48e11bcee9 brd: fix discard end sector [1 file, +6/-3]
  9cfca45aec erofs: fix file handle encoding for 64-bit NIDs [1 file, +36/-8]
  65115472f7 erofs: avoid using multiple devices with different type [1 file, +4/-1]
  58beaa1aee rcu/cpu_stall_cputime: fix the hardirq count for x86 architecture [3 files, +10/-6]
  5ed92ad1b7 crypto: xts - Only add ecb if it is not already there [1 file, +2/-2]
  e9ecaeaf41 kunit: Fix wrong parameter to kunit_deactivate_static_stub() [1 file, +1/-1]
  9c094deb6b crypto: api - Redo lookup on EEXIST [1 file, +11/-2]
  81d72f9241 PM: EM: Fix potential division-by-zero error in em_compute_costs() [1 file, +4/-0]
  0426e92970 PM: wakeup: Delete space in the end of string shown by pm_show_wakelocks() [1 file, +3/-0]
  77d45ba1be PM: sleep: Print PM debug messages during hibernation [3 files, +11/-1]
  45844a9403 ALSA: core: fix up bus match const issues. [4 files, +8/-8]
  fa65c89f3f arm64/fpsimd: Avoid RES0 bits in the SME trap handler [2 files, +9/-7]
  6103f9ba51 arm64/fpsimd: Discard stale CPU state when handling SME traps [1 file, +2/-0]
  945d247d1c arm64/fpsimd: Don't corrupt FPMR when streaming mode changes [1 file, +3/-3]
  55d52af498 arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP [1 file, +1/-1]
  2756dac036 arm64/fpsimd: Reset FPMR upon exec() [1 file, +3/-0]
  f5ffc750db arm64/fpsimd: Fix merging of FPSIMD state during signal return [1 file, +1/-1]
  0860d48b70 firmware: psci: Fix refcount leak in psci_dt_init [1 file, +3/-1]
  64a9ee6e11 arm64/fpsimd: Avoid warning when sve_to_fpsimd() is unused [1 file, +2/-2]
  b3cfc1f9f5 arm64/fpsimd: Do not discard modified SVE state [3 files, +47/-17]
  e55f46a11b overflow: Fix direct struct member initialization in _DEFINE_FLEX() [1 file, +3/-3]
  671dd1fb87 bpf: Check link_create.flags parameter for multi_kprobe [1 file, +3/-0]
  3a8e680f7d bpf, sockmap: fix duplicated data transmission [1 file, +9/-5]
  3d25fa2d7f bpf, sockmap: Fix panic when calling skb_linearize [1 file, +16/-15]
  44a51592ac f2fs: zone: fix to avoid inconsistence in between SIT and SSA [1 file, +3/-0]
  4f51fb0d25 page_pool: Track DMA-mapped pages and unmap them when destroying the pool [5 files, +147/-18]
  88f65bb66d iommu: Protect against overflow in iommu_pgsize() [1 file, +3/-1]
  04daca6012 f2fs: clean up w/ fscrypt_is_bounce_page() [1 file, +1/-1]
  4248ba53e4 f2fs: fix to detect gcing page in f2fs_is_cp_guaranteed() [1 file, +1/-1]
  c1f418cc27 bpf: Allow XDP dev-bound programs to perform XDP_REDIRECT into maps [1 file, +16/-11]
  e53a8dcd36 tracing: Move histogram trigger variables from stack to per CPU structure [1 file, +105/-15]
  69a995644a efi/libstub: Describe missing 'out' parameter in efi_load_initrd [1 file, +1/-0]
  709412b92a tracing: Fix error handling in event_trigger_parse() [1 file, +2/-2]
  c98cdf6795 bpf: Fix WARN() in get_bpf_raw_tp_regs [1 file, +1/-1]
  e0657136ae scsi: ufs: mcq: Delete ufshcd_release_scsi_cmd() in ufshcd_mcq_abort() [1 file, +0/-6]
  6bfb154f95 kernfs: Relax constraint in draining guard [2 files, +5/-3]
  df00f9147e Bluetooth: ISO: Fix not using SID from adv report [5 files, +75/-14]
  1d249cc92d bpf: Revert "bpf: remove unnecessary rcu_read_{lock,unlock}() in multi-uprobe attach logic" [1 file, +2/-0]
  1750c3f1d9 Bluetooth: MGMT: iterate over mesh commands in mgmt_mesh_foreach() [1 file, +1/-1]
  15c0250dae bpf, sockmap: Avoid using sk_socket after free when sending [1 file, +8/-0]
  30a9e834c7 net: usb: aqc111: fix error handling of usbnet read calls [1 file, +8/-2]
  7893a41dea vsock/virtio: fix `rx_bytes` accounting for stream sockets [2 files, +17/-10]
  2bc6dffb4b bpf: Avoid __bpf_prog_ret0_warn when jit fails [1 file, +1/-1]
  ddc654e89a net: phy: clear phydev->devlink when the link is deleted [1 file, +3/-1]
  f15ed37dd3 net: phy: fix up const issues in to_mdio_device() and to_phy_device() [2 files, +2/-8]
  532601e783 f2fs: use d_inode(dentry) cleanup dentry->d_inode [2 files, +6/-6]
  0befc3005d f2fs: fix to correct check conditions in f2fs_cross_rename [1 file, +1/-1]
  2eeb181e76 dm: don't change md if dm_table_set_restrictions() fails [1 file, +12/-10]
  48e0b54be4 dm: free table mempools if not used in __bind [1 file, +4/-4]
  17e4b0fcd2 PCI: Print the actual delay time in pci_bridge_wait_for_secondary_bus() [1 file, +1/-1]
  0a3e2ec508 PCI: endpoint: Retain fixed-size BAR size as well as aligned size [2 files, +18/-7]
  9f40ae8310 USB: gadget: udc: fix const issue in gadget_match_driver() [1 file, +1/-1]
  4bd30962f3 USB: typec: fix const issue in typec_match() [1 file, +1/-1]
  3091d4c0d0 loop: add file_start_write() and file_end_write() [1 file, +6/-2]
  90891eadb8 Fix sock_exceed_buf_limit not being triggered in __sk_mem_raise_allocated [1 file, +4/-4]
  e869a85acc page_pool: Fix use-after-free in page_pool_recycle_in_ring [1 file, +14/-13]
  c762fc79d7 net: tipc: fix refcount warning in tipc_aead_encrypt [1 file, +5/-1]
  b788cebf72 Bluetooth: L2CAP: Fix not responding with L2CAP_CR_LE_ENCRYPTION [1 file, +2/-1]
  4399f59a94 net: fix udp gso skb_segment after pull from frag_list [1 file, +5/-0]
  0cffc6e40d PM: sleep: Fix power.is_suspended cleanup for direct-complete devices [1 file, +2/-1]
  f34dc858e6 netfilter: nf_nat: also check reverse tuple to obtain clashing entry [1 file, +9/-3]
  4f0fcdb835 wifi: cfg80211/mac80211: correctly parse S1G beacon optional elements [4 files, +83/-32]
  933466fc50 wireguard: device: enable threaded NAPI [1 file, +1/-0]
  1be1f3b848 iov_iter: use iov_offset for length calculation in iov_iter_aligned_bvec [1 file, +1/-1]
  1d79230719 path_overmount(): avoid false negatives [1 file, +13/-6]
  e1d02fe504 fix propagation graph breakage by MOVE_MOUNT_SET_GROUP move_mount(2) [1 file, +1/-1]
  9c1ddfeb66 do_change_type(): refuse to operate on unmounted/not ours mounts [1 file, +4/-0]
  80f7c5be4f pmdomain: core: Introduce dev_pm_genpd_rpm_always_on() [2 files, +42/-0]
  3464a707d1 scsi: core: ufs: Fix a hang in the error handler [1 file, +6/-1]
  99e3d69853 Bluetooth: hci_core: fix list_for_each_entry_rcu usage [1 file, +3/-8]
  9df3e5e7f7 Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete [3 files, +12/-30]
  84ab1283eb Bluetooth: MGMT: Remove unused mgmt_pending_find_data [2 files, +0/-21]
  4e83f2dbb2 Bluetooth: MGMT: Protect mgmt_pending list with its own lock [5 files, +80/-59]
  d1bc80da75 net_sched: sch_sfq: fix a potential crash on gso_skb handling [1 file, +4/-1]
  1e0de7582c net: Fix TOCTOU issue in sk_is_readable() [1 file, +5/-2]
  78fa7b723e macsec: MACsec SCI assignment for ES = 0 [1 file, +34/-6]
  b02d9d2732 net/mdiobus: Fix potential out-of-bounds read/write access [1 file, +6/-0]
  31bf7b2b92 net/mdiobus: Fix potential out-of-bounds clause 45 read/write access [1 file, +6/-0]
  842f7c3154 Bluetooth: Fix NULL pointer deference on eir_get_service_data [1 file, +6/-4]
  907ef6e12f Bluetooth: hci_sync: Fix broadcast/PA when using an existing instance [1 file, +15/-5]
  2af40d795d Bluetooth: eir: Fix possible crashes on eir_create_adv_data [3 files, +8/-6]
  7a41744e38 Bluetooth: MGMT: Fix sparse errors [1 file, +2/-2]
  e3f6745006 net_sched: prio: fix a race in prio_tune() [1 file, +1/-1]
  180b12eafa net_sched: tbf: fix a race in tbf_change() [1 file, +1/-1]
  0a2500782f fs/filesystems: Fix potential unsigned integer underflow in fs_name() [1 file, +9/-5]
  f351bb3085 perf: Ensure bpf_perf_link path is properly serialized [1 file, +30/-4]
  a5c7b61eed block: use q->elevator with ->elevator_lock held in elv_iosched_show() [1 file, +1/-2]
  af8c13f9ee io_uring: fix use-after-free of sq->thread in __io_uring_show_fdinfo() [2 files, +14/-7]
  0fccb6773b block: don't use submit_bio_noacct_nocheck in blk_zone_wplug_bio_work [1 file, +5/-2]
  48f33ec141 io_uring: consistently use rcu semantics with sqpoll thread [4 files, +38/-15]
  a9022c8631 bio: Fix bio_first_folio() for SPARSEMEM without VMEMMAP [1 file, +1/-1]
  4b1ef15ffd block: Fix bvec_set_folio() for very large folios [1 file, +5/-2]
  84e9f0a2c2 ALSA: usb-audio: Add implicit feedback quirk for RODE AI-1 [1 file, +1/-0]
  c29d531870 posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del() [1 file, +9/-0]
  657003ced7 usb: Flush altsetting 0 endpoints before reinitializating them after reset. [1 file, +14/-2]
  7bdd712abe usb: typec: tcpm: move tcpm_queue_vdm_unlocked to asynchronous work [1 file, +71/-20]
  b8df8cb8f7 ring-buffer: Do not trigger WARN_ON() due to a commit_overrun [1 file, +18/-8]
  e09c0600be ring-buffer: Fix buffer locking in ring_buffer_subbuf_order_set() [1 file, +1/-3]
  2d6a6cfe96 ring-buffer: Move cpus_read_lock() outside of buffer->mutex [1 file, +6/-5]
  5ed1d7a700 net: usb: aqc111: debug info before sanitation [1 file, +4/-4]
  ab20b0bdb0 overflow: Introduce __DEFINE_FLEX for having no initializer [1 file, +19/-6]

Changes in 6.12.34
	tools/x86/kcpuid: Fix error handling
	x86/idle: Remove MFENCEs for X86_BUG_CLFLUSH_MONITOR in mwait_idle_with_hints() and prefer_mwait_c1_over_halt()
	crypto: sun8i-ce-hash - fix error handling in sun8i_ce_hash_run()
	sched: Fix trace_sched_switch(.prev_state)
	perf/x86/amd/uncore: Remove unused 'struct amd_uncore_ctx::node' member
	perf/x86/amd/uncore: Prevent UMC counters from saturating
	gfs2: replace sd_aspace with sd_inode
	gfs2: gfs2_create_inode error handling fix
	perf/core: Fix broken throttling when max_samples_per_tick=1
	crypto: sun8i-ce-cipher - fix error handling in sun8i_ce_cipher_prepare()
	crypto: sun8i-ss - do not use sg_dma_len before calling DMA functions
	powerpc: do not build ppc_save_regs.o always
	powerpc/crash: Fix non-smp kexec preparation
	sched/core: Tweak wait_task_inactive() to force dequeue sched_delayed tasks
	x86/microcode/AMD: Do not return error when microcode update is not necessary
	crypto: sun8i-ce - undo runtime PM changes during driver removal
	x86/cpu: Sanitize CPUID(0x80000000) output
	x86/insn: Fix opcode map (!REX2) superscript tags
	brd: fix aligned_sector from brd_do_discard()
	brd: fix discard end sector
	kselftest: cpufreq: Get rid of double suspend in rtcwake case
	crypto: marvell/cesa - Handle zero-length skcipher requests
	crypto: marvell/cesa - Avoid empty transfer descriptor
	erofs: fix file handle encoding for 64-bit NIDs
	erofs: avoid using multiple devices with different type
	powerpc/pseries/iommu: Fix kmemleak in TCE table userspace view
	btrfs: scrub: update device stats when an error is detected
	btrfs: scrub: fix a wrong error type when metadata bytenr mismatches
	btrfs: fix invalid data space release when truncating block in NOCOW mode
	rcu/cpu_stall_cputime: fix the hardirq count for x86 architecture
	crypto: lrw - Only add ecb if it is not already there
	crypto: xts - Only add ecb if it is not already there
	crypto: sun8i-ce - move fallback ahash_request to the end of the struct
	kunit: Fix wrong parameter to kunit_deactivate_static_stub()
	crypto: api - Redo lookup on EEXIST
	ACPICA: exserial: don't forget to handle FFixedHW opregions for reading
	ASoC: tas2764: Enable main IRQs
	ASoC: mediatek: mt8195: Set ETDM1/2 IN/OUT to COMP_DUMMY()
	EDAC/skx_common: Fix general protection fault
	EDAC/{skx_common,i10nm}: Fix the loss of saved RRL for HBM pseudo channel 0
	spi: tegra210-quad: Fix X1_X2_X4 encoding and support x4 transfers
	spi: tegra210-quad: remove redundant error handling code
	spi: tegra210-quad: modify chip select (CS) deactivation
	power: reset: at91-reset: Optimize at91_reset()
	PM: EM: Fix potential division-by-zero error in em_compute_costs()
	ASoC: SOF: ipc4-pcm: Adjust pipeline_list->pipelines allocation type
	ASoC: SOF: amd: add missing acp descriptor field
	PM: wakeup: Delete space in the end of string shown by pm_show_wakelocks()
	ACPI: resource: fix a typo for MECHREVO in irq1_edge_low_force_override[]
	x86/mtrr: Check if fixed-range MTRRs exist in mtrr_save_fixed_ranges()
	PM: sleep: Print PM debug messages during hibernation
	thermal/drivers/mediatek/lvts: Fix debugfs unregister on failure
	ACPI: OSI: Stop advertising support for "3.0 _SCP Extensions"
	spi: sh-msiof: Fix maximum DMA transfer size
	ASoC: apple: mca: Constrain channels according to TDM mask
	ALSA: core: fix up bus match const issues.
	drm/vmwgfx: Add seqno waiter for sync_files
	drm/vmwgfx: Add error path for xa_store in vmw_bo_add_detached_resource
	drm/vmwgfx: Fix dumb buffer leak
	drm/xe/d3cold: Set power state to D3Cold during s2idle/s3
	drm/vc4: tests: Use return instead of assert
	drm/amd/pp: Fix potential NULL pointer dereference in atomctrl_initialize_mc_reg_table
	media: rkvdec: Fix frame size enumeration
	arm64/fpsimd: Avoid RES0 bits in the SME trap handler
	arm64/fpsimd: Discard stale CPU state when handling SME traps
	arm64/fpsimd: Don't corrupt FPMR when streaming mode changes
	arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP
	arm64/fpsimd: Reset FPMR upon exec()
	arm64/fpsimd: Fix merging of FPSIMD state during signal return
	drm/panthor: Fix GPU_COHERENCY_ACE[_LITE] definitions
	drm/panthor: Update panthor_mmu::irq::mask when needed
	perf: arm-ni: Unregister PMUs on probe failure
	perf: arm-ni: Fix missing platform_set_drvdata()
	drm/panel: samsung-sofef00: Drop s6e3fc2x01 support
	drm/bridge: lt9611uxc: Fix an error handling path in lt9611uxc_probe()
	fs/ntfs3: handle hdr_first_de() return value
	fs/ntfs3: Add missing direct_IO in ntfs_aops_cmpr
	kunit/usercopy: Disable u64 test on 32-bit SPARC
	watchdog: exar: Shorten identity name to fit correctly
	m68k: mac: Fix macintosh_config for Mac II
	firmware: psci: Fix refcount leak in psci_dt_init
	arm64: Support ARM64_VA_BITS=52 when setting ARCH_MMAP_RND_BITS_MAX
	arm64/fpsimd: Avoid warning when sve_to_fpsimd() is unused
	selftests/seccomp: fix syscall_restart test for arm compat
	drm/msm/dpu: enable SmartDMA on SM8150
	drm/msm/dpu: enable SmartDMA on SC8180X
	drm: rcar-du: Fix memory leak in rcar_du_vsps_init()
	drm/vkms: Adjust vkms_state->active_planes allocation type
	drm/tegra: rgb: Fix the unbound reference count
	firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES
	arm64/fpsimd: Do not discard modified SVE state
	overflow: Fix direct struct member initialization in _DEFINE_FLEX()
	scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops
	perf/amlogic: Replace smp_processor_id() with raw_smp_processor_id() in meson_ddr_pmu_create()
	selftests/seccomp: fix negative_ENOSYS tracer tests on arm32
	drm/msm/a6xx: Disable rgb565_predicator on Adreno 7c3
	drm/mediatek: mtk_drm_drv: Fix kobject put for mtk_mutex device ptr
	drm/mediatek: Fix kobject put for component sub-drivers
	drm/mediatek: mtk_drm_drv: Unbind secondary mmsys components on err
	media: verisilicon: Free post processor buffers on error
	svcrdma: Reduce the number of rdma_rw contexts per-QP
	xen/x86: fix initial memory balloon target
	wifi: ath11k: fix node corruption in ar->arvifs list
	wifi: ath12k: Fix memory leak during vdev_id mismatch
	wifi: ath12k: Fix invalid memory access while forming 802.11 header
	IB/cm: use rwlock for MAD agent lock
	bpf: Check link_create.flags parameter for multi_kprobe
	selftests/bpf: Fix bpf_nf selftest failure
	bpf: fix ktls panic with sockmap
	bpf, sockmap: fix duplicated data transmission
	bpf, sockmap: Fix panic when calling skb_linearize
	f2fs: zone: fix to avoid inconsistence in between SIT and SSA
	wifi: ath12k: fix cleanup path after mhi init
	wifi: ath12k: Fix WMI tag for EHT rate in peer assoc
	wifi: ath12k: Fix buffer overflow in debugfs
	f2fs: clean up unnecessary indentation
	f2fs: prevent the current section from being selected as a victim during GC
	f2fs: fix to do sanity check on sbi->total_valid_block_count
	page_pool: Move pp_magic check into helper functions
	page_pool: Track DMA-mapped pages and unmap them when destroying the pool
	net: ncsi: Fix GCPS 64-bit member variables
	libbpf: Fix buffer overflow in bpf_object__init_prog
	net/mlx5: Avoid using xso.real_dev unnecessarily
	xfrm: Use xdo.dev instead of xdo.real_dev
	wifi: rtw88: sdio: map mgmt frames to queue TX_DESC_QSEL_MGMT
	wifi: rtw88: sdio: call rtw_sdio_indicate_tx_status unconditionally
	wifi: rtw88: do not ignore hardware read error during DPK
	wifi: ath12k: fix invalid access to memory
	wifi: ath12k: Add MSDU length validation for TKIP MIC error
	wifi: ath12k: Fix the QoS control field offset to build QoS header
	wifi: ath12k: fix node corruption in ar->arvifs list
	RDMA/hns: Include hnae3.h in hns_roce_hw_v2.h
	scsi: hisi_sas: Call I_T_nexus after soft reset for SATA disk
	libbpf: Fix event name too long error
	libbpf: Remove sample_period init in perf_buffer
	Use thread-safe function pointer in libbpf_print
	iommu: Protect against overflow in iommu_pgsize()
	bonding: assign random address if device address is same as bond
	f2fs: clean up w/ fscrypt_is_bounce_page()
	f2fs: fix to detect gcing page in f2fs_is_cp_guaranteed()
	scsi: smartpqi: Fix smp_processor_id() call trace for preemptible kernels
	libbpf: Use proper errno value in linker
	bpf: Allow XDP dev-bound programs to perform XDP_REDIRECT into maps
	netfilter: bridge: Move specific fragmented packet to slow_path instead of dropping it
	netfilter: nft_quota: match correctly when the quota just depleted
	netfilter: nft_set_pipapo: prevent overflow in lookup table allocation
	RDMA/mlx5: Fix error flow upon firmware failure for RQ destruction
	bpf: Fix uninitialized values in BPF_{CORE,PROBE}_READ
	tracing: Move histogram trigger variables from stack to per CPU structure
	clk: qcom: camcc-sm6350: Add *_wait_val values for GDSCs
	clk: qcom: dispcc-sm6350: Add *_wait_val values for GDSCs
	clk: qcom: gcc-sm6350: Add *_wait_val values for GDSCs
	clk: qcom: gpucc-sm6350: Add *_wait_val values for GDSCs
	bpftool: Fix regression of "bpftool cgroup tree" EINVAL on older kernels
	clk: bcm: rpi: Add NULL check in raspberrypi_clk_register()
	wifi: iwlfiwi: mvm: Fix the rate reporting
	efi/libstub: Describe missing 'out' parameter in efi_load_initrd
	selftests/bpf: Fix caps for __xlated/jited_unpriv
	tracing: Rename event_trigger_alloc() to trigger_data_alloc()
	tracing: Fix error handling in event_trigger_parse()
	of: unittest: Unlock on error in unittest_data_add()
	ktls, sockmap: Fix missing uncharge operation
	libbpf: Use proper errno value in nlattr
	pinctrl: at91: Fix possible out-of-boundary access
	bpf: Fix WARN() in get_bpf_raw_tp_regs
	dt-bindings: soc: fsl,qman-fqd: Fix reserved-memory.yaml reference
	clk: qcom: gcc-msm8939: Fix mclk0 & mclk1 for 24 MHz
	s390/bpf: Store backchain even for leaf progs
	wifi: rtw89: pci: enlarge retry times of RX tag to 1000
	wifi: rtw88: fix the 'para' buffer size to avoid reading out of bounds
	wifi: rtw89: fix firmware scan delay unit for WiFi 6 chips
	iommu: remove duplicate selection of DMAR_TABLE
	wifi: ath12k: fix memory leak in ath12k_service_ready_ext_event
	hisi_acc_vfio_pci: fix XQE dma address error
	hisi_acc_vfio_pci: add eq and aeq interruption restore
	hisi_acc_vfio_pci: bugfix live migration function without VF device driver
	wifi: ath9k_htc: Abort software beacon handling if disabled
	scsi: ufs: mcq: Delete ufshcd_release_scsi_cmd() in ufshcd_mcq_abort()
	kernfs: Relax constraint in draining guard
	Bluetooth: ISO: Fix not using SID from adv report
	wifi: mt76: mt7996: Fix null-ptr-deref in mt7996_mmio_wed_init()
	wifi: mt76: mt7915: Fix null-ptr-deref in mt7915_mmio_wed_init()
	wifi: mt76: mt7925: prevent multiple scan commands
	wifi: mt76: mt7925: refine the sniffer commnad
	wifi: mt76: mt7925: ensure all MCU commands wait for response
	wifi: mt76: mt7996: set EHT max ampdu length capability
	wifi: mt76: mt7996: fix RX buffer size of MCU event
	bpf: Revert "bpf: remove unnecessary rcu_read_{lock,unlock}() in multi-uprobe attach logic"
	netfilter: xtables: support arpt_mark and ipv6 optstrip for iptables-nft only builds
	netfilter: nf_tables: nft_fib_ipv6: fix VRF ipv4/ipv6 result discrepancy
	vfio/type1: Fix error unwind in migration dirty bitmap allocation
	Bluetooth: MGMT: iterate over mesh commands in mgmt_mesh_foreach()
	Bluetooth: btintel: Check dsbr size from EFI variable
	bpf, sockmap: Avoid using sk_socket after free when sending
	netfilter: nf_tables: nft_fib: consistent l3mdev handling
	netfilter: nft_tunnel: fix geneve_opt dump
	RISC-V: KVM: lock the correct mp_state during reset
	net: usb: aqc111: fix error handling of usbnet read calls
	vsock/virtio: fix `rx_bytes` accounting for stream sockets
	RDMA/cma: Fix hang when cma_netevent_callback fails to queue_work
	net: lan966x: Fix 1-step timestamping over ipv4 or ipv6
	net: xilinx: axienet: Fix Tx skb circular buffer occupancy check in dmaengine xmit
	bpf: Avoid __bpf_prog_ret0_warn when jit fails
	net: phy: clear phydev->devlink when the link is deleted
	net: phy: fix up const issues in to_mdio_device() and to_phy_device()
	net: lan743x: rename lan743x_reset_phy to lan743x_hw_reset_phy
	net: lan743x: Fix PHY reset handling during initialization and WOL
	net: phy: mscc: Fix memory leak when using one step timestamping
	octeontx2-pf: QOS: Perform cache sync on send queue teardown
	octeontx2-pf: QOS: Refactor TC_HTB_LEAF_DEL_LAST callback
	calipso: Don't call calipso functions for AF_INET sk.
	net: openvswitch: Fix the dead loop of MPLS parse
	net: phy: mscc: Stop clearing the the UDPv4 checksum for L2 frames
	f2fs: use d_inode(dentry) cleanup dentry->d_inode
	f2fs: fix to correct check conditions in f2fs_cross_rename
	arm64: dts: qcom: x1e80100: Mark usb_2 as dma-coherent
	arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures
	arm64: dts: qcom: sm8650: add missing cpu-cfg interconnect path in the mdss node
	arm64: dts: qcom: x1e80100-romulus: Keep L12B and L15B always on
	arm64: dts: qcom: sdm845-starqltechn: remove wifi
	arm64: dts: qcom: sdm845-starqltechn: fix usb regulator mistake
	arm64: dts: qcom: sdm845-starqltechn: refactor node order
	arm64: dts: qcom: sdm845-starqltechn: remove excess reserved gpios
	arm64: dts: qcom: sm8350: Reenable crypto & cryptobam
	arm64: dts: qcom: sm8250: Fix CPU7 opp table
	arm64: dts: qcom: sc8280xp-x13s: Drop duplicate DMIC supplies
	arm64: dts: qcom: ipq9574: Fix USB vdd info
	arm64: dts: rockchip: Move SHMEM memory to reserved memory on rk3588
	ARM: dts: at91: usb_a9263: fix GPIO for Dataflash chip select
	ARM: dts: at91: at91sam9263: fix NAND chip selects
	arm64: dts: mediatek: mt8195: Reparent vdec1/2 and venc1 power domains
	arm64: dts: qcom: sdm660-xiaomi-lavender: Add missing SD card detect GPIO
	arm64: dts: mt8183: Add port node to mt8183.dtsi
	arm64: dts: imx8mm-beacon: Fix RTC capacitive load
	arm64: dts: imx8mn-beacon: Fix RTC capacitive load
	arm64: dts: imx8mp-beacon: Fix RTC capacitive load
	arm64: dts: imx8mm-beacon: Set SAI5 MCLK direction to output for HDMI audio
	arm64: dts: imx8mn-beacon: Set SAI5 MCLK direction to output for HDMI audio
	arm64: dts: mediatek: mt6357: Drop regulator-fixed compatibles
	arm64: dts: mt6359: Add missing 'compatible' property to regulators node
	arm64: dts: qcom: sdm660-lavender: Add missing USB phy supply
	arm64: dts: qcom: sda660-ifc6560: Fix dt-validate warning
	arm64: dts: rockchip: Add vcc-supply to SPI flash on rk3566-rock3c
	arm64: dts: rockchip: Update eMMC for NanoPi R5 series
	arm64: tegra: Drop remaining serial clock-names and reset-names
	arm64: tegra: Add uartd serial alias for Jetson TX1 module
	arm64: dts: ti: k3-j721e-common-proc-board: Enable OSPI1 on J721E
	soc: qcom: smp2p: Fix fallback to qcom,ipc parse
	Squashfs: check return result of sb_min_blocksize
	ocfs2: fix possible memory leak in ocfs2_finish_quota_recovery
	nilfs2: add pointer check for nilfs_direct_propagate()
	nilfs2: do not propagate ENOENT error from nilfs_btree_propagate()
	bus: fsl-mc: fix double-free on mc_dev
	dt-bindings: vendor-prefixes: Add Liontron name
	ARM: dts: qcom: apq8064: add missing clocks to the timer node
	ARM: dts: qcom: apq8064 merge hw splinlock into corresponding syscon device
	ARM: dts: qcom: apq8064: move replicator out of soc node
	arm64: defconfig: mediatek: enable PHY drivers
	arm64: dts: rockchip: disable unrouted USB controllers and PHY on RK3399 Puma with Haikou
	arm64: dts: qcom: qcm2290: fix (some) of QUP interconnects
	arm64: dts: renesas: white-hawk-ard-audio: Fix TPU0 groups
	arm64: dts: mt6359: Rename RTC node to match binding expectations
	ARM: aspeed: Don't select SRAM
	soc: aspeed: lpc: Fix impossible judgment condition
	soc: aspeed: Add NULL check in aspeed_lpc_enable_snoop()
	fbdev: core: fbcvt: avoid division by 0 in fb_cvt_hperiod()
	randstruct: gcc-plugin: Remove bogus void member
	randstruct: gcc-plugin: Fix attribute addition
	perf build: Warn when libdebuginfod devel files are not available
	perf ui browser hists: Set actions->thread before calling do_zoom_thread()
	dm: don't change md if dm_table_set_restrictions() fails
	dm: free table mempools if not used in __bind
	backlight: pm8941: Add NULL check in wled_configure()
	x86/irq: Ensure initial PIR loads are performed exactly once
	mtd: nand: ecc-mxic: Fix use of uninitialized variable ret
	hwmon: (asus-ec-sensors) check sensor index in read_string()
	perf symbol-minimal: Fix double free in filename__read_build_id
	dm: fix dm_blk_report_zones
	dm-flakey: error all IOs when num_features is absent
	dm-flakey: make corrupting read bios work
	perf trace: Fix leaks of 'struct thread' in set_filter_loop_pids()
	perf tests: Fix 'perf report' tests installation
	perf intel-pt: Fix PEBS-via-PT data_src
	perf scripts python: exported-sql-viewer.py: Fix pattern matching with Python 3
	remoteproc: qcom_wcnss_iris: Add missing put_device() on error in probe
	remoteproc: k3-r5: Drop check performed in k3_r5_rproc_{mbox_callback/kick}
	remoteproc: k3-dsp: Drop check performed in k3_dsp_rproc_{mbox_callback/kick}
	rpmsg: qcom_smd: Fix uninitialized return variable in __qcom_smd_send()
	mfd: exynos-lpass: Fix an error handling path in exynos_lpass_probe()
	mfd: exynos-lpass: Avoid calling exynos_lpass_disable() twice in exynos_lpass_remove()
	mfd: stmpe-spi: Correct the name used in MODULE_DEVICE_TABLE
	perf tests switch-tracking: Fix timestamp comparison
	mailbox: imx: Fix TXDB_V2 sending
	mailbox: mtk-cmdq: Refine GCE_GCTL_VALUE setting
	perf symbol: Fix use-after-free in filename__read_build_id
	perf record: Fix incorrect --user-regs comments
	perf trace: Always print return value for syscalls returning a pid
	nfs: clear SB_RDONLY before getting superblock
	nfs: ignore SB_RDONLY when remounting nfs
	perf trace: Set errpid to false for rseq and set_robust_list
	perf callchain: Always populate the addr_location map when adding IP
	cifs: Fix validation of SMB1 query reparse point response
	rust: alloc: add missing invariant in Vec::set_len()
	rtc: sh: assign correct interrupts with DT
	phy: rockchip: samsung-hdptx: Fix clock ratio setup
	phy: rockchip: samsung-hdptx: Do no set rk_hdptx_phy->rate in case of errors
	PCI: Print the actual delay time in pci_bridge_wait_for_secondary_bus()
	PCI: rcar-gen4: set ep BAR4 fixed size
	PCI: cadence: Fix runtime atomic count underflow
	PCI: apple: Use gpiod_set_value_cansleep in probe flow
	phy: qcom-qmp-usb: Fix an NULL vs IS_ERR() bug
	dmaengine: ti: Add NULL check in udma_probe()
	PCI/ACPI: Fix allocated memory release on error in pci_acpi_scan_root()
	PCI/DPC: Initialize aer_err_info before using it
	PCI/DPC: Log Error Source ID only when valid
	rtc: loongson: Add missing alarm notifications for ACPI RTC events
	PCI: endpoint: Retain fixed-size BAR size as well as aligned size
	usb: renesas_usbhs: Reorder clock handling and power management in probe
	serial: Fix potential null-ptr-deref in mlb_usio_probe()
	thunderbolt: Fix a logic error in wake on connect
	iio: filter: admv8818: fix band 4, state 15
	iio: filter: admv8818: fix integer overflow
	iio: filter: admv8818: fix range calculation
	iio: filter: admv8818: Support frequencies >= 2^32
	iio: adc: ad7124: Fix 3dB filter frequency reading
	usb: acpi: Prevent null pointer dereference in usb_acpi_add_usb4_devlink()
	MIPS: Loongson64: Add missing '#interrupt-cells' for loongson64c_ls7a
	coresight: Fixes device's owner field for registered using coresight_init_driver()
	coresight: catu: Introduce refcount and spinlock for enabling/disabling
	counter: interrupt-cnt: Protect enable/disable OPs with mutex
	fpga: fix potential null pointer deref in fpga_mgr_test_img_load_sgt()
	coresight: prevent deactivate active config while enabling the config
	vt: remove VT_RESIZE and VT_RESIZEX from vt_compat_ioctl()
	mei: vsc: Cast tx_buf to (__be32 *) when passed to cpu_to_be32_array()
	iio: adc: PAC1934: fix typo in documentation link
	iio: adc: mcp3911: fix device dependent mappings for conversion result registers
	USB: gadget: udc: fix const issue in gadget_match_driver()
	USB: typec: fix const issue in typec_match()
	loop: add file_start_write() and file_end_write()
	drm/xe: Make xe_gt_freq part of the Documentation
	Fix sock_exceed_buf_limit not being triggered in __sk_mem_raise_allocated
	page_pool: Fix use-after-free in page_pool_recycle_in_ring
	net: stmmac: platform: guarantee uniqueness of bus_id
	gve: Fix RX_BUFFERS_POSTED stat to report per-queue fill_cnt
	net: tipc: fix refcount warning in tipc_aead_encrypt
	driver: net: ethernet: mtk_star_emac: fix suspend/resume issue
	net/mlx4_en: Prevent potential integer overflow calculating Hz
	net: lan966x: Make sure to insert the vlan tags also in host mode
	spi: bcm63xx-spi: fix shared reset
	spi: bcm63xx-hsspi: fix shared reset
	Bluetooth: L2CAP: Fix not responding with L2CAP_CR_LE_ENCRYPTION
	ice: fix Tx scheduler error handling in XDP callback
	ice: create new Tx scheduler nodes for new queues only
	ice: fix rebuilding the Tx scheduler tree for large queue counts
	idpf: fix a race in txq wakeup
	idpf: avoid mailbox timeout delays during reset
	net: dsa: tag_brcm: legacy: fix pskb_may_pull length
	net: stmmac: make sure that ptp_rate is not 0 before configuring timestamping
	net: stmmac: make sure that ptp_rate is not 0 before configuring EST
	drm/i915/guc: Check if expecting reply before decrementing outstanding_submission_g2h
	drm/i915/psr: Fix using wrong mask in REG_FIELD_PREP
	drm/i915/guc: Handle race condition where wakeref count drops below 0
	net: fix udp gso skb_segment after pull from frag_list
	net: wwan: t7xx: Fix napi rx poll issue
	vmxnet3: correctly report gso type for UDP tunnels
	selftests: net: build net/lib dependency in all target
	PM: sleep: Fix power.is_suspended cleanup for direct-complete devices
	nvme: fix command limits status code
	gve: add missing NULL check for gve_alloc_pending_packet() in TX DQO
	drm/panel-simple: fix the warnings for the Evervision VGG644804
	netfilter: nf_set_pipapo_avx2: fix initial map fill
	netfilter: nf_nat: also check reverse tuple to obtain clashing entry
	net: ti: icssg-prueth: Fix swapped TX stats for MII interfaces.
	net: dsa: b53: do not enable RGMII delay on bcm63xx
	net: dsa: b53: allow RGMII for bcm63xx RGMII ports
	net: dsa: b53: do not touch DLL_IQQD on bcm53115
	wifi: cfg80211/mac80211: correctly parse S1G beacon optional elements
	net: wwan: mhi_wwan_mbim: use correct mux_id for multiplexing
	wireguard: device: enable threaded NAPI
	seg6: Fix validation of nexthop addresses
	riscv: misaligned: fix sleeping function called during misaligned access handling
	scsi: ufs: qcom: Prevent calling phy_exit() before phy_init()
	ASoC: codecs: hda: Fix RPM usage count underflow
	ASoC: Intel: avs: Fix deadlock when the failing IPC is SET_D0IX
	ASoC: Intel: avs: Verify content returned by parse_int_array()
	ASoC: ti: omap-hdmi: Re-add dai_link->platform to fix card init
	iov_iter: use iov_offset for length calculation in iov_iter_aligned_bvec
	path_overmount(): avoid false negatives
	fix propagation graph breakage by MOVE_MOUNT_SET_GROUP move_mount(2)
	do_change_type(): refuse to operate on unmounted/not ours mounts
	tools/power turbostat: Fix AMD package-energy reporting
	ALSA: hda/realtek: fix micmute LEDs on HP Laptops with ALC3315
	ALSA: hda/realtek: fix micmute LEDs on HP Laptops with ALC3247
	ALSA: hda/realtek: Add support for various HP Laptops using CS35L41 HDA
	ALSA: hda/realtek - Support mute led function for HP platform
	ALSA: hda/realtek - Add new HP ZBook laptop with micmute led fixup
	ALSA: hda/realtek: Add support for HP Agusta using CS35L41 HDA
	Input: synaptics-rmi - fix crash with unsupported versions of F34
	pmdomain: core: Introduce dev_pm_genpd_rpm_always_on()
	mmc: sdhci-of-dwcmshc: add PD workaround on RK3576
	arm64: dts: qcom: x1e80100: Apply consistent critical thermal shutdown
	arm64: dts: qcom: x1e80100: Add GPU cooling
	pinctrl: samsung: refactor drvdata suspend & resume callbacks
	pinctrl: samsung: add dedicated SoC eint suspend/resume callbacks
	pinctrl: samsung: add gs101 specific eint suspend/resume callbacks
	dt-bindings: pwm: adi,axi-pwmgen: Increase #pwm-cells to 3
	dt-bindings: pwm: Correct indentation and style in DTS example
	dt-bindings: pwm: adi,axi-pwmgen: Fix clocks
	serial: sh-sci: Move runtime PM enable to sci_probe_single()
	scsi: core: ufs: Fix a hang in the error handler
	Bluetooth: hci_core: fix list_for_each_entry_rcu usage
	Bluetooth: btintel_pcie: Fix driver not posting maximum rx buffers
	Bluetooth: btintel_pcie: Increase the tx and rx descriptor count
	Bluetooth: btintel_pcie: Reduce driver buffer posting to prevent race condition
	Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete
	Bluetooth: MGMT: Remove unused mgmt_pending_find_data
	Bluetooth: MGMT: Protect mgmt_pending list with its own lock
	net: dsa: b53: fix untagged traffic sent via cpu tagged with VID 0
	ptp: remove ptp->n_vclocks check logic in ptp_vclock_in_use()
	ath10k: snoc: fix unbalanced IRQ enable in crash recovery
	wifi: ath11k: convert timeouts to secs_to_jiffies()
	wifi: ath11k: avoid burning CPU in ath11k_debugfs_fw_stats_request()
	wifi: ath11k: don't use static variables in ath11k_debugfs_fw_stats_process()
	wifi: ath11k: don't wait when there is no vdev started
	wifi: ath11k: move some firmware stats related functions outside of debugfs
	wifi: ath11k: validate ath11k_crypto_mode on top of ath11k_core_qmi_firmware_ready
	wifi: ath12k: refactor ath12k_hw_regs structure
	wifi: ath12k: fix GCC_GCC_PCIE_HOT_RST definition for WCN7850
	regulator: max20086: Fix refcount leak in max20086_parse_regulators_dt()
	spi: omap2-mcspi: Disable multi mode when CS should be kept asserted after message
	spi: omap2-mcspi: Disable multi-mode when the previous message kept CS asserted
	pinctrl: qcom: pinctrl-qcm2290: Add missing pins
	scsi: iscsi: Fix incorrect error path labels for flashnode operations
	net_sched: sch_sfq: fix a potential crash on gso_skb handling
	powerpc/powernv/memtrace: Fix out of bounds issue in memtrace mmap
	powerpc/vas: Return -EINVAL if the offset is non-zero in mmap()
	drm/meson: use unsigned long long / Hz for frequency types
	drm/meson: fix debug log statement when setting the HDMI clocks
	drm/meson: use vclk_freq instead of pixel_freq in debug print
	drm/meson: fix more rounding issues with 59.94Hz modes
	i40e: return false from i40e_reset_vf if reset is in progress
	i40e: retry VFLR handling if there is ongoing VF reset
	ACPI: CPPC: Fix NULL pointer dereference when nosmp is used
	net: Fix TOCTOU issue in sk_is_readable()
	macsec: MACsec SCI assignment for ES = 0
	net/mdiobus: Fix potential out-of-bounds read/write access
	net/mdiobus: Fix potential out-of-bounds clause 45 read/write access
	Bluetooth: Fix NULL pointer deference on eir_get_service_data
	Bluetooth: hci_sync: Fix broadcast/PA when using an existing instance
	Bluetooth: eir: Fix possible crashes on eir_create_adv_data
	Bluetooth: MGMT: Fix sparse errors
	net/mlx5: Ensure fw pages are always allocated on same NUMA
	net/mlx5: Fix ECVF vports unload on shutdown flow
	net/mlx5: Fix return value when searching for existing flow group
	net/mlx5: HWS, fix missing ip_version handling in definer
	net/mlx5e: Fix leak of Geneve TLV option object
	net_sched: prio: fix a race in prio_tune()
	net_sched: red: fix a race in __red_change()
	net_sched: tbf: fix a race in tbf_change()
	net_sched: ets: fix a race in ets_qdisc_change()
	net: drv: netdevsim: don't napi_complete() from netpoll
	btrfs: exit after state insertion failure at btrfs_convert_extent_bit()
	fs/filesystems: Fix potential unsigned integer underflow in fs_name()
	gfs2: pass through holder from the VFS for freeze/thaw
	btrfs: exit after state split error at set_extent_bit()
	nvmet-fcloop: access fcpreq only when holding reqlock
	perf: Ensure bpf_perf_link path is properly serialized
	block: use q->elevator with ->elevator_lock held in elv_iosched_show()
	io_uring: fix use-after-free of sq->thread in __io_uring_show_fdinfo()
	block: don't use submit_bio_noacct_nocheck in blk_zone_wplug_bio_work
	io_uring: consistently use rcu semantics with sqpoll thread
	bio: Fix bio_first_folio() for SPARSEMEM without VMEMMAP
	block: Fix bvec_set_folio() for very large folios
	objtool/rust: relax slice condition to cover more `noreturn` Rust functions
	tools/resolve_btfids: Fix build when cross compiling kernel with clang.
	Revert "wifi: mwifiex: Fix HT40 bandwidth issue."
	ALSA: usb-audio: Add implicit feedback quirk for RODE AI-1
	HID: usbhid: Eliminate recurrent out-of-bounds bug in usbhid_parse()
	posix-cpu-timers: fix race between handle_posix_cpu_timers() and posix_cpu_timer_del()
	nvmem: zynqmp_nvmem: unbreak driver after cleanup
	usb: usbtmc: Fix read_stb function and get_stb ioctl
	VMCI: fix race between vmci_host_setup_notify and vmci_ctx_unset_notify
	tty: serial: 8250_omap: fix TX with DMA for am33xx
	usb: misc: onboard_usb_dev: Fix usb5744 initialization sequence
	usb: cdnsp: Fix issue with detecting command completion event
	usb: cdnsp: Fix issue with detecting USB 3.2 speed
	usb: Flush altsetting 0 endpoints before reinitializating them after reset.
	usb: typec: tcpm/tcpci_maxim: Fix bounds check in process_rx()
	usb: typec: tcpm: move tcpm_queue_vdm_unlocked to asynchronous work
	9p: Add a migrate_folio method
	ring-buffer: Do not trigger WARN_ON() due to a commit_overrun
	ring-buffer: Fix buffer locking in ring_buffer_subbuf_order_set()
	ring-buffer: Move cpus_read_lock() outside of buffer->mutex
	xfs: don't assume perags are initialised when trimming AGs
	xen/arm: call uaccess_ttbr0_enable for dm_op hypercall
	x86/iopl: Cure TIF_IO_BITMAP inconsistencies
	x86/fred/signal: Prevent immediate repeat of single step trap on return from SIGTRAP handler
	calipso: unlock rcu before returning -EAFNOSUPPORT
	regulator: dt-bindings: mt6357: Drop fixed compatible requirement
	usb: misc: onboard_usb_dev: fix build warning for CONFIG_USB_ONBOARD_DEV_USB5744=n
	net: usb: aqc111: debug info before sanitation
	overflow: Introduce __DEFINE_FLEX for having no initializer
	gfs2: Don't clear sb->s_fs_info in gfs2_sys_fs_add
	drm/meson: Use 1000ULL when operating with mode->clock
	thermal/drivers/mediatek/lvts: Remove unused lvts_debugfs_exit
	Linux 6.12.34

Change-Id: I679f0f1ddcf9bf8a0b86089ccb7b78536f5bc441
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-07-09 08:59:06 +00:00
Kuniyuki Iwashima ce23b73f0f Bluetooth: hci_core: Fix use-after-free in vhci_flush()
[ Upstream commit 1d6123102e9fbedc8d25bf4731da6d513173e49e ]

syzbot reported use-after-free in vhci_flush() without repro. [0]

From the splat, a thread close()d a vhci file descriptor while
its device was being used by iotcl() on another thread.

Once the last fd refcnt is released, vhci_release() calls
hci_unregister_dev(), hci_free_dev(), and kfree() for struct
vhci_data, which is set to hci_dev->dev->driver_data.

The problem is that there is no synchronisation after unlinking
hdev from hci_dev_list in hci_unregister_dev().  There might be
another thread still accessing the hdev which was fetched before
the unlink operation.

We can use SRCU for such synchronisation.

Let's run hci_dev_reset() under SRCU and wait for its completion
in hci_unregister_dev().

Another option would be to restore hci_dev->destruct(), which was
removed in commit 587ae086f6 ("Bluetooth: Remove unused
hci-destruct cb").  However, this would not be a good solution, as
we should not run hci_unregister_dev() while there are in-flight
ioctl() requests, which could lead to another data-race KCSAN splat.

Note that other drivers seem to have the same problem, for exmaple,
virtbt_remove().

[0]:
BUG: KASAN: slab-use-after-free in skb_queue_empty_lockless include/linux/skbuff.h:1891 [inline]
BUG: KASAN: slab-use-after-free in skb_queue_purge_reason+0x99/0x360 net/core/skbuff.c:3937
Read of size 8 at addr ffff88807cb8d858 by task syz.1.219/6718

CPU: 1 UID: 0 PID: 6718 Comm: syz.1.219 Not tainted 6.16.0-rc1-syzkaller-00196-g08207f42d3ff #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:408 [inline]
 print_report+0xd2/0x2b0 mm/kasan/report.c:521
 kasan_report+0x118/0x150 mm/kasan/report.c:634
 skb_queue_empty_lockless include/linux/skbuff.h:1891 [inline]
 skb_queue_purge_reason+0x99/0x360 net/core/skbuff.c:3937
 skb_queue_purge include/linux/skbuff.h:3368 [inline]
 vhci_flush+0x44/0x50 drivers/bluetooth/hci_vhci.c:69
 hci_dev_do_reset net/bluetooth/hci_core.c:552 [inline]
 hci_dev_reset+0x420/0x5c0 net/bluetooth/hci_core.c:592
 sock_do_ioctl+0xd9/0x300 net/socket.c:1190
 sock_ioctl+0x576/0x790 net/socket.c:1311
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:907 [inline]
 __se_sys_ioctl+0xf9/0x170 fs/ioctl.c:893
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fcf5b98e929
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fcf5c7b9038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007fcf5bbb6160 RCX: 00007fcf5b98e929
RDX: 0000000000000000 RSI: 00000000400448cb RDI: 0000000000000009
RBP: 00007fcf5ba10b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fcf5bbb6160 R15: 00007ffd6353d528
 </TASK>

Allocated by task 6535:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
 __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
 kasan_kmalloc include/linux/kasan.h:260 [inline]
 __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4359
 kmalloc_noprof include/linux/slab.h:905 [inline]
 kzalloc_noprof include/linux/slab.h:1039 [inline]
 vhci_open+0x57/0x360 drivers/bluetooth/hci_vhci.c:635
 misc_open+0x2bc/0x330 drivers/char/misc.c:161
 chrdev_open+0x4c9/0x5e0 fs/char_dev.c:414
 do_dentry_open+0xdf0/0x1970 fs/open.c:964
 vfs_open+0x3b/0x340 fs/open.c:1094
 do_open fs/namei.c:3887 [inline]
 path_openat+0x2ee5/0x3830 fs/namei.c:4046
 do_filp_open+0x1fa/0x410 fs/namei.c:4073
 do_sys_openat2+0x121/0x1c0 fs/open.c:1437
 do_sys_open fs/open.c:1452 [inline]
 __do_sys_openat fs/open.c:1468 [inline]
 __se_sys_openat fs/open.c:1463 [inline]
 __x64_sys_openat+0x138/0x170 fs/open.c:1463
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Freed by task 6535:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
 poison_slab_object mm/kasan/common.c:247 [inline]
 __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
 kasan_slab_free include/linux/kasan.h:233 [inline]
 slab_free_hook mm/slub.c:2381 [inline]
 slab_free mm/slub.c:4643 [inline]
 kfree+0x18e/0x440 mm/slub.c:4842
 vhci_release+0xbc/0xd0 drivers/bluetooth/hci_vhci.c:671
 __fput+0x44c/0xa70 fs/file_table.c:465
 task_work_run+0x1d1/0x260 kernel/task_work.c:227
 exit_task_work include/linux/task_work.h:40 [inline]
 do_exit+0x6ad/0x22e0 kernel/exit.c:955
 do_group_exit+0x21c/0x2d0 kernel/exit.c:1104
 __do_sys_exit_group kernel/exit.c:1115 [inline]
 __se_sys_exit_group kernel/exit.c:1113 [inline]
 __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1113
 x64_sys_call+0x21ba/0x21c0 arch/x86/include/generated/asm/syscalls_64.h:232
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ffff88807cb8d800
 which belongs to the cache kmalloc-1k of size 1024
The buggy address is located 88 bytes inside of
 freed 1024-byte region [ffff88807cb8d800, ffff88807cb8dc00)

Fixes: bf18c7118c ("Bluetooth: vhci: Free driver_data on file release")
Reported-by: syzbot+2faa4825e556199361f9@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=f62d64848fc4c7c30cd6
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-07-06 11:01:39 +02:00
Luiz Augusto von Dentz 4e83f2dbb2 Bluetooth: MGMT: Protect mgmt_pending list with its own lock
[ Upstream commit 6fe26f694c824b8a4dbf50c635bee1302e3f099c ]

This uses a mutex to protect from concurrent access of mgmt_pending
list which can cause crashes like:

==================================================================
BUG: KASAN: slab-use-after-free in hci_sock_get_channel+0x60/0x68 net/bluetooth/hci_sock.c:91
Read of size 2 at addr ffff0000c48885b2 by task syz.4.334/7318

CPU: 0 UID: 0 PID: 7318 Comm: syz.4.334 Not tainted 6.15.0-rc7-syzkaller-g187899f4124a #0 PREEMPT
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
Call trace:
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:466 (C)
 __dump_stack+0x30/0x40 lib/dump_stack.c:94
 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120
 print_address_description+0xa8/0x254 mm/kasan/report.c:408
 print_report+0x68/0x84 mm/kasan/report.c:521
 kasan_report+0xb0/0x110 mm/kasan/report.c:634
 __asan_report_load2_noabort+0x20/0x2c mm/kasan/report_generic.c:379
 hci_sock_get_channel+0x60/0x68 net/bluetooth/hci_sock.c:91
 mgmt_pending_find+0x7c/0x140 net/bluetooth/mgmt_util.c:223
 pending_find net/bluetooth/mgmt.c:947 [inline]
 remove_adv_monitor+0x44/0x1a4 net/bluetooth/mgmt.c:5445
 hci_mgmt_cmd+0x780/0xc00 net/bluetooth/hci_sock.c:1712
 hci_sock_sendmsg+0x544/0xbb0 net/bluetooth/hci_sock.c:1832
 sock_sendmsg_nosec net/socket.c:712 [inline]
 __sock_sendmsg net/socket.c:727 [inline]
 sock_write_iter+0x25c/0x378 net/socket.c:1131
 new_sync_write fs/read_write.c:591 [inline]
 vfs_write+0x62c/0x97c fs/read_write.c:684
 ksys_write+0x120/0x210 fs/read_write.c:736
 __do_sys_write fs/read_write.c:747 [inline]
 __se_sys_write fs/read_write.c:744 [inline]
 __arm64_sys_write+0x7c/0x90 fs/read_write.c:744
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49
 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132
 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
 el0_svc+0x58/0x17c arch/arm64/kernel/entry-common.c:767
 el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:786
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600

Allocated by task 7037:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x40/0x78 mm/kasan/common.c:68
 kasan_save_alloc_info+0x44/0x54 mm/kasan/generic.c:562
 poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
 __kasan_kmalloc+0x9c/0xb4 mm/kasan/common.c:394
 kasan_kmalloc include/linux/kasan.h:260 [inline]
 __do_kmalloc_node mm/slub.c:4327 [inline]
 __kmalloc_noprof+0x2fc/0x4c8 mm/slub.c:4339
 kmalloc_noprof include/linux/slab.h:909 [inline]
 sk_prot_alloc+0xc4/0x1f0 net/core/sock.c:2198
 sk_alloc+0x44/0x3ac net/core/sock.c:2254
 bt_sock_alloc+0x4c/0x300 net/bluetooth/af_bluetooth.c:148
 hci_sock_create+0xa8/0x194 net/bluetooth/hci_sock.c:2202
 bt_sock_create+0x14c/0x24c net/bluetooth/af_bluetooth.c:132
 __sock_create+0x43c/0x91c net/socket.c:1541
 sock_create net/socket.c:1599 [inline]
 __sys_socket_create net/socket.c:1636 [inline]
 __sys_socket+0xd4/0x1c0 net/socket.c:1683
 __do_sys_socket net/socket.c:1697 [inline]
 __se_sys_socket net/socket.c:1695 [inline]
 __arm64_sys_socket+0x7c/0x94 net/socket.c:1695
 __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:49
 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:132
 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:151
 el0_svc+0x58/0x17c arch/arm64/kernel/entry-common.c:767
 el0t_64_sync_handler+0x78/0x108 arch/arm64/kernel/entry-common.c:786
 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:600

Freed by task 6607:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x40/0x78 mm/kasan/common.c:68
 kasan_save_free_info+0x58/0x70 mm/kasan/generic.c:576
 poison_slab_object mm/kasan/common.c:247 [inline]
 __kasan_slab_free+0x68/0x88 mm/kasan/common.c:264
 kasan_slab_free include/linux/kasan.h:233 [inline]
 slab_free_hook mm/slub.c:2380 [inline]
 slab_free mm/slub.c:4642 [inline]
 kfree+0x17c/0x474 mm/slub.c:4841
 sk_prot_free net/core/sock.c:2237 [inline]
 __sk_destruct+0x4f4/0x760 net/core/sock.c:2332
 sk_destruct net/core/sock.c:2360 [inline]
 __sk_free+0x320/0x430 net/core/sock.c:2371
 sk_free+0x60/0xc8 net/core/sock.c:2382
 sock_put include/net/sock.h:1944 [inline]
 mgmt_pending_free+0x88/0x118 net/bluetooth/mgmt_util.c:290
 mgmt_pending_remove+0xec/0x104 net/bluetooth/mgmt_util.c:298
 mgmt_set_powered_complete+0x418/0x5cc net/bluetooth/mgmt.c:1355
 hci_cmd_sync_work+0x204/0x33c net/bluetooth/hci_sync.c:334
 process_one_work+0x7e8/0x156c kernel/workqueue.c:3238
 process_scheduled_works kernel/workqueue.c:3319 [inline]
 worker_thread+0x958/0xed8 kernel/workqueue.c:3400
 kthread+0x5fc/0x75c kernel/kthread.c:464
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:847

Fixes: a380b6cff1 ("Bluetooth: Add generic mgmt helper API")
Closes: https://syzkaller.appspot.com/bug?extid=0a7039d5d9986ff4ecec
Closes: https://syzkaller.appspot.com/bug?extid=cc0cc52e7f43dc9e6df1
Reported-by: syzbot+0a7039d5d9986ff4ecec@syzkaller.appspotmail.com
Tested-by: syzbot+0a7039d5d9986ff4ecec@syzkaller.appspotmail.com
Tested-by: syzbot+cc0cc52e7f43dc9e6df1@syzkaller.appspotmail.com
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-19 15:32:25 +02:00
Luiz Augusto von Dentz 9df3e5e7f7 Bluetooth: MGMT: Fix UAF on mgmt_remove_adv_monitor_complete
[ Upstream commit e6ed54e86aae9e4f7286ce8d5c73780f91b48d1c ]

This reworks MGMT_OP_REMOVE_ADV_MONITOR to not use mgmt_pending_add to
avoid crashes like bellow:

==================================================================
BUG: KASAN: slab-use-after-free in mgmt_remove_adv_monitor_complete+0xe5/0x540 net/bluetooth/mgmt.c:5406
Read of size 8 at addr ffff88801c53f318 by task kworker/u5:5/5341

CPU: 0 UID: 0 PID: 5341 Comm: kworker/u5:5 Not tainted 6.15.0-syzkaller-10402-g4cb6c8af8591 #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Workqueue: hci0 hci_cmd_sync_work
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_address_description mm/kasan/report.c:408 [inline]
 print_report+0xd2/0x2b0 mm/kasan/report.c:521
 kasan_report+0x118/0x150 mm/kasan/report.c:634
 mgmt_remove_adv_monitor_complete+0xe5/0x540 net/bluetooth/mgmt.c:5406
 hci_cmd_sync_work+0x261/0x3a0 net/bluetooth/hci_sync.c:334
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3321
 worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
 kthread+0x711/0x8a0 kernel/kthread.c:464
 ret_from_fork+0x3fc/0x770 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>

Allocated by task 5987:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 poison_kmalloc_redzone mm/kasan/common.c:377 [inline]
 __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394
 kasan_kmalloc include/linux/kasan.h:260 [inline]
 __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4358
 kmalloc_noprof include/linux/slab.h:905 [inline]
 kzalloc_noprof include/linux/slab.h:1039 [inline]
 mgmt_pending_new+0x65/0x240 net/bluetooth/mgmt_util.c:252
 mgmt_pending_add+0x34/0x120 net/bluetooth/mgmt_util.c:279
 remove_adv_monitor+0x103/0x1b0 net/bluetooth/mgmt.c:5454
 hci_mgmt_cmd+0x9c9/0xef0 net/bluetooth/hci_sock.c:1719
 hci_sock_sendmsg+0x6ca/0xef0 net/bluetooth/hci_sock.c:1839
 sock_sendmsg_nosec net/socket.c:712 [inline]
 __sock_sendmsg+0x219/0x270 net/socket.c:727
 sock_write_iter+0x258/0x330 net/socket.c:1131
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x548/0xa90 fs/read_write.c:686
 ksys_write+0x145/0x250 fs/read_write.c:738
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Freed by task 5989:
 kasan_save_stack mm/kasan/common.c:47 [inline]
 kasan_save_track+0x3e/0x80 mm/kasan/common.c:68
 kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576
 poison_slab_object mm/kasan/common.c:247 [inline]
 __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264
 kasan_slab_free include/linux/kasan.h:233 [inline]
 slab_free_hook mm/slub.c:2380 [inline]
 slab_free mm/slub.c:4642 [inline]
 kfree+0x18e/0x440 mm/slub.c:4841
 mgmt_pending_foreach+0xc9/0x120 net/bluetooth/mgmt_util.c:242
 mgmt_index_removed+0x10d/0x2f0 net/bluetooth/mgmt.c:9366
 hci_sock_bind+0xbe9/0x1000 net/bluetooth/hci_sock.c:1314
 __sys_bind_socket net/socket.c:1810 [inline]
 __sys_bind+0x2c3/0x3e0 net/socket.c:1841
 __do_sys_bind net/socket.c:1846 [inline]
 __se_sys_bind net/socket.c:1844 [inline]
 __x64_sys_bind+0x7a/0x90 net/socket.c:1844
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Fixes: 66bd095ab5 ("Bluetooth: advmon offload MSFT remove monitor")
Closes: https://syzkaller.appspot.com/bug?extid=feb0dc579bbe30a13190
Reported-by: syzbot+feb0dc579bbe30a13190@syzkaller.appspotmail.com
Tested-by: syzbot+feb0dc579bbe30a13190@syzkaller.appspotmail.com
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-19 15:32:25 +02:00
Greg Kroah-Hartman 62cd1edf4d Merge 6.12.28 into android16-6.12-lts
GKI (arm64) relevant 33 out of 166 changes, affecting 52 files +454/-363
  0aaae77be5 ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface() [1 file, +7/-0]
  fdf0ae5e9e ALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset [1 file, +2/-1]
  38d9ca7405 binder: fix offset calculation in debug log [1 file, +1/-1]
  f1dfc94584 drm/fdinfo: Protect against driver unbind [1 file, +6/-0]
  090c8714ef arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays [1 file, +2/-0]
  eb9b72e4fe mm/memblock: pass size instead of end to memblock_set_node() [1 file, +1/-1]
  9c4ddea497 mm/memblock: repeat setting reserved region nid if array is doubled [1 file, +10/-0]
  0988dd0263 tracing: Do not take trace_event_sem in print_event_fields() [1 file, +2/-2]
  f451082572 dm-bufio: don't schedule in atomic context [1 file, +8/-1]
  510aea4ef0 dm: always update the array size in realloc_argv on success [1 file, +3/-2]
  2e303d0107 iommu: Fix two issues in iommu_copy_struct_from_user() [1 file, +4/-4]
  573b047229 cpufreq: Avoid using inconsistent policy->min and policy->max [1 file, +25/-7]
  962d88304c cpufreq: Fix setting policy limits when frequency tables are used [4 files, +73/-41]
  1f27a3e93b tracing: Fix oob write in trace_seq_to_buffer() [1 file, +3/-2]
  220395054c ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties [1 file, +13/-19]
  29a4a29112 ASoC: soc-pcm: Fix hw_params() and DAPM widget sequence [1 file, +4/-1]
  65d3c57061 xsk: Fix race condition in AF_XDP generic RX path [4 files, +6/-6]
  fe81c26d2d Bluetooth: hci_conn: Remove alloc from critical section [1 file, +10/-18]
  eb8b860e87 Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver [6 files, +95/-107]
  620810ac1f Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync [7 files, +88/-109]
  432572d536 Bluetooth: L2CAP: copy RX timestamp to new fragments [1 file, +3/-0]
  6b1355860d scsi: ufs: core: Remove redundant query_complete trace [1 file, +0/-2]
  5ad0b1b554 nvme-pci: fix queue unquiesce check on slot_reset [1 file, +1/-1]
  6effe1c0fa net: ipv6: fix UDPv6 GSO segmentation with NAT [1 file, +60/-1]
  c0dba059b1 net: use sock_gen_put() when sk_state is TCP_TIME_WAIT [2 files, +2/-2]
  e10ec6e32b blk-mq: create correct map for fallback case [1 file, +1/-2]
  dab2a13059 mm, slab: clean up slab->obj_exts always [1 file, +7/-20]
  0a188c0e19 sch_htb: make htb_qlen_notify() idempotent [1 file, +2/-0]
  969d8beaa2 firmware: arm_scmi: Balance device refcount when destroying devices [1 file, +3/-0]
  3b41b5efae kernel: param: rename locate_module_kobject [1 file, +3/-3]
  69113bf740 kernel: globalize lookup_or_create_module_kobject() [2 files, +3/-1]
  e1eea69858 drivers: base: handle module_kobject creation [1 file, +5/-8]
  db62809197 dm: fix copying after src array boundaries [1 file, +1/-1]

Changes in 6.12.28
        Bluetooth: btusb: add Foxconn 0xe0fc for Qualcomm WCN785x
        Bluetooth: btusb: Add one more ID 0x0489:0xe0f3 for Qualcomm WCN785x
        Bluetooth: btusb: Add one more ID 0x13d3:0x3623 for Qualcomm WCN785x
        Bluetooth: btusb: Add ID 0x2c7c:0x0130 for Qualcomm WCN785x
        Bluetooth: btusb: Add new VID/PID for WCN785x
        Bluetooth: btusb: Add 13 USB device IDs for Qualcomm WCN785x
        Revert "rndis_host: Flag RNDIS modems as WWAN devices"
        ALSA: usb-audio: Add retry on -EPROTO from usb_set_interface()
        ALSA: usb-audio: Add second USB ID for Jabra Evolve 65 headset
        binder: fix offset calculation in debug log
        btrfs: adjust subpage bit start based on sectorsize
        btrfs: fix COW handling in run_delalloc_nocow()
        cpufreq: intel_pstate: Unchecked MSR aceess in legacy mode
        drm/fdinfo: Protect against driver unbind
        drm/nouveau: Fix WARN_ON in nouveau_fence_context_kill()
        EDAC/altera: Test the correct error reg offset
        EDAC/altera: Set DDR and SDMMC interrupt mask before registration
        i2c: imx-lpi2c: Fix clock count when probe defers
        arm64: errata: Add missing sentinels to Spectre-BHB MIDR arrays
        parisc: Fix double SIGFPE crash
        perf/x86/intel: Only check the group flag for X86 leader
        perf/x86/intel: KVM: Mask PEBS_ENABLE loaded for guest with vCPU's value.
        amd-xgbe: Fix to ensure dependent features are toggled with RX checksum offload
        irqchip/qcom-mpm: Prevent crash when trying to handle non-wake GPIOs
        mm/memblock: pass size instead of end to memblock_set_node()
        mm/memblock: repeat setting reserved region nid if array is doubled
        mmc: renesas_sdhi: Fix error handling in renesas_sdhi_probe
        spi: tegra114: Don't fail set_cs_timing when delays are zero
        tracing: Do not take trace_event_sem in print_event_fields()
        wifi: brcm80211: fmac: Add error handling for brcmf_usb_dl_writeimage()
        x86/boot/sev: Support memory acceptance in the EFI stub under SVSM
        dm-bufio: don't schedule in atomic context
        dm-integrity: fix a warning on invalid table line
        dm: always update the array size in realloc_argv on success
        drm/amdgpu: Fix offset for HDP remap in nbio v7.11
        drm: Select DRM_KMS_HELPER from DRM_DEBUG_DP_MST_TOPOLOGY_REFS
        iommu/amd: Fix potential buffer overflow in parse_ivrs_acpihid
        iommu/arm-smmu-v3: Fix iommu_device_probe bug due to duplicated stream ids
        iommu/arm-smmu-v3: Fix pgsize_bit for sva domains
        iommu/vt-d: Apply quirk_iommu_igfx for 8086:0044 (QM57/QS57)
        iommu: Fix two issues in iommu_copy_struct_from_user()
        platform/x86/amd: pmc: Require at least 2.5 seconds between HW sleep cycles
        platform/x86/intel-uncore-freq: Fix missing uncore sysfs during CPU hotplug
        ksmbd: fix use-after-free in ksmbd_session_rpc_open
        ksmbd: fix use-after-free in kerberos authentication
        ksmbd: fix use-after-free in session logoff
        smb: client: fix zero length for mkdir POSIX create context
        cpufreq: Avoid using inconsistent policy->min and policy->max
        cpufreq: Fix setting policy limits when frequency tables are used
        tracing: Fix oob write in trace_seq_to_buffer()
        drm/amd/display: Default IPS to RCG_IN_ACTIVE_IPS2_IN_OFF
        ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties
        ASoC: cs-amp-lib-test: Don't select SND_SOC_CS_AMP_LIB
        ASoC: soc-pcm: Fix hw_params() and DAPM widget sequence
        book3s64/radix : Align section vmemmap start address to PAGE_SIZE
        pinctrl: imx: Return NULL if no group is matched and found
        powerpc/boot: Check for ld-option support
        ASoC: Intel: sof_sdw: Add NULL check in asoc_sdw_rt_dmic_rtd_init()
        ALSA: hda/realtek - Enable speaker for HP platform
        drm/i915/pxp: fix undefined reference to `intel_pxp_gsccs_is_ready_for_sessions'
        wifi: iwlwifi: don't warn if the NIC is gone in resume
        wifi: iwlwifi: fix the check for the SCRATCH register upon resume
        wifi: plfxlc: Remove erroneous assert in plfxlc_mac_release
        powerpc/boot: Fix dash warning
        vxlan: vnifilter: Fix unlocked deletion of default FDB entry
        xsk: Fix race condition in AF_XDP generic RX path
        net/mlx5e: Use custom tunnel header for vxlan gbp
        net/mlx5: E-Switch, Initialize MAC Address for Default GID
        net/mlx5e: TC, Continue the attr process even if encap entry is invalid
        net/mlx5e: Fix lock order in mlx5e_tx_reporter_ptpsq_unhealthy_recover
        net/mlx5: E-switch, Fix error handling for enabling roce
        accel/ivpu: Correct DCT interrupt handling
        ASoC: amd: acp: Fix NULL pointer deref in acp_i2s_set_tdm_slot
        Bluetooth: hci_conn: Remove alloc from critical section
        Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver
        Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync
        Bluetooth: btintel_pcie: Avoid redundant buffer allocation
        Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()
        Bluetooth: btintel_pcie: Add additional to checks to clear TX/RX paths
        Bluetooth: L2CAP: copy RX timestamp to new fragments
        net: mscc: ocelot: delete PVID VLAN when readding it as non-PVID
        octeon_ep_vf: Resolve netdevice usage count issue
        bnxt_en: improve TX timestamping FIFO configuration
        rtase: Modify the condition used to detect overflow in rtase_calc_time_mitigation
        net: ethernet: mtk-star-emac: fix spinlock recursion issues on rx/tx poll
        net: ethernet: mtk-star-emac: rearm interrupts in rx_poll only when advised
        net: ethernet: mtk_eth_soc: sync mtk_clks_source_name array
        pds_core: make pdsc_auxbus_dev_del() void
        pds_core: specify auxiliary_device to be created
        pds_core: remove write-after-free of client_id
        net_sched: drr: Fix double list add in class with netem as child qdisc
        net_sched: hfsc: Fix a UAF vulnerability in class with netem as child qdisc
        net_sched: ets: Fix double list add in class with netem as child qdisc
        net_sched: qfq: Fix double list add in class with netem as child qdisc
        ice: Check VF VSI Pointer Value in ice_vc_add_fdir_fltr()
        idpf: fix offloads support for encapsulated packets
        scsi: ufs: core: Remove redundant query_complete trace
        ALSA: ump: Fix buffer overflow at UMP SysEx message conversion
        nvme-pci: fix queue unquiesce check on slot_reset
        drm/tests: shmem: Fix memleak
        drm/mipi-dbi: Fix blanking for non-16 bit formats
        net: dlink: Correct endianness handling of led_mode
        net: mdio: mux-meson-gxl: set reversed bit when using internal phy
        idpf: fix potential memory leak on kcalloc() failure
        idpf: protect shutdown from reset
        igc: fix lock order in igc_ptp_reset
        net: ethernet: mtk_eth_soc: fix SER panic with 4GB+ RAM
        net: dsa: felix: fix broken taprio gate states after clock jump
        net: ipv6: fix UDPv6 GSO segmentation with NAT
        ALSA: hda/realtek: Fix built-mic regression on other ASUS models
        bnxt_en: Fix error handling path in bnxt_init_chip()
        bnxt_en: Fix ethtool selftest output in one of the failure cases
        bnxt_en: Add missing skb_mark_for_recycle() in bnxt_rx_vlan()
        bnxt_en: call pci_alloc_irq_vectors() after bnxt_reserve_rings()
        bnxt_en: Fix coredump logic to free allocated buffer
        bnxt_en: Fix out-of-bound memcpy() during ethtool -w
        bnxt_en: Fix ethtool -d byte order for 32-bit values
        nvme-tcp: fix premature queue removal and I/O failover
        nvme-tcp: select CONFIG_TLS from CONFIG_NVME_TCP_TLS
        nvmet-tcp: select CONFIG_TLS from CONFIG_NVME_TARGET_TCP_TLS
        ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction
        bnxt_en: fix module unload sequence
        net: use sock_gen_put() when sk_state is TCP_TIME_WAIT
        ptp: ocp: Fix NULL dereference in Adva board SMA sysfs operations
        net: lan743x: Fix memleak issue when GSO enabled
        net: fec: ERR007885 Workaround for conventional TX
        octeon_ep: Fix host hang issue during device reboot
        net: hns3: store rx VLAN tag offload state for VF
        net: hns3: fix an interrupt residual problem
        net: hns3: fixed debugfs tm_qset size
        net: hns3: defer calling ptp_clock_register()
        net: vertexcom: mse102x: Fix possible stuck of SPI interrupt
        net: vertexcom: mse102x: Fix LEN_MASK
        net: vertexcom: mse102x: Add range check for CMD_RTS
        net: vertexcom: mse102x: Fix RX error handling
        blk-mq: create correct map for fallback case
        mm, slab: clean up slab->obj_exts always
        bcachefs: Remove incorrect __counted_by annotation
        net: Fix the devmem sock opts and msgs for parisc
        accel/ivpu: Make DB_ID and JOB_ID allocations incremental
        accel/ivpu: Use xa_alloc_cyclic() instead of custom function
        accel/ivpu: Fix a typo
        accel/ivpu: Update VPU FW API headers
        accel/ivpu: Abort all jobs after command queue unregister
        accel/ivpu: Fix locking order in ivpu_job_submit
        accel/ivpu: Add handling of VPU_JSM_STATUS_MVNCI_CONTEXT_VIOLATION_HW
        sch_htb: make htb_qlen_notify() idempotent
        sch_drr: make drr_qlen_notify() idempotent
        sch_hfsc: make hfsc_qlen_notify() idempotent
        sch_qfq: make qfq_qlen_notify() idempotent
        sch_ets: make est_qlen_notify() idempotent
        drm/xe: Ensure fixed_slice_mode gets set after ccs_mode change
        firmware: arm_scmi: Balance device refcount when destroying devices
        firmware: arm_ffa: Skip Rx buffer ownership release if not acquired
        arm64: dts: imx95: Correct the range of PCIe app-reg region
        ARM: dts: opos6ul: add ksz8081 phy properties
        arm64: dts: st: Adjust interrupt-controller for stm32mp25 SoCs
        arm64: dts: st: Use 128kB size for aliased GIC400 register access on stm32mp25 SoCs
        Revert "drm/meson: vclk: fix calculation of 59.94 fractional rates"
        kernel: param: rename locate_module_kobject
        kernel: globalize lookup_or_create_module_kobject()
        drivers: base: handle module_kobject creation
        drm/amd/display: Add scoped mutexes for amdgpu_dm_dhcp
        drm/amd/display: Fix slab-use-after-free in hdcp
        dm: fix copying after src array boundaries
        Linux 6.12.28

Change-Id: I79f3d50a10acfe53f329b4b5a4af502f488c61f3
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-05-27 07:18:43 +00:00
Greg Kroah-Hartman 72655c8488 Merge branch 'android16-6.12' into branch 'android16-6.12-lts'
Catch the -lts branch up with all of the updates and kmi break that
happened in the android16-6.12 branch.  Changes included in here are:

* 147b27e8d6 ANDROID: nvmet: Use the bdev_is_zone_start() function
* 392bbaffdc ANDROID: scsi: ufs: Support I/O tracing for zoned block devices
* e395d18c8b ANDROID: scsi: scsi_debug: Support npo2 zone sizes
* 497ca126dd ANDROID: scsi/sd_zbc: Support npo2 zone sizes
* 355dfccf9d ANDROID: dm-table: allow zoned devices with non power-of-2 zone sizes
* d6f0f66569 ANDROID: block: Do not set the I/O priority for zoned writes
* 30ce6652ee ANDROID: block: Support npo2 zone sizes
* 4a77dbe5c5 UPSTREAM: loop: fix queue freeze vs limits lock order
* d2eefa734f UPSTREAM: loop: refactor queue limits updates
* b0477a0759 UPSTREAM: loop: Fix ABBA locking race
* 49d8530dfe UPSTREAM: loop: Simplify discard granularity calc
* f1aac3cfaf UPSTREAM: loop: Use bdev limit helpers for configuring discard
* 02cf51391e UPSTREAM: usb-storage: fix queue freeze vs limits lock order
* 96dfef3be8 UPSTREAM: nbd: fix queue freeze vs limits lock order
* 1bf8be0b4e UPSTREAM: nvme: fix queue freeze vs limits lock order
* 32ab5e2dd9 UPSTREAM: block: fix queue freeze vs limits lock order in sysfs store methods
* e4eb47a3ec BACKPORT: block: add a store_limit operations for sysfs entries
* 574e0848d2 UPSTREAM: block: add a queue_limits_commit_update_frozen helper
* 65ad590076 FROMGIT: genirq: Retain depth for managed IRQs across CPU hotplug
* 1bc40b53aa FROMGIT: ufs: core: support updating device command timeout
* 5e97c36004 ANDROID: Build Rust Binder as a GKI module
* daae469749 ANDROID: rust_binder: handle read/write_consumed > read/write_size
* b23e338263 ANDROID: rust_binder: add Rust Binder to Makefile
* 7163533526 ANDROID: rust_binder: fixups for 6.12.19 LTS
* bf40001347 ANDROID: rust_binder: add back tracepoints
* dac7c66bc9 ANDROID: rust_binder: move Rust Binder in preparation for GKI module
* 8313296331 FROMGIT: rust: alloc: add Vec::insert_within_capacity
* c28afde01d FROMGIT: rust: alloc: add Vec::remove
* e1da60354a FROMGIT: rust: alloc: add Vec::retain
* 1e01dcf3be FROMGIT: rust: alloc: add Vec::drain_all
* 1a17ca097d FROMGIT: rust: alloc: add Vec::push_within_capacity
* 75c0948156 FROMGIT: rust: alloc: add Vec::pop
* ed2019e2c4 FROMGIT: rust: alloc: add Vec::clear
* 04d685ecf9 FROMGIT: rust: alloc: replace `Vec::set_len` with `inc_len`
* 597ebe7c32 FROMGIT: rust: alloc: refactor `Vec::truncate` using `dec_len`
* 8a1546ee71 FROMGIT: rust: alloc: add `Vec::dec_len`
* 48080570b0 FROMGIT: rust: alloc: add Vec::len() <= Vec::capacity invariant
* 7907fdcba6 FROMGIT: rust: alloc: allow coercion from `Box<T>` to `Box<dyn U>` if T implements U
* 9de29f7183 FROMGIT: rust: alloc: use `spare_capacity_mut` to reduce unsafe
* c40401d665 FROMGIT: rust: alloc: add Vec::resize method
* 9d37907c65 FROMGIT: rust: alloc: add Vec::truncate method
* f037ab7a73 FROMGIT: rust: alloc: add missing invariant in Vec::set_len()
* 025e0fc417 UPSTREAM: rust: kunit: allow to know if we are in a test
* 86603276f4 UPSTREAM: rust: macros: add macro to easily run KUnit tests
* f8c704efd6 BACKPORT: rust: kunit: add KUnit case and suite macros
* 1b461575a8 UPSTREAM: rust: add kunitconfig
* 615a5b6d7e UPSTREAM: rust: uaccess: generalize userSliceReader to support any Vec
* 0690b3438b ANDROID: 2025/05/15 KMI update
* daf75d7717 FROMLIST: mmc: sdhci-msm: Enable force hw reset during cqe recovery
* 794391e0e8 FROMLIST: mmc: core: Introduce new flag to force hardware reset
* 84e14946eb ANDROID: GKI: add ANDROID_OEM_DATA in struct bio
* e7b9281897 ANDROID: rust: allow zero init for KABI members
* 9027c8ec43 ANDROID: 16K: Add VMA padding size to smaps output
* 307be4b887 ANDROID: 16K: Don't copy data vma for maps/smaps output
* d378f3ab39 ANDROID: 16K: Fixup padding vm_flags bits on VMA splits
* c0d7f9802a ANDROID: 16K: Introduce pgsize_migration_inline.h
* 6fd1ed47f5 ANDROID: 16K: Fix vm_flags conflicts from mseal
* 2a651ea884 ANDROID: 16K: Don't set padding vm_flags on 32-bit archs
* 81734e02c6 ANDROID: 16K: Avoid mmap lock assertions for padding VMAs
* 4199eaf23e ANDROID: 16K: Only check basename of linker context
* 6050c4b129 ANDROID: 16K: Avoid and document padding madvise lock warning
* 6e64e9ce1f ANDROID: 16K: Fix show maps CFI failure
* 95d0b11a65 ANDROID: 16K: Handle pad VMA splits and merges
* 29dc8b580b ANDROID: 16K: madvise_vma_pad_pages: Remove filemap_fault check
* bcbb9d3c85 ANDROID: 16K: Only madvise padding from dynamic linker context
* 2feb999649 ANDROID: 16K: Separate padding from ELF LOAD segment mappings
* 092ff7e5b4 ANDROID: 16K: Exclude ELF padding for fault around range
* a3b4e8f698 ANDROID: 16K: Use MADV_DONTNEED to save VMA padding pages.
* 0d793cde88 ANDROID: 16K: Introduce ELF padding representation for VMAs
* 918c98f267 ANDROID: 16K: Introduce /sys/kernel/mm/pgsize_migration/enabled
* e9420a4582 ANDROID: 16K: rust: ashmem: __page_align VMA size check
* d44ff7a3ed ANDROID: 16K: Introduce rust __page_*() helpers
* e39fcef01c ANDROID: 16K: Duplicate command line for parsing page_shift
* 44a6882cc7 ANDROID: 16K: Init page_shift param in a pure_initcall()
* 68ba0f4dfb ANDROID: 16K: __PAGE_ALIGN() virtio gpu dumb buffers
* 1022438243 ANDROID: 16K: Avoid conflicting __PAGE_SIZE in bpf/core
* 778a447513 ANDROID: 16K: Emulate cachestat counters
* 0d44e1eb0e ANDROID: 16K: Disable kernel APIs indexed by PFNs
* d684b3125e ANDROID: 16K: Emulate pread() for pagemap
* 669f0c4355 ANDROID: 16K: Emulate /proc/pid/pagemap
* 3c9a39c770 ANDROID: 16K: Fix mincore emulation
* 8aab407984 ANDROID: 16K: Emulate mincore() syscall
* 596774b15c ANDROID: 16K: x86_64: Disable userfaultfd
* c94c31e526 ANDROID: 16K: Update sysctl_perf_event_mlock if PERF_EVENTS enabled
* 13ba0aec9c ANDROID: 16K: Fixup perf_mmap check for metadata page
* 03ce5534fc ANDROID: 16K: Fix swapfile header
* 53ab86eb55 ANDROID: 16K: Fix SIGBUS semantics and document __filemap_fixup()
* 50a96587af ANDROID: 16K: [s]maps: Fold fixup entries into the parent entry
* 57bbcef534 ANDROID: 16K: Ensure mseal start and len are 16kB multiples
* 5c1d7ef671 ANDROID: 16K: Handle pgoff > file_size for shmem and file backed VMAs
* cd48f9a1f7 ANDROID: 16K: Ensure stack expansion size is __PAGE_SIZE multiple
* a8df614576 ANDROID: 16K: Only support page size emulation for x86_64
* ac98b230db ANDROID: 16K: Use bit 59 for __VM_NO_COMPAT
* eb54f19663 ANDROID: 16K: Fix __MAP_NO_COMPAT overflow
* 36157a52cd ANDROID: 16K: __PAGE_ALIGN dma-bufs size from heap allocations
* 65df6a39b7 ANDROID: 16K: Align vsyscall mapping size to a 16kB multiple
* 4395898bf5 ANDROID: 16K: Align vdso mapping size to a 16kB multiple
* 37ebd01b5a ANDROID: 16K: Make the x86 vdso layout 16kB compatible
* c64a15a595 ANDROID: 16K: Introduce __MAX_PAGE_SIZE macros
* 60b3135822 ANDROID: 16K: Remove androidboot from page_shift kernel param
* 5e32ba9023 ANDROID: 16K: Remove unescessary err log in randomize_page()
* 1ae0864980 ANDROID: 16K Prevent non-__PAGE_ALIGNED() VMA splits by anon names
* 68e0528b38 ANDROID: 16K: Remove anon name for fixup VMA
* f7f25a5b1a ANDROID: 16K: Add page_compat[_enabled] to symbol list
* 93bfe702cd ANDROID: 16K: Export page compat symbols
* 181bc19bef ANDROID: 16K: x86_64: Allow stack randomization of twice page-size
* f51703f4c1 ANDROID: 16K: x86_64: __PAGE_ALIGN mmap randomization
* 4daa4c1fec ANDROID: 16K: brk: __PAGE_ALIGN brk
* 7852452429 ANDROID: 16K: mlock: __PAGE_ALIGN addr and len
* 4956d7c6c4 ANDROID: 16K: msync: __PAGE_ALIGN addr and len
* 5d8eb7f9e0 ANDROID: 16K: madvise: __PAGE_ALIGN addr and len
* a52b76b874 ANDROID: 16K: mremap: __PAGE_ALIGN addr and len
* 2d3fed3a43 ANDROID: 16K: mprotect: __PAGE_ALIGN addr and len
* 397425965f ANDROID: 16K: munmap: __PAGE_ALIGN addr and len
* a9e38ff89a ANDROID: 16K: __PAGE_ALIGN stack_[top|base]
* ba166bce2c ANDROID: 16K: __PAGE_ALIGN randomize_stack_top() address
* 9ba9a0891b ANDROID: 16K: __PAGE_ALIGN randomize_page() address
* 81e0928547 ANDROID: 16K: __PAGE_ALIGN mmap hint address
* a1e630ea0d ANDROID: 16K: ashmem: Fix size check
* df9123472f ANDROID: 16K: Fix selinux mmap size check
* 7dea17008f ANDROID: 16K: procfs: maps: Don't show fixup VMAs
* e076e9ff2c ANDROID: 16K: Handle filemap faults
* a9ccc1128e ANDROID: 16K: Introduce __VM_NO_COMPAT vma flag
* e7f83d4d4b ANDROID: 16K: Ensure unmapped_area returns a __PAGE_ALIGNED address
* 796be8fd27 ANDROID: 16K: Reduce mmap rand bits
* 80e2a42d97 ANDROID: 16K: x86_64: Set ELF_EXEC_PAGESIZE to __PAGE_SIZE
* 58e2fa4ec4 ANDROID: 16K: Remove build time dependencies on ELF_EXEC_PAGESIZE
* d09cd43b3f ANDROID: 16K: Log unaligned operations
* 1fb2de0c3d ANDROID: 16K: Add page-compat helper macros
* a052d19e1c ANDROID: GKI: Pad vendor properties to power_supply_property enum
* 61de19b772 ANDROID: drivers/iommu: Pad iommu structs
* 6cb1db877d ANDROID: KVM: arm64: Pad more pKVM structs
* b3c31c9b21 ANDROID: KVM: arm64: Drop struct pkvm_mapping from KMI
* ef10b442e4 ANDROID: KVM: arm64: Remove struct kvm_cpu_context from the KMI
* 15bf9aa274 ANDROID: GKI: Add ABI padding for kcompressd feature
* e80ed6bcfb ANDROID: GKI: Add memory reclaim ABI padding
* 9e96103d83 ANDROID: GKI: Add dmabuf ABI padding
* 4bd97e7a02 ANDROID: GKI: Add cgroup ABI padding
* b209d55c0e ANDROID: GKI: Add cpuset ABI padding
* 060da33ae4 ANDROID: GKI: Add memcg ABI padding
* d48d0d0892 FROMLIST: scsi: core: Implement reserved command handling
* 26febb7cde UPSTREAM: block: track queue dying state automatically for modeling queue freeze lockdep
* df5f9ab297 UPSTREAM: block: don't verify queue freeze manually in elevator_init_mq()
* 752dff69ae UPSTREAM: block: track disk DEAD state automatically for modeling queue freeze lockdep
* 225f2e16ad UPSTREAM: block: don't reorder requests in blk_mq_add_to_batch
* bdcd6a28fd UPSTREAM: block: don't reorder requests in blk_add_rq_to_plug
* 24f685a927 UPSTREAM: block: add a rq_list type
* bbce2aa253 UPSTREAM: block: remove rq_list_move
* 128144da22 ANDROID: KVM: arm64: Add smc64 trap handling for protected guests
* 2c1385ae0e ANDROID: Modify android_rvh_find_lowest_rq hook
* bad3ca6c52 ANDROID: GKI: add vendor padding variable in struct nf_conn
* ef3d16e0e0 ANDROID: vendor_hooks: add a field in pglist_data
* 0dd21f133b ANDROID: scsi: ufs: add UFSHCD_ANDROID_QUIRK_SET_IID_TO_ONE
* 75adb09e2f ANDROID: GKI: the "reusachtig" padding sync with android16-6.12
* 20159aa0ac UPSTREAM: PCI: Check BAR index for validity
* 46f484fa4d UPSTREAM: perf: Fix hang while freeing sigtrap event
* f295287ed4 UPSTREAM: perf/core: Simplify the perf_event_alloc() error path
* 748bd1ca17 UPSTREAM: perf/core: Add aux_pause, aux_resume, aux_start_paused
* 887fb3f16c ANDROID: KVM: arm64: Add __pkvm_host_donate_sglist_hyp
* a7667808d9 UPSTREAM: tools/selftests: add guard region test for /proc/$pid/pagemap
* dd6e353d71 UPSTREAM: fs/proc/task_mmu: add guard region bit to pagemap
* df3e8432fa UPSTREAM: tools/selftests: add file/shmem-backed mapping guard region tests
* bc91eb889e UPSTREAM: tools/selftests: expand all guard region tests to file-backed
* 458e4dbd0b UPSTREAM: selftests/mm: rename guard-pages to guard-regions
* 8261d30079 UPSTREAM: mm: allow guard regions in file-backed and read-only mappings
* ca6b245e10 UPSTREAM: selftests/mm: use PIDFD_SELF in guard pages test
* 99b3bb2022 BACKPORT: selftests/pidfd: add tests for PIDFD_SELF_*
* 7a879200c9 UPSTREAM: selftests/pidfd: add new PIDFD_SELF* defines
* 1734a4ad6b BACKPORT: pidfd: add PIDFD_SELF* sentinels to refer to own thread/process
* b00dca6fb7 UPSTREAM: selftests/mm: add fork CoW guard page test
* 5367c0eacc BACKPORT: selftests/mm: add self tests for guard page feature
* 86f861b42e UPSTREAM: tools: testing: update tools UAPI header for mman-common.h
* b9ee6db5a8 BACKPORT: mm: madvise: implement lightweight guard page mechanism
* c14f85307d UPSTREAM: mm: add PTE_MARKER_GUARD PTE marker
* c5be90ae70 UPSTREAM: mm: pagewalk: add the ability to install PTEs
* 3306eb50a4 FROMGIT: docs: core-api: document the IOVA-based API
* 26405baef4 FROMGIT: dma-mapping: add a dma_need_unmap helper
* 66bc206d64 FROMGIT: dma-mapping: Implement link/unlink ranges API
* 59a15e3bf1 FROMGIT: iommu/dma: Factor out a iommu_dma_map_swiotlb helper
* 0f2253b2b1 FROMGIT: dma-mapping: Provide an interface to allow allocate IOVA
* c64f83e1d6 FROMGIT: iommu: add kernel-doc for iommu_unmap_fast
* 5c59ff3809 FROMGIT: iommu: generalize the batched sync after map interface
* 15ad0760b8 FROMGIT: dma-mapping: move the PCI P2PDMA mapping helpers to pci-p2pdma.h
* 661e6bda0e FROMGIT: PCI/P2PDMA: Refactor the p2pdma mapping helpers
* e44dfa62df Reapply "ANDROID: enable memory allocation profiling configs"
* 60372b88d2 ANDROID: binder: add OEM data to struct binder_alloc
* 31f62a008e ANDROID: Limit vfs-only namespace to GKI builds
* e2c81a7fa3 ANDROID: Fix incorrect namespacing for ANDROID_GKI_VFS_EXPORT_ONLY
* 7af261fc12 ANDROID: KVM: arm64: Use smccc 1.2 for direct FF-A calls
* 996a35040a FROMLIST: dm-zone: Use bdev_*() helper functions where applicable
* 1d1b2e8d63 FROMGIT: perf/aux: Allocate non-contiguous AUX pages by default
* 6e0b046d59 UPSTREAM: wifi: cfg80211: fix out-of-bounds access during multi-link element defragmentation
* 617a8cdb8d ANDROID: GKI: add OEM data to struct scan_control for XM OGKI
* acc91ef94b FROMGIT: dma-buf: insert memory barrier before updating num_fences
* 85856ec8b2 ANDROID: gunyah: Fix potential use-after-free in gunyah_rm_notifier_register
* e48193bfcf ANDROID: KVM: arm64: Reserve all args for req_mmio
* 42cfdfb46c ANDROID: GKI: Add reservation and use macros for non-LTS backports
* e1cdedc5db FROMGIT: mm/memcg: use kmem_cache when alloc memcg pernode info
* 65c043e1ca FROMGIT: mm/memcg: use kmem_cache when alloc memcg
* 434e2d5481 FROMGIT: mm/memcg: move mem_cgroup_init() ahead of cgroup_init()
* 4e16895056 ANDROID: GKI: Update oplus symbol list
* 28cbf47bba ANDROID: GKI: Export css_task_iter_start()
* 84849bc819 Revert "ANDROID: arm64: Forcefully disable SME at runtime"
* 0aaf2786fa FROMGIT: arm64/fpsimd: ptrace: Gracefully handle errors
* a51c741bb6 FROMGIT: arm64/fpsimd: ptrace: Mandate SVE payload for streaming-mode state
* 1d05f8264a FROMGIT: arm64/fpsimd: ptrace: Do not present register data for inactive mode
* 958a94681f FROMGIT: arm64/fpsimd: ptrace: Save task state before generating SVE header
* 3baa9071c3 FROMGIT: arm64/fpsimd: ptrace/prctl: Ensure VL changes leave task in a valid state
* ccf055346e FROMGIT: arm64/fpsimd: ptrace/prctl: Ensure VL changes do not resurrect stale data
* e18a498a2f FROMGIT: BACKPORT: arm64/fpsimd: Make clone() compatible with ZA lazy saving
* a6267d4bf5 FROMGIT: arm64/fpsimd: Clear PSTATE.SM during clone()
* 370e80e212 FROMGIT: arm64/fpsimd: Consistently preserve FPSIMD state during clone()
* f5db1f9a3b FROMGIT: arm64/fpsimd: Remove redundant task->mm check
* 57f5b387c4 FROMGIT: arm64/fpsimd: signal: Use SMSTOP behaviour in setup_return()
* f940d322b6 FROMGIT: arm64/fpsimd: Add task_smstop_sm()
* 73106ecef5 FROMGIT: arm64/fpsimd: Factor out {sve,sme}_state_size() helpers
* f0f4be3921 FROMGIT: arm64/fpsimd: Clarify sve_sync_*() functions
* 49bba8e1e8 FROMGIT: arm64/fpsimd: ptrace: Consistently handle partial writes to NT_ARM_(S)SVE
* b2853208b1 FROMGIT: arm64/fpsimd: signal: Consistently read FPSIMD context
* bed5006f4a FROMGIT: arm64/fpsimd: signal: Mandate SVE payload for streaming-mode state
* 63897a249f FROMGIT: arm64/fpsimd: signal: Clear PSTATE.SM when restoring FPSIMD frame only
* 37749ff2f7 FROMGIT: arm64/fpsimd: Do not discard modified SVE state
* f01e49470a FROMGIT: arm64/fpsimd: Avoid warning when sve_to_fpsimd() is unused
* 787c2bf09b FROMGIT: arm64/fpsimd: signal: Clear TPIDR2 when delivering signals
* dd9f8f02e9 FROMGIT: arm64/fpsimd: signal: Simplify preserve_tpidr2_context()
* 9592e13c60 FROMGIT: arm64/fpsimd: signal: Always save+flush state early
* 14383c6162 FROMGIT: arm64/fpsimd: signal32: Always save+flush state early
* 0c377582f6 FROMGIT: arm64/fpsimd: Add fpsimd_save_and_flush_current_state()
* acd59f18f3 FROMGIT: arm64/fpsimd: Fix merging of FPSIMD state during signal return
* f78acfcc31 FROMGIT: arm64/fpsimd: Reset FPMR upon exec()
* 32dbf4add0 FROMGIT: arm64/fpsimd: Avoid clobbering kernel FPSIMD state with SMSTOP
* 2d33087d98 FROMGIT: arm64/fpsimd: Don't corrupt FPMR when streaming mode changes
* c757f1bcc8 FROMGIT: arm64/fpsimd: Discard stale CPU state when handling SME traps
* 64c0feb892 FROMGIT: arm64/fpsimd: Remove opportunistic freeing of SME state
* f55fc6340b FROMGIT: arm64/fpsimd: Remove redundant SVE trap manipulation
* 2ccf10f4a6 FROMGIT: arm64/fpsimd: Remove unused fpsimd_force_sync_to_sve()
* 1e380d1c0e FROMGIT: arm64/fpsimd: Avoid RES0 bits in the SME trap handler
* 6cf85d6ca1 BACKPORT: KVM: arm64: Eagerly switch ZCR_EL{1,2}
* 6c0394f0ef BACKPORT: KVM: arm64: Mark some header functions as inline
* 66762de87f BACKPORT: KVM: arm64: Refactor exit handlers
* d09c293b5b BACKPORT: KVM: arm64: Remove VHE host restore of CPACR_EL1.SMEN
* 5f2af6c19e BACKPORT: KVM: arm64: Remove VHE host restore of CPACR_EL1.ZEN
* f012246148 BACKPORT: KVM: arm64: Remove host FPSIMD saving for non-protected KVM
* 3aa13c0fd1 BACKPORT: KVM: arm64: Unconditionally save+flush host FPSIMD/SVE/SME state
* 5f1b9561a1 ANDROID: KVM: arm64: Eagerly restore host ZCR_EL2 after vcpu run in pKVM
* 86622b5452 ANDROID: ABI: update symbol list for honor
* 5addce7b33 ANDROID: GKI:Add VendorHook for ProbeTimeout
* e8df77b867 ANDROID: GKI: Update symbol list for qcom
* 6c6bf93463 ANDROID: GKI: update symbol list for xiaomi
* e8da2c8c48 ANDROID: Export cgroup function to allow module to remove control files
* f2c750c9f8 ANDROID: Update symbols list for imx
* c206f26b28 ANDROID: Update symbols to oplus symbol list.
* 55ac0abda4 ANDROID: Export the necessary symbols for the implementation of the BPF scheduler.
* de6714dc48 ANDROID: Drop tests_zip_arm64 from TV target.
* 7f12a7bda3 ANDROID: GKI: Update RTK STB KMI symbol list
* ba364a2340 ANDROID: vendor_hooks: add vendor hook in cma_alloc()
* 21de8f00f4 ANDROID: vendor hooks: use DECLARE_RESTRICTED_HOOK for android_rvh
* d574cb3cc1 ANDROID: GKI: update symbol list for xiaomi
* 41763ef33d ANDROID: GKI: Update symbols list file for oplus
* b62718ba86 ANDROID: vendor_hooks: add hook in __alloc_workqueue()
* c7b71fcb6f FROMLIST: xfrm: Migrate offload configuration
* 564d5ceda6 ANDROID: KVM: arm64: Fix relinquish filtering
* d9d550aef0 Revert "ANDROID: Revert^2 "KVM: arm64: iommu: Allow to boot without IOMMU driver""
* 8d139a5479 ANDROID: GKI: Update symbols list file for honor
* f3b22c7868 ANDROID: fs/proc: Perform priority inheritance around access_remote_vm()
* 06a574beb9 ANDROID: fix incorrect #ifdef for CONFIG_ANDROID_VENDOR_OEM_DATA
* d52356998b FROMLIST: scsi: ufs: core: Increase the UIC command timeout further
* 17f5bd09ee ANDROID: sched/psi: disable the privilege check if CONFIG_DEFAULT_SECURITY_SELINUX is enabled
* ad2761e088 ANDROID: ABI: Update pixel symbol list
* 86f6711a2d ANDROID: scsi: ufs: add complete init vendor hook
* 273b99c30a ANDROID: scsi: ufs: add vendor hook to override key reprogramming
* 05c9b03f4c FROMGIT: dm-verity: use softirq context only when !need_resched()
* a8027abd1e ANDROID: KVM: arm64: Redirect modprobe to /dev/kmsg
* 078ef75fa4 ANDROID: gki_defconfig: Enable CONFIG_ARM_SDE_INTERFACE
* f982a6b573 ANDROID: arm64: SDEI: Export SDEI related symbols
* b145782bbd FROMGIT: firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES
* cbd7c4caa9 ANDROID: KVM: arm64: Do not pkvm_init_devices() when no registered devices
* 1fad370b9e ANDROID: KVM: arm64: iommu: Do not remap on iommu_atomic_pool reclaim
* 890428fb57 ANDROID: Update symbols list for imx
* 776eedb13c ANDROID: ABI: Update symbol list for mtk
* ac8b302ab0 ANDROID: mm: Add vendor hook before rmqueue_bulk
* 34fe71fe24 ANDROID: GKI: Update symbol list file for xiaomi
* 88cb3505eb ANDROID: mm: export __pte_offset_map/unuse_swap_pte/read_swap_cache_async
* 46aa903098 ANDROID: Disable check_defconfig for kernel_aarch64_tv.
* 88680fe19e ANDROID: fuse-bpf: Fix recursion in fuse_copy_file_range
* 5838b5ac0a ANDROID: turn off KMI strict mode for TV builds
* e680506fe0 ANDROID: KVM: iommu: Allow IOMMU mapping in carveouts
* 4089d8be3f ANDROID: GKI: Update symbol list file for xiaomi
* 20adcab29c UPSTREAM: codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()
* 4e4b0bdf85 ANDROID: GKI: Update QCOM symbol list
* b791ce76d1 ANDROID: GKI: Update the ABI symbol list for qcom
* 6690013277 FROMLIST: mm: add nr_free_highatomic in show_free_areas
* cedbc9e5ec ANDROID: GKI: Update qcom symbol list
* 2145149a38 ANDROID: implement wrapper for reverse migration
* dfc83778aa ANDROID: GKI: Update symbols list file for honor
* 1213a4027a ANDROID: ABI: Update pixel symbol list
* a546b31e53 BACKPORT: FROMGIT: coresight: core: Disable helpers for devices that fail to enable
* bdda915529 FROMGIT: coresight: catu: Introduce refcount and spinlock for enabling/disabling
* 2366a0bf75 UPSTREAM: firmware: arm_ffa: Upgrade FF-A version to v1.2 in the driver
* e5ea70aa2d ANDROID: gki_defconfig: do not use FineIBT on x86
* b73e9bfc92 FROMGIT: sched/core: Tweak wait_task_inactive() to force dequeue sched_delayed tasks

Change-Id: Ie76eebb5d135e428f1c0986639fca0d1ead2aa51
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-05-19 06:36:53 +00:00
Greg Kroah-Hartman 75adb09e2f ANDROID: GKI: the "reusachtig" padding sync with android16-6.12
Add the initial set of ABI padding fields in android16-6.12 based on what
is in the android15-6.6 branch.

Bug: 151154716
Change-Id: Icdb394863b2911389bfdced0fd1ea20236ca4ce1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2025-05-16 12:17:56 +00:00
Luiz Augusto von Dentz 620810ac1f Bluetooth: hci_conn: Fix not setting timeout for BIG Create Sync
[ Upstream commit 024421cf39923927ab2b5fe895d1d922b9abe67f ]

BIG Create Sync requires the command to just generates a status so this
makes use of __hci_cmd_sync_status_sk to wait for
HCI_EVT_LE_BIG_SYNC_ESTABLISHED, also because of this chance it is not
longer necessary to use a custom method to serialize the process of
creating the BIG sync since the cmd_work_sync itself ensures only one
command would be pending which now awaits for
HCI_EVT_LE_BIG_SYNC_ESTABLISHED before proceeding to next connection.

Fixes: 42ecf1947135 ("Bluetooth: ISO: Do not emit LE BIG Create Sync if previous is pending")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-05-09 09:50:39 +02:00
Luiz Augusto von Dentz eb8b860e87 Bluetooth: hci_conn: Fix not setting conn_timeout for Broadcast Receiver
[ Upstream commit 6d0417e4e1cf66fd917f06f0454958362714ef7d ]

Broadcast Receiver requires creating PA sync but the command just
generates a status so this makes use of __hci_cmd_sync_status_sk to wait
for HCI_EV_LE_PA_SYNC_ESTABLISHED, also because of this chance it is not
longer necessary to use a custom method to serialize the process of
creating the PA sync since the cmd_work_sync itself ensures only one
command would be pending which now awaits for
HCI_EV_LE_PA_SYNC_ESTABLISHED before proceeding to next connection.

Fixes: 4a5e0ba68676 ("Bluetooth: ISO: Do not emit LE PA Create Sync if previous is pending")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-05-09 09:50:39 +02:00
Greg Kroah-Hartman 4e0cc11458 Merge 43e5e2879d ("s390/pci: Fix s390_mmio_read/write syscall page fault handling") into android16-6.12-lts
Steps on the way to 6.12.24

Change-Id: I58c86d986ce4fe886830aec5c9132aba22d7a86b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-05-09 05:41:46 +00:00
Luiz Augusto von Dentz f3f9ecfdc6 UPSTREAM: Bluetooth: L2CAP: Fix corrupted list in hci_chan_del
commit ab4eedb790cae44313759b50fe47da285e2519d5 upstream.

This fixes the following trace by reworking the locking of l2cap_conn
so instead of only locking when changing the chan_l list this promotes
chan_lock to a general lock of l2cap_conn so whenever it is being held
it would prevents the likes of l2cap_conn_del to run:

list_del corruption, ffff888021297e00->prev is LIST_POISON2 (dead000000000122)
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:61!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 1 UID: 0 PID: 5896 Comm: syz-executor213 Not tainted 6.14.0-rc1-next-20250204-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
RIP: 0010:__list_del_entry_valid_or_report+0x12c/0x190 lib/list_debug.c:59
Code: 8c 4c 89 fe 48 89 da e8 32 8c 37 fc 90 0f 0b 48 89 df e8 27 9f 14 fd 48 c7 c7 a0 c0 60 8c 4c 89 fe 48 89 da e8 15 8c 37 fc 90 <0f> 0b 4c 89 e7 e8 0a 9f 14 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 cb
RSP: 0018:ffffc90003f6f998 EFLAGS: 00010246
RAX: 000000000000004e RBX: dead000000000122 RCX: 01454d423f7fbf00
RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
RBP: dffffc0000000000 R08: ffffffff819f077c R09: 1ffff920007eded0
R10: dffffc0000000000 R11: fffff520007eded1 R12: dead000000000122
R13: dffffc0000000000 R14: ffff8880352248d8 R15: ffff888021297e00
FS:  00007f7ace6686c0(0000) GS:ffff8880b8700000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f7aceeeb1d0 CR3: 000000003527c000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __list_del_entry_valid include/linux/list.h:124 [inline]
 __list_del_entry include/linux/list.h:215 [inline]
 list_del_rcu include/linux/rculist.h:168 [inline]
 hci_chan_del+0x70/0x1b0 net/bluetooth/hci_conn.c:2858
 l2cap_conn_free net/bluetooth/l2cap_core.c:1816 [inline]
 kref_put include/linux/kref.h:65 [inline]
 l2cap_conn_put+0x70/0xe0 net/bluetooth/l2cap_core.c:1830
 l2cap_sock_shutdown+0xa8a/0x1020 net/bluetooth/l2cap_sock.c:1377
 l2cap_sock_release+0x79/0x1d0 net/bluetooth/l2cap_sock.c:1416
 __sock_release net/socket.c:642 [inline]
 sock_close+0xbc/0x240 net/socket.c:1393
 __fput+0x3e9/0x9f0 fs/file_table.c:448
 task_work_run+0x24f/0x310 kernel/task_work.c:227
 ptrace_notify+0x2d2/0x380 kernel/signal.c:2522
 ptrace_report_syscall include/linux/ptrace.h:415 [inline]
 ptrace_report_syscall_exit include/linux/ptrace.h:477 [inline]
 syscall_exit_work+0xc7/0x1d0 kernel/entry/common.c:173
 syscall_exit_to_user_mode_prepare kernel/entry/common.c:200 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:205 [inline]
 syscall_exit_to_user_mode+0x24a/0x340 kernel/entry/common.c:218
 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f7aceeaf449
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 41 19 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:00007f7ace668218 EFLAGS: 00000246 ORIG_RAX: 000000000000002a
RAX: fffffffffffffffc RBX: 00007f7acef39328 RCX: 00007f7aceeaf449
RDX: 000000000000000e RSI: 0000000020000100 RDI: 0000000000000004
RBP: 00007f7acef39320 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
R13: 0000000000000004 R14: 00007f7ace668670 R15: 000000000000000b
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__list_del_entry_valid_or_report+0x12c/0x190 lib/list_debug.c:59
Code: 8c 4c 89 fe 48 89 da e8 32 8c 37 fc 90 0f 0b 48 89 df e8 27 9f 14 fd 48 c7 c7 a0 c0 60 8c 4c 89 fe 48 89 da e8 15 8c 37 fc 90 <0f> 0b 4c 89 e7 e8 0a 9f 14 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 cb
RSP: 0018:ffffc90003f6f998 EFLAGS: 00010246
RAX: 000000000000004e RBX: dead000000000122 RCX: 01454d423f7fbf00
RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
RBP: dffffc0000000000 R08: ffffffff819f077c R09: 1ffff920007eded0
R10: dffffc0000000000 R11: fffff520007eded1 R12: dead000000000122
R13: dffffc0000000000 R14: ffff8880352248d8 R15: ffff888021297e00
FS:  00007f7ace6686c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f7acef05b08 CR3: 000000003527c000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Reported-by: syzbot+10bd8fe6741eedd2be2e@syzkaller.appspotmail.com
Tested-by: syzbot+10bd8fe6741eedd2be2e@syzkaller.appspotmail.com
Fixes: b4f82f9ed43a ("Bluetooth: L2CAP: Fix slab-use-after-free Read in l2cap_send_cmd")
Change-Id: I602d7de72e033aa836574fdeea24f41f36c366b2
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit f87271d21d)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-30 13:43:36 +00:00
Luiz Augusto von Dentz 4a5496412e UPSTREAM: Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context"
[ Upstream commit ab6ab707a4d060a51c45fc13e3b2228d5f7c0b87 ]

This reverts commit 4d94f05558271654670d18c26c912da0c1c15549 which has
problems (see [1]) and is no longer needed since 581dd2dc168f
("Bluetooth: hci_event: Fix using rcu_read_(un)lock while iterating")
has reworked the code where the original bug has been found.

[1] Link: https://lore.kernel.org/linux-bluetooth/877c55ci1r.wl-tiwai@suse.de/T/#t
Fixes: 4d94f0555827 ("Bluetooth: hci_core: Fix sleeping function called from invalid context")
Change-Id: If816d3b42cb7b1c18e250c0a5ee266cdd48b4b01
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 55b098a2be)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-30 13:43:36 +00:00
Hsin-chen Chuang 99db8bf902 FROMGIT: Bluetooth: Introduce HCI Driver protocol
Although commit 75ddcd5ad40e ("Bluetooth: btusb: Configure altsetting
for HCI_USER_CHANNEL") has enabled the HCI_USER_CHANNEL user to send out
SCO data through USB Bluetooth chips, it's observed that with the patch
HFP is flaky on most of the existing USB Bluetooth controllers: Intel
chips sometimes send out no packet for Transparent codec; MTK chips may
generate SCO data with a wrong handle for CVSD codec; RTK could split
the data with a wrong packet size for Transparent codec; ... etc.

To address the issue above one needs to reset the altsetting back to
zero when there is no active SCO connection, which is the same as the
BlueZ behavior, and another benefit is the bus doesn't need to reserve
bandwidth when no SCO connection.

This patch adds the infrastructure that allow the user space program to
talk to Bluetooth drivers directly:
- Define the new packet type HCI_DRV_PKT which is specifically used for
  communication between the user space program and the Bluetooth drviers
- hci_send_frame intercepts the packets and invokes drivers' HCI Drv
  callbacks (so far only defined for btusb)
- 2 kinds of events to user space: Command Status and Command Complete,
  the former simply returns the status while the later may contain
  additional response data.

Cc: chromeos-bluetooth-upstreaming@chromium.org
Fixes: b16b327edb4d ("Bluetooth: btusb: add sysfs attribute to control USB alt setting")
Signed-off-by: Hsin-chen Chuang <chharry@chromium.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Bug: 387425332
(cherry picked from commit 4a740b78ddf3ce6894779f4526007ad24fbc049a
 https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master)
Change-Id: I226c67c4230cf6d0f324c2d8c00327ae875283c7
Signed-off-by: Hsin-chen Chuang <chharry@google.com>
2025-04-30 13:43:33 +00:00
Greg Kroah-Hartman ca30cfa77a Merge 73ef4f6e37 ("io_uring/net: fix sendzc double notif flush") into android16-6.12
Steps on the way to 6.12.21

Change-Id: Ie18f887b9863d98ff5cabaf2de4fe50b4cb6d9e7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-23 07:59:10 +00:00
Greg Kroah-Hartman 60712b3754 Revert "Bluetooth: L2CAP: Fix corrupted list in hci_chan_del"
This reverts commit f87271d21d which is
commit ab4eedb790cae44313759b50fe47da285e2519d5 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: I3ee05b3e7584529cb41ab496d14e7391cbf73260
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-22 10:18:37 -07:00
Greg Kroah-Hartman 5fe17b6460 Merge 6.12.20 into android16-6.12
GKI (arm64) relevant 45 out of 232 changes, affecting 66 files +537/-357
  a74979dce9 mm/slab/kvfree_rcu: Switch to WQ_MEM_RECLAIM wq [1 file, +10/-4]
  4e95072462 mm: fix kernel BUG when userfaultfd_move encounters swapcache [1 file, +66/-9]
  99012b24ca userfaultfd: fix PTE unmapping stack-allocated PTE copies [1 file, +10/-10]
  a5396ee0f5 netfilter: nf_conncount: garbage collection is not skipped when jiffies wrap around [1 file, +2/-2]
  0befa32ac3 netfilter: nf_tables: make destruction work queue pernet [3 files, +21/-15]
  0677a4f3c0 Bluetooth: hci_event: Fix enabling passive scanning [1 file, +22/-15]
  55b098a2be Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context" [6 files, +57/-97]
  db1e0c0856 netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree() [1 file, +2/-0]
  5c3ca9cb48 net_sched: Prevent creation of classes with TC_H_ROOT [1 file, +6/-0]
  a4d42b5901 gre: Fix IPv6 link-local address generation. [1 file, +9/-6]
  ae5716b463 hrtimers: Mark is_migration_base() with __always_inline [1 file, +12/-10]
  ccdec7ea9a powercap: call put_device() on an error path in powercap_register_control_type() [1 file, +1/-2]
  aa189c3941 futex: Pass in task to futex_queue() [5 files, +15/-9]
  1207e5d1a2 scsi: core: Use GFP_NOIO to avoid circular locking dependency [1 file, +1/-1]
  3be0408451 scsi: ufs: core: Fix error return with query response [1 file, +6/-1]
  705f251518 HID: hid-steam: Fix issues with disabling both gamepad mode and lizard mode [1 file, +3/-3]
  024d7e006a HID: hid-apple: Apple Magic Keyboard a3203 USB-C support [2 files, +6/-0]
  3ceaafa26f HID: apple: fix up the F6 key on the Omoton KB066 keyboard [1 file, +3/-0]
  30a40b5925 sched: Clarify wake_up_q()'s write to task->wake_q.next [1 file, +3/-2]
  a91922e9ea thermal/cpufreq_cooling: Remove structure member documentation [1 file, +0/-2]
  aa3b0ea474 arm64: amu: Delay allocating cpumask for AMU FIE support [1 file, +10/-12]
  f8094625a5 Bluetooth: L2CAP: Fix slab-use-after-free Read in l2cap_send_cmd [1 file, +34/-5]
  4ed43c26b7 PCI: pci_ids: add INTEL_HDA_PTL_H [1 file, +1/-0]
  b349a3d1b1 io-wq: backoff when retrying worker creation [1 file, +18/-5]
  fd903dd301 nvme-pci: quirk Acer FA100 for non-uniqueue identifiers [1 file, +2/-0]
  bfe7f298ee nvme: only allow entering LIVE from CONNECTING state [1 file, +0/-2]
  df2ae00d96 fuse: don't truncate cached, mutated symlink [3 files, +22/-6]
  d1ceef54b2 net: Handle napi_schedule() calls from non-interrupt [1 file, +1/-1]
  7184e99610 block: fix 'kmem_cache of name 'bio-108' already exists' [1 file, +1/-1]
  1936b189fa Input: xpad - add 8BitDo SN30 Pro, Hyperkin X91 and Gamesir G7 SE controllers [1 file, +8/-5]
  e2304bbf87 Input: xpad - add multiple supported devices [1 file, +19/-1]
  d91dd818f1 Input: xpad - add support for ZOTAC Gaming Zone [1 file, +2/-0]
  f7ccf4eb4b Input: xpad - add support for TECNO Pocket Go [1 file, +2/-0]
  0ff93d8956 Input: xpad - rename QH controller to Legion Go S [1 file, +2/-2]
  87ede08ef2 USB: serial: ftdi_sio: add support for Altera USB Blaster 3 [2 files, +27/-0]
  962912aaf8 drm/atomic: Filter out redundant DPMS calls [2 files, +8/-0]
  454825019d netmem: prevent TX of unreadable skbs [1 file, +3/-0]
  f6bbea2ffe arm64: mm: Populate vmemmap at the page level if not section aligned [1 file, +4/-1]
  608bbf7ff5 Fix mmu notifiers for range-based invalidates [1 file, +12/-10]
  a46a9371f8 ASoC: ops: Consistently treat platform_max as control value [2 files, +11/-9]
  77213a424a nvme: move error logging from nvme_end_req() to __nvme_end_req() [1 file, +6/-6]
  f415148282 mm/hugetlb: wait for hugetlb folios to be freed [3 files, +23/-0]
  f87271d21d Bluetooth: L2CAP: Fix corrupted list in hci_chan_del [3 files, +58/-98]
  8f324d9930 HID: apple: disable Fn key handling on the Omoton KB066 [1 file, +7/-4]
  62b9ad7e52 fs/netfs/read_collect: add to next->prev_donated [1 file, +1/-1]

Changes in 6.12.20
	mm/slab/kvfree_rcu: Switch to WQ_MEM_RECLAIM wq
	mm: fix kernel BUG when userfaultfd_move encounters swapcache
	userfaultfd: fix PTE unmapping stack-allocated PTE copies
	fbdev: hyperv_fb: iounmap() the correct memory when removing a device
	pinctrl: bcm281xx: Fix incorrect regmap max_registers value
	pinctrl: nuvoton: npcm8xx: Add NULL check in npcm8xx_gpio_fw
	netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
	ice: do not configure destination override for switchdev
	ice: fix memory leak in aRFS after reset
	ice: Fix switchdev slow-path in LAG
	netfilter: nf_conncount: garbage collection is not skipped when jiffies wrap around
	netfilter: nf_tables: make destruction work queue pernet
	sched: address a potential NULL pointer dereference in the GRED scheduler.
	wifi: iwlwifi: mvm: fix PNVM timeout for non-MSI-X platforms
	wifi: mac80211: don't queue sdata::work for a non-running sdata
	wifi: cfg80211: cancel wiphy_work before freeing wiphy
	Bluetooth: hci_event: Fix enabling passive scanning
	Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context"
	net/mlx5: Fill out devlink dev info only for PFs
	net: dsa: mv88e6xxx: Verify after ATU Load ops
	net: mctp i3c: Copy headers if cloned
	net: mctp i2c: Copy headers if cloned
	netpoll: hold rcu read lock in __netpoll_send_skb()
	drm/hyperv: Fix address space leak when Hyper-V DRM device is removed
	fbdev: hyperv_fb: Fix hang in kdump kernel when on Hyper-V Gen 2 VMs
	fbdev: hyperv_fb: Simplify hvfb_putmem
	fbdev: hyperv_fb: Allow graceful removal of framebuffer
	Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
	net/mlx5: handle errors in mlx5_chains_create_table()
	eth: bnxt: fix truesize for mb-xdp-pass case
	eth: bnxt: return fail if interface is down in bnxt_queue_mem_alloc()
	eth: bnxt: do not use BNXT_VNIC_NTUPLE unconditionally in queue restart logic
	eth: bnxt: do not update checksum in bnxt_xdp_build_skb()
	eth: bnxt: fix kernel panic in the bnxt_get_queue_stats{rx | tx}
	eth: bnxt: use page pool for head frags
	bnxt_en: refactor tpa_info alloc/free into helpers
	bnxt_en: handle tpa_info in queue API implementation
	eth: bnxt: fix memory leak in queue reset
	net: switchdev: Convert blocking notification chain to a raw one
	net: mctp: unshare packets when reassembling
	bonding: fix incorrect MAC address setting to receive NS messages
	selftests: bonding: fix incorrect mac address
	rtase: Fix improper release of ring list entries in rtase_sw_reset
	netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
	ipvs: prevent integer overflow in do_ip_vs_get_ctl()
	net_sched: Prevent creation of classes with TC_H_ROOT
	netfilter: nft_exthdr: fix offset with ipv4_find_option()
	gre: Fix IPv6 link-local address generation.
	net: openvswitch: remove misbehaving actions length check
	Revert "openvswitch: switch to per-action label counting in conntrack"
	net/mlx5: HWS, Rightsize bwc matcher priority
	net/mlx5: Fix incorrect IRQ pool usage when releasing IRQs
	net/mlx5: Lag, Check shared fdb before creating MultiPort E-Switch
	net/mlx5: Bridge, fix the crash caused by LAG state check
	net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
	nvme-fc: go straight to connecting state when initializing
	nvme-fc: do not ignore connectivity loss during connecting
	hrtimers: Mark is_migration_base() with __always_inline
	powercap: call put_device() on an error path in powercap_register_control_type()
	btrfs: avoid starting new transaction when cleaning qgroup during subvolume drop
	futex: Pass in task to futex_queue()
	iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
	sched/debug: Provide slice length for fair tasks
	platform/x86/intel: pmc: fix ltr decode in pmc_core_ltr_show()
	drm/amd/display: Fix out-of-bound accesses
	scsi: core: Use GFP_NOIO to avoid circular locking dependency
	scsi: ufs: core: Fix error return with query response
	scsi: qla1280: Fix kernel oops when debug level > 2
	ACPI: resource: IRQ override for Eluktronics MECH-17
	smb: client: fix noisy when tree connecting to DFS interlink targets
	alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
	vboxsf: fix building with GCC 15
	selftests: always check mask returned by statmount(2)
	sched_ext: selftests/dsp_local_on: Fix sporadic failures
	HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
	HID: intel-ish-hid: Send clock sync message immediately after reset
	HID: ignore non-functional sensor in HP 5MP Camera
	HID: hid-steam: Fix issues with disabling both gamepad mode and lizard mode
	usb: phy: generic: Use proper helper for property detection
	HID: intel-ish-hid: ipc: Add Panther Lake PCI device IDs
	HID: topre: Fix n-key rollover on Realforce R3S TKL boards
	selftests/cgroup: use bash in test_cpuset_v1_hp.sh
	HID: hid-apple: Apple Magic Keyboard a3203 USB-C support
	HID: apple: fix up the F6 key on the Omoton KB066 keyboard
	btrfs: fix two misuses of folio_shift()
	objtool: Ignore dangling jump table entries
	sched: Clarify wake_up_q()'s write to task->wake_q.next
	platform/x86: thinkpad_acpi: Fix invalid fan speed on ThinkPad X120e
	platform/x86: thinkpad_acpi: Support for V9 DYTC platform profiles
	platform/x86: int3472: Use correct type for "polarity", call it gpio_flags
	platform/x86: int3472: Call "reset" GPIO "enable" for INT347E
	s390/cio: Fix CHPID "configure" attribute caching
	thermal/cpufreq_cooling: Remove structure member documentation
	LoongArch: Fix kernel_page_present() for KPRANGE/XKPRANGE
	LoongArch: KVM: Set host with kernel mode when switch to VM mode
	arm64: amu: Delay allocating cpumask for AMU FIE support
	Xen/swiotlb: mark xen_swiotlb_fixup() __init
	Bluetooth: L2CAP: Fix slab-use-after-free Read in l2cap_send_cmd
	drm/tests: hdmi: Remove redundant assignments
	drm/tests: hdmi: Reorder DRM entities variables assignment
	drm/tests: hdmi: Fix recursive locking
	selftests/bpf: Fix invalid flag of recv()
	ASoC: Intel: sof_sdw: Add lookup of quirk using PCI subsystem ID
	ASoC: Intel: sof_sdw: Add quirk for Asus Zenbook S14
	ASoC: Intel: soc-acpi-intel-mtl-match: declare adr as ull
	ASoC: simple-card-utils.c: add missing dlc->of_node
	ALSA: hda/realtek: Limit mic boost on Positivo ARN50
	ASoC: rsnd: indicate unsupported clock rate
	ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()
	ASoC: rsnd: adjust convert rate limitation
	ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
	ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module
	PCI: pci_ids: add INTEL_HDA_PTL_H
	ALSA: hda: intel-dsp-config: Add PTL-H support
	ASoC: SOF: Intel: pci-ptl: Add support for PTL-H
	ALSA: hda: hda-intel: add Panther Lake-H support
	ASoC: SOF: amd: Add post_fw_run_delay ACP quirk
	ASoC: SOF: amd: Handle IPC replies before FW_BOOT_COMPLETE
	net: wwan: mhi_wwan_mbim: Silence sequence number glitch errors
	io-wq: backoff when retrying worker creation
	nvme-pci: quirk Acer FA100 for non-uniqueue identifiers
	nvmet-rdma: recheck queue state is LIVE in state lock in recv done
	apple-nvme: Release power domains when probe fails
	cifs: Treat unhandled directory name surrogate reparse points as mount directory nodes
	sctp: Fix undefined behavior in left shift operation
	nvme: only allow entering LIVE from CONNECTING state
	phy: ti: gmii-sel: Do not use syscon helper to build regmap
	ASoC: tas2770: Fix volume scale
	ASoC: tas2764: Fix power control mask
	ASoC: tas2764: Set the SDOUT polarity correctly
	fuse: don't truncate cached, mutated symlink
	ASoC: dapm-graph: set fill colour of turned on nodes
	ASoC: SOF: Intel: don't check number of sdw links when set dmic_fixup
	drm/vkms: Round fixp2int conversion in lerp_u16
	perf/x86/intel: Use better start period for frequency mode
	x86/of: Don't use DTB for SMP setup if ACPI is enabled
	x86/irq: Define trace events conditionally
	perf/x86/rapl: Add support for Intel Arrow Lake U
	mptcp: safety check before fallback
	drm/nouveau: Do not override forced connector status
	net: Handle napi_schedule() calls from non-interrupt
	block: fix 'kmem_cache of name 'bio-108' already exists'
	vhost: return task creation error instead of NULL
	cifs: Validate content of WSL reparse point buffers
	cifs: Throw -EOPNOTSUPP error on unsupported reparse point type from parse_reparse_point()
	Input: goodix-berlin - fix vddio regulator references
	Input: ads7846 - fix gpiod allocation
	Input: iqs7222 - preserve system status register
	Input: xpad - add 8BitDo SN30 Pro, Hyperkin X91 and Gamesir G7 SE controllers
	Input: xpad - add multiple supported devices
	Input: xpad - add support for ZOTAC Gaming Zone
	Input: xpad - add support for TECNO Pocket Go
	Input: xpad - rename QH controller to Legion Go S
	Input: i8042 - swap old quirk combination with new quirk for NHxxRZQ
	Input: i8042 - add required quirks for missing old boardnames
	Input: i8042 - swap old quirk combination with new quirk for several devices
	Input: i8042 - swap old quirk combination with new quirk for more devices
	USB: serial: ftdi_sio: add support for Altera USB Blaster 3
	USB: serial: option: add Telit Cinterion FE990B compositions
	USB: serial: option: fix Telit Cinterion FE990A name
	USB: serial: option: match on interface class for Telit FN990B
	rust: lockdep: Remove support for dynamically allocated LockClassKeys
	rust: remove leftover mentions of the `alloc` crate
	rust: alloc: satisfy POSIX alignment requirement
	rust: Disallow BTF generation with Rust + LTO
	rust: init: fix `Zeroable` implementation for `Option<NonNull<T>>` and `Option<KBox<T>>`
	x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
	spi: microchip-core: prevent RX overflows when transmit size > FIFO size
	drm/i915/cdclk: Do cdclk post plane programming later
	drm/panic: use `div_ceil` to clean Clippy warning
	drm/panic: fix overindented list items in documentation
	drm/atomic: Filter out redundant DPMS calls
	drm/dp_mst: Fix locking when skipping CSN before topology probing
	drm/amdgpu: NULL-check BO's backing store when determining GFX12 PTE flags
	drm/amd/amdkfd: Evict all queues even HWS remove queue failed
	drm/amdgpu/display: Allow DCC for video formats on GFX12
	drm/amd/display: Disable unneeded hpd interrupts during dm_init
	drm/amd/display: fix default brightness
	drm/amd/display: fix missing .is_two_pixels_per_container
	drm/amd/display: Restore correct backlight brightness after a GPU reset
	drm/amd/display: Assign normalized_pix_clk when color depth = 14
	drm/amd/display: Fix slab-use-after-free on hdcp_work
	ksmbd: fix use-after-free in ksmbd_free_work_struct
	ksmbd: prevent connection release during oplock break notification
	clk: samsung: update PLL locktime for PLL142XX used on FSD platform
	clk: samsung: gs101: fix synchronous external abort in samsung_clk_save()
	ASoC: Intel: sof_sdw: Fix unlikely uninitialized variable use in create_sdw_dailinks()
	ASoC: amd: yc: Support mic on another Lenovo ThinkPad E16 Gen 2 model
	netmem: prevent TX of unreadable skbs
	dm-flakey: Fix memory corruption in optional corrupt_bio_byte feature
	arm64: mm: Populate vmemmap at the page level if not section aligned
	Fix mmu notifiers for range-based invalidates
	qlcnic: fix memory leak issues in qlcnic_sriov_common.c
	smb: client: fix regression with guest option
	net: phy: nxp-c45-tja11xx: add TJA112X PHY configuration errata
	net: phy: nxp-c45-tja11xx: add TJA112XB SGMII PCS restart errata
	sched_ext: Validate prev_cpu in scx_bpf_select_cpu_dfl()
	ASoC: ops: Consistently treat platform_max as control value
	rust: error: add missing newline to pr_warn! calls
	drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()
	ASoC: cs42l43: Fix maximum ADC Volume
	rust: init: add missing newline to pr_info! calls
	ASoC: rt722-sdca: add missing readable registers
	drm/xe: cancel pending job timer before freeing scheduler
	drm/xe: Release guc ids before cancelling work
	drm/xe/userptr: Fix an incorrect assert
	drm/xe/pm: Temporarily disable D3Cold on BMG
	nvme: move error logging from nvme_end_req() to __nvme_end_req()
	ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
	drm/i915: Increase I915_PARAM_MMAP_GTT_VERSION version to indicate support for partial mmaps
	scripts: generate_rust_analyzer: add missing macros deps
	scripts: generate_rust_analyzer: add missing include_dirs
	scripts: generate_rust_analyzer: add uapi crate
	block: change blk_mq_add_to_batch() third argument type to bool
	cifs: Fix integer overflow while processing acregmax mount option
	cifs: Fix integer overflow while processing acdirmax mount option
	cifs: Fix integer overflow while processing actimeo mount option
	cifs: Fix integer overflow while processing closetimeo mount option
	x86/vmware: Parse MP tables for SEV-SNP enabled guests under VMware hypervisors
	i2c: ali1535: Fix an error handling path in ali1535_probe()
	i2c: ali15x3: Fix an error handling path in ali15x3_probe()
	i2c: sis630: Fix an error handling path in sis630_probe()
	mm/hugetlb: wait for hugetlb folios to be freed
	smb3: add support for IAKerb
	smb: client: Fix match_session bug preventing session reuse
	sched_ext: selftests/dsp_local_on: Fix selftest on UP systems
	tools/sched_ext: Add helper to check task migration state
	Bluetooth: L2CAP: Fix corrupted list in hci_chan_del
	nvme-fc: rely on state transitions to handle connectivity loss
	HID: apple: disable Fn key handling on the Omoton KB066
	fs/netfs/read_collect: add to next->prev_donated
	Linux 6.12.20

Change-Id: I5a7652336baaa64b019b6306f78ee5f96aa829aa
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-22 10:18:37 -07:00
Greg Kroah-Hartman 63a1feb47b Revert "Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context""
This reverts commit 55b098a2be which is
commit ab6ab707a4d060a51c45fc13e3b2228d5f7c0b87 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: I16716919ad640cccea5ecbfd92fbe185333024e9
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-22 09:28:11 +00:00
Greg Kroah-Hartman 53b1477e59 Merge 9e79fdabd5 ("Revert "openvswitch: switch to per-action label counting in conntrack"") into android16-6.12
Steps on the way to 6.12.20

Resolves merge conflicts in:
	mm/userfaultfd.c

Change-Id: I315faea2e1375e21d4c743d33f28f7f2dd56fd14
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-22 07:05:46 +00:00
Pedro Nishiyama 09246dfb5c Bluetooth: Add quirk for broken READ_PAGE_SCAN_TYPE
[ Upstream commit 127881334eaad639e0a19a399ee8c91d6c9dc982 ]

Some fake controllers cannot be initialized because they return a smaller
report than expected for READ_PAGE_SCAN_TYPE.

Signed-off-by: Pedro Nishiyama <nishiyama.pedro@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-20 10:15:22 +02:00
Pedro Nishiyama 035e1bffc0 Bluetooth: Add quirk for broken READ_VOICE_SETTING
[ Upstream commit ff26b2dd6568392f60fa67a4e58279938025c3af ]

Some fake controllers cannot be initialized because they return a smaller
report than expected for READ_VOICE_SETTING.

Signed-off-by: Pedro Nishiyama <nishiyama.pedro@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-20 10:15:22 +02:00
Arkadiusz Bokowy e8f5047403 Bluetooth: hci_event: Fix connection regression between LE and non-LE adapters
[ Upstream commit f6685a96c8c8a07e260e39bac86d4163cfb38a4d ]

Due to a typo during defining HCI errors it is not possible to connect
LE-capable device with BR/EDR only adapter. The connection is terminated
by the LE adapter because the invalid LL params error code is treated
as unsupported remote feature.

Fixes: 79c0868ad6 ("Bluetooth: hci_event: Use HCI error defines instead of magic values")
Signed-off-by: Arkadiusz Bokowy <arkadiusz.bokowy@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-03-28 22:03:27 +01:00
Luiz Augusto von Dentz f87271d21d Bluetooth: L2CAP: Fix corrupted list in hci_chan_del
commit ab4eedb790cae44313759b50fe47da285e2519d5 upstream.

This fixes the following trace by reworking the locking of l2cap_conn
so instead of only locking when changing the chan_l list this promotes
chan_lock to a general lock of l2cap_conn so whenever it is being held
it would prevents the likes of l2cap_conn_del to run:

list_del corruption, ffff888021297e00->prev is LIST_POISON2 (dead000000000122)
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:61!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 1 UID: 0 PID: 5896 Comm: syz-executor213 Not tainted 6.14.0-rc1-next-20250204-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
RIP: 0010:__list_del_entry_valid_or_report+0x12c/0x190 lib/list_debug.c:59
Code: 8c 4c 89 fe 48 89 da e8 32 8c 37 fc 90 0f 0b 48 89 df e8 27 9f 14 fd 48 c7 c7 a0 c0 60 8c 4c 89 fe 48 89 da e8 15 8c 37 fc 90 <0f> 0b 4c 89 e7 e8 0a 9f 14 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 cb
RSP: 0018:ffffc90003f6f998 EFLAGS: 00010246
RAX: 000000000000004e RBX: dead000000000122 RCX: 01454d423f7fbf00
RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
RBP: dffffc0000000000 R08: ffffffff819f077c R09: 1ffff920007eded0
R10: dffffc0000000000 R11: fffff520007eded1 R12: dead000000000122
R13: dffffc0000000000 R14: ffff8880352248d8 R15: ffff888021297e00
FS:  00007f7ace6686c0(0000) GS:ffff8880b8700000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f7aceeeb1d0 CR3: 000000003527c000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __list_del_entry_valid include/linux/list.h:124 [inline]
 __list_del_entry include/linux/list.h:215 [inline]
 list_del_rcu include/linux/rculist.h:168 [inline]
 hci_chan_del+0x70/0x1b0 net/bluetooth/hci_conn.c:2858
 l2cap_conn_free net/bluetooth/l2cap_core.c:1816 [inline]
 kref_put include/linux/kref.h:65 [inline]
 l2cap_conn_put+0x70/0xe0 net/bluetooth/l2cap_core.c:1830
 l2cap_sock_shutdown+0xa8a/0x1020 net/bluetooth/l2cap_sock.c:1377
 l2cap_sock_release+0x79/0x1d0 net/bluetooth/l2cap_sock.c:1416
 __sock_release net/socket.c:642 [inline]
 sock_close+0xbc/0x240 net/socket.c:1393
 __fput+0x3e9/0x9f0 fs/file_table.c:448
 task_work_run+0x24f/0x310 kernel/task_work.c:227
 ptrace_notify+0x2d2/0x380 kernel/signal.c:2522
 ptrace_report_syscall include/linux/ptrace.h:415 [inline]
 ptrace_report_syscall_exit include/linux/ptrace.h:477 [inline]
 syscall_exit_work+0xc7/0x1d0 kernel/entry/common.c:173
 syscall_exit_to_user_mode_prepare kernel/entry/common.c:200 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:205 [inline]
 syscall_exit_to_user_mode+0x24a/0x340 kernel/entry/common.c:218
 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f7aceeaf449
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 41 19 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:00007f7ace668218 EFLAGS: 00000246 ORIG_RAX: 000000000000002a
RAX: fffffffffffffffc RBX: 00007f7acef39328 RCX: 00007f7aceeaf449
RDX: 000000000000000e RSI: 0000000020000100 RDI: 0000000000000004
RBP: 00007f7acef39320 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000003
R13: 0000000000000004 R14: 00007f7ace668670 R15: 000000000000000b
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__list_del_entry_valid_or_report+0x12c/0x190 lib/list_debug.c:59
Code: 8c 4c 89 fe 48 89 da e8 32 8c 37 fc 90 0f 0b 48 89 df e8 27 9f 14 fd 48 c7 c7 a0 c0 60 8c 4c 89 fe 48 89 da e8 15 8c 37 fc 90 <0f> 0b 4c 89 e7 e8 0a 9f 14 fd 42 80 3c 2b 00 74 08 4c 89 e7 e8 cb
RSP: 0018:ffffc90003f6f998 EFLAGS: 00010246
RAX: 000000000000004e RBX: dead000000000122 RCX: 01454d423f7fbf00
RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
RBP: dffffc0000000000 R08: ffffffff819f077c R09: 1ffff920007eded0
R10: dffffc0000000000 R11: fffff520007eded1 R12: dead000000000122
R13: dffffc0000000000 R14: ffff8880352248d8 R15: ffff888021297e00
FS:  00007f7ace6686c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f7acef05b08 CR3: 000000003527c000 CR4: 00000000003526f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Reported-by: syzbot+10bd8fe6741eedd2be2e@syzkaller.appspotmail.com
Tested-by: syzbot+10bd8fe6741eedd2be2e@syzkaller.appspotmail.com
Fixes: b4f82f9ed43a ("Bluetooth: L2CAP: Fix slab-use-after-free Read in l2cap_send_cmd")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-22 12:54:28 -07:00
Luiz Augusto von Dentz 55b098a2be Revert "Bluetooth: hci_core: Fix sleeping function called from invalid context"
[ Upstream commit ab6ab707a4d060a51c45fc13e3b2228d5f7c0b87 ]

This reverts commit 4d94f05558271654670d18c26c912da0c1c15549 which has
problems (see [1]) and is no longer needed since 581dd2dc168f
("Bluetooth: hci_event: Fix using rcu_read_(un)lock while iterating")
has reworked the code where the original bug has been found.

[1] Link: https://lore.kernel.org/linux-bluetooth/877c55ci1r.wl-tiwai@suse.de/T/#t
Fixes: 4d94f0555827 ("Bluetooth: hci_core: Fix sleeping function called from invalid context")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-03-22 12:54:11 -07:00
Hsin-chen Chuang bfdabcde86 FROMGIT: Bluetooth: Get rid of cmd_timeout and use the reset callback
The hdev->reset is never used now and the hdev->cmd_timeout actually
does reset. This patch changes the call path from
  hdev->cmd_timeout -> vendor_cmd_timeout -> btusb_reset -> hdev->reset
, to
  hdev->reset -> vendor_reset -> btusb_reset
Which makes it clear when we export the hdev->reset to a wider usage
e.g. allowing reset from sysfs.

This patch doesn't introduce any behavior change.

Signed-off-by: Hsin-chen Chuang <chharry@chromium.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

Bug: 376104075
(cherry picked from commit f07d478090b0a03dda46fb45b5c6e089a8408351
 https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master)
Change-Id: I254b42de3a00bfac036ba69b650137536cdc00c5
Signed-off-by: Hsin-chen Chuang <chharry@google.com>
2025-01-29 12:13:54 -08:00
Luiz Augusto von Dentz 4a31c018bf Bluetooth: hci_core: Fix sleeping function called from invalid context
[ Upstream commit 4d94f05558271654670d18c26c912da0c1c15549 ]

This reworks hci_cb_list to not use mutex hci_cb_list_lock to avoid bugs
like the bellow:

BUG: sleeping function called from invalid context at kernel/locking/mutex.c:585
in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 5070, name: kworker/u9:2
preempt_count: 0, expected: 0
RCU nest depth: 1, expected: 0
4 locks held by kworker/u9:2/5070:
 #0: ffff888015be3948 ((wq_completion)hci0#2){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3229 [inline]
 #0: ffff888015be3948 ((wq_completion)hci0#2){+.+.}-{0:0}, at: process_scheduled_works+0x8e0/0x1770 kernel/workqueue.c:3335
 #1: ffffc90003b6fd00 ((work_completion)(&hdev->rx_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3230 [inline]
 #1: ffffc90003b6fd00 ((work_completion)(&hdev->rx_work)){+.+.}-{0:0}, at: process_scheduled_works+0x91b/0x1770 kernel/workqueue.c:3335
 #2: ffff8880665d0078 (&hdev->lock){+.+.}-{3:3}, at: hci_le_create_big_complete_evt+0xcf/0xae0 net/bluetooth/hci_event.c:6914
 #3: ffffffff8e132020 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline]
 #3: ffffffff8e132020 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline]
 #3: ffffffff8e132020 (rcu_read_lock){....}-{1:2}, at: hci_le_create_big_complete_evt+0xdb/0xae0 net/bluetooth/hci_event.c:6915
CPU: 0 PID: 5070 Comm: kworker/u9:2 Not tainted 6.8.0-syzkaller-08073-g480e035fc4c7 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Workqueue: hci0 hci_rx_work
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114
 __might_resched+0x5d4/0x780 kernel/sched/core.c:10187
 __mutex_lock_common kernel/locking/mutex.c:585 [inline]
 __mutex_lock+0xc1/0xd70 kernel/locking/mutex.c:752
 hci_connect_cfm include/net/bluetooth/hci_core.h:2004 [inline]
 hci_le_create_big_complete_evt+0x3d9/0xae0 net/bluetooth/hci_event.c:6939
 hci_event_func net/bluetooth/hci_event.c:7514 [inline]
 hci_event_packet+0xa53/0x1540 net/bluetooth/hci_event.c:7569
 hci_rx_work+0x3e8/0xca0 net/bluetooth/hci_core.c:4171
 process_one_work kernel/workqueue.c:3254 [inline]
 process_scheduled_works+0xa00/0x1770 kernel/workqueue.c:3335
 worker_thread+0x86d/0xd70 kernel/workqueue.c:3416
 kthread+0x2f0/0x390 kernel/kthread.c:388
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243
 </TASK>

Reported-by: syzbot+2fb0835e0c9cefc34614@syzkaller.appspotmail.com
Tested-by: syzbot+2fb0835e0c9cefc34614@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2fb0835e0c9cefc34614
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-01-09 13:33:46 +01:00
Frédéric Danis d0f4a51246 Bluetooth: SCO: Add support for 16 bits transparent voice setting
[ Upstream commit 29a651451e6c264f58cd9d9a26088e579d17b242 ]

The voice setting is used by sco_connect() or sco_conn_defer_accept()
after being set by sco_sock_setsockopt().

The PCM part of the voice setting is used for offload mode through PCM
chipset port.
This commits add support for mSBC 16 bits offloading, i.e. audio data
not transported over HCI.

The BCM4349B1 supports 16 bits transparent data on its I2S port.
If BT_VOICE_TRANSPARENT is used when accepting a SCO connection, this
gives only garbage audio while using BT_VOICE_TRANSPARENT_16BIT gives
correct audio.
This has been tested with connection to iPhone 14 and Samsung S24.

Fixes: ad10b1a487 ("Bluetooth: Add Bluetooth socket voice option")
Signed-off-by: Frédéric Danis <frederic.danis@collabora.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-19 18:13:20 +01:00
Michal Luczaj 13ba06e260 Bluetooth: Improve setsockopt() handling of malformed user input
[ Upstream commit 3e643e4efa1e87432204b62f9cfdea3b2508c830 ]

The bt_copy_from_sockptr() return value is being misinterpreted by most
users: a non-zero result is mistakenly assumed to represent an error code,
but actually indicates the number of bytes that could not be copied.

Remove bt_copy_from_sockptr() and adapt callers to use
copy_safe_from_sockptr().

For sco_sock_setsockopt() (case BT_CODEC) use copy_struct_from_sockptr() to
scrub parts of uninitialized buffer.

Opportunistically, rename `len` to `optlen` in hci_sock_setsockopt_old()
and hci_sock_setsockopt().

Fixes: 51eda36d33 ("Bluetooth: SCO: Fix not validating setsockopt user input")
Fixes: a97de7bff1 ("Bluetooth: RFCOMM: Fix not validating setsockopt user input")
Fixes: 4f3951242a ("Bluetooth: L2CAP: Fix not validating setsockopt user input")
Fixes: 9e8742cdfc ("Bluetooth: ISO: Fix not validating setsockopt user input")
Fixes: b2186061d6 ("Bluetooth: hci_sock: Fix not validating setsockopt user input")
Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Reviewed-by: David Wei <dw@davidwei.uk>
Signed-off-by: Michal Luczaj <mhal@rbox.co>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-19 18:13:17 +01:00
Danil Pylaev b04b4fb91d Bluetooth: Add new quirks for ATS2851
[ Upstream commit 94464a7b71634037b13d54021e0dfd0fb0d8c1f0 ]

This adds quirks for broken extended create connection,
and write auth payload timeout.

Signed-off-by: Danil Pylaev <danstiv404@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-14 20:03:56 +01:00
Iulia Tanasescu 91d19383b7 Bluetooth: ISO: Do not emit LE BIG Create Sync if previous is pending
[ Upstream commit 42ecf1947135110ea08abeaca39741636f9a2285 ]

The Bluetooth Core spec does not allow a LE BIG Create sync command to be
sent to Controller if another one is pending (Vol 4, Part E, page 2586).

In order to avoid this issue, the HCI_CONN_CREATE_BIG_SYNC was added
to mark that the LE BIG Create Sync command has been sent for a hcon.
Once the BIG Sync Established event is received, the hcon flag is
erased and the next pending hcon is handled.

Signed-off-by: Iulia Tanasescu <iulia.tanasescu@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Stable-dep-of: 07a9342b94a9 ("Bluetooth: ISO: Send BIG Create Sync via hci_sync")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-05 14:01:59 +01:00
Iulia Tanasescu 67ead8f86a Bluetooth: ISO: Do not emit LE PA Create Sync if previous is pending
[ Upstream commit 4a5e0ba68676b3a77298cf646cd2b39c94fbd2f5 ]

The Bluetooth Core spec does not allow a LE PA Create sync command to be
sent to Controller if another one is pending (Vol 4, Part E, page 2493).

In order to avoid this issue, the HCI_CONN_CREATE_PA_SYNC was added
to mark that the LE PA Create Sync command has been sent for a hcon.
Once the PA Sync Established event is received, the hcon flag is
erased and the next pending hcon is handled.

Signed-off-by: Iulia Tanasescu <iulia.tanasescu@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Stable-dep-of: 07a9342b94a9 ("Bluetooth: ISO: Send BIG Create Sync via hci_sync")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-05 14:01:59 +01:00
Luiz Augusto von Dentz 1bf4470a39 Bluetooth: SCO: Fix UAF on sco_sock_timeout
conn->sk maybe have been unlinked/freed while waiting for sco_conn_lock
so this checks if the conn->sk is still valid by checking if it part of
sco_sk_list.

Reported-by: syzbot+4c0d0c4cde787116d465@syzkaller.appspotmail.com
Tested-by: syzbot+4c0d0c4cde787116d465@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=4c0d0c4cde787116d465
Fixes: ba316be1b6 ("Bluetooth: schedule SCO timeouts with delayed_work")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-10-23 10:20:29 -04:00
Al Viro 5f60d5f6bb move asm/unaligned.h to linux/unaligned.h
asm/unaligned.h is always an include of asm-generic/unaligned.h;
might as well move that thing to linux/unaligned.h and include
that - there's nothing arch-specific in that header.

auto-generated by the following:

for i in `git grep -l -w asm/unaligned.h`; do
	sed -i -e "s/asm\/unaligned.h/linux\/unaligned.h/" $i
done
for i in `git grep -l -w asm-generic/unaligned.h`; do
	sed -i -e "s/asm-generic\/unaligned.h/linux\/unaligned.h/" $i
done
git mv include/asm-generic/unaligned.h include/linux/unaligned.h
git mv tools/include/asm-generic/unaligned.h tools/include/linux/unaligned.h
sed -i -e "/unaligned.h/d" include/asm-generic/Kbuild
sed -i -e "s/__ASM_GENERIC/__LINUX/" include/linux/unaligned.h tools/include/linux/unaligned.h
2024-10-02 17:23:23 -04:00
Luiz Augusto von Dentz d47da6bd4c Bluetooth: hci_core: Fix sending MGMT_EV_CONNECT_FAILED
If HCI_CONN_MGMT_CONNECTED has been set then the event shall be
HCI_CONN_MGMT_DISCONNECTED.

Fixes: b644ba3369 ("Bluetooth: Update device_connected and device_found events to latest API")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-09-10 13:06:37 -04:00
Yue Haibing 2fcb7936ce Bluetooth: L2CAP: Remove unused declarations
Commit e7b02296fb ("Bluetooth: Remove BT_HS") removed the implementations
but leave declarations.

Signed-off-by: Yue Haibing <yuehaibing@huawei.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-09-10 13:04:43 -04:00
Kiran K 29aeb4e891 Bluetooth: Add a helper function to extract iso header
Add a helper function hci_iso_hdr() to extract iso header from skb.

Signed-off-by: Kiran K <kiran.k@intel.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-09-10 12:41:10 -04:00
Luiz Augusto von Dentz 532f8bcd1c Revert "Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE"
This reverts commit 59b047bc98 which
breaks compatibility with commands like:

bluetoothd[46328]: @ MGMT Command: Load.. (0x0013) plen 74  {0x0001} [hci0]
        Keys: 2
        BR/EDR Address: C0:DC:DA:A5:E5:47 (Samsung Electronics Co.,Ltd)
        Key type: Authenticated key from P-256 (0x03)
        Central: 0x00
        Encryption size: 16
        Diversifier[2]: 0000
        Randomizer[8]: 0000000000000000
        Key[16]: 6ed96089bd9765be2f2c971b0b95f624
        LE Address: D7:2A:DE:1E:73:A2 (Static)
        Key type: Unauthenticated key from P-256 (0x02)
        Central: 0x00
        Encryption size: 16
        Diversifier[2]: 0000
        Randomizer[8]: 0000000000000000
        Key[16]: 87dd2546ededda380ffcdc0a8faa4597
@ MGMT Event: Command Status (0x0002) plen 3                {0x0001} [hci0]
      Load Long Term Keys (0x0013)
        Status: Invalid Parameters (0x0d)

Cc: stable@vger.kernel.org
Link: https://github.com/bluez/bluez/issues/875
Fixes: 59b047bc98 ("Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-08-30 17:56:53 -04:00
Luiz Augusto von Dentz c898f6d7b0 Bluetooth: hci_sync: Introduce hci_cmd_sync_run/hci_cmd_sync_run_once
This introduces hci_cmd_sync_run/hci_cmd_sync_run_once which acts like
hci_cmd_sync_queue/hci_cmd_sync_queue_once but runs immediately when
already on hdev->cmd_sync_work context.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-08-30 17:56:34 -04:00
Luiz Augusto von Dentz aae6b81260 Bluetooth: HCI: Invert LE State quirk to be opt-out rather then opt-in
This inverts the LE State quirk so by default we assume the controllers
would report valid states rather than invalid which is how quirks
normally behave, also this would result in HCI command failing it the LE
States are really broken thus exposing the controllers that are really
broken in this respect.

Link: https://github.com/bluez/bluez/issues/584
Fixes: 220915857e ("Bluetooth: Adding driver and quirk defs for multi-role LE")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-08-15 13:07:55 -04:00
Luiz Augusto von Dentz 936daee9cf Bluetooth: Remove hci_request.{c,h}
This removes hci_request.{c,h} since it shall no longer be used.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-15 10:11:35 -04:00
Luiz Augusto von Dentz f2d8977535 Bluetooth: hci_sync: Remove remaining dependencies of hci_request
This removes the dependencies of hci_req_init and hci_request_cancel_all
from hci_sync.c.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-15 10:11:33 -04:00
Luiz Augusto von Dentz 176cbeceb5 Bluetooth: hci_core: Don't use hci_prepare_cmd
This replaces the instance of hci_prepare_cmd with hci_cmd_sync_alloc
since the former is part of hci_request.c which is considered
deprecated.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-15 10:11:29 -04:00
Luiz Augusto von Dentz 92048ab2e2 Bluetooth: hci_core: Remove usage of hci_req_sync
hci_request functions are considered deprecated so this replaces the
usage of hci_req_sync with hci_inquiry_sync.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-15 10:11:27 -04:00
Dmitry Antipov 3ba74b2f28 Bluetooth: hci_core: cleanup struct hci_dev
Remove unused and set but otherwise unused 'discovery_old_state'
and 'sco_last_tx' members of 'struct hci_dev'. The first one is
a leftover after commit 182ee45da0 ("Bluetooth: hci_sync: Rework
hci_suspend_notifier"); the second one is originated from ancient
2.4.19 and I was unable to find any actual use since that.

Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-15 10:11:19 -04:00
Dmitry Antipov da63f33135 Bluetooth: hci_core, hci_sync: cleanup struct discovery_state
After commit 78db544b5d ("Bluetooth: hci_core: Remove le_restart_scan
work"), 'scan_start' and 'scan_duration' of 'struct discovery_state'
are still initialized but actually unused. So remove the aforementioned
fields and adjust 'hci_discovery_filter_clear()' and 'le_scan_disable()'
accordingly. Compile tested only.

Fixes: 78db544b5d ("Bluetooth: hci_core: Remove le_restart_scan work")
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-14 21:34:43 -04:00
Ying Hsu f25b7fd36c Bluetooth: Add vendor-specific packet classification for ISO data
When HCI raw sockets are opened, the Bluetooth kernel module doesn't
track CIS/BIS connections. User-space applications have to identify
ISO data by maintaining connection information and look up the mapping
for each ACL data packet received. Besides, btsnoop log captured in
kernel couldn't tell ISO data from ACL data in this case.

To avoid additional lookups, this patch introduces vendor-specific
packet classification for Intel BT controllers to distinguish
ISO data packets from ACL data packets.

Signed-off-by: Ying Hsu <yinghsu@chromium.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-14 21:34:32 -04:00
Erick Archer 7d2c7ddba6 tty: rfcomm: prefer struct_size over open coded arithmetic
This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "dl" variable is a pointer to "struct rfcomm_dev_list_req" and
this structure ends in a flexible array:

struct rfcomm_dev_list_req {
	[...]
	struct   rfcomm_dev_info dev_info[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() and copy_to_user() functions.

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

In this case, it is important to note that the logic needs a little
refactoring to ensure that the "dev_num" member is initialized before
the first access to the flex array. Specifically, add the assignment
before the list_for_each_entry() loop.

Also remove the "size" variable as it is no longer needed.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Erick Archer <erick.archer@outlook.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-14 21:33:31 -04:00
Erick Archer 8f7dfe171c Bluetooth: hci_core: Prefer struct_size over open coded arithmetic
This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "dl" variable is a pointer to "struct hci_dev_list_req" and this
structure ends in a flexible array:

struct hci_dev_list_req {
	[...]
	struct hci_dev_req dev_req[];	/* hci_dev_req structures */
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() and copy_to_user() functions.

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

In this case, it is important to note that the logic needs a little
refactoring to ensure that the "dev_num" member is initialized before
the first access to the flex array. Specifically, add the assignment
before the list_for_each_entry() loop.

Also remove the "size" variable as it is no longer needed.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Erick Archer <erick.archer@outlook.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-07-14 21:33:29 -04:00