Commit Graph

3036 Commits

Author SHA1 Message Date
Ahmad Chaudhry
e4a93b506d ANDROID: GKI: Enable Tegra Host1x
Select hidden config CONFIG_TEGRA_HOST1X_CONTEXT_BUS.
This config is needed as it adds host1x_context_device_bus_type
to iommu_buses private array, needed for host1x.ko module

Bug: 418986815
Change-Id: Icbc697638e39a08a648b2a3dbf7947d6107ac310
Signed-off-by: Ahmad Chaudhry <ahmadc@nvidia.com>
2025-11-04 16:22:25 -06:00
John Stultz
450db842cf Revert "ANDROID: kconfig: Enable options needed for MTK desktop"
This reverts commit 3e1c1717a8.

Reason for revert: Causing build breakage

WARNING: unmet direct dependencies detected for MTK_SCPSYS
Depends on [n]: (ARCH_MEDIATEK [=n] || COMPILE_TEST [=n]) && OF [=y]
Selected by [y]:
- GKI_HIDDEN_MTK_CONFIGS [=y]

WARNING: unmet direct dependencies detected for MTK_INFRACFG
Depends on [n]: ARCH_MEDIATEK [=n] || COMPILE_TEST [=n]
Selected by [y]:
- GKI_HIDDEN_MTK_CONFIGS [=y]

WARNING: unmet direct dependencies detected for MTK_REGULATOR_COUPLER
Depends on [n]: (ARCH_MEDIATEK [=n] || COMPILE_TEST [=n]) && REGULATOR [=y]
Selected by [y]:
- GKI_HIDDEN_MTK_CONFIGS [=y]


Bug: 432487220
Change-Id: If8ae69c229cd888111cc68171cf9fbc2fa96aede
Signed-off-by: John Stultz <jstultz@google.com>
2025-08-14 18:47:29 -07:00
Zyta Szpak
3e1c1717a8 ANDROID: kconfig: Enable options needed for MTK desktop
The options are needed for MTK desktop device to boot
and avoid adding CONFIG_ARCH_MEDIATEK to gki_defconfig.

The options are enabled as hidden because of dependency
on CONFIG_ARCH_MEDIATEK. Being selected from hidden
overrides the dependency.

Bug: 432487220
Change-Id: I184ac064b0392153c1b4392b8374fd82d39d6cee
Signed-off-by: Zyta Szpak <zyta@google.com>
2025-08-14 20:25:02 +00:00
John Stultz
4f9e4406e4 ANDROID: Update proxy-exec logic from v14 to v18
This updates the proxy-exec logic in android16-6.12
which was added at v14, to be synced with the v18
series of the patchset.

v14 series:
https://github.com/johnstultz-work/linux-dev/commits/proxy-exec-v14-6.12

v18 series:
https://github.com/johnstultz-work/linux-dev/commits/proxy-exec-v18-6.12

Changes since v14:
* Improved naming consistency and using the guard macro where
  appropriate
* Improved comments
* Build fixes for !CONFIG_SMP
* Fixes for when sched_proxy_exec() is disabled
* Renamed update_curr_se to update_se_times, as suggested by
  Steven Rostedt.
* Use put_prev_set_next_task as suggested by K Prateek Nayak
* Try to rework find_proxy_task() locking to use guard and
  proxy_deactivate_task() in the way Peter suggested.
* Simplified changes to enqueue_task_rt to match deadline's
  logic, as pointed out by Peter
* Get rid of preserve_need_resched flag and rework per Peter's
  suggestion
* Rework find_proxy_task() to use guard to cleanup the exit
  gotos as Peter suggested.
* Reworked the forced return-migration from find_proxy_task to
  use Peter’s dequeue+wakeup approach, which helps resolve the
  cpuhotplug issues I had also seen, caused by the manual return
  migration sending tasks to offline cpus.
* A number of improvements to the commit messages and comments
  suggested by Juri Lelli and Peter Zijlstra
* Added missing logic to put_prev_task_dl as pointed out by
  K Prateek Nayak
* Add lockdep_assert_held_once and drop the READ_ONCE in
  __get_task_blocked_on(), as suggested by Juri Lelli
* Moved update_curr_task logic into update_curr_se to simplify
  things
* Renamed update_se_times to update_se, as suggested by Peter
* Reworked logic to fix an issue Peter pointed out with thread
  group accounting being done on the donor, rather than the
  running execution context.
* Fixed typos caught by Metin Kaya
* Suleiman Souhlal noticed an inefficiency in that we evaluate
  if the lock owner’s task_cpu() is the current cpu, before we
  look to see if the lock owner is on_rq at all. With v17 this
  would result in us proxy-migrating a donor to a remote cpu,
  only to then realize the task wasn’t even on the runqueue,
  and doing the sleeping owner enqueuing. Suleiman suggested
  instead that we evaluate on_rq first, so we can immediately do
  sleeping owner enqueueing. Then only if the owner is on a
  runqueue do we proxy-migrate the donor (which requires the
  more costly lock juggling). While not a huge logical change,
  it did uncover other problems, which needed to be resolved.
* One issue found was there was a race where if
  do_activate_blocked_waiter() from the sleeping owner wakeup
  was delayed and the task had already been woken up elsewhere.
  It’s possible if that task was running and called into
  schedule() to be blocked, it would be dequeued from the
  runqueue, but before we switched to the new task,
  do_activate_blocked_waiter() might try to activate it on a
  different cpu. Clearly the do_activate_blocked_waiter() needed
  to check the task on_cpu value as well.
* I found that we still can hit wakeups that end up skipping the
  BO_WAKING -> BO_RUNNALBE transition (causing find_proxy_task()
  to end up spinning waiting for that transition), so I re-added
  the logic to handle doing return migrations from
  find_proxy_task() if we hit that case.
* Hupu suggested a tweak in ttwu_runnable() to evaluate
  proxy_needs_return() slightly earlier.
* Kuyo Chang reported and isolated a fix for a problem with
  __task_is_pushable() in the !sched_proxy_exec case, which was
  folded into the “sched: Fix rt/dl load balancing via chain
  level balance” patch
* Reworked some of the logic around releasing the rq->donor
  reference on migrations, using rq->idle directly.
* Sueliman also pointed out that some added task_struct elements
  were not being initialized in the init_task code path, so that
  was good to fix.

Bug: 427820735
Change-Id: I20ce778e474124a917dbf51378dc1301535ac858
Signed-off-by: John Stultz <jstultz@google.com>
2025-07-07 12:27:42 -07:00
Greg Kroah-Hartman
9649374a04 Merge efb5973459 ("mm: fix folio_pte_batch() on XEN PV") into android16-6.12-lts
Steps on the way to 6.12.29

Change-Id: Iaeaedaa3b6ba8949ae47cce762a0d1494e0f80e1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-06-02 14:47:37 +00:00
Greg Kroah-Hartman
db596bb60e Merge 6.12.26 into android16-6.12-lts
GKI (arm64) relevant 69 out of 278 changes, affecting 88 files +585/-290
  0b603e7759 tracing: Add __print_dynamic_array() helper [3 files, +15/-1]
  0312735402 tracing: Verify event formats that have "%*p.." [2 files, +13/-2]
  1c9798bf81 mm/vmscan: don't try to reclaim hwpoison folio [1 file, +7/-0]
  db3b3964af PM: EM: use kfree_rcu() to simplify the code [1 file, +1/-9]
  9d5752b853 PM: EM: Address RCU-related sparse warnings [2 files, +26/-25]
  3e12e8c273 block: remove the write_hint field from struct request [4 files, +13/-12]
  ed7535b141 block: remove the ioprio field from struct request [4 files, +11/-15]
  2afa5ea7c4 block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone [1 file, +1/-0]
  46d3575209 PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends [1 file, +6/-12]
  35ba7b2d4d PCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads [2 files, +5/-0]
  16c8aa5de1 dma/contiguous: avoid warning about unused size_bytes [1 file, +1/-2]
  7ccfadfb25 cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate() [1 file, +8/-2]
  28fbd7b13b cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate() [1 file, +10/-3]
  7d002f5914 scsi: ufs: mcq: Add NULL check in ufshcd_mcq_abort() [1 file, +5/-7]
  5d92e582d1 cgroup/cpuset-v1: Add missing support for cpuset_v2_mode [1 file, +29/-0]
  29daa63f2c scsi: core: Clear flags for scsi_cmnd that did not complete [1 file, +5/-1]
  eeab661803 scsi: ufs: core: Add NULL check in ufshcd_mcq_compl_pending_transfer() [1 file, +2/-0]
  41143e7105 net: phy: leds: fix memory leak [1 file, +13/-10]
  0ceef62a32 tipc: fix NULL pointer dereference in tipc_mon_reinit_self() [1 file, +2/-1]
  a61afd5482 fix a couple of races in MNT_TREE_BENEATH handling by do_move_mount() [1 file, +36/-33]
  7f24ea6a46 block: never reduce ra_pages in blk_apply_bdi_limits [1 file, +7/-1]
  3decda1a3c splice: remove duplicate noinline from pipe_clear_nowait [1 file, +1/-1]
  30c0d6e778 virtio_console: fix missing byte order handling for cols and rows [1 file, +4/-3]
  c2a6b4d78c net: selftests: initialize TCP header and skb payload with zero [1 file, +13/-5]
  3939d6f29d irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode() [1 file, +1/-1]
  7a8a6b627f io_uring: fix 'sync' handling of io_fallback_tw() [1 file, +7/-6]
  1f439fe4d8 scsi: Improve CDL control [1 file, +24/-12]
  3670dee376 char: misc: register chrdev region with all possible minors [1 file, +1/-1]
  ea0d806b94 USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe [2 files, +7/-0]
  1777714865 xhci: Limit time spent with xHC interrupts disabled during bus resume [3 files, +20/-16]
  bce3055b08 usb: xhci: Fix invalid pointer dereference in Etron workaround [1 file, +1/-1]
  52a7c9d930 usb: dwc3: gadget: check that event count does not exceed event buffer length [1 file, +6/-0]
  9924ee1bcd usb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive [1 file, +3/-0]
  d85b7af3bd usb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive [1 file, +3/-0]
  3e52ae347e USB: VLI disk crashes if LPM is used [1 file, +3/-0]
  0486de3c1b crypto: null - Use spin lock instead of mutex [1 file, +26/-13]
  7758e308ae bpf: Fix kmemleak warning for percpu hashmap [1 file, +3/-3]
  c5c833f637 bpf: Fix deadlock between rcu_tasks_trace and event_mutex. [1 file, +4/-3]
  4139072087 clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec() [1 file, +4/-0]
  4131411f42 bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage [1 file, +6/-5]
  b817d2bfd6 bpf: Reject attaching fexit/fmod_ret to __noreturn functions [1 file, +32/-0]
  2ecae00138 usb: dwc3: gadget: Refactor loop to avoid NULL endpoints [1 file, +18/-4]
  cbfa55bda1 usb: xhci: Complete 'error mid TD' transfers when handling Missed Service [1 file, +5/-1]
  16a7a8e6c4 usb: xhci: Fix isochronous Ring Underrun/Overrun event handling [1 file, +14/-6]
  635be13606 xhci: Handle spurious events on Etron host isoc enpoints [2 files, +27/-13]
  9ff59cb815 usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running [1 file, +7/-4]
  0485bdf88f objtool, panic: Disable SMAP in __stack_chk_fail() [2 files, +10/-1]
  c548f95688 9p/net: fix improper handling of bogus negative read/write replies [1 file, +16/-14]
  18296b5951 9p/trans_fd: mark concurrent read and writes to p9_conn->err [1 file, +10/-7]
  3568fd9e44 io_uring: always do atomic put from iowq [2 files, +8/-1]
  90dc6c1e3b perf/core: Fix WARN_ON(!ctx) in __free_event() for partial init [1 file, +3/-3]
  24ede35eb2 nvme: requeue namespace scan on missed AENs [1 file, +4/-0]
  b9c89c97d7 nvme: re-read ANA log page after ns scan completes [1 file, +5/-0]
  ee5521176a nvme: multipath: fix return value of nvme_available_path [1 file, +1/-1]
  5e58b93a12 gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment [1 file, +3/-3]
  9f8eeac3a6 timekeeping: Add a lockdep override in tick_freeze() [1 file, +22/-0]
  b14d986413 iommu: Clear iommu-dma ops on cleanup [1 file, +3/-0]
  b626bc3c1d ext4: make block validity check resistent to sb bh corruption [2 files, +6/-6]
  2ef6eea2ef netfs: Only create /proc/fs/netfs with CONFIG_PROC_FS [1 file, +4/-0]
  d53b2d49a8 iomap: skip unnecessary ifs_block_is_uptodate check [1 file, +1/-1]
  bfc66c4c28 Revert "drivers: core: synchronize really_probe() and dev_uevent()" [1 file, +0/-3]
  de7c24febd usb: typec: class: Fix NULL pointer access [2 files, +14/-2]
  45314999f9 ext4: goto right label 'out_mmap_sem' in ext4_setattr() [1 file, +1/-1]
  40966fc993 usb: typec: class: Invalidate USB device pointers on partner unregistration [1 file, +6/-2]
  4833d0a92b iommu: Handle race with default domain setup [1 file, +5/-0]
  1042d22942 nvme: fixup scan failure for non-ANA multipath controllers [1 file, +1/-1]
  1b7647efad usb: xhci: Fix Short Packet handling rework ignoring errors [1 file, +1/-1]
  ab5281d21e usb: typec: class: Unlocked on error in typec_register_partner() [1 file, +1/-0]
  6b9ebcbd31 mq-deadline: don't call req_get_ioprio from the I/O completion handler [1 file, +4/-9]

Changes in 6.12.26
	module: sign with sha512 instead of sha1 by default
	tracing: Add __print_dynamic_array() helper
	tracing: Verify event formats that have "%*p.."
	mm/vmscan: don't try to reclaim hwpoison folio
	soc: qcom: ice: introduce devm_of_qcom_ice_get
	mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
	PM: EM: use kfree_rcu() to simplify the code
	PM: EM: Address RCU-related sparse warnings
	media: i2c: imx214: Use subdev active state
	media: i2c: imx214: Simplify with dev_err_probe()
	media: i2c: imx214: Convert to CCI register access helpers
	media: i2c: imx214: Replace register addresses with macros
	media: i2c: imx214: Check number of lanes from device tree
	media: i2c: imx214: Fix link frequency validation
	media: ov08x40: Move ov08x40_identify_module() function up
	media: ov08x40: Add missing ov08x40_identify_module() call on stream-start
	block: remove the write_hint field from struct request
	block: remove the ioprio field from struct request
	block: make sure ->nr_integrity_segments is cloned in blk_rq_prep_clone
	net: dsa: mv88e6xxx: fix VTU methods for 6320 family
	iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecessary return value check
	iio: adc: ad7768-1: Fix conversion result sign
	arm64: dts: ti: Refactor J784s4 SoC files to a common file
	arm64: dts: ti: k3-j784s4-j742s2-main-common: Fix serdes_ln_ctrl reg-masks
	of: resolver: Simplify of_resolve_phandles() using __free()
	of: resolver: Fix device node refcount leakage in of_resolve_phandles()
	scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get
	PCI/MSI: Convert pci_msi_ignore_mask to per MSI domain flag
	PCI/MSI: Handle the NOMASK flag correctly for all PCI/MSI backends
	PCI/MSI: Add an option to write MSIX ENTRY_DATA before any reads
	accel/ivpu: Add auto selection logic for job scheduler
	accel/ivpu: Fix the NPU's DPU frequency calculation
	ksmbd: use __GFP_RETRY_MAYFAIL
	ksmbd: add netdev-up/down event debug print
	ksmbd: browse interfaces list on FSCTL_QUERY_INTERFACE_INFO IOCTL
	ksmbd: fix use-after-free in __smb2_lease_break_noti()
	scsi: ufs: exynos: Remove empty drv_init method
	scsi: ufs: exynos: Remove superfluous function parameter
	scsi: ufs: exynos: Add gs101_ufs_drv_init() hook and enable WriteBooster
	scsi: ufs: exynos: Move UFS shareability value to drvdata
	scsi: ufs: exynos: Disable iocc if dma-coherent property isn't set
	net/niu: Niu requires MSIX ENTRY_DATA fields touch before entry reads
	drm/xe/bmg: Add one additional PCI ID
	drm/amd/display: Fix unnecessary cast warnings from checkpatch
	drm/amd/display/dml2: use vzalloc rather than kzalloc
	lib/Kconfig.ubsan: Remove 'default UBSAN' from UBSAN_INTEGER_WRAP
	ceph: Fix incorrect flush end position calculation
	cpufreq: sun50i: prevent out-of-bounds access
	dma/contiguous: avoid warning about unused size_bytes
	cpufreq: apple-soc: Fix null-ptr-deref in apple_soc_cpufreq_get_rate()
	cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate()
	cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate()
	scsi: ufs: mcq: Add NULL check in ufshcd_mcq_abort()
	cpufreq: cppc: Fix invalid return value in .get() callback
	cpufreq: Do not enable by default during compile testing
	cpufreq: fix compile-test defaults
	btrfs: avoid page_lockend underflow in btrfs_punch_hole_lock_range()
	btrfs: zoned: return EIO on RAID1 block group write pointer mismatch
	cgroup/cpuset-v1: Add missing support for cpuset_v2_mode
	vhost-scsi: Add better resource allocation failure handling
	vhost-scsi: Fix vhost_scsi_send_bad_target()
	vhost-scsi: Fix vhost_scsi_send_status()
	net/mlx5: Fix null-ptr-deref in mlx5_create_{inner_,}ttc_table()
	net/mlx5: Move ttc allocation after switch case to prevent leaks
	scsi: core: Clear flags for scsi_cmnd that did not complete
	scsi: ufs: core: Add NULL check in ufshcd_mcq_compl_pending_transfer()
	net: lwtunnel: disable BHs when required
	net: phy: leds: fix memory leak
	tipc: fix NULL pointer dereference in tipc_mon_reinit_self()
	net: ethernet: mtk_eth_soc: net: revise NETSYSv3 hardware configuration
	fix a couple of races in MNT_TREE_BENEATH handling by do_move_mount()
	net_sched: hfsc: Fix a UAF vulnerability in class handling
	net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too
	net: dsa: mt7530: sync driver-specific behavior of MT7531 variants
	pds_core: Prevent possible adminq overflow/stuck condition
	pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result
	pds_core: Remove unnecessary check in pds_client_adminq_cmd()
	pds_core: make wait_context part of q_info
	block: never reduce ra_pages in blk_apply_bdi_limits
	iommu/amd: Return an error if vCPU affinity is set for non-vCPU IRTE
	riscv: Replace function-like macro by static inline function
	riscv: uprobes: Add missing fence.i after building the XOL buffer
	splice: remove duplicate noinline from pipe_clear_nowait
	bpf: Add namespace to BPF internal symbols
	perf/x86: Fix non-sampling (counting) events on certain x86 platforms
	LoongArch: Select ARCH_USE_MEMTEST
	LoongArch: Make regs_irqs_disabled() more clear
	LoongArch: Make do_xyz() exception handlers more robust
	KVM: SVM: Disable AVIC on SNP-enabled system without HvInUseWrAllowed feature
	netfilter: fib: avoid lookup if socket is available
	virtio_console: fix missing byte order handling for cols and rows
	sched_ext: Use kvzalloc for large exit_dump allocation
	crypto: atmel-sha204a - Set hwrng quality to lowest possible
	xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()
	net: selftests: initialize TCP header and skb payload with zero
	net: phy: microchip: force IRQ polling mode for lan88xx
	scsi: mpi3mr: Fix pending I/O counter
	rust: firmware: Use `ffi::c_char` type in `FwFunc`
	drm: panel: jd9365da: fix reset signal polarity in unprepare
	drm/amd/display: Fix gpu reset in multidisplay config
	drm/amd/display: Force full update in gpu reset
	x86/insn: Fix CTEST instruction decoding
	irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode()
	LoongArch: Handle fp, lsx, lasx and lbt assembly symbols
	LoongArch: Return NULL from huge_pte_offset() for invalid PMD
	LoongArch: Remove a bogus reference to ZONE_DMA
	LoongArch: KVM: Fully clear some CSRs when VM reboot
	LoongArch: KVM: Fix PMU pass-through issue if VM exits to host finally
	io_uring: fix 'sync' handling of io_fallback_tw()
	KVM: SVM: Allocate IR data using atomic allocation
	cxl/core/regs.c: Skip Memory Space Enable check for RCD and RCH Ports
	mcb: fix a double free bug in chameleon_parse_gdd()
	ata: libata-scsi: Improve CDL control
	ata: libata-scsi: Fix ata_mselect_control_ata_feature() return type
	ata: libata-scsi: Fix ata_msense_control_ata_feature()
	USB: storage: quirk for ADATA Portable HDD CH94
	scsi: Improve CDL control
	mei: me: add panther lake H DID
	mei: vsc: Fix fortify-panic caused by invalid counted_by() use
	KVM: x86: Explicitly treat routing entry type changes as changes
	KVM: x86: Reset IRTE to host control if *new* route isn't postable
	KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer
	char: misc: register chrdev region with all possible minors
	misc: microchip: pci1xxxx: Fix Kernel panic during IRQ handler registration
	misc: microchip: pci1xxxx: Fix incorrect IRQ status handling during ack
	firmware: stratix10-svc: Add of_platform_default_populate()
	tty: Require CAP_SYS_ADMIN for all usages of TIOCL_SELMOUSEREPORT
	serial: msm: Configure correct working mode before starting earlycon
	serial: sifive: lock port in startup()/shutdown() callbacks
	USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe
	USB: serial: option: add Sierra Wireless EM9291
	USB: serial: simple: add OWON HDS200 series oscilloscope support
	xhci: Limit time spent with xHC interrupts disabled during bus resume
	usb: xhci: Fix invalid pointer dereference in Etron workaround
	usb: cdns3: Fix deadlock when using NCM gadget
	usb: chipidea: ci_hdrc_imx: fix usbmisc handling
	usb: chipidea: ci_hdrc_imx: fix call balance of regulator routines
	usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling
	USB: OHCI: Add quirk for LS7A OHCI controller (rev 0x02)
	usb: dwc3: gadget: check that event count does not exceed event buffer length
	usb: dwc3: xilinx: Prevent spike in reset signal
	usb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive
	usb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive
	USB: VLI disk crashes if LPM is used
	USB: wdm: handle IO errors in wdm_wwan_port_start
	USB: wdm: close race between wdm_open and wdm_wwan_port_stop
	USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
	USB: wdm: add annotation
	selftests/bpf: Fix stdout race condition in traffic monitor
	pinctrl: renesas: rza2: Fix potential NULL pointer dereference
	pinctrl: mcp23s08: Get rid of spurious level interrupts
	MIPS: cm: Detect CM quirks from device tree
	crypto: ccp - Add support for PCI device 0x1134
	crypto: lib/Kconfig - Fix lib built-in failure when arch is modular
	crypto: null - Use spin lock instead of mutex
	bpf: Fix kmemleak warning for percpu hashmap
	bpf: Fix deadlock between rcu_tasks_trace and event_mutex.
	clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec()
	parisc: PDT: Fix missing prototype warning
	s390/sclp: Add check for get_zeroed_page()
	s390/tty: Fix a potential memory leak bug
	bpf: bpftool: Setting error code in do_loader()
	bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage
	bpf: Reject attaching fexit/fmod_ret to __noreturn functions
	mailbox: pcc: Fix the possible race in updation of chan_in_use flag
	mailbox: pcc: Always clear the platform ack interrupt first
	usb: host: max3421-hcd: Add missing spi_device_id table
	fs/ntfs3: Keep write operations atomic
	fs/ntfs3: Fix WARNING in ntfs_extend_initialized_size
	usb: dwc3: gadget: Refactor loop to avoid NULL endpoints
	usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
	sound/virtio: Fix cancel_sync warnings on uninitialized work_structs
	usb: xhci: Complete 'error mid TD' transfers when handling Missed Service
	usb: xhci: Fix isochronous Ring Underrun/Overrun event handling
	xhci: Handle spurious events on Etron host isoc enpoints
	i3c: master: svc: Add support for Nuvoton npcm845 i3c
	dmaengine: dmatest: Fix dmatest waiting less when interrupted
	usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running
	phy: rockchip: usbdp: Avoid call hpd_event_trigger in dp_phy_init
	usb: gadget: aspeed: Add NULL pointer check in ast_vhub_init_dev()
	usb: host: xhci-plat: mvebu: use ->quirks instead of ->init_quirk() func
	thunderbolt: Scan retimers after device router has been enumerated
	um: work around sched_yield not yielding in time-travel mode
	objtool: Silence more KCOV warnings
	objtool, panic: Disable SMAP in __stack_chk_fail()
	objtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler()
	objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc()
	objtool, lkdtm: Obfuscate the do_nothing() pointer
	qibfs: fix _another_ leak
	ntb: reduce stack usage in idt_scan_mws
	ntb_hw_amd: Add NTB PCI ID for new gen CPU
	9p/net: fix improper handling of bogus negative read/write replies
	9p/trans_fd: mark concurrent read and writes to p9_conn->err
	rtc: pcf85063: do a SW reset if POR failed
	io_uring: always do atomic put from iowq
	kbuild: add dependency from vmlinux to sorttable
	sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP
	KVM: s390: Don't use %pK through tracepoints
	KVM: s390: Don't use %pK through debug printing
	cgroup/cpuset: Don't allow creation of local partition over a remote one
	selftests: ublk: fix test_stripe_04
	perf/core: Fix WARN_ON(!ctx) in __free_event() for partial init
	xen: Change xen-acpi-processor dom0 dependency
	nvme: requeue namespace scan on missed AENs
	ACPI: EC: Set ec_no_wakeup for Lenovo Go S
	ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls
	drm/amdgpu: Increase KIQ invalidate_tlbs timeout
	drm/xe/xe3lpg: Apply Wa_14022293748, Wa_22019794406
	nvme: re-read ANA log page after ns scan completes
	nvme: multipath: fix return value of nvme_available_path
	objtool: Stop UNRET validation on UD2
	gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment
	x86/xen: disable CPU idle and frequency drivers for PVH dom0
	selftests/mincore: Allow read-ahead pages to reach the end of the file
	x86/bugs: Use SBPB in write_ibpb() if applicable
	x86/bugs: Don't fill RSB on VMEXIT with eIBRS+retpoline
	x86/bugs: Don't fill RSB on context switch with eIBRS
	nvmet-fc: take tgtport reference only once
	nvmet-fc: put ref when assoc->del_work is already scheduled
	cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode
	timekeeping: Add a lockdep override in tick_freeze()
	cifs: Fix querying of WSL CHR and BLK reparse points over SMB1
	iommu: Clear iommu-dma ops on cleanup
	ext4: make block validity check resistent to sb bh corruption
	scsi: hisi_sas: Fix I/O errors caused by hardware port ID changes
	scsi: ufs: exynos: Ensure pre_link() executes before exynos_ufs_phy_init()
	scsi: ufs: exynos: Enable PRDT pre-fetching with UFSHCD_CAP_CRYPTO
	scsi: ufs: exynos: Move phy calls to .exit() callback
	scsi: ufs: exynos: gs101: Put UFS device in reset on .suspend()
	scsi: pm80xx: Set phy_attached to zero when device is gone
	ASoC: fsl_asrc_dma: get codec or cpu dai from backend
	x86/i8253: Call clockevent_i8253_disable() with interrupts disabled
	netfs: Only create /proc/fs/netfs with CONFIG_PROC_FS
	iomap: skip unnecessary ifs_block_is_uptodate check
	riscv: Provide all alternative macros all the time
	ksmbd: fix WARNING "do not call blocking ops when !TASK_RUNNING"
	spi: tegra210-quad: use WARN_ON_ONCE instead of WARN_ON for timeouts
	spi: tegra210-quad: add rate limiting and simplify timeout error message
	ubsan: Fix panic from test_ubsan_out_of_bounds
	x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores
	md/raid1: Add check for missing source disk in process_checks()
	drm/amdgpu: use a dummy owner for sysfs triggered cleaner shaders v4
	drm/amdgpu: Use the right function for hdp flush
	spi: spi-imx: Add check for spi_imx_setupxfer()
	Revert "drivers: core: synchronize really_probe() and dev_uevent()"
	driver core: introduce device_set_driver() helper
	driver core: fix potential NULL pointer dereference in dev_uevent()
	xfs: do not check NEEDSREPAIR if ro,norecovery mount.
	xfs: Do not allow norecovery mount with quotacheck
	xfs: rename xfs_iomap_swapfile_activate to xfs_vm_swap_activate
	xfs: flush inodegc before swapon
	selftests/bpf: fix bpf_map_redirect call for cpu map test
	selftests/bpf: make xdp_cpumap_attach keep redirect prog attached
	selftests/bpf: check program redirect in xdp_cpumap_attach
	selftests/bpf: Adjust data size to have ETH_HLEN
	usb: typec: class: Fix NULL pointer access
	vmxnet3: Fix malformed packet sizing in vmxnet3_process_xdp
	comedi: jr3_pci: Fix synchronous deletion of timer
	ext4: goto right label 'out_mmap_sem' in ext4_setattr()
	usb: typec: class: Invalidate USB device pointers on partner unregistration
	Revert "net: dsa: mv88e6xxx: fix internal PHYs for 6320 family"
	net: dsa: mv88e6xxx: fix atu_move_port_mask for 6341 family
	net: dsa: mv88e6xxx: enable PVT for 6321 switch
	net: dsa: mv88e6xxx: enable .port_set_policy() for 6320 family
	net: dsa: mv88e6xxx: enable STU methods for 6320 family
	iommu: Handle race with default domain setup
	crypto: lib/Kconfig - Hide arch options from user
	media: i2c: imx214: Fix uninitialized variable in imx214_set_ctrl()
	MIPS: cm: Fix warning if MIPS_CM is disabled
	nvme: fixup scan failure for non-ANA multipath controllers
	usb: xhci: Fix Short Packet handling rework ignoring errors
	objtool: Ignore end-of-section jumps for KCOV/GCOV
	objtool: Silence more KCOV warnings, part 2
	usb: typec: class: Unlocked on error in typec_register_partner()
	crypto: Kconfig - Select LIB generic option
	arm64: dts: ti: k3-j784s4-j742s2-main-common: Correct the GICD size
	mq-deadline: don't call req_get_ioprio from the I/O completion handler
	Linux 6.12.26

Change-Id: Iff5be8c388b8b915652fafb787156a4653f060aa
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-05-20 16:37:12 +00:00
Miguel Ojeda
376b73292a rust: clean Rust 1.88.0's unnecessary_transmutes lint
commit 7129ea6e242b00938532537da41ddf5fa3e21471 upstream.

Starting with Rust 1.88.0 (expected 2025-06-26) [1][2], `rustc` may
introduce a new lint that catches unnecessary transmutes, e.g.:

     error: unnecessary transmute
         --> rust/uapi/uapi_generated.rs:23242:18
          |
    23242 |         unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
          |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace this with: `(self._bitfield_1.get(0usize, 1u8) as u8 == 1)`
          |
          = note: `-D unnecessary-transmutes` implied by `-D warnings`
          = help: to override `-D warnings` add `#[allow(unnecessary_transmutes)]`

There are a lot of them (at least 300), but luckily they are all in
`bindgen`-generated code.

Thus clean all up by allowing it there.

Since unknown lints trigger a lint itself in older compilers, do it
conditionally so that we can keep the `unknown_lints` lint enabled.

Cc: stable@vger.kernel.org # Needed in 6.12.y and later (Rust is pinned in older LTSs).
Link: https://github.com/rust-lang/rust/pull/136083 [1]
Link: https://github.com/rust-lang/rust/issues/136067 [2]
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20250502140237.1659624-4-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-05-18 08:24:51 +02:00
Huan Yang
434e2d5481 FROMGIT: mm/memcg: move mem_cgroup_init() ahead of cgroup_init()
Patch series "Use kmem_cache for memcg alloc", v3.

(willy tldr: "you've gone from allocating 8 objects per 32KiB to
allocating 13 objects per 32KiB, a 62% improvement in memory consumption"
[1])

The mem_cgroup_alloc function creates mem_cgroup struct and it's
associated structures including mem_cgroup_per_node.  Through detailed
analysis on our test machine (Arm64, 16GB RAM, 6.6 kernel, 1 NUMA node,
memcgv2 with nokmem,nosocket,cgroup_disable=pressure), we can observe the
memory allocation for these structures using the following shell commands:

  # Enable tracing
  echo 1 > /sys/kernel/tracing/events/kmem/kmalloc/enable
  echo 1 > /sys/kernel/tracing/tracing_on
  cat /sys/kernel/tracing/trace_pipe | grep kmalloc | grep mem_cgroup

  # Trigger allocation if cgroup subtree do not enable memcg
  echo +memory > /sys/fs/cgroup/cgroup.subtree_control

Ftrace Output:

  # mem_cgroup struct allocation
  sh-6312    [000] ..... 58015.698365: kmalloc:
    call_site=mem_cgroup_css_alloc+0xd8/0x5b4
    ptr=000000003e4c3799 bytes_req=2312 bytes_alloc=4096
    gfp_flags=GFP_KERNEL|__GFP_ZERO node=-1 accounted=false

  # mem_cgroup_per_node allocation
  sh-6312    [000] ..... 58015.698389: kmalloc:
    call_site=mem_cgroup_css_alloc+0x1d8/0x5b4
    ptr=00000000d798700c bytes_req=2896 bytes_alloc=4096
    gfp_flags=GFP_KERNEL|__GFP_ZERO node=0 accounted=false

Key Observations:

  1. Both structures use kmalloc with requested sizes between 2KB-4KB
  2. Allocation alignment forces 4KB slab usage due to pre-defined sizes
     (64B, 128B,..., 2KB, 4KB, 8KB)
  3. Memory waste per memcg instance:
      Base struct: 4096 - 2312 = 1784 bytes
      Per-node struct: 4096 - 2896 = 1200 bytes
      Total waste: 2984 bytes (1-node system)
      NUMA scaling: (1200 + 8) * nr_node_ids bytes

So, it's a little waste.

This patchset introduces dedicated kmem_cache:
  Patch2 - mem_cgroup kmem_cache - memcg_cachep
  Patch3 - mem_cgroup_per_node kmem_cache - memcg_pn_cachep

The benefits of this change can be observed with the following tracing
commands:

  # Enable tracing
  echo 1 > /sys/kernel/tracing/events/kmem/kmem_cache_alloc/enable
  echo 1 > /sys/kernel/tracing/tracing_on
  cat /sys/kernel/tracing/trace_pipe | grep kmem_cache_alloc | grep mem_cgroup
  # In another terminal:
  echo +memory > /sys/fs/cgroup/cgroup.subtree_control

The output might now look like this:

  # mem_cgroup struct allocation
  sh-9827     [000] .....   289.513598: kmem_cache_alloc:
    call_site=mem_cgroup_css_alloc+0xbc/0x5d4 ptr=00000000695c1806
    bytes_req=2312 bytes_alloc=2368 gfp_flags=GFP_KERNEL|__GFP_ZERO node=-1
    accounted=false
  # mem_cgroup_per_node allocation
  sh-9827     [000] .....   289.513602: kmem_cache_alloc:
    call_site=mem_cgroup_css_alloc+0x1b8/0x5d4 ptr=000000002989e63a
    bytes_req=2896 bytes_alloc=2944 gfp_flags=GFP_KERNEL|__GFP_ZERO node=0
    accounted=false

This indicates that the `mem_cgroup` struct now requests 2312 bytes and is
allocated 2368 bytes, while `mem_cgroup_per_node` requests 2896 bytes and
is allocated 2944 bytes.  The slight increase in allocated size is due to
`SLAB_HWCACHE_ALIGN` in the `kmem_cache`.

Without `SLAB_HWCACHE_ALIGN`, the allocation might appear as:

  # mem_cgroup struct allocation
  sh-9269     [003] .....    80.396366: kmem_cache_alloc:
    call_site=mem_cgroup_css_alloc+0xbc/0x5d4 ptr=000000005b12b475
    bytes_req=2312 bytes_alloc=2312 gfp_flags=GFP_KERNEL|__GFP_ZERO node=-1
    accounted=false

  # mem_cgroup_per_node allocation
  sh-9269     [003] .....    80.396411: kmem_cache_alloc:
    call_site=mem_cgroup_css_alloc+0x1b8/0x5d4 ptr=00000000f347adc6
    bytes_req=2896 bytes_alloc=2896 gfp_flags=GFP_KERNEL|__GFP_ZERO node=0
    accounted=false

While the `bytes_alloc` now matches the `bytes_req`, this patchset
defaults to using `SLAB_HWCACHE_ALIGN` as it is generally considered more
beneficial for performance.  Please let me know if there are any issues or
if I've misunderstood anything.

This patchset also move mem_cgroup_init ahead of cgroup_init() due to
cgroup_init() will allocate root_mem_cgroup, but each initcall invoke
after cgroup_init, so if each kmem_cache do not prepare, we need testing
NULL before use it.

This patch (of 3):

When cgroup_init() creates root_mem_cgroup through css_alloc callback,
some critical resources might not be fully initialized, forcing later
operations to perform conditional checks for resource availability.

This patch move mem_cgroup_init() to address the init order, it invoke
before cgroup_init, so, compare to subsys_initcall, it can use to prepare
some key resources before root_mem_cgroup alloc.

Link: https://lkml.kernel.org/r/aAsRCj-niMMTtmK8@casper.infradead.org [1]
Link: https://lkml.kernel.org/r/20250425031935.76411-1-link@vivo.com
Link: https://lkml.kernel.org/r/20250425031935.76411-2-link@vivo.com
Signed-off-by: Huan Yang <link@vivo.com>
Suggested-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Shakeel Butt <shakeel.butt@linux.dev>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Francesco Valla <francesco@valla.it>
Cc: guoweikang <guoweikang.kernel@gmail.com>
Cc: Huang Shijie <shijie@os.amperecomputing.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: "Paul E . McKenney" <paulmck@kernel.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Raul E Rangel <rrangel@chromium.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: "Uladzislau Rezki (Sony)" <urezki@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 46d7006eb1a4b823f09034ee708f61c2f6926fda https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable)
Change-Id: I71005c1ad3d826b99fa698358bcf357ff7924c8c
Bug: 417296244
Signed-off-by: T.J. Mercier <tjmercier@google.com>
2025-05-14 08:39:46 -07:00
Oleg Nesterov
c6c8afdcf8 sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP
[ Upstream commit 975776841e689dd8ba36df9fa72ac3eca3c2957a ]

kernel/sched/isolation.c obviously makes no sense without CONFIG_SMP, but
the Kconfig entry we have right now:

	config CPU_ISOLATION
		bool "CPU isolation"
		depends on SMP || COMPILE_TEST

allows the creation of pointless .config's which cause
build failures.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20250330134955.GA7910@redhat.com

Closes: https://lore.kernel.org/oe-kbuild-all/202503260646.lrUqD3j5-lkp@intel.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-05-02 07:59:21 +02:00
Greg Kroah-Hartman
f72695ceaf Merge 6.12.23 into android16-6.12
GKI (arm64) relevant 77 out of 426 changes, affecting 93 files +851/-461
  40426fc097 cpufreq: scpi: compare kHz instead of Hz [1 file, +3/-2]
  7b1d2454d0 sched: Cancel the slice protection of the idle entity [1 file, +33/-13]
  b576c4834d sched/eevdf: Force propagating min_slice of cfs_rq when {en,de}queue tasks [1 file, +4/-0]
  f381c92ab4 cpufreq: governor: Fix negative 'idle_time' handling in dbs_update() [1 file, +23/-22]
  4d28c2ab2a lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock [1 file, +0/-2]
  31d5665172 PM: sleep: Adjust check before setting power.must_resume [3 files, +9/-8]
  864750968d watchdog/hardlockup/perf: Fix perf_event memory leak [4 files, +1/-61]
  c3a4c91a40 PM: sleep: Fix handling devices with direct_complete set on errors [1 file, +4/-4]
  345957c1cf lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*() [1 file, +4/-4]
  5108828fec perf/ring_buffer: Allow the EPOLLRDNORM flag for poll [1 file, +1/-1]
  15291b561d ALSA: timer: Don't take register_mutex with copy_from/to_user() [1 file, +77/-70]
  254f771c70 PCI: Use downstream bridges for distributing resources [1 file, +1/-2]
  372e387c4f PCI: Remove add_align overwrite unrelated to size0 [1 file, +0/-1]
  f556b6ba0a PCI/ASPM: Fix link state exit during switch upstream function removal [1 file, +9/-8]
  8ba27aa512 PCI/ACS: Fix 'pci=config_acs=' parameter [1 file, +13/-5]
  2a54a1a9c6 PCI/portdrv: Only disable pciehp interrupts early when needed [1 file, +5/-3]
  bcb4842004 PCI: Avoid reset when disabled via sysfs [1 file, +4/-0]
  362b5879a7 PCI: Remove stray put_device() in pci_register_host_bridge() [1 file, +2/-3]
  b004cf517d PCI: dwc: ep: Return -ENOMEM for allocation failures [1 file, +1/-0]
  e23dfb926f PCI: Fix BAR resizing when VF BARs are assigned [1 file, +2/-2]
  057298d193 crypto: bpf - Add MODULE_DESCRIPTION for skcipher [1 file, +1/-0]
  2df19f5f6f remoteproc: core: Clear table_sz when rproc_shutdown [1 file, +1/-0]
  bfcca46f01 of: property: Increase NR_FWNODE_REFERENCE_ARGS [1 file, +1/-1]
  8ed5381756 bpf: Use preempt_count() directly in bpf_send_signal_common() [1 file, +1/-1]
  6d4e56e4c5 crypto: api - Fix larval relookup type and mask [1 file, +7/-10]
  8ba426f170 rust: fix signature of rust_fmt_argument [2 files, +4/-5]
  19e6817f84 bpf: Fix array bounds error with may_goto [2 files, +22/-4]
  c2ddf2f576 leds: Fix LED_OFF brightness race [1 file, +18/-4]
  8109f57613 usb: xhci: correct debug message page size calculation [1 file, +3/-3]
  c42282a078 kernel/events/uprobes: handle device-exclusive entries correctly in __replace_page() [1 file, +12/-1]
  5b2b692804 tty: n_tty: use uint for space returned by tty_write_room() [1 file, +7/-6]
  aba9189992 fs/procfs: fix the comment above proc_pid_wchan() [1 file, +1/-1]
  456300be23 thermal: core: Remove duplicate struct declaration [1 file, +0/-2]
  6a14075325 exfat: fix the infinite loop in exfat_find_last_cluster() [1 file, +1/-1]
  4a9595eb02 exfat: fix missing shutdown check [1 file, +27/-2]
  28b21ee8e8 rtnetlink: Allocate vfinfo size for VF GUIDs when supported [1 file, +3/-0]
  2a6f8823ff ring-buffer: Fix bytes_dropped calculation issue [1 file, +2/-2]
  8e49f912ae sched/smt: Always inline sched_smt_active() [1 file, +1/-1]
  00911b416a context_tracking: Always inline ct_{nmi,irq}_{enter,exit}() [1 file, +4/-4]
  d80168db5e rcu-tasks: Always inline rcu_irq_work_resched() [1 file, +1/-1]
  63bd235de2 nvme-pci: clean up CMBMSC when registering CMB fails [1 file, +1/-0]
  5eb8c8fee7 nvme-pci: skip CMB blocks incompatible with PCI P2P DMA [1 file, +12/-8]
  7364420090 perf/core: Fix perf_pmu_register() vs. perf_init_event() [1 file, +26/-2]
  9207575878 exfat: add a check for invalid data size [1 file, +5/-0]
  ddf40162ac locking/semaphore: Use wake_q to wake up processes outside lock critical section [1 file, +9/-4]
  3e6ce0d9ec nvme-pci: fix stuck reset on concurrent DPC and HP [1 file, +12/-1]
  93c59b5548 net: devmem: do not WARN conditionally after netdev_rx_queue_restart() [1 file, +3/-1]
  d840c84cdd can: statistics: use atomic access in hot path [3 files, +39/-31]
  7a95b48873 netfs: Fix netfs_unbuffered_read() to return ssize_t rather than int [1 file, +3/-3]
  7e3497d7da ublk: make sure ubq->canceling is set when queue is frozen [1 file, +29/-10]
  a3800b64f8 nvme/ioctl: don't warn on vectorized uring_cmd with fixed buffer [1 file, +1/-1]
  94d5ad7b41 udp: Fix multiple wraparounds of sk->sk_rmem_alloc. [1 file, +17/-9]
  a116b271bf udp: Fix memory accounting leak. [1 file, +7/-9]
  47744d0d5f vsock: avoid timeout during connect() if the socket is closing [1 file, +5/-1]
  9539c1721a tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu(). [2 files, +1/-7]
  92a5c18513 net: decrease cached dst counters in dst_release [1 file, +8/-0]
  de579015d1 ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS [1 file, +25/-12]
  2952776c69 net: fix geneve_opt length integer overflow [4 files, +4/-4]
  1eb36a2cdf ipv6: Start path selection from the first nexthop [1 file, +35/-3]
  f4fea25f5c ipv6: Do not consider link down nexthops in path selection [1 file, +4/-2]
  e9c9288072 perf/core: Fix child_total_time_enabled accounting bug at task exit [1 file, +9/-9]
  387dc88c2c tracing: Switch trace_events_hist.c code over to use guard() [1 file, +10/-22]
  fe87f8d3a5 tracing/hist: Add poll(POLLIN) support on hist file [3 files, +95/-3]
  eecb62a24b tracing/hist: Support POLLPRI event for poll on histogram [1 file, +26/-3]
  ef79f2dec7 tracing: Correct the refcount if the hist/hist_debug file fails to open [1 file, +18/-6]
  39bc1484eb cgroup/rstat: Tracking cgroup-level niced CPU time [2 files, +15/-5]
  3501677651 cgroup/rstat: Fix forceidle time in cpu.stat [1 file, +13/-16]
  d689645cd1 usbnet:fix NPE during rx_complete [1 file, +3/-3]
  49b0a6ab8e exfat: fix random stack corruption after get_block [1 file, +33/-6]
  37c9875c17 exfat: fix potential wrong error return from get_block [1 file, +2/-0]
  cffc2a6718 tracing: Ensure module defining synth event cannot be unloaded while tracing [1 file, +29/-1]
  33052e7f52 tracing: Fix synth event printk format for str fields [1 file, +1/-1]
  2e877ff349 mm/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs [1 file, +3/-0]
  13d6f8ba50 ext4: don't over-report free space or inodes in statvfs [1 file, +17/-10]
  b47584c556 ext4: fix OOB read when checking dotdot dir [1 file, +3/-0]
  e2d8e7bd33 exec: fix the racy usage of fs_struct->in_exec [1 file, +9/-6]
  625e9b91eb tracing: Do not use PERF enums when perf is not defined [1 file, +6/-2]

Changes in 6.12.23
        watch_queue: fix pipe accounting mismatch
        x86/mm/pat: cpa-test: fix length for CPA_ARRAY test
        cpufreq: scpi: compare kHz instead of Hz
        smack: dont compile ipv6 code unless ipv6 is configured
        smack: ipv4/ipv6: tcp/dccp/sctp: fix incorrect child socket label
        sched: Cancel the slice protection of the idle entity
        sched/eevdf: Force propagating min_slice of cfs_rq when {en,de}queue tasks
        cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
        EDAC/{skx_common,i10nm}: Fix some missing error reports on Emerald Rapids
        x86/fpu: Fix guest FPU state buffer allocation size
        x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
        x86/platform: Only allow CONFIG_EISA for 32-bit
        x86/sev: Add missing RIP_REL_REF() invocations during sme_enable()
        lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock
        PM: sleep: Adjust check before setting power.must_resume
        cpufreq: tegra194: Allow building for Tegra234
        RISC-V: KVM: Disable the kernel perf counter during configure
        kunit/stackinit: Use fill byte different from Clang i386 pattern
        watchdog/hardlockup/perf: Fix perf_event memory leak
        selinux: Chain up tool resolving errors in install_policy.sh
        EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
        EDAC/ie31200: Fix the DIMM size mask for several SoCs
        EDAC/ie31200: Fix the error path order of ie31200_init()
        x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors
        thermal: int340x: Add NULL check for adev
        PM: sleep: Fix handling devices with direct_complete set on errors
        lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
        perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
        x86/traps: Make exc_double_fault() consistently noreturn
        x86/fpu/xstate: Fix inconsistencies in guest FPU xfeatures
        x86/entry: Add __init to ia32_emulation_override_cmdline()
        regulator: pca9450: Fix enable register for LDO5
        auxdisplay: MAX6959 should select BITREVERSE
        media: verisilicon: HEVC: Initialize start_bit field
        media: platform: allgro-dvt: unregister v4l2_device on the error path
        auxdisplay: panel: Fix an API misuse in panel.c
        platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: Make symbol static
        platform/x86: dell-uart-backlight: Make dell_uart_bl_serdev_driver static
        platform/x86: dell-ddv: Fix temperature calculation
        ASoC: cs35l41: check the return value from spi_setup()
        ASoC: amd: acp: Fix for enabling DMIC on acp platforms via _DSD entry
        HID: remove superfluous (and wrong) Makefile entry for CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER
        dt-bindings: vendor-prefixes: add GOcontroll
        ALSA: hda/realtek: Always honor no_shutup_pins
        ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible
        ALSA: timer: Don't take register_mutex with copy_from/to_user()
        drm/bridge: ti-sn65dsi86: Fix multiple instances
        drm/ssd130x: Set SPI .id_table to prevent an SPI core warning
        drm/ssd130x: fix ssd132x encoding
        drm/ssd130x: ensure ssd132x pitch is correct
        drm/dp_mst: Fix drm RAD print
        drm/bridge: it6505: fix HDCP V match check is not performed correctly
        drm: xlnx: zynqmp: Fix max dma segment size
        drm/vkms: Fix use after free and double free on init error
        gpu: cdns-mhdp8546: fix call balance of mhdp->clk handling routines
        drm/amdgpu: refine smu send msg debug log format
        drm/amdgpu/umsch: fix ucode check
        PCI: Use downstream bridges for distributing resources
        PCI: Remove add_align overwrite unrelated to size0
        drm/mediatek: mtk_hdmi: Unregister audio platform device on failure
        drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member
        PCI/ASPM: Fix link state exit during switch upstream function removal
        drm/panel: ilitek-ili9882t: fix GPIO name in error message
        PCI/ACS: Fix 'pci=config_acs=' parameter
        drm/amd/display: fix an indent issue in DML21
        drm/msm/dpu: don't use active in atomic_check()
        drm/msm/dsi/phy: Program clock inverters in correct register
        drm/msm/dsi: Use existing per-interface slice count in DSC timing
        drm/msm/dsi: Set PHY usescase (and mode) before registering DSI host
        drm/amdkfd: Fix Circular Locking Dependency in 'svm_range_cpu_invalidate_pagetables'
        PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload
        PCI: brcmstb: Set generation limit before PCIe link up
        PCI: brcmstb: Use internal register to change link capability
        PCI: brcmstb: Fix error path after a call to regulator_bulk_get()
        PCI: brcmstb: Fix potential premature regulator disabling
        PCI/portdrv: Only disable pciehp interrupts early when needed
        PCI: Avoid reset when disabled via sysfs
        drm/panthor: Update CS_STATUS_ defines to correct values
        drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()
        drm/msm/a6xx: Fix a6xx indexed-regs in devcoreduump
        crypto: powerpc: Mark ghashp8-ppc.o as an OBJECT_FILES_NON_STANDARD
        powerpc/kexec: fix physical address calculation in clear_utlb_entry()
        PCI: Remove stray put_device() in pci_register_host_bridge()
        PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe
        drm/mediatek: Fix config_updating flag never false when no mbox channel
        drm/mediatek: dp: drm_err => dev_err in HPD path to avoid NULL ptr
        drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()
        drm/amd/display: avoid NPD when ASIC does not support DMUB
        PCI: dwc: ep: Return -ENOMEM for allocation failures
        PCI: histb: Fix an error handling path in histb_pcie_probe()
        PCI: Fix BAR resizing when VF BARs are assigned
        PCI: pciehp: Don't enable HPIE when resuming in poll mode
        fbdev: au1100fb: Move a variable assignment behind a null pointer check
        dummycon: fix default rows/cols
        mdacon: rework dependency list
        fbdev: sm501fb: Add some geometry checks.
        crypto: iaa - Test the correct request flag
        crypto: qat - set parity error mask for qat_420xx
        crypto: tegra - Use separate buffer for setkey
        crypto: tegra - check return value for hash do_one_req
        crypto: bpf - Add MODULE_DESCRIPTION for skcipher
        crypto: tegra - Use HMAC fallback when keyslots are full
        clk: amlogic: gxbb: drop incorrect flag on 32k clock
        crypto: hisilicon/sec2 - fix for aead authsize alignment
        crypto: hisilicon/sec2 - fix for sec spec check
        RDMA/mlx5: Fix page_size variable overflow
        remoteproc: core: Clear table_sz when rproc_shutdown
        of: property: Increase NR_FWNODE_REFERENCE_ARGS
        pinctrl: renesas: rzg2l: Suppress binding attributes
        remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
        libbpf: Fix hypothetical STT_SECTION extern NULL deref case
        selftests/bpf: Fix string read in strncmp benchmark
        x86/mm/pat: Fix VM_PAT handling when fork() fails in copy_page_range()
        clk: renesas: r8a08g045: Check the source of the CPU PLL settings
        remoteproc: qcom: pas: add minidump_id to SC7280 WPSS
        clk: samsung: Fix UBSAN panic in samsung_clk_init()
        pinctrl: nuvoton: npcm8xx: Fix error handling in npcm8xx_gpio_fw()
        crypto: tegra - Fix CMAC intermediate result handling
        clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
        s390: Remove ioremap_wt() and pgprot_writethrough()
        RDMA/mana_ib: Ensure variable err is initialized
        crypto: tegra - Set IV to NULL explicitly for AES ECB
        remoteproc: qcom_q6v5_pas: Use resource with CX PD for MSM8226
        clk: qcom: gcc-x1e80100: Unregister GCC_GPU_CFG_AHB_CLK/GCC_DISP_XO_CLK
        bpf: Use preempt_count() directly in bpf_send_signal_common()
        lib: 842: Improve error handling in sw842_compress()
        pinctrl: renesas: rza2: Fix missing of_node_put() call
        pinctrl: renesas: rzg2l: Fix missing of_node_put() call
        RDMA/mlx5: Fix MR cache initialization error flow
        selftests/bpf: Fix freplace_link segfault in tailcalls prog test
        clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent
        RDMA/core: Don't expose hw_counters outside of init net namespace
        RDMA/mlx5: Fix calculation of total invalidated pages
        RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()
        remoteproc: qcom_q6v5_mss: Handle platforms with one power domain
        power: supply: bq27xxx_battery: do not update cached flags prematurely
        crypto: api - Fix larval relookup type and mask
        IB/mad: Check available slots before posting receive WRs
        pinctrl: tegra: Set SFIO mode to Mux Register
        clk: amlogic: g12b: fix cluster A parent data
        clk: amlogic: gxbb: drop non existing 32k clock parent
        selftests/bpf: Select NUMA_NO_NODE to create map
        rust: fix signature of rust_fmt_argument
        pinctrl: npcm8xx: Fix incorrect struct npcm8xx_pincfg assignment
        crypto: qat - remove access to parity register for QAT GEN4
        clk: clk-imx8mp-audiomix: fix dsp/ocram_a clock parents
        clk: amlogic: g12a: fix mmc A peripheral clock
        x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
        power: supply: max77693: Fix wrong conversion of charge input threshold value
        crypto: nx - Fix uninitialised hv_nxc on error
        clk: qcom: gcc-sm8650: Do not turn off USB GDSCs during gdsc_disable()
        bpf: Fix array bounds error with may_goto
        RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
        pinctrl: renesas: rzv2m: Fix missing of_node_put() call
        mfd: sm501: Switch to BIT() to mitigate integer overflows
        leds: Fix LED_OFF brightness race
        x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment
        RDMA/core: Fix use-after-free when rename device name
        crypto: hisilicon/sec2 - fix for aead auth key length
        pinctrl: intel: Fix wrong bypass assignment in intel_pinctrl_probe_pwm()
        clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
        perf stat: Fix find_stat for mixed legacy/non-legacy events
        perf: Always feature test reallocarray
        w1: fix NULL pointer dereference in probe
        fs/ntfs3: Update inode->i_mapping->a_ops on compression state
        phy: phy-rockchip-samsung-hdptx: Don't use dt aliases to determine phy-id
        isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
        soundwire: slave: fix an OF node reference leak in soundwire slave device
        perf report: Switch data file correctly in TUI
        greybus: gb-beagleplay: Add error handling for gb_greybus_init
        coresight: catu: Fix number of pages while using 64k pages
        vhost-scsi: Fix handling of multiple calls to vhost_scsi_set_endpoint
        coresight-etm4x: add isb() before reading the TRCSTATR
        perf pmu: Don't double count common sysfs and json events
        tools/x86: Fix linux/unaligned.h include path in lib/insn.c
        perf build: Fix in-tree build due to symbolic link
        ucsi_ccg: Don't show failed to get FW build information error
        iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
        iio: accel: msa311: Fix failure to release runtime pm if direct mode claim fails.
        iio: backend: make sure to NULL terminate stack buffer
        perf arm-spe: Fix load-store operation checking
        perf bench: Fix perf bench syscall loop count
        usb: xhci: correct debug message page size calculation
        fs/ntfs3: Fix a couple integer overflows on 32bit systems
        fs/ntfs3: Prevent integer overflow in hdr_first_de()
        dmaengine: fsl-edma: cleanup chan after dma_async_device_unregister
        dmaengine: fsl-edma: free irq correctly in remove path
        iio: adc: ad4130: Fix comparison of channel setups
        iio: adc: ad7124: Fix comparison of channel configs
        iio: adc: ad7173: Fix comparison of channel configs
        iio: adc: ad7768-1: set MOSI idle state to prevent accidental reset
        iio: light: Add check for array bounds in veml6075_read_int_time_ms
        perf debug: Avoid stack overflow in recursive error message
        perf evlist: Add success path to evlist__create_syswide_maps
        perf units: Fix insufficient array space
        kernel/events/uprobes: handle device-exclusive entries correctly in __replace_page()
        kexec: initialize ELF lowest address to ULONG_MAX
        ocfs2: validate l_tree_depth to avoid out-of-bounds access
        arch/powerpc: drop GENERIC_PTDUMP from mpc885_ads_defconfig
        NFSv4: Don't trigger uneccessary scans for return-on-close delegations
        NFSv4: Avoid unnecessary scans of filesystems for returning delegations
        NFSv4: Avoid unnecessary scans of filesystems for expired delegations
        NFSv4: Avoid unnecessary scans of filesystems for delayed delegations
        NFS: fix open_owner_id_maxsz and related fields.
        fuse: fix dax truncate/punch_hole fault path
        selftests/mm/cow: fix the incorrect error handling
        um: Pass the correct Rust target and options with gcc
        um: remove copy_from_kernel_nofault_allowed
        um: hostfs: avoid issues on inode number reuse by host
        i3c: master: svc: Fix missing the IBI rules
        perf python: Fixup description of sample.id event member
        perf python: Decrement the refcount of just created event on failure
        perf python: Don't keep a raw_data pointer to consumed ring buffer space
        perf python: Check if there is space to copy all the event
        perf dso: fix dso__is_kallsyms() check
        perf: intel-tpebs: Fix incorrect usage of zfree()
        staging: rtl8723bs: select CONFIG_CRYPTO_LIB_AES
        staging: vchiq_arm: Register debugfs after cdev
        staging: vchiq_arm: Fix possible NPR of keep-alive thread
        tty: n_tty: use uint for space returned by tty_write_room()
        perf vendor events arm64 AmpereOneX: Fix frontend_bound calculation
        fs/procfs: fix the comment above proc_pid_wchan()
        perf tools: annotate asm_pure_loop.S
        perf bpf-filter: Fix a parsing error with comma
        thermal: core: Remove duplicate struct declaration
        objtool, nvmet: Fix out-of-bounds stack access in nvmet_ctrl_state_show()
        objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
        NFS: Shut down the nfs_client only after all the superblocks
        smb: client: Fix netns refcount imbalance causing leaks and use-after-free
        exfat: fix the infinite loop in exfat_find_last_cluster()
        exfat: fix missing shutdown check
        rtnetlink: Allocate vfinfo size for VF GUIDs when supported
        rndis_host: Flag RNDIS modems as WWAN devices
        ksmbd: use aead_request_free to match aead_request_alloc
        ksmbd: fix multichannel connection failure
        ksmbd: fix r_count dec/increment mismatch
        net/mlx5e: SHAMPO, Make reserved size independent of page size
        ring-buffer: Fix bytes_dropped calculation issue
        objtool: Fix segfault in ignore_unreachable_insn()
        LoongArch: Fix help text of CMDLINE_EXTEND in Kconfig
        LoongArch: Fix device node refcount leak in fdt_cpu_clk_init()
        LoongArch: Rework the arch_kgdb_breakpoint() implementation
        ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
        net: phy: broadcom: Correct BCM5221 PHY model detection
        octeontx2-af: Fix mbox INTR handler when num VFs > 64
        octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
        objtool: Fix verbose disassembly if CROSS_COMPILE isn't set
        sched/smt: Always inline sched_smt_active()
        context_tracking: Always inline ct_{nmi,irq}_{enter,exit}()
        rcu-tasks: Always inline rcu_irq_work_resched()
        objtool/loongarch: Add unwind hints in prepare_frametrace()
        nfs: Add missing release on error in nfs_lock_and_join_requests()
        wifi: mac80211: Cleanup sta TXQs on flush
        wifi: mac80211: remove debugfs dir for virtual monitor
        wifi: iwlwifi: fw: allocate chained SG tables for dump
        wifi: iwlwifi: mvm: use the right version of the rate API
        nvme-tcp: fix possible UAF in nvme_tcp_poll
        nvme-pci: clean up CMBMSC when registering CMB fails
        nvme-pci: skip CMB blocks incompatible with PCI P2P DMA
        wifi: brcmfmac: keep power during suspend if board requires it
        affs: generate OFS sequence numbers starting at 1
        affs: don't write overlarge OFS data block size fields
        ALSA: hda/realtek: Fix Asus Z13 2025 audio
        ALSA: hda: Fix speakers on ASUS EXPERTBOOK P5405CSA 1.0
        perf/core: Fix perf_pmu_register() vs. perf_init_event()
        smb: common: change the data type of num_aces to le16
        cifs: fix incorrect validation for num_aces field of smb_acl
        platform/x86: intel-hid: fix volume buttons on Microsoft Surface Go 4 tablet
        platform/x86/intel/vsec: Add Diamond Rapids support
        net: dsa: rtl8366rb: don't prompt users for LED control
        HID: i2c-hid: improve i2c_hid_get_report error message
        platform/x86/amd/pmf: Propagate PMF-TA return codes
        platform/x86/amd/pmf: Update PMF Driver for Compatibility with new PMF-TA
        exfat: add a check for invalid data size
        ALSA: hda/realtek: Add support for ASUS ROG Strix G814 Laptop using CS35L41 HDA
        ALSA: hda/realtek: Add support for ASUS ROG Strix GA603 Laptops using CS35L41 HDA
        ALSA: hda/realtek: Add support for ASUS ROG Strix G614 Laptops using CS35L41 HDA
        ALSA: hda/realtek: Add support for various ASUS Laptops using CS35L41 HDA
        ALSA: hda/realtek: Add support for ASUS B3405 and B3605 Laptops using CS35L41 HDA
        ALSA: hda/realtek: Add support for ASUS B5405 and B5605 Laptops using CS35L41 HDA
        ALSA: hda/realtek: Add support for ASUS Zenbook UM3406KA Laptops using CS35L41 HDA
        sched/deadline: Use online cpus for validating runtime
        x86/hyperv/vtl: Stop kernel from probing VTL0 low memory
        ASoC: codecs: wsa884x: report temps to hwmon in millidegree of Celsius
        ASoC: rt1320: set wake_capable = 0 explicitly
        wifi: mac80211: flush the station before moving it to UN-AUTHORIZED state
        wifi: mac80211: fix SA Query processing in MLO
        locking/semaphore: Use wake_q to wake up processes outside lock critical section
        x86/hyperv: Fix output argument to hypercall that changes page visibility
        x86/sgx: Warn explicitly if X86_FEATURE_SGX_LC is not enabled
        nvme-pci: fix stuck reset on concurrent DPC and HP
        drm/amd: Keep display off while going into S4
        net: devmem: do not WARN conditionally after netdev_rx_queue_restart()
        selftests: netfilter: skip br_netfilter queue tests if kernel is tainted
        ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx
        can: statistics: use atomic access in hot path
        memory: omap-gpmc: drop no compatible check
        hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}
        netfs: Fix netfs_unbuffered_read() to return ssize_t rather than int
        spufs: fix a leak on spufs_new_file() failure
        spufs: fix gang directory lifetimes
        spufs: fix a leak in spufs_create_context()
        fs/9p: fix NULL pointer dereference on mkdir
        riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra
        ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans
        ntb: intel: Fix using link status DB's
        firmware: cs_dsp: Ensure cs_dsp_load[_coeff]() returns 0 on success
        ALSA: hda/realtek: Fix built-in mic breakage on ASUS VivoBook X515JA
        RISC-V: errata: Use medany for relocatable builds
        x86/uaccess: Improve performance by aligning writes to 8 bytes in copy_user_generic(), on non-FSRM/ERMS CPUs
        ublk: make sure ubq->canceling is set when queue is frozen
        s390/entry: Fix setting _CIF_MCCK_GUEST with lowcore relocation
        ASoC: codecs: rt5665: Fix some error handling paths in rt5665_probe()
        spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock()
        riscv: Fix hugetlb retrieval of number of ptes in case of !present pte
        riscv/kexec_file: Handle R_RISCV_64 in purgatory relocator
        riscv/purgatory: 4B align purgatory_start
        nvme/ioctl: don't warn on vectorized uring_cmd with fixed buffer
        ASoC: imx-card: Add NULL check in imx_card_probe()
        spi: bcm2835: Do not call gpiod_put() on invalid descriptor
        ALSA: hda/realtek: Fix built-in mic on another ASUS VivoBook model
        spi: bcm2835: Restore native CS probing when pinctrl-bcm2835 is absent
        e1000e: change k1 configuration on MTP and later platforms
        idpf: fix adapter NULL pointer dereference on reboot
        netfilter: nft_set_hash: GC reaps elements with conncount for dynamic sets only
        netfilter: nf_tables: don't unregister hook when table is dormant
        netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets
        net_sched: skbprio: Remove overly strict queue assertions
        sctp: add mutual exclusion in proc_sctp_do_udp_port()
        net: mvpp2: Prevent parser TCAM memory corruption
        udp: Fix multiple wraparounds of sk->sk_rmem_alloc.
        udp: Fix memory accounting leak.
        vsock: avoid timeout during connect() if the socket is closing
        tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().
        net: decrease cached dst counters in dst_release
        netfilter: nft_tunnel: fix geneve_opt type confusion addition
        ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS
        net: dsa: mv88e6xxx: propperly shutdown PPU re-enable timer on destroy
        net: fix geneve_opt length integer overflow
        ipv6: Start path selection from the first nexthop
        ipv6: Do not consider link down nexthops in path selection
        arcnet: Add NULL check in com20020pci_probe()
        net: ibmveth: make veth_pool_store stop hanging
        kbuild: deb-pkg: don't set KBUILD_BUILD_VERSION unconditionally
        drm/amdgpu/gfx11: fix num_mec
        drm/amdgpu/gfx12: fix num_mec
        perf/core: Fix child_total_time_enabled accounting bug at task exit
        tools/power turbostat: report CoreThr per measurement interval
        tracing: Switch trace_events_hist.c code over to use guard()
        tracing/hist: Add poll(POLLIN) support on hist file
        tracing/hist: Support POLLPRI event for poll on histogram
        tracing: Correct the refcount if the hist/hist_debug file fails to open
        cgroup/rstat: Tracking cgroup-level niced CPU time
        cgroup/rstat: Fix forceidle time in cpu.stat
        tty: serial: fsl_lpuart: Use u32 and u8 for register variables
        tty: serial: fsl_lpuart: use port struct directly to simply code
        tty: serial: fsl_lpuart: Fix unused variable 'sport' build warning
        tty: serial: lpuart: only disable CTS instead of overwriting the whole UARTMODIR register
        wifi: mac80211: Fix sparse warning for monitor_sdata
        usbnet:fix NPE during rx_complete
        rust: Fix enabling Rust and building with GCC for LoongArch
        LoongArch: Increase ARCH_DMA_MINALIGN up to 16
        LoongArch: Increase MAX_IO_PICS up to 8
        LoongArch: BPF: Fix off-by-one error in build_prologue()
        LoongArch: BPF: Don't override subprog's return value
        LoongArch: BPF: Use move_addr() for BPF_PSEUDO_FUNC
        x86/hyperv: Fix check of return value from snp_set_vmsa()
        KVM: x86: block KVM_CAP_SYNC_REGS if guest state is protected
        x86/microcode/AMD: Fix __apply_microcode_amd()'s return value
        x86/mce: use is_copy_from_user() to determine copy-from-user context
        x86/tdx: Fix arch_safe_halt() execution for TDX VMs
        ACPI: x86: Extend Lenovo Yoga Tab 3 quirk with skip GPIO event-handlers
        platform/x86: thinkpad_acpi: disable ACPI fan access for T495* and E560
        platform/x86: ISST: Correct command storage data length
        ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()
        perf/x86/intel: Apply static call for drain_pebs
        perf/x86/intel: Avoid disable PMU if !cpuc->enabled in sample read
        uprobes/x86: Harden uretprobe syscall trampoline check
        idpf: Don't hard code napi_struct size
        x86/Kconfig: Add cmpxchg8b support back to Geode CPUs
        x86/tsc: Always save/restore TSC sched_clock() on suspend/resume
        x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs
        wifi: mt76: mt7925: remove unused acpi function for clc
        acpi: nfit: fix narrowing conversion in acpi_nfit_ctl
        ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
        ARM: 9444/1: add KEEP() keyword to ARM_VECTORS
        media: omap3isp: Handle ARM dma_iommu_mapping
        Remove unnecessary firmware version check for gc v9_4_2
        mmc: omap: Fix memory leak in mmc_omap_new_slot
        mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
        mmc: sdhci-omap: Disable MMC_CAP_AGGRESSIVE_PM for eMMC/SD
        KVM: SVM: Don't change target vCPU state on AP Creation VMGEXIT error
        ksmbd: add bounds check for durable handle context
        ksmbd: add bounds check for create lease context
        ksmbd: fix use-after-free in ksmbd_sessions_deregister()
        ksmbd: fix session use-after-free in multichannel connection
        ksmbd: fix overflow in dacloffset bounds check
        ksmbd: validate zero num_subauth before sub_auth is accessed
        ksmbd: fix null pointer dereference in alloc_preauth_hash()
        exfat: fix random stack corruption after get_block
        exfat: fix potential wrong error return from get_block
        tracing: Fix use-after-free in print_graph_function_flags during tracer switching
        tracing: Ensure module defining synth event cannot be unloaded while tracing
        tracing: Fix synth event printk format for str fields
        tracing/osnoise: Fix possible recursive locking for cpus_read_lock()
        mm/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs
        arm64: Don't call NULL in do_compat_alignment_fixup()
        wifi: mt76: mt7921: fix kernel panic due to null pointer dereference
        ext4: don't over-report free space or inodes in statvfs
        ext4: fix OOB read when checking dotdot dir
        jfs: fix slab-out-of-bounds read in ea_get()
        jfs: add index corruption check to DT_GETPAGE()
        mm: zswap: fix crypto_free_acomp() deadlock in zswap_cpu_comp_dead()
        exec: fix the racy usage of fs_struct->in_exec
        media: vimc: skip .s_stream() for stopped entities
        media: streamzap: fix race between device disconnection and urb callback
        nfsd: allow SC_STATUS_FREEABLE when searching via nfs4_lookup_stateid()
        nfsd: put dl_stid if fail to queue dl_recall
        nfsd: fix management of listener transports
        NFSD: nfsd_unlink() clobbers non-zero status returned from fh_fill_pre_attrs()
        NFSD: Never return NFS4ERR_FILE_OPEN when removing a directory
        NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up
        ARM: 9443/1: Require linker to support KEEP within OVERLAY for DCE
        tracing: Do not use PERF enums when perf is not defined
        platform/x86/amd/pmf: fix cleanup in amd_pmf_init_smart_pc()
        Linux 6.12.23

Change-Id: I007dc80a847f3232a2d12c056a74d16d2ab92b29
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-29 11:52:22 -07:00
Greg Kroah-Hartman
ac5b2508c1 Merge 677088b7fa ("rust: init: fix Zeroable implementation for Option<NonNull<T>> and Option<KBox<T>>") into android16-6.12
Steps on the way to 6.12.20

Resolves merge conflicts in:
	rust/kernel/sync.rs

Change-Id: I2e13aa71c635af1cbbc66a28b113bb43c4b16053
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-22 09:04:39 -07:00
Nathan Chancellor
59fc423183 ARM: 9443/1: Require linker to support KEEP within OVERLAY for DCE
commit e7607f7d6d81af71dcc5171278aadccc94d277cd upstream.

ld.lld prior to 21.0.0 does not support using the KEEP keyword within an
overlay description, which may be needed to avoid discarding necessary
sections within an overlay with '--gc-sections', which can be enabled
for the kernel via CONFIG_LD_DEAD_CODE_DATA_ELIMINATION.

Disallow CONFIG_LD_DEAD_CODE_DATA_ELIMINATION without support for KEEP
within OVERLAY and introduce a macro, OVERLAY_KEEP, that can be used to
conditionally add KEEP when it is properly supported to avoid breaking
old versions of ld.lld.

Cc: stable@vger.kernel.org
Link: 381599f1fe
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
[nathan: Fix conflict in init/Kconfig due to lack of RUSTC symbols]
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-04-10 14:39:40 +02:00
Alistair Delva
25e74c53fc ANDROID: suppress IOMMU_IO_PGTABLE_LPAE on 32-bit
Originally init/Kconfig.gki was just excluded on 32-bit, which works
fine for allmodconfig builds, but breaks downstream boards trying to
build specific drivers modularly (in a 'mixed tree' configuration)
for 32-bit ARM with Kleaf. Replace the workaround with a new one.

Bug: 379954362
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ia67da020f561fdc43e73a68984ca882bbe0d3082
2025-03-25 14:47:06 -07:00
Alistair Delva
8b9a794068 Revert "ANDROID: suppress GKI configs for 32-bit builds"
This reverts commit f896efaa7625f81482bbd29afaac72ec4e7c1d66.

Broke building 32-bit ARM kernels with kbuild 'mixed tree' support
in Kleaf. A different workaround will be used instead.

Bug: 379954362
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ieef7a18de0eb89a76382d23e1bd14d1105e7bb08
2025-03-25 14:47:06 -07:00
Matthew Maurer
514d35a745 rust: Disallow BTF generation with Rust + LTO
commit 5daa0c35a1f0e7a6c3b8ba9cb721e7d1ace6e619 upstream.

The kernel cannot currently self-parse BTF containing Rust debug
information. pahole uses the language of the CU to determine whether to
filter out debug information when generating the BTF. When LTO is
enabled, Rust code can cross CU boundaries, resulting in Rust debug
information in CUs labeled as C. This results in a system which cannot
parse its own BTF.

Signed-off-by: Matthew Maurer <mmaurer@google.com>
Cc: stable@vger.kernel.org
Fixes: c1177979af ("btf, scripts: Exclude Rust CUs with pahole")
Link: https://lore.kernel.org/r/20250108-rust-btf-lto-incompat-v1-1-60243ff6d820@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-22 12:54:23 -07:00
Aleksei Vetrov
d5ca9935dc Reapply "ANDROID: GKI: Enable SND_COMPRESS_ACCEL"
This reverts commit f91b1cf94b.

Reason for revert: ABI changes are allowed in coordinated KMI update.

Change-Id: I4294c8e7e77ae54cae173aed8a0525a7e0ac4d93
Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
2025-03-19 13:28:26 +00:00
Jaewon Kim
e5d0bed084 ANDROID: memblock: do not track obsolete_checksetup and do_early_param
Originally I've added memsize logic to track memblock memory allocated
at the obsolete_checksetup and do_early_param. That showed size with its
param name.

But nowadays we don't see that big memory allocation in that early
param. To simplify memsize code, let me remove related code. Some code
like memblock_memsize_free will be remained for the next commits.

Bug: 340432773
Signed-off-by: Jaewon Kim <jaewon31.kim@samsung.com>
Change-Id: If54870c3b9da7a83d47cadde3d05b5ed6ace5b7e
2025-03-07 12:40:06 -08:00
Jaewon Kim
7227090784 ANDROID: memblock: track memblock changed at early param
In addition to reserved-memory in device tree, an option in cmdline may
result in memblock allocation. This patch tries to distinguish memblock
changes done at early param.

A region in memsize will be created with name as the param string. And
the region size will be updated during the param function.

Bug: 340432773
Signed-off-by: Jaewon Kim <jaewon31.kim@samsung.com>
Link: https://lore.kernel.org/linux-mm/20240521023957.2587005-6-jaewon31.kim@samsung.com/
Change-Id: Ib01e88b303be4ab958db46f1e369d15042a5d9fd
2025-03-07 12:40:06 -08:00
Aleksei Vetrov
f91b1cf94b Revert "ANDROID: GKI: Enable SND_COMPRESS_ACCEL"
This reverts commit f66d18f3df.

Reason for revert: this change is breaking ABI, so it needs to be
reverted and reintroduced back with hashtag:KMI-changes-for-2025-03-19

Bug: 400940484
Change-Id: I6aa5053365f8aba59394e51e693199af61262654
Signed-off-by: Aleksei Vetrov <vvvvvv@google.com>
2025-03-05 12:08:45 -08:00
Zhipeng Wang
f66d18f3df ANDROID: GKI: Enable SND_COMPRESS_ACCEL
Introduce the ALSA Co-processor Acceleration API.

Bug: 385751166
Change-Id: I6ae6a39dee6ffdd3b6d00da67d3f9c1c7656d8ee
Signed-off-by: Zhipeng Wang <zhipeng.wang_1@nxp.com>
2025-03-05 10:54:01 -08:00
Bumyong Lee
8954231016 ANDROID: dma: Select CONFIG_DMA_ENGINE_RAID in Kconfig.gki
select hidden Kconfig: DMA_ENGINE_RAID.

some dma devices selects DMA_ENGINE_RAID. this changes variable's type in
struct dmaengine_unmap_data.
it is required by dma device drivers to provide unified interface as modules.

Bug: 396582183

Change-Id: I85a819ae2da820c949fc0dd5667a31fa44d07e13
Signed-off-by: Bumyong Lee <bumyong.lee@samsung.com>
2025-02-25 13:03:49 -08:00
Maciej Żenczykowski
c09b5fd7e6 Revert "ANDROID: eliminate 'CONFIG_GKI_NET_XFRM_HACKS'"
This partially reverts commit 1cf1608b4a.

(https://android-review.googlesource.com/c/kernel/common/+/3216798
 on android-mainline from before 6.12 branch)

We still need this to support XFRM on 32-bit userspace on aarch64,
the Android way to do this involves not doing compat translation.

Bug: 163141236
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I18db5f1b75b09b254b751bb5eb2843815b88899e
2025-02-07 15:03:41 -08:00
Alice Ryhl
b4852084e3 ANDROID: adjust version numbers for RUST+KASAN
This `depends on` currently causes KASAN builds to run with
CONFIG_RUST=n. However, the relevant fix has been backported and is
available in Android's prebuilt for rustc 1.82.0, thus update the
version requirement to match.

Bug: 359429865
Link: https://r.android.com/3368203
Change-Id: I35bc9ead0e9777f9926b4d990593e2e16ad60c38
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
2025-01-16 06:42:02 -08:00
Sami Tolvanen
aa93d564f2 BACKPORT: FROMGIT: rust: Use gendwarfksyms + extended modversions for CONFIG_MODVERSIONS
Previously, two things stopped Rust from using MODVERSIONS:
1. Rust symbols are occasionally too long to be represented in the
   original versions table
2. Rust types cannot be properly hashed by the existing genksyms
   approach because:
	* Looking up type definitions in Rust is more complex than C
	* Type layout is potentially dependent on the compiler in Rust,
	  not just the source type declaration.

CONFIG_EXTENDED_MODVERSIONS addresses the first point, and
CONFIG_GENDWARFKSYMS the second. If Rust wants to use MODVERSIONS, allow
it to do so by selecting both features.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Co-developed-by: Matthew Maurer <mmaurer@google.com>
Signed-off-by: Matthew Maurer <mmaurer@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

[ Adjusted integration with Rust build system to be pre-alloc-removal.
  - Matthew Maurer ]
(cherry picked from commit be3d3e40bb5691ba880304222fa7baeee6cd71cc
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)

Bug: 347787665
Change-Id: Ic500733414d3e0f9cd89cd4af80351d8d814e3ac
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2025-01-14 00:20:38 -08:00
Greg Kroah-Hartman
144a77d178 Merge 6.12.2 into android16-6.12
GKI (arm64) relevant 159 out of 815 changes, affecting 226 files +2434/-822
  a11e7e3d2a arm64: probes: Disable kprobes/uprobes on MOPS instructions [2 files, +6/-2]
  78de864e8a block/fs: Pass an iocb to generic_atomic_write_valid() [3 files, +7/-7]
  cfe3e04e9a fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid() [3 files, +19/-14]
  63dfd728b3 brd: defer automatic disk creation until module initialization succeeds [1 file, +44/-22]
  26cc5063e3 ext4: avoid remount errors with 'abort' mount option [1 file, +8/-3]
  fb83b093f7 initramfs: avoid filename buffer overrun [1 file, +15/-0]
  de56fa09a0 arm64: Expose ID_AA64ISAR1_EL1.XS to sanitised feature consumers [1 file, +1/-0]
  582d9ed999 nvme-pci: fix freeing of the HMB descriptor table [1 file, +9/-7]
  8ae5e37357 loop: fix type of block size [1 file, +3/-3]
  7044259018 block: take chunk_sectors into account in bio_split_write_zeroes [1 file, +23/-12]
  731d5bdc74 block: fix bio_split_rw_at to take zone_write_granularity into account [1 file, +9/-1]
  61832ee7fa ext4: fix race in buffer_head read fault injection [10 files, +29/-29]
  9abae59243 nvme-pci: reverse request order in nvme_queue_rqs [1 file, +17/-22]
  475404eac5 virtio_blk: reverse request order in virtio_queue_rqs [1 file, +21/-25]
  d01d9005fb thermal: core: Initialize thermal zones before registering them [1 file, +1/-1]
  933ef9360a thermal: core: Rearrange PM notification code [1 file, +46/-42]
  f52dc3c757 thermal: core: Represent suspend-related thermal zone flags as bits [2 files, +12/-10]
  39a5ad6b63 thermal: core: Mark thermal zones as initializing to start with [2 files, +14/-3]
  79cb9952e1 thermal: core: Fix race between zone registration and system suspend [1 file, +16/-2]
  5ced426d97 rcu/kvfree: Fix data-race in __mod_timer / kvfree_call_rcu [1 file, +12/-2]
  94f4e7b0eb cleanup: Remove address space of returned pointer [1 file, +2/-2]
  5c3a9f6f7f time: Partially revert cleanup on msecs_to_jiffies() documentation [1 file, +1/-1]
  b62a8825d3 time: Fix references to _msecs_to_jiffies() handling of values [2 files, +2/-2]
  1dfa6c5200 timers: Add missing READ_ONCE() in __run_timer_base() [1 file, +2/-1]
  8dbd7603e4 kcsan, seqlock: Fix incorrect assumption in read_seqbegin() [1 file, +1/-11]
  0916201308 sched/ext: Remove sched_fork() hack [2 files, +1/-7]
  351bb7f9ec soc: qcom: geni-se: fix array underflow in geni_se_clk_tbl_get() [1 file, +2/-1]
  c365c1456e efi/libstub: fix efi_parse_options() ignoring the default command line [1 file, +1/-1]
  30e42ac0bd tpm: fix signed/unsigned bug when checking event logs [1 file, +9/-8]
  dd6ade970d Revert "cgroup: Fix memory leak caused by missing cgroup_bpf_offline" [1 file, +1/-3]
  f390525e49 cgroup/bpf: only cgroup v2 can be attached by bpf programs [1 file, +11/-6]
  a5b7bc2747 regmap: irq: Set lockdep class for hierarchical IRQ domains [1 file, +4/-0]
  9beaff47bc firmware: arm_scpi: Check the DVFS OPP count returned by the firmware [1 file, +3/-0]
  e369246067 pwm: Assume a disabled PWM to emit a constant inactive output [1 file, +7/-3]
  f9aaa841ac drm/mm: Mark drm_mm_interval_tree*() functions with __maybe_unused [1 file, +1/-1]
  4d8621151b bpf, arm64: Remove garbage frame for struct_ops trampoline [1 file, +31/-16]
  aa51be3fa9 bpf: Tighten tail call checks for lingering locks, RCU, preempt_disable [1 file, +15/-0]
  3634d4a310 bpf: Mark raw_tp arguments with PTR_MAYBE_NULL [4 files, +87/-9]
  e883c475c4 drm: use ATOMIC64_INIT() for atomic64_t [1 file, +1/-1]
  bc23584768 netlink: typographical error in nlmsg_type constants definition [1 file, +1/-1]
  ce06c450ac bpf, sockmap: Several fixes to bpf_msg_push_data [1 file, +33/-20]
  275a9f3ef8 bpf, sockmap: Several fixes to bpf_msg_pop_data [1 file, +9/-6]
  08baa3f0a1 bpf, sockmap: Fix sk_msg_reset_curr [1 file, +9/-11]
  0e4c6faaef ipv6: release nexthop on device removal [1 file, +3/-3]
  36ede57f0c bpf: Allow return values 0 and 1 for kprobe session [1 file, +9/-0]
  9ff1b95ccd bpf: Force uprobe bpf program to always return 0 [1 file, +2/-3]
  34a949e7a0 ipv6: Fix soft lockups in fib6_select_path under high next hop churn [4 files, +297/-19]
  9c44c06123 bpf: Use function pointers count as struct_ops links count [1 file, +25/-10]
  449b1a7178 bpf: Add kernel symbol for struct_ops trampoline [4 files, +89/-5]
  3397001cfa Bluetooth: btbcm: fix missing of_node_put() in btbcm_get_board_name() [1 file, +1/-3]
  a58d0f5dac Bluetooth: ISO: Use kref to track lifetime of iso_conn [1 file, +71/-17]
  67ead8f86a Bluetooth: ISO: Do not emit LE PA Create Sync if previous is pending [4 files, +139/-40]
  91d19383b7 Bluetooth: ISO: Do not emit LE BIG Create Sync if previous is pending [5 files, +125/-16]
  1360e5b6ce Bluetooth: ISO: Send BIG Create Sync via hci_sync [2 files, +25/-1]
  7b277bd569 Bluetooth: fix use-after-free in device_for_each_child() [1 file, +4/-11]
  d5d346deb6 xsk: Free skb when TX metadata options are invalid [1 file, +6/-5]
  5036f2f024 erofs: fix file-backed mounts over FUSE [2 files, +7/-4]
  679d8537e5 erofs: fix blksize < PAGE_SIZE for file-backed mounts [1 file, +5/-1]
  daaf68fef4 erofs: handle NONHEAD !delta[1] lclusters gracefully [1 file, +9/-8]
  6b8b9d9b06 netpoll: Use rcu_access_pointer() in netpoll_poll_lock [1 file, +1/-1]
  f84c5ef6ca bpf: fix recursive lock when verdict program return SK_PASS [1 file, +2/-2]
  89933f8ab3 unicode: Fix utf8_load() error path [1 file, +1/-1]
  b746a3afa2 trace/trace_event_perf: remove duplicate samples on the first tracepoint event [1 file, +6/-0]
  e691826a3d kasan: move checks to do_strncpy_from_user [1 file, +3/-2]
  843d366ff1 zram: fix NULL pointer in comp_algorithm_show() [1 file, +2/-3]
  fe6fae61f3 PCI: Fix reset_method_store() memory leak [1 file, +3/-2]
  a26ace3c6e f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks [1 file, +1/-1]
  9e11b1d5fd f2fs: fix null-ptr-deref in f2fs_submit_page_bio() [1 file, +6/-6]
  2bc07714dc virtiofs: use pages instead of pointer for kernel direct IO [3 files, +50/-19]
  c31c7b81c1 i3c: master: Remove i3c_dev_disable_ibi_locked(olddev) on device hotjoin [1 file, +9/-4]
  9b57a3f7e3 f2fs: fix the wrong f2fs_bug_on condition in f2fs_do_replace_block [1 file, +1/-1]
  abfd2c13ba f2fs: check curseg->inited before write_sum_page in change_curseg [1 file, +2/-1]
  5e69964251 f2fs: Fix not used variable 'index' [1 file, +2/-2]
  801092a2c9 f2fs: fix to avoid potential deadlock in f2fs_record_stop_reason() [3 files, +9/-9]
  a16e6f7966 PCI: qcom: Enable MSI interrupts together with Link up if 'Global IRQ' is supported [1 file, +3/-1]
  c631207897 f2fs: fix race in concurrent f2fs_stop_gc_thread [1 file, +6/-3]
  a10cc033b2 f2fs: fix to map blocks correctly for direct write [1 file, +2/-1]
  bbe48e47b9 f2fs: fix to avoid forcing direct write to use buffered IO on inline_data inode [1 file, +5/-1]
  45438da843 f2fs: fix to do cast in F2FS_{BLK_TO_BYTES, BTYES_TO_BLK} to avoid overflow [2 files, +4/-4]
  f7f7f22dbb power: supply: core: Remove might_sleep() from power_supply_put() [1 file, +0/-2]
  28af028a71 netlink: fix false positive warning in extack during dumps [1 file, +11/-10]
  ad6e5bdca3 exfat: fix file being changed by unaligned direct write [1 file, +10/-0]
  a487cc8986 net/l2tp: fix warning in l2tp_exit_net found by syzbot [1 file, +19/-3]
  cb74207ef9 net/ipv6: delete temporary address if mngtmpaddr is removed or unmanaged [1 file, +29/-12]
  87819234aa Bluetooth: MGMT: Fix slab-use-after-free Read in set_powered_sync [1 file, +9/-2]
  cac34e4428 Bluetooth: MGMT: Fix possible deadlocks [1 file, +18/-9]
  6d84502860 tcp: Fix use-after-free of nreq in reqsk_timer_handler(). [1 file, +1/-1]
  ead7c1263e ip6mr: fix tables suspicious RCU usage [1 file, +27/-11]
  14367e7170 usb: gadget: uvc: wake pump everytime we update the free list [1 file, +4/-0]
  f380f895db firmware_loader: Fix possible resource leak in fw_log_firmware_info() [1 file, +2/-3]
  98b8725630 f2fs: fix fiemap failure issue when page size is 16KB [1 file, +1/-21]
  d716851d0a net_sched: sch_fq: don't follow the fast path if Tx is behind now [1 file, +6/-0]
  b521b53ac6 ALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devices [1 file, +21/-6]
  096bb5b43e ALSA: usb-audio: Fix out of bounds reads when finding clock sources [1 file, +23/-1]
  ec56ada623 ext4: supress data-race warnings in ext4_free_inodes_{count,set}() [1 file, +4/-4]
  ad34d9c738 ext4: fix FS_IOC_GETFSMAP handling [3 files, +68/-5]
  f594a5683a KVM: arm64: vgic-v3: Sanitise guest writes to GICR_INVLPIR [1 file, +6/-1]
  8b6916f4cf KVM: arm64: Ignore PMCNTENSET_EL0 while checking for overflow status [1 file, +0/-1]
  d0571c3add KVM: arm64: Don't retire aborted MMIO instruction [1 file, +30/-2]
  eabd7ef140 KVM: arm64: vgic-its: Clear ITE when DISCARD frees an ITE [1 file, +5/-1]
  fe425d5239 KVM: arm64: Get rid of userspace_irqchip_in_use [3 files, +4/-19]
  46018a04c5 KVM: arm64: vgic-its: Add a data length check in vgic_its_save_* [2 files, +31/-12]
  1059f1e5f5 KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device [1 file, +4/-2]
  69d2ceac11 PCI: Fix use-after-free of slot->bus on hot remove [1 file, +3/-1]
  a6b283526b fsnotify: fix sending inotify event with unexpected filename [1 file, +13/-10]
  83af1cfa10 fsnotify: Fix ordering of iput() and watched_objects decrement [1 file, +9/-3]
  53bbfa6896 tty: ldsic: fix tty_ldisc_autoload sysctl's proc_handler [1 file, +1/-1]
  88232a223a locking/lockdep: Avoid creating new name string literals in lockdep_set_subclass() [1 file, +1/-1]
  a4fc6966d8 fcntl: make F_DUPFD_QUERY associative [1 file, +3/-0]
  c500b0cca2 exfat: fix uninit-value in __exfat_get_dentry_set [1 file, +1/-0]
  3ddd1cb2b4 exfat: fix out-of-bounds access of directory entries [1 file, +16/-4]
  9258c9ed32 xhci: Fix control transfer error on Etron xHCI host [1 file, +14/-0]
  218796e95a xhci: Combine two if statements for Etron xHCI host [1 file, +2/-6]
  a92cd42097 xhci: Don't perform Soft Retry for Etron xHCI host [1 file, +1/-0]
  827f963a0b xhci: Don't issue Reset Device command to Etron xHCI host [3 files, +21/-0]
  33209e6f29 Bluetooth: Fix type of len in rfcomm_sock_getsockopt{,_old}() [1 file, +6/-4]
  2637e8c5fb usb: xhci: Limit Stop Endpoint retries [3 files, +27/-4]
  61bce2d8ff usb: xhci: Fix TD invalidation under pending Set TR Dequeue [1 file, +13/-5]
  6debdd82c3 usb: xhci: Avoid queuing redundant Stop Endpoint commands [3 files, +29/-4]
  13111945c2 Revert "fs: don't block i_writecount during exec" [5 files, +49/-14]
  0586f12896 Revert "f2fs: remove unreachable lazytime mount option parsing" [1 file, +10/-0]
  ca82b37c47 Revert "usb: gadget: composite: fix OS descriptors w_value logic" [1 file, +15/-3]
  d222fd21dd io_uring: fix corner case forgetting to vunmap [1 file, +3/-1]
  aaa90844af io_uring: check for overflows in io_pin_pages [1 file, +6/-1]
  37c2ca4e89 blk-settings: round down io_opt to physical_block_size [1 file, +7/-0]
  97b68bda72 spi: Fix acpi deferred irq probe [1 file, +10/-3]
  e881c8f0a7 serial: amba-pl011: Fix RX stall when DMA is used [1 file, +5/-0]
  1fae444a61 serial: amba-pl011: fix build regression [1 file, +2/-0]
  7baf942326 Revert "block, bfq: merge bfq_release_process_ref() into bfq_put_cooperator()" [2 files, +5/-2]
  43375e9bb7 block: Prevent potential deadlock in blk_revalidate_disk_zones() [1 file, +10/-4]
  4ef8b6f7c4 ublk: fix ublk_ch_mmap() for 64K page size [1 file, +12/-3]
  e4d1f38bc0 arm64: tls: Fix context-switching of tpidrro_el0 when kpti is enabled [1 file, +1/-1]
  8b25c0a165 block: fix missing dispatching request when queue is started or unquiesced [1 file, +2/-0]
  2094bd1b52 block: fix ordering between checking QUEUE_FLAG_QUIESCED request adding [1 file, +34/-13]
  4170346747 block: fix ordering between checking BLK_MQ_S_STOPPED request adding [2 files, +19/-0]
  aeb420ebdf blk-mq: Make blk_mq_quiesce_tagset() hold the tag list mutex less long [1 file, +2/-1]
  28d4191e19 HID: wacom: Interpret tilt data from Intuos Pro BT as signed values [1 file, +2/-2]
  343e3e903c netdev-genl: Hold rcu_read_lock in napi_get [1 file, +2/-0]
  df225df839 ALSA: rawmidi: Fix kvfree() call in spinlock [1 file, +3/-1]
  0c4c9bf5ea ALSA: pcm: Add sanity NULL check for the default mmap fault handler [1 file, +4/-2]
  068aab9564 usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED [1 file, +1/-1]
  2f6c3acece usb: dwc3: gadget: Fix checking for number of TRBs left [1 file, +6/-3]
  70777a23a5 usb: dwc3: gadget: Fix looping of queued SG entries [1 file, +3/-3]
  31e45c09a8 ublk: fix error code for unsupported command [1 file, +1/-1]
  9517bc76ff lib: string_helpers: silence snprintf() output truncation warning [1 file, +1/-1]
  0a5c8b3fbf f2fs: fix to do sanity check on node blkaddr in truncate_node() [1 file, +10/-0]
  e77bce0a8c rtc: check if __rtc_read_time was successful in rtc_timer_do_work() [1 file, +6/-1]
  4eaa19c620 nvme/multipath: Fix RCU list traversal to use SRCU primitive [1 file, +14/-7]
  9c3d53f113 blk-mq: add non_owner variant of start_freeze/unfreeze queue APIs [2 files, +22/-0]
  a6fc2ba1c7 block: model freeze & enter queue as lock for supporting lockdep [5 files, +81/-13]
  61092568f2 block: fix uaf for flush rq while iterating tags [2 files, +5/-10]
  5e15cc7a1d block: return unsigned int from bdev_io_min [1 file, +1/-1]
  5416b76a81 nvme-fabrics: fix kernel crash while shutting down controller [1 file, +5/-0]
  d5457349e5 block: Don't allow an atomic write be truncated in blkdev_write_iter() [1 file, +4/-1]
  e70c21daad modpost: remove incorrect code in do_eisa_entry() [1 file, +1/-4]
  01a853faae block, bfq: fix bfqq uaf in bfq_limit_depth() [1 file, +24/-13]
  fbc342372a brd: decrease the number of allocated pages which discarded [1 file, +3/-1]
  b12cfcae8a block: always verify unfreeze lock on the owner task [4 files, +61/-10]
  6cea47849d block: don't verify IO lock for freeze/unfreeze in elevator_init_mq() [1 file, +8/-2]

Changes in 6.12.2
	MAINTAINERS: appoint myself the XFS maintainer for 6.12 LTS
	drm/amd/display: Skip Invalid Streams from DSC Policy
	drm/amd/display: Fix incorrect DSC recompute trigger
	s390/facilities: Fix warning about shadow of global variable
	s390/virtio_ccw: Fix dma_parm pointer not set up
	efs: fix the efs new mount api implementation
	arm64: probes: Disable kprobes/uprobes on MOPS instructions
	kselftest/arm64: hwcap: fix f8dp2 cpuinfo name
	kselftest/arm64: mte: fix printf type warnings about __u64
	kselftest/arm64: mte: fix printf type warnings about longs
	block/fs: Pass an iocb to generic_atomic_write_valid()
	fs/block: Check for IOCB_DIRECT in generic_atomic_write_valid()
	s390/cio: Do not unregister the subchannel based on DNV
	s390/pageattr: Implement missing kernel_page_present()
	x86/pvh: Call C code via the kernel virtual mapping
	brd: defer automatic disk creation until module initialization succeeds
	ext4: avoid remount errors with 'abort' mount option
	mips: asm: fix warning when disabling MIPS_FP_SUPPORT
	s390/cpum_sf: Fix and protect memory allocation of SDBs with mutex
	initramfs: avoid filename buffer overrun
	arm64: Expose ID_AA64ISAR1_EL1.XS to sanitised feature consumers
	kselftest/arm64: Fix encoding for SVE B16B16 test
	nvme-pci: fix freeing of the HMB descriptor table
	m68k: mvme147: Fix SCSI controller IRQ numbers
	m68k: mvme147: Reinstate early console
	arm64: fix .data.rel.ro size assertion when CONFIG_LTO_CLANG
	acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block()
	loop: fix type of block size
	cachefiles: Fix incorrect length return value in cachefiles_ondemand_fd_write_iter()
	cachefiles: Fix missing pos updates in cachefiles_ondemand_fd_write_iter()
	cachefiles: Fix NULL pointer dereference in object->file
	netfs/fscache: Add a memory barrier for FSCACHE_VOLUME_CREATING
	block: take chunk_sectors into account in bio_split_write_zeroes
	block: fix bio_split_rw_at to take zone_write_granularity into account
	s390/syscalls: Avoid creation of arch/arch/ directory
	hfsplus: don't query the device logical block size multiple times
	ext4: fix race in buffer_head read fault injection
	nvme-pci: reverse request order in nvme_queue_rqs
	virtio_blk: reverse request order in virtio_queue_rqs
	crypto: mxs-dcp - Fix AES-CBC with hardware-bound keys
	crypto: caam - Fix the pointer passed to caam_qi_shutdown()
	crypto: qat - remove check after debugfs_create_dir()
	crypto: qat/qat_420xx - fix off by one in uof_get_name()
	crypto: qat/qat_4xxx - fix off by one in uof_get_name()
	firmware: google: Unregister driver_info on failure
	EDAC/bluefield: Fix potential integer overflow
	crypto: qat - remove faulty arbiter config reset
	thermal: core: Initialize thermal zones before registering them
	thermal: core: Rearrange PM notification code
	thermal: core: Represent suspend-related thermal zone flags as bits
	thermal: core: Mark thermal zones as initializing to start with
	thermal: core: Fix race between zone registration and system suspend
	EDAC/fsl_ddr: Fix bad bit shift operations
	EDAC/skx_common: Differentiate memory error sources
	EDAC/{skx_common,i10nm}: Fix incorrect far-memory error source indicator
	crypto: pcrypt - Call crypto layer directly when padata_do_parallel() return -EBUSY
	crypto: cavium - Fix the if condition to exit loop after timeout
	cpufreq/amd-pstate: Don't update CPPC request in amd_pstate_cpu_boost_update()
	amd-pstate: Set min_perf to nominal_perf for active mode performance gov
	crypto: hisilicon/qm - disable same error report before resetting
	EDAC/igen6: Avoid segmentation fault on module unload
	crypto: qat - Fix missing destroy_workqueue in adf_init_aer()
	crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init()
	sched/cpufreq: Ensure sd is rebuilt for EAS check
	doc: rcu: update printed dynticks counter bits
	rcu/srcutiny: don't return before reenabling preemption
	rcu/kvfree: Fix data-race in __mod_timer / kvfree_call_rcu
	rcu/nocb: Fix missed RCU barrier on deoffloading
	hwmon: (pmbus/core) clear faults after setting smbalert mask
	hwmon: (nct6775-core) Fix overflows seen when writing limit attributes
	ACPI: CPPC: Fix _CPC register setting issue
	thermal: testing: Use DEFINE_FREE() and __free() to simplify code
	thermal: testing: Initialize some variables annoteded with _free()
	crypto: caam - add error check to caam_rsa_set_priv_key_form
	crypto: bcm - add error check in the ahash_hmac_init function
	crypto: cavium - Fix an error handling path in cpt_ucode_load_fw()
	rcuscale: Do a proper cleanup if kfree_scale_init() fails
	tools/lib/thermal: Make more generic the command encoding function
	thermal/lib: Fix memory leak on error in thermal_genl_auto()
	x86/unwind/orc: Fix unwind for newly forked tasks
	Revert "scripts/faddr2line: Check only two symbols when calculating symbol size"
	cleanup: Remove address space of returned pointer
	time: Partially revert cleanup on msecs_to_jiffies() documentation
	time: Fix references to _msecs_to_jiffies() handling of values
	timers: Add missing READ_ONCE() in __run_timer_base()
	locking/atomic/x86: Use ALT_OUTPUT_SP() for __alternative_atomic64()
	locking/atomic/x86: Use ALT_OUTPUT_SP() for __arch_{,try_}cmpxchg64_emu()
	kcsan, seqlock: Support seqcount_latch_t
	kcsan, seqlock: Fix incorrect assumption in read_seqbegin()
	sched/ext: Remove sched_fork() hack
	locking/rt: Add sparse annotation PREEMPT_RT's sleeping locks.
	rust: helpers: Avoid raw_spin_lock initialization for PREEMPT_RT
	clocksource/drivers:sp804: Make user selectable
	clocksource/drivers/timer-ti-dm: Fix child node refcount handling
	irqchip/riscv-aplic: Prevent crash when MSI domain is missing
	regulator: qcom-smd: make smd_vreg_rpm static
	spi: spi-fsl-lpspi: Use IRQF_NO_AUTOEN flag in request_irq()
	arm64: dts: qcom: qcs6390-rb3gen2: use modem.mbn for modem DSP
	ARM: dts: renesas: genmai: Fix partition size for QSPI NOR Flash
	drivers: soc: xilinx: add the missing kfree in xlnx_add_cb_for_suspend()
	microblaze: Export xmb_manager functions
	arm64: dts: mediatek: mt8188: Fix wrong clock provider in MFG1 power domain
	arm64: dts: mediatek: mt8395-genio-1200-evk: Fix dtbs_check error for phy
	arm64: dts: mt8195: Fix dtbs_check error for mutex node
	arm64: dts: mt8195: Fix dtbs_check error for infracfg_ao node
	arm64: dts: mediatek: mt8183-kukui: Disable DPI display interface
	arm64: dts: mt8183: Add port node to dpi node
	soc: ti: smartreflex: Use IRQF_NO_AUTOEN flag in request_irq()
	soc: qcom: geni-se: fix array underflow in geni_se_clk_tbl_get()
	arm64: dts: qcom: sm6350: Fix GPU frequencies missing on some speedbins
	arm64: dts: qcom: sda660-ifc6560: fix l10a voltage ranges
	ARM: dts: microchip: sam9x60: Add missing property atmel,usart-mode
	mmc: mmc_spi: drop buggy snprintf()
	scripts/kernel-doc: Do not track section counter across processed files
	arm64: dts: qcom: x1e80100-slim7x: Drop orientation-switch from USB SS[0-1] QMP PHYs
	arm64: dts: qcom: x1e80100-vivobook-s15: Drop orientation-switch from USB SS[0-1] QMP PHYs
	openrisc: Implement fixmap to fix earlycon
	efi/libstub: fix efi_parse_options() ignoring the default command line
	tpm: fix signed/unsigned bug when checking event logs
	media: i2c: max96717: clean up on error in max96717_subdev_init()
	media: i2c: vgxy61: Fix an error handling path in vgxy61_detect()
	media: i2c: ds90ub960: Fix missing return check on ub960_rxport_read call
	arm64: dts: mt8183: krane: Fix the address of eeprom at i2c4
	arm64: dts: mt8183: kukui: Fix the address of eeprom at i2c4
	arm64: dts: qcom: x1e80100: Resize GIC Redistributor register region
	kernel-doc: allow object-like macros in ReST output
	arm64: dts: ti: k3-am62x-phyboard-lyra: Drop unnecessary McASP AFIFOs
	gpio: sloppy-logic-analyzer remove reference to rcu_momentary_dyntick_idle()
	arm64: dts: mediatek: mt8173-elm-hana: Add vdd-supply to second source trackpad
	arm64: dts: mediatek: mt8188: Fix USB3 PHY port default status
	arm64: dts: mediatek: mt8195-cherry: Use correct audio codec DAI
	Revert "cgroup: Fix memory leak caused by missing cgroup_bpf_offline"
	cgroup/bpf: only cgroup v2 can be attached by bpf programs
	regulator: rk808: Restrict DVS GPIOs to the RK808 variant only
	power: sequencing: make the QCom PMU pwrseq driver depend on CONFIG_OF
	arm64: tegra: p2180: Add mandatory compatible for WiFi node
	arm64: dts: rockchip: Remove 'enable-active-low' from two boards
	arm64: dts: mt8183: fennel: add i2c2's i2c-scl-internal-delay-ns
	arm64: dts: mt8183: burnet: add i2c2's i2c-scl-internal-delay-ns
	arm64: dts: mt8183: cozmo: add i2c2's i2c-scl-internal-delay-ns
	arm64: dts: mt8183: Damu: add i2c2's i2c-scl-internal-delay-ns
	pwm: imx27: Workaround of the pwm output bug when decrease the duty cycle
	ARM: dts: cubieboard4: Fix DCDC5 regulator constraints
	arm64: dts: ti: k3-j7200: Fix register map for main domain pmx
	arm64: dts: ti: k3-j7200: Fix clock ids for MCSPI instances
	arm64: dts: ti: k3-j721e: Fix clock IDs for MCSPI instances
	arm64: dts: ti: k3-j721s2: Fix clock IDs for MCSPI instances
	watchdog: Add HAS_IOPORT dependency for SBC8360 and SBC7240
	arm64: dts: qcom: x1e80100: Update C4/C5 residency/exit numbers
	dt-bindings: cache: qcom,llcc: Fix X1E80100 reg entries
	of/fdt: add dt_phys arg to early_init_dt_scan and early_init_dt_verify
	pmdomain: ti-sci: Add missing of_node_put() for args.np
	spi: tegra210-quad: Avoid shift-out-of-bounds
	spi: zynqmp-gqspi: Undo runtime PM changes at driver exit time​
	regmap: irq: Set lockdep class for hierarchical IRQ domains
	arm64: dts: renesas: hihope: Drop #sound-dai-cells
	arm64: dts: imx8mn-tqma8mqnl-mba8mx-usbot: fix coexistence of output-low and output-high in GPIO
	arm64: dts: mediatek: mt6358: fix dtbs_check error
	arm64: dts: mediatek: mt8183-kukui-jacuzzi: Fix DP bridge supply names
	arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add supplies for fixed regulators
	selftests/resctrl: Print accurate buffer size as part of MBM results
	selftests/resctrl: Fix memory overflow due to unhandled wraparound
	selftests/resctrl: Protect against array overrun during iMC config parsing
	firmware: arm_scpi: Check the DVFS OPP count returned by the firmware
	media: ipu6: Fix DMA and physical address debugging messages for 32-bit
	media: ipu6: not override the dma_ops of device in driver
	media: ipu6: remove architecture DMA ops dependency in Kconfig
	pwm: Assume a disabled PWM to emit a constant inactive output
	media: atomisp: Add check for rgby_data memory allocation failure
	arm64: dts: rockchip: correct analog audio name on Indiedroid Nova
	sched_ext: scx_bpf_dispatch_from_dsq_set_*() are allowed from unlocked context
	HID: hyperv: streamline driver probe to avoid devres issues
	platform/x86: asus-wmi: Fix inconsistent use of thermal policies
	platform/x86/intel/pmt: allow user offset for PMT callbacks
	platform/x86: panasonic-laptop: Return errno correctly in show callback
	drm/imagination: Convert to use time_before macro
	drm/imagination: Use pvr_vm_context_get()
	drm/mm: Mark drm_mm_interval_tree*() functions with __maybe_unused
	drm/vc4: hvs: Don't write gamma luts on 2711
	drm/vc4: hdmi: Avoid hang with debug registers when suspended
	drm/vc4: hvs: Fix dlist debug not resetting the next entry pointer
	drm/vc4: hvs: Remove incorrect limit from hvs_dlist debugfs function
	drm/vc4: hvs: Correct logic on stopping an HVS channel
	wifi: ath9k: add range check for conn_rsp_epid in htc_connect_service()
	drm/omap: Fix possible NULL dereference
	drm/omap: Fix locking in omap_gem_new_dmabuf()
	drm/v3d: Appease lockdep while updating GPU stats
	wifi: p54: Use IRQF_NO_AUTOEN flag in request_irq()
	wifi: mwifiex: Use IRQF_NO_AUTOEN flag in request_irq()
	udmabuf: change folios array from kmalloc to kvmalloc
	udmabuf: fix vmap_udmabuf error page set
	drm/imx/dcss: Use IRQF_NO_AUTOEN flag in request_irq()
	drm/imx/ipuv3: Use IRQF_NO_AUTOEN flag in request_irq()
	drm/panel: nt35510: Make new commands optional
	drm/v3d: Address race-condition in MMU flush
	drm/v3d: Flush the MMU before we supply more memory to the binner
	drm/amdgpu: Fix JPEG v4.0.3 register write
	wifi: ath10k: fix invalid VHT parameters in supported_vht_mcs_rate_nss1
	wifi: ath10k: fix invalid VHT parameters in supported_vht_mcs_rate_nss2
	wifi: ath12k: Skip Rx TID cleanup for self peer
	dt-bindings: vendor-prefixes: Add NeoFidelity, Inc
	ASoC: fsl_micfil: fix regmap_write_bits usage
	ASoC: dt-bindings: mt6359: Update generic node name and dmic-mode
	drm/amdgpu/gfx9: Add Cleaner Shader Deinitialization in gfx_v9_0 Module
	ASoC: fsl-asoc-card: Add missing handling of {hp,mic}-dt-gpios
	drm/bridge: anx7625: Drop EDID cache on bridge power off
	drm/bridge: it6505: Drop EDID cache on bridge power off
	libbpf: Fix expected_attach_type set handling in program load callback
	libbpf: Fix output .symtab byte-order during linking
	selftests/bpf: Fix uprobe_multi compilation error
	dlm: fix swapped args sb_flags vs sb_status
	wifi: rtl8xxxu: Perform update_beacon_work when beaconing is enabled
	ASoC: amd: acp: fix for inconsistent indenting
	ASoC: amd: acp: fix for cpu dai index logic
	drm/amd/display: fix a memleak issue when driver is removed
	wifi: ath12k: fix use-after-free in ath12k_dp_cc_cleanup()
	wifi: ath12k: fix one more memcpy size error
	libbpf: Add missing per-arch include path
	selftests: bpf: Add missing per-arch include path
	bpf: Fix the xdp_adjust_tail sample prog issue
	selftests/bpf: Fix backtrace printing for selftests crashes
	wifi: ath11k: Fix CE offset address calculation for WCN6750 in SSR
	selftests/bpf: add missing header include for htons
	wifi: cfg80211: check radio iface combination for multi radio per wiphy
	ice: consistently use q_idx in ice_vc_cfg_qs_msg()
	drm/vc4: hdmi: Increase audio MAI fifo dreq threshold
	drm/vc4: Introduce generation number enum
	drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_lut_load
	drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_atomic_flush
	drm/vc4: Correct generation check in vc4_hvs_lut_load
	libbpf: fix sym_is_subprog() logic for weak global subprogs
	accel/ivpu: Prevent recovery invocation during probe and resume
	ASoC: rt722-sdca: Remove logically deadcode in rt722-sdca.c
	libbpf: never interpret subprogs in .text as entry programs
	netdevsim: copy addresses for both in and out paths
	drm/bridge: tc358767: Fix link properties discovery
	drm/panic: Select ZLIB_DEFLATE for DRM_PANIC_SCREEN_QR_CODE
	selftests/bpf: Fix msg_verify_data in test_sockmap
	selftests/bpf: Fix txmsg_redir of test_txmsg_pull in test_sockmap
	wifi: mwifiex: add missing locking for cfg80211 calls
	wifi: wilc1000: Set MAC after operation mode
	wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_config_scan()
	drm: fsl-dcu: enable PIXCLK on LS1021A
	drm: panel: nv3052c: correct spi_device_id for RG35XX panel
	drm/msm/dpu: on SDM845 move DSPP_3 to LM_5 block
	drm/msm/dpu: drop LM_3 / LM_4 on SDM845
	drm/msm/dpu: drop LM_3 / LM_4 on MSM8998
	octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_common.c
	octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_ethtool.c
	octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_flows.c
	octeontx2-pf: handle otx2_mbox_get_rsp errors in cn10k.c
	octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_dmac_flt.c
	octeontx2-pf: handle otx2_mbox_get_rsp errors in otx2_dcbnl.c
	selftests/bpf: fix test_spin_lock_fail.c's global vars usage
	libbpf: move global data mmap()'ing into bpf_object__load()
	wifi: rtw89: rename rtw89_vif to rtw89_vif_link ahead for MLO
	wifi: rtw89: rename rtw89_sta to rtw89_sta_link ahead for MLO
	wifi: rtw89: read bss_conf corresponding to the link
	wifi: rtw89: read link_sta corresponding to the link
	wifi: rtw89: refactor VIF related func ahead for MLO
	wifi: rtw89: refactor STA related func ahead for MLO
	wifi: rtw89: tweak driver architecture for impending MLO support
	wifi: rtw89: Fix TX fail with A2DP after scanning
	wifi: rtw89: unlock on error path in rtw89_ops_unassign_vif_chanctx()
	drm/panfrost: Remove unused id_mask from struct panfrost_model
	bpf, arm64: Remove garbage frame for struct_ops trampoline
	drm/msm/adreno: Use IRQF_NO_AUTOEN flag in request_irq()
	drm/msm/gpu: Check the status of registration to PM QoS
	drm/xe/hdcp: Fix gsc structure check in fw check status
	drm/etnaviv: Request pages from DMA32 zone on addressing_limited
	drm/etnaviv: hold GPU lock across perfmon sampling
	drm/amd/display: Increase idle worker HPD detection time
	drm/amd/display: Reduce HPD Detection Interval for IPS
	drm/nouveau/gr/gf100: Fix missing unlock in gf100_gr_chan_new()
	drm: zynqmp_kms: Unplug DRM device before removal
	drm: xlnx: zynqmp_disp: layer may be null while releasing
	wifi: wfx: Fix error handling in wfx_core_init()
	wifi: cw1200: Fix potential NULL dereference
	drm/msm/dpu: cast crtc_clk calculation to u64 in _dpu_core_perf_calc_clk()
	bpf, bpftool: Fix incorrect disasm pc
	bpf: Tighten tail call checks for lingering locks, RCU, preempt_disable
	drm/vkms: Drop unnecessary call to drm_crtc_cleanup()
	drm/amdgpu: Fix the memory allocation issue in amdgpu_discovery_get_nps_info()
	drm/amdkfd: Use dynamic allocation for CU occupancy array in 'kfd_get_cu_occupancy()'
	bpf: Mark raw_tp arguments with PTR_MAYBE_NULL
	drm: use ATOMIC64_INIT() for atomic64_t
	netfilter: nf_tables: avoid false-positive lockdep splat on rule deletion
	netfilter: nf_tables: must hold rcu read lock while iterating expression type list
	netfilter: nf_tables: must hold rcu read lock while iterating object type list
	netlink: typographical error in nlmsg_type constants definition
	wifi: rtw89: coex: check NULL return of kmalloc in btc_fw_set_monreg()
	drm/panfrost: Add missing OPP table refcnt decremental
	drm/panthor: introduce job cycle and timestamp accounting
	drm/panthor: record current and maximum device clock frequencies
	drm/panthor: Fix OPP refcnt leaks in devfreq initialisation
	isofs: avoid memory leak in iocharset
	selftests/bpf: Add txmsg_pass to pull/push/pop in test_sockmap
	selftests/bpf: Fix SENDPAGE data logic in test_sockmap
	selftests/bpf: Fix total_bytes in msg_loop_rx in test_sockmap
	selftests/bpf: Add push/pop checking for msg_verify_data in test_sockmap
	bpf, sockmap: Several fixes to bpf_msg_push_data
	bpf, sockmap: Several fixes to bpf_msg_pop_data
	bpf, sockmap: Fix sk_msg_reset_curr
	ipv6: release nexthop on device removal
	selftests: net: really check for bg process completion
	wifi: cfg80211: Remove the Medium Synchronization Delay validity check
	wifi: iwlwifi: allow fast resume on ax200
	wifi: iwlwifi: mvm: tell iwlmei when we finished suspending
	drm/amdgpu: fix ACA bank count boundary check error
	drm/amdgpu: Fix map/unmap queue logic
	drm/amdkfd: Fix wrong usage of INIT_WORK()
	bpf: Allow return values 0 and 1 for kprobe session
	bpf: Force uprobe bpf program to always return 0
	selftests/bpf: skip the timer_lockup test for single-CPU nodes
	ipv6: Fix soft lockups in fib6_select_path under high next hop churn
	net: rfkill: gpio: Add check for clk_enable()
	Revert "wifi: iwlegacy: do not skip frames with bad FCS"
	bpf: Use function pointers count as struct_ops links count
	bpf: Add kernel symbol for struct_ops trampoline
	ALSA: usx2y: Use snd_card_free_when_closed() at disconnection
	ALSA: us122l: Use snd_card_free_when_closed() at disconnection
	ALSA: caiaq: Use snd_card_free_when_closed() at disconnection
	ALSA: 6fire: Release resources at card release
	i2c: dev: Fix memory leak when underlying adapter does not support I2C
	selftests: netfilter: Fix missing return values in conntrack_dump_flush
	Bluetooth: btintel_pcie: Add handshake between driver and firmware
	Bluetooth: btintel: Do no pass vendor events to stack
	Bluetooth: btmtk: adjust the position to init iso data anchor
	Bluetooth: btbcm: fix missing of_node_put() in btbcm_get_board_name()
	Bluetooth: ISO: Use kref to track lifetime of iso_conn
	Bluetooth: ISO: Do not emit LE PA Create Sync if previous is pending
	Bluetooth: ISO: Do not emit LE BIG Create Sync if previous is pending
	Bluetooth: ISO: Send BIG Create Sync via hci_sync
	Bluetooth: fix use-after-free in device_for_each_child()
	xsk: Free skb when TX metadata options are invalid
	erofs: fix file-backed mounts over FUSE
	erofs: fix blksize < PAGE_SIZE for file-backed mounts
	erofs: handle NONHEAD !delta[1] lclusters gracefully
	dlm: fix dlm_recover_members refcount on error
	eth: fbnic: don't disable the PCI device twice
	net: txgbe: remove GPIO interrupt controller
	net: txgbe: fix null pointer to pcs
	netpoll: Use rcu_access_pointer() in netpoll_poll_lock
	wireguard: selftests: load nf_conntrack if not present
	bpf: fix recursive lock when verdict program return SK_PASS
	unicode: Fix utf8_load() error path
	cppc_cpufreq: Use desired perf if feedback ctrs are 0 or unchanged
	RDMA/core: Provide rdma_user_mmap_disassociate() to disassociate mmap pages
	RDMA/hns: Disassociate mmap pages for all uctx when HW is being reset
	pinctrl: renesas: rzg2l: Fix missing return in rzg2l_pinctrl_register()
	clk: mediatek: drop two dead config options
	trace/trace_event_perf: remove duplicate samples on the first tracepoint event
	pinctrl: zynqmp: drop excess struct member description
	pinctrl: renesas: Select PINCTRL_RZG2L for RZ/V2H(P) SoC
	clk: qcom: videocc-sm8550: depend on either gcc-sm8550 or gcc-sm8650
	iommu/s390: Implement blocking domain
	scsi: hisi_sas: Enable all PHYs that are not disabled by user during controller reset
	powerpc/vdso: Flag VDSO64 entry points as functions
	mfd: tps65010: Use IRQF_NO_AUTOEN flag in request_irq() to fix race
	mfd: da9052-spi: Change read-mask to write-mask
	mfd: intel_soc_pmic_bxtwc: Use IRQ domain for USB Type-C device
	mfd: intel_soc_pmic_bxtwc: Use IRQ domain for TMU device
	mfd: intel_soc_pmic_bxtwc: Use IRQ domain for PMIC devices
	mfd: intel_soc_pmic_bxtwc: Fix IRQ domain names duplication
	cpufreq: loongson2: Unregister platform_driver on failure
	powerpc/fadump: Refactor and prepare fadump_cma_init for late init
	powerpc/fadump: Move fadump_cma_init to setup_arch() after initmem_init()
	mtd: hyperbus: rpc-if: Add missing MODULE_DEVICE_TABLE
	mtd: rawnand: atmel: Fix possible memory leak
	clk: Allow kunit tests to run without OF_OVERLAY enabled
	powerpc/mm/fault: Fix kfence page fault reporting
	iommu/tegra241-cmdqv: Staticize cmdqv_debugfs_dir
	clk: sophgo: avoid integer overflow in sg2042_pll_recalc_rate()
	mtd: spi-nor: spansion: Use nor->addr_nbytes in octal DTR mode in RD_ANY_REG_OP
	powerpc/pseries: Fix dtl_access_lock to be a rw_semaphore
	cpufreq: CPPC: Fix possible null-ptr-deref for cpufreq_cpu_get_raw()
	cpufreq: CPPC: Fix possible null-ptr-deref for cppc_get_cpu_cost()
	iommu/amd/pgtbl_v2: Take protection domain lock before invalidating TLB
	RDMA/hns: Fix an AEQE overflow error caused by untimely update of eq_db_ci
	RDMA/hns: Fix flush cqe error when racing with destroy qp
	RDMA/hns: Modify debugfs name
	RDMA/hns: Use dev_* printings in hem code instead of ibdev_*
	RDMA/hns: Fix cpu stuck caused by printings during reset
	RDMA/rxe: Fix the qp flush warnings in req
	RDMA/bnxt_re: Check cqe flags to know imm_data vs inv_irkey
	clk: sunxi-ng: d1: Fix PLL_AUDIO0 preset
	clk: renesas: rzg2l: Fix FOUTPOSTDIV clk
	RDMA/rxe: Set queue pair cur_qp_state when being queried
	RDMA/mlx5: Call dev_put() after the blocking notifier
	RDMA/core: Implement RoCE GID port rescan and export delete function
	RDMA/mlx5: Ensure active slave attachment to the bond IB device
	RISC-V: KVM: Fix APLIC in_clrip and clripnum write emulation
	riscv: kvm: Fix out-of-bounds array access
	clk: imx: lpcg-scu: SW workaround for errata (e10858)
	clk: imx: fracn-gppll: correct PLL initialization flow
	clk: imx: fracn-gppll: fix pll power up
	clk: imx: clk-scu: fix clk enable state save and restore
	clk: imx: imx8-acm: Fix return value check in clk_imx_acm_attach_pm_domains()
	iommu/vt-d: Fix checks and print in dmar_fault_dump_ptes()
	iommu/vt-d: Fix checks and print in pgtable_walk()
	checkpatch: always parse orig_commit in fixes tag
	mfd: rt5033: Fix missing regmap_del_irq_chip()
	leds: max5970: Fix unreleased fwnode_handle in probe function
	leds: ktd2692: Set missing timing properties
	fs/proc/kcore.c: fix coccinelle reported ERROR instances
	scsi: target: Fix incorrect function name in pscsi_create_type_disk()
	scsi: bfa: Fix use-after-free in bfad_im_module_exit()
	scsi: fusion: Remove unused variable 'rc'
	scsi: qedf: Fix a possible memory leak in qedf_alloc_and_init_sb()
	scsi: qedi: Fix a possible memory leak in qedi_alloc_and_init_sb()
	scsi: sg: Enable runtime power management
	x86/tdx: Introduce wrappers to read and write TD metadata
	x86/tdx: Rename tdx_parse_tdinfo() to tdx_setup()
	x86/tdx: Dynamically disable SEPT violations from causing #VEs
	powerpc/fadump: allocate memory for additional parameters early
	fadump: reserve param area if below boot_mem_top
	RDMA/hns: Fix out-of-order issue of requester when setting FENCE
	RDMA/hns: Fix NULL pointer derefernce in hns_roce_map_mr_sg()
	cpufreq: loongson3: Check for error code from devm_mutex_init() call
	cpufreq: CPPC: Fix wrong return value in cppc_get_cpu_cost()
	cpufreq: CPPC: Fix wrong return value in cppc_get_cpu_power()
	kasan: move checks to do_strncpy_from_user
	kunit: skb: use "gfp" variable instead of hardcoding GFP_KERNEL
	ocfs2: fix uninitialized value in ocfs2_file_read_iter()
	zram: ZRAM_DEF_COMP should depend on ZRAM
	iommu/tegra241-cmdqv: Fix alignment failure at max_n_shift
	dax: delete a stale directory pmem
	KVM: PPC: Book3S HV: Stop using vc->dpdes for nested KVM guests
	KVM: PPC: Book3S HV: Avoid returning to nested hypervisor on pending doorbells
	powerpc/sstep: make emulate_vsx_load and emulate_vsx_store static
	RDMA/hns: Fix different dgids mapping to the same dip_idx
	KVM: PPC: Book3S HV: Fix kmv -> kvm typo
	powerpc/kexec: Fix return of uninitialized variable
	fbdev: sh7760fb: Fix a possible memory leak in sh7760fb_alloc_mem()
	RDMA/mlx5: Move events notifier registration to be after device registration
	clk: clk-apple-nco: Add NULL check in applnco_probe
	clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883
	clk: ralink: mtmips: fix clocks probe order in oldest ralink SoCs
	clk: en7523: remove REG_PCIE*_{MEM,MEM_MASK} configuration
	clk: en7523: move clock_register in hw_init callback
	clk: en7523: introduce chip_scu regmap
	clk: en7523: fix estimation of fixed rate for EN7581
	dt-bindings: clock: axi-clkgen: include AXI clk
	clk: clk-axi-clkgen: make sure to enable the AXI bus clock
	zram: permit only one post-processing operation at a time
	zram: fix NULL pointer in comp_algorithm_show()
	RDMA/bnxt_re: Correct the sequence of device suspend
	arm64: dts: qcom: sc8180x: Add a SoC-specific compatible to cpufreq-hw
	pinctrl: k210: Undef K210_PC_DEFAULT
	rtla/timerlat: Do not set params->user_workload with -U
	smb: cached directories can be more than root file handle
	mailbox: mtk-cmdq: fix wrong use of sizeof in cmdq_get_clocks()
	mailbox: arm_mhuv2: clean up loop in get_irq_chan_comb()
	x86: fix off-by-one in access_ok()
	perf cs-etm: Don't flush when packet_queue fills up
	gfs2: Rename GLF_VERIFY_EVICT to GLF_VERIFY_DELETE
	gfs2: Allow immediate GLF_VERIFY_DELETE work
	gfs2: Fix unlinked inode cleanup
	perf mem: Fix printing PERF_MEM_LVLNUM_{L2_MHB|MSC}
	dt-bindings: PCI: mediatek-gen3: Allow exact number of clocks only
	PCI: Fix reset_method_store() memory leak
	perf jevents: Don't stop at the first matched pmu when searching a events table
	perf stat: Close cork_fd when create_perf_stat_counter() failed
	perf stat: Fix affinity memory leaks on error path
	perf trace: Keep exited threads for summary
	perf test attr: Add back missing topdown events
	rust: rbtree: fix `SAFETY` comments that should be `# Safety` sections
	f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks
	f2fs: fix null-ptr-deref in f2fs_submit_page_bio()
	mailbox, remoteproc: k3-m4+: fix compile testing
	f2fs: fix to account dirty data in __get_secs_required()
	perf dso: Fix symtab_type for kmod compression
	perf disasm: Fix capstone memory leak
	perf probe: Fix libdw memory leak
	perf probe: Correct demangled symbols in C++ program
	rust: kernel: fix THIS_MODULE header path in ThisModule doc comment
	rust: macros: fix documentation of the paste! macro
	PCI: cpqphp: Fix PCIBIOS_* return value confusion
	rust: block: fix formatting of `kernel::block::mq::request` module
	perf disasm: Use disasm_line__free() to properly free disasm_line
	perf disasm: Fix not cleaning up disasm_line in symbol__disassemble_raw()
	virtiofs: use pages instead of pointer for kernel direct IO
	perf ftrace latency: Fix unit on histogram first entry when using --use-nsec
	i3c: master: Remove i3c_dev_disable_ibi_locked(olddev) on device hotjoin
	f2fs: fix the wrong f2fs_bug_on condition in f2fs_do_replace_block
	f2fs: check curseg->inited before write_sum_page in change_curseg
	f2fs: Fix not used variable 'index'
	f2fs: fix to avoid potential deadlock in f2fs_record_stop_reason()
	f2fs: fix to avoid use GC_AT when setting gc_mode as GC_URGENT_LOW or GC_URGENT_MID
	PCI: qcom: Enable MSI interrupts together with Link up if 'Global IRQ' is supported
	PCI: qcom-ep: Move controller cleanups to qcom_pcie_perst_deassert()
	PCI: tegra194: Move controller cleanups to pex_ep_event_pex_rst_deassert()
	PCI: j721e: Deassert PERST# after a delay of PCIE_T_PVPERL_MS milliseconds
	perf build: Add missing cflags when building with custom libtraceevent
	f2fs: fix race in concurrent f2fs_stop_gc_thread
	f2fs: fix to map blocks correctly for direct write
	f2fs: fix to avoid forcing direct write to use buffered IO on inline_data inode
	perf trace: avoid garbage when not printing a trace event's arguments
	m68k: mcfgpio: Fix incorrect register offset for CONFIG_M5441x
	m68k: coldfire/device.c: only build FEC when HW macros are defined
	svcrdma: Address an integer overflow
	nfsd: drop inode parameter from nfsd4_change_attribute()
	perf list: Fix topic and pmu_name argument order
	perf trace: Fix tracing itself, creating feedback loops
	perf trace: Do not lose last events in a race
	perf trace: Avoid garbage when not printing a syscall's arguments
	remoteproc: qcom: pas: Remove subdevs on the error path of adsp_probe()
	remoteproc: qcom: adsp: Remove subdevs on the error path of adsp_probe()
	remoteproc: qcom: pas: add minidump_id to SM8350 resources
	rpmsg: glink: use only lower 16-bits of param2 for CMD_OPEN name length
	remoteproc: qcom_q6v5_mss: Re-order writes to the IMEM region
	PCI: endpoint: epf-mhi: Avoid NULL dereference if DT lacks 'mmio'
	NFSD: Prevent NULL dereference in nfsd4_process_cb_update()
	NFSD: Cap the number of bytes copied by nfs4_reset_recoverydir()
	nfsd: release svc_expkey/svc_export with rcu_work
	svcrdma: fix miss destroy percpu_counter in svc_rdma_proc_init()
	NFSD: Fix nfsd4_shutdown_copy()
	nfs_common: must not hold RCU while calling nfsd_file_put_local
	f2fs: fix to do cast in F2FS_{BLK_TO_BYTES, BTYES_TO_BLK} to avoid overflow
	perf bpf-filter: Return -ENOMEM directly when pfi allocation fails
	hwmon: (tps23861) Fix reporting of negative temperatures
	hwmon: (aquacomputer_d5next) Fix length of speed_input array
	phy: airoha: Fix REG_CSR_2L_PLL_CMN_RESERVE0 config in airoha_pcie_phy_init_clk_out()
	phy: airoha: Fix REG_PCIE_PMA_TX_RESET config in airoha_pcie_phy_init_csr_2l()
	phy: airoha: Fix REG_CSR_2L_JCPLL_SDM_HREN config in airoha_pcie_phy_init_ssc_jcpll()
	phy: airoha: Fix REG_CSR_2L_RX{0,1}_REV0 definitions
	vdpa/mlx5: Fix suboptimal range on iotlb iteration
	vfio/mlx5: Fix an unwind issue in mlx5vf_add_migration_pages()
	vfio/mlx5: Fix unwind flows in mlx5vf_pci_save/resume_device_data()
	selftests/mount_setattr: Fix failures on 64K PAGE_SIZE kernels
	gpio: zevio: Add missed label initialisation
	vfio/pci: Properly hide first-in-list PCIe extended capability
	fs_parser: update mount_api doc to match function signature
	LoongArch: Fix build failure with GCC 15 (-std=gnu23)
	LoongArch: BPF: Sign-extend return values
	power: supply: core: Remove might_sleep() from power_supply_put()
	power: supply: bq27xxx: Fix registers of bq27426
	power: supply: rt9471: Fix wrong WDT function regfield declaration
	power: supply: rt9471: Use IC status regfield to report real charger status
	fs/ntfs3: Equivalent transition from page to folio
	power: reset: ep93xx: add AUXILIARY_BUS dependency
	net: usb: lan78xx: Fix double free issue with interrupt buffer allocation
	net: usb: lan78xx: Fix memory leak on device unplug by freeing PHY device
	tg3: Set coherent DMA mask bits to 31 for BCM57766 chipsets
	net: usb: lan78xx: Fix refcounting and autosuspend on invalid WoL configuration
	net: microchip: vcap: Add typegroup table terminators in kunit tests
	netlink: fix false positive warning in extack during dumps
	exfat: fix file being changed by unaligned direct write
	net/l2tp: fix warning in l2tp_exit_net found by syzbot
	s390/iucv: MSG_PEEK causes memory leak in iucv_sock_destruct()
	rtase: Refactor the rtase_check_mac_version_valid() function
	rtase: Correct the speed for RTL907XD-V1
	rtase: Corrects error handling of the rtase_check_mac_version_valid()
	net/ipv6: delete temporary address if mngtmpaddr is removed or unmanaged
	net: mdio-ipq4019: add missing error check
	marvell: pxa168_eth: fix call balance of pep->clk handling routines
	net: stmmac: dwmac-socfpga: Set RX watchdog interrupt as broken
	octeontx2-af: RPM: Fix mismatch in lmac type
	octeontx2-af: RPM: Fix low network performance
	octeontx2-af: RPM: fix stale RSFEC counters
	octeontx2-af: RPM: fix stale FCFEC counters
	octeontx2-af: Quiesce traffic before NIX block reset
	spi: atmel-quadspi: Fix register name in verbose logging function
	net: hsr: fix hsr_init_sk() vs network/transport headers.
	bnxt_en: Reserve rings after PCIe AER recovery if NIC interface is down
	bnxt_en: Set backplane link modes correctly for ethtool
	bnxt_en: Fix queue start to update vnic RSS table
	bnxt_en: Fix receive ring space parameters when XDP is active
	bnxt_en: Refactor bnxt_ptp_init()
	bnxt_en: Unregister PTP during PCI shutdown and suspend
	Bluetooth: MGMT: Fix slab-use-after-free Read in set_powered_sync
	Bluetooth: MGMT: Fix possible deadlocks
	llc: Improve setsockopt() handling of malformed user input
	rxrpc: Improve setsockopt() handling of malformed user input
	tcp: Fix use-after-free of nreq in reqsk_timer_handler().
	ip6mr: fix tables suspicious RCU usage
	ipmr: fix tables suspicious RCU usage
	iio: light: al3010: Fix an error handling path in al3010_probe()
	usb: using mutex lock and supporting O_NONBLOCK flag in iowarrior_read()
	usb: yurex: make waiting on yurex_write interruptible
	USB: chaoskey: fail open after removal
	USB: chaoskey: Fix possible deadlock chaoskey_list_lock
	misc: apds990x: Fix missing pm_runtime_disable()
	devres: Fix page faults when tracing devres from unloaded modules
	usb: gadget: uvc: wake pump everytime we update the free list
	interconnect: qcom: icc-rpmh: probe defer incase of missing QoS clock dependency
	iio: backend: fix wrong pointer passed to IS_ERR()
	iio: adc: ad4000: fix reading unsigned data
	iio: adc: ad4000: Check for error code from devm_mutex_init() call
	iio: adc: pac1921: Check for error code from devm_mutex_init() call
	iio: accel: adxl380: fix raw sample read
	phy: realtek: usb: fix NULL deref in rtk_usb2phy_probe
	phy: realtek: usb: fix NULL deref in rtk_usb3phy_probe
	counter: stm32-timer-cnt: Add check for clk_enable()
	counter: ti-ecap-capture: Add check for clk_enable()
	bus: mhi: host: Switch trace_mhi_gen_tre fields to native endian
	usb: typec: fix potential array underflow in ucsi_ccg_sync_control()
	firmware_loader: Fix possible resource leak in fw_log_firmware_info()
	ALSA: hda/realtek: Update ALC256 depop procedure
	drm/radeon: Fix spurious unplug event on radeon HDMI
	drm/amd/display: Fix null check for pipe_ctx->plane_state in dcn20_program_pipe
	drm/amd/display: Fix null check for pipe_ctx->plane_state in hwss_setup_dpp
	ASoC: imx-audmix: Add NULL check in imx_audmix_probe
	drm/xe/ufence: Wake up waiters after setting ufence->signalled
	apparmor: fix 'Do simple duplicate message elimination'
	ALSA: core: Fix possible NULL dereference caused by kunit_kzalloc()
	ASoC: amd: yc: Fix for enabling DMIC on acp6x via _DSD entry
	ASoC: mediatek: Check num_codecs is not zero to avoid panic during probe
	s390/pci: Fix potential double remove of hotplug slot
	f2fs: fix fiemap failure issue when page size is 16KB
	net_sched: sch_fq: don't follow the fast path if Tx is behind now
	xen: Fix the issue of resource not being properly released in xenbus_dev_probe()
	ALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devices
	ALSA: usb-audio: Fix out of bounds reads when finding clock sources
	usb: ehci-spear: fix call balance of sehci clk handling routines
	usb: typec: ucsi: glink: fix off-by-one in connector_status
	xfs: fix simplify extent lookup in xfs_can_free_eofblocks
	ext4: supress data-race warnings in ext4_free_inodes_{count,set}()
	ext4: fix FS_IOC_GETFSMAP handling
	MAINTAINERS: update location of media main tree
	docs: media: update location of the media patches
	jfs: xattr: check invalid xattr size more strictly
	ASoC: amd: yc: Add a quirk for microfone on Lenovo ThinkPad P14s Gen 5 21MES00B00
	ASoC: codecs: Fix atomicity violation in snd_soc_component_get_drvdata()
	ASoC: da7213: Populate max_register to regmap_config
	perf/x86/intel/pt: Fix buffer full but size is 0 case
	crypto: x86/aegis128 - access 32-bit arguments as 32-bit
	KVM: x86: switch hugepage recovery thread to vhost_task
	KVM: x86/mmu: Skip the "try unsync" path iff the old SPTE was a leaf SPTE
	KVM: x86: add back X86_LOCAL_APIC dependency
	KVM: x86: Break CONFIG_KVM_X86's direct dependency on KVM_INTEL || KVM_AMD
	powerpc/pseries: Fix KVM guest detection for disabling hardlockup detector
	KVM: arm64: vgic-v3: Sanitise guest writes to GICR_INVLPIR
	KVM: arm64: Ignore PMCNTENSET_EL0 while checking for overflow status
	Revert "KVM: VMX: Move LOAD_IA32_PERF_GLOBAL_CTRL errata handling out of setup_vmcs_config()"
	KVM: arm64: Don't retire aborted MMIO instruction
	KVM: arm64: vgic-its: Clear ITE when DISCARD frees an ITE
	KVM: arm64: Get rid of userspace_irqchip_in_use
	KVM: arm64: vgic-its: Add a data length check in vgic_its_save_*
	KVM: arm64: vgic-its: Clear DTE when MAPD unmaps a device
	Compiler Attributes: disable __counted_by for clang < 19.1.3
	PCI: Fix use-after-free of slot->bus on hot remove
	LoongArch: Explicitly specify code model in Makefile
	clk: clk-loongson2: Fix memory corruption bug in struct loongson2_clk_provider
	clk: clk-loongson2: Fix potential buffer overflow in flexible-array member access
	fsnotify: fix sending inotify event with unexpected filename
	fsnotify: Fix ordering of iput() and watched_objects decrement
	comedi: Flush partial mappings in error case
	apparmor: test: Fix memory leak for aa_unpack_strdup()
	iio: dac: adi-axi-dac: fix wrong register bitfield
	tty: ldsic: fix tty_ldisc_autoload sysctl's proc_handler
	locking/lockdep: Avoid creating new name string literals in lockdep_set_subclass()
	tools/nolibc: s390: include std.h
	fcntl: make F_DUPFD_QUERY associative
	pinctrl: qcom: spmi: fix debugfs drive strength
	dt-bindings: pinctrl: samsung: Fix interrupt constraint for variants with fallbacks
	dt-bindings: iio: dac: ad3552r: fix maximum spi speed
	exfat: fix uninit-value in __exfat_get_dentry_set
	exfat: fix out-of-bounds access of directory entries
	xhci: Fix control transfer error on Etron xHCI host
	xhci: Combine two if statements for Etron xHCI host
	xhci: Don't perform Soft Retry for Etron xHCI host
	xhci: Don't issue Reset Device command to Etron xHCI host
	Bluetooth: Fix type of len in rfcomm_sock_getsockopt{,_old}()
	usb: xhci: Limit Stop Endpoint retries
	usb: xhci: Fix TD invalidation under pending Set TR Dequeue
	usb: xhci: Avoid queuing redundant Stop Endpoint commands
	ARM: dts: omap36xx: declare 1GHz OPP as turbo again
	wifi: ath12k: fix warning when unbinding
	wifi: rtlwifi: Drastically reduce the attempts to read efuse in case of failures
	wifi: nl80211: fix bounds checker error in nl80211_parse_sched_scan
	wifi: ath12k: fix crash when unbinding
	wifi: brcmfmac: release 'root' node in all execution paths
	Revert "fs: don't block i_writecount during exec"
	Revert "f2fs: remove unreachable lazytime mount option parsing"
	Revert "usb: gadget: composite: fix OS descriptors w_value logic"
	serial: sh-sci: Clean sci_ports[0] after at earlycon exit
	Revert "serial: sh-sci: Clean sci_ports[0] after at earlycon exit"
	io_uring: fix corner case forgetting to vunmap
	io_uring: check for overflows in io_pin_pages
	blk-settings: round down io_opt to physical_block_size
	gpio: exar: set value when external pull-up or pull-down is present
	netfilter: ipset: add missing range check in bitmap_ip_uadt
	spi: Fix acpi deferred irq probe
	mtd: spi-nor: core: replace dummy buswidth from addr to data
	cpufreq: mediatek-hw: Fix wrong return value in mtk_cpufreq_get_cpu_power()
	cifs: support mounting with alternate password to allow password rotation
	parisc/ftrace: Fix function graph tracing disablement
	RISC-V: Scalar unaligned access emulated on hotplug CPUs
	RISC-V: Check scalar unaligned access on all CPUs
	ksmbd: fix use-after-free in SMB request handling
	smb: client: fix NULL ptr deref in crypto_aead_setkey()
	platform/chrome: cros_ec_typec: fix missing fwnode reference decrement
	irqchip/irq-mvebu-sei: Move misplaced select() callback to SEI CP domain
	x86/CPU/AMD: Terminate the erratum_1386_microcode array
	ubi: wl: Put source PEB into correct list if trying locking LEB failed
	um: ubd: Do not use drvdata in release
	um: net: Do not use drvdata in release
	dt-bindings: serial: rs485: Fix rs485-rts-delay property
	serial: 8250_fintek: Add support for F81216E
	serial: 8250: omap: Move pm_runtime_get_sync
	serial: amba-pl011: Fix RX stall when DMA is used
	serial: amba-pl011: fix build regression
	Revert "block, bfq: merge bfq_release_process_ref() into bfq_put_cooperator()"
	mtd: ubi: fix unreleased fwnode_handle in find_volume_fwnode()
	block: Prevent potential deadlock in blk_revalidate_disk_zones()
	um: vector: Do not use drvdata in release
	sh: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
	iio: gts: Fix uninitialized symbol 'ret'
	ublk: fix ublk_ch_mmap() for 64K page size
	arm64: tls: Fix context-switching of tpidrro_el0 when kpti is enabled
	block: fix missing dispatching request when queue is started or unquiesced
	block: fix ordering between checking QUEUE_FLAG_QUIESCED request adding
	block: fix ordering between checking BLK_MQ_S_STOPPED request adding
	blk-mq: Make blk_mq_quiesce_tagset() hold the tag list mutex less long
	gve: Flow steering trigger reset only for timeout error
	HID: wacom: Interpret tilt data from Intuos Pro BT as signed values
	i40e: Fix handling changed priv flags
	media: wl128x: Fix atomicity violation in fmc_send_cmd()
	media: intel/ipu6: do not handle interrupts when device is disabled
	arm64: dts: mediatek: mt8186-corsola-voltorb: Merge speaker codec nodes
	netdev-genl: Hold rcu_read_lock in napi_get
	soc: fsl: cpm1: qmc: Set the ret error code on platform_get_irq() failure
	soc: fsl: rcpm: fix missing of_node_put() in copy_ippdexpcr1_setting()
	media: v4l2-core: v4l2-dv-timings: check cvt/gtf result
	x86/mm: Carve out INVLPG inline asm for use by others
	x86/microcode/AMD: Flush patch buffer mapping after application
	ALSA: rawmidi: Fix kvfree() call in spinlock
	ALSA: ump: Fix evaluation of MIDI 1.0 FB info
	ALSA: pcm: Add sanity NULL check for the default mmap fault handler
	ALSA: hda/realtek: Update ALC225 depop procedure
	ALSA: hda/realtek: Enable speaker pins for Medion E15443 platform
	ALSA: hda/realtek: Set PCBeep to default value for ALC274
	ALSA: hda/realtek: Fix Internal Speaker and Mic boost of Infinix Y4 Max
	ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook X G1i
	ALSA: hda/realtek: Apply quirk for Medion E15433
	fs/smb/client: implement chmod() for SMB3 POSIX Extensions
	smb: client: fix use-after-free of signing key
	smb3: request handle caching when caching directories
	smb: client: handle max length for SMB symlinks
	smb: Don't leak cfid when reconnect races with open_cached_dir
	smb: prevent use-after-free due to open_cached_dir error paths
	smb: During unmount, ensure all cached dir instances drop their dentry
	usb: misc: ljca: set small runtime autosuspend delay
	usb: misc: ljca: move usb_autopm_put_interface() after wait for response
	usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED
	usb: musb: Fix hardware lockup on first Rx endpoint request
	usb: dwc3: gadget: Add missing check for single port RAM in TxFIFO resizing logic
	usb: dwc3: gadget: Fix checking for number of TRBs left
	usb: dwc3: gadget: Fix looping of queued SG entries
	staging: vchiq_arm: Fix missing refcount decrement in error path for fw_node
	counter: stm32-timer-cnt: fix device_node handling in probe_encoder()
	ublk: fix error code for unsupported command
	lib: string_helpers: silence snprintf() output truncation warning
	f2fs: fix to do sanity check on node blkaddr in truncate_node()
	ipc: fix memleak if msg_init_ns failed in create_ipc_ns
	Input: cs40l50 - fix wrong usage of INIT_WORK()
	NFSD: Prevent a potential integer overflow
	SUNRPC: make sure cache entry active before cache_show
	um: Fix potential integer overflow during physmem setup
	um: Fix the return value of elf_core_copy_task_fpregs
	kfifo: don't include dma-mapping.h in kfifo.h
	um: ubd: Initialize ubd's disk pointer in ubd_add
	um: Always dump trace for specified task in show_stack
	NFSv4.0: Fix a use-after-free problem in the asynchronous open()
	nfs/localio: must clear res.replen in nfs_local_read_done
	rtc: st-lpc: Use IRQF_NO_AUTOEN flag in request_irq()
	rtc: abx80x: Fix WDT bit position of the status register
	rtc: check if __rtc_read_time was successful in rtc_timer_do_work()
	ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty
	ubifs: Correct the total block count by deducting journal reservation
	ubi: fastmap: Fix duplicate slab cache names while attaching
	ubifs: authentication: Fix use-after-free in ubifs_tnc_end_commit
	jffs2: fix use of uninitialized variable
	hostfs: Fix the NULL vs IS_ERR() bug for __filemap_get_folio()
	net/9p/usbg: fix handling of the failed kzalloc() memory allocation
	rtc: rzn1: fix BCD to rtc_time conversion errors
	Revert "nfs: don't reuse partially completed requests in nfs_lock_and_join_requests"
	nvme/multipath: Fix RCU list traversal to use SRCU primitive
	blk-mq: add non_owner variant of start_freeze/unfreeze queue APIs
	block: model freeze & enter queue as lock for supporting lockdep
	block: fix uaf for flush rq while iterating tags
	block: return unsigned int from bdev_io_min
	nvme-fabrics: fix kernel crash while shutting down controller
	9p/xen: fix init sequence
	9p/xen: fix release of IRQ
	perf/arm-smmuv3: Fix lockdep assert in ->event_init()
	perf/arm-cmn: Ensure port and device id bits are set properly
	smb: client: disable directory caching when dir_cache_timeout is zero
	x86/Documentation: Update algo in init_size description of boot protocol
	cifs: Fix parsing native symlinks relative to the export
	cifs: Fix parsing reparse point with native symlink in SMB1 non-UNICODE session
	rtc: ab-eoz9: don't fail temperature reads on undervoltage notification
	Rename .data.unlikely to .data..unlikely
	Rename .data.once to .data..once to fix resetting WARN*_ONCE
	kbuild: deb-pkg: Don't fail if modules.order is missing
	smb: Initialize cfid->tcon before performing network ops
	block: Don't allow an atomic write be truncated in blkdev_write_iter()
	modpost: remove incorrect code in do_eisa_entry()
	cifs: during remount, make sure passwords are in sync
	cifs: unlock on error in smb3_reconfigure()
	nfs: ignore SB_RDONLY when mounting nfs
	sunrpc: clear XPRT_SOCK_UPD_TIMEOUT when reset transport
	SUNRPC: timeout and cancel TLS handshake with -ETIMEDOUT
	sunrpc: fix one UAF issue caused by sunrpc kernel tcp socket
	nfs/blocklayout: Don't attempt unregister for invalid block device
	nfs/blocklayout: Limit repeat device registration on failure
	block, bfq: fix bfqq uaf in bfq_limit_depth()
	brd: decrease the number of allocated pages which discarded
	sh: intc: Fix use-after-free bug in register_intc_controller()
	tools/power turbostat: Fix trailing '\n' parsing
	tools/power turbostat: Fix child's argument forwarding
	block: always verify unfreeze lock on the owner task
	block: don't verify IO lock for freeze/unfreeze in elevator_init_mq()
	Linux 6.12.2

Change-Id: Ifebddb35b5a6a6ff2a65eb795a912633639aca9a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-12-13 10:11:11 -08:00
Peter Zijlstra
484044f3c6 FROMLIST: locking/mutex: Rework task_struct::blocked_on
Track the blocked-on relation for mutexes, to allow following this
relation at schedule time.

   task
     | blocked-on
     v
   mutex
     | owner
     v
   task

Also add a blocked_on_state value so we can distinguish when a
task is blocked_on a mutex, but is either blocked, waking up, or
runnable (such that it can try to acquire the lock its blocked
on).

This avoids some of the subtle & racy games where the blocked_on
state gets cleared, only to have it re-added by the
mutex_lock_slowpath call when it tries to acquire the lock on
wakeup

Also add blocked_lock to the task_struct so we can safely
serialize the blocked-on state.

Finally add wrappers that are useful to provide correctness
checks. Folded in from a patch by:
  Valentin Schneider <valentin.schneider@arm.com>

This all will be used for tracking blocked-task/mutex chains
with the prox-execution patch in a similar fashion to how
priority inheritance is done with rt_mutexes.

Cc: Joel Fernandes <joelaf@google.com>
Cc: Qais Yousef <qyousef@layalina.io>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ben Segall <bsegall@google.com>
Cc: Zimuzo Ezeozue <zezeozue@google.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Will Deacon <will@kernel.org>
Cc: Waiman Long <longman@redhat.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Metin Kaya <Metin.Kaya@arm.com>
Cc: Xuewen Yan <xuewen.yan94@gmail.com>
Cc: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: kernel-team@android.com
Change-Id: I3c88f64c5defe46b7f5ac468048d88dbbd2deb5e
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
[minor changes while rebasing]
Signed-off-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Connor O'Brien <connoro@google.com>
[jstultz: Fix blocked_on tracking in __mutex_lock_common in error paths]
Signed-off-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/lkml/20241125195204.2374458-3-jstultz@google.com/
Bug: 306081722
---
v2:
* Fixed blocked_on tracking in error paths that was causing crashes
v4:
* Ensure we clear blocked_on when waking ww_mutexes to die or wound.
  This is critical so we don't get circular blocked_on relationships
  that can't be resolved.
v5:
* Fix potential bug where the skip_wait path might clear blocked_on
  when that path never set it
* Slight tweaks to where we set blocked_on to make it consistent,
  along with extra WARN_ON correctness checking
* Minor comment changes
v7:
* Minor commit message change suggested by Metin Kaya
* Fix WARN_ON conditionals in unlock path (as blocked_on might already
  be cleared), found while looking at issue Metin Kaya raised.
* Minor tweaks to be consistent in what we do under the
  blocked_on lock, also tweaked variable name to avoid confusion
  with label, and comment typos, as suggested by Metin Kaya
* Minor tweak for CONFIG_SCHED_PROXY_EXEC name change
* Moved unused block of code to later in the series, as suggested
  by Metin Kaya
* Switch to a tri-state to be able to distinguish from waking and
  runnable so we can later safely do return migration from ttwu
* Folded together with related blocked_on changes
v8:
* Fix issue leaving task BO_BLOCKED when calling into optimistic
  spinning path.
* Include helper to better handle BO_BLOCKED->BO_WAKING transitions
v9:
* Typo fixup pointed out by Metin
* Cleanup BO_WAKING->BO_RUNNABLE transitions for the !proxy case
* Many cleanups and simplifications suggested by Metin
v11:
* Whitespace fixup pointed out by Metin
v13:
* Refactor set_blocked_on helpers clean things up a bit
v14:
* Small build fixup with PREEMPT_RT
2024-12-13 10:01:53 -08:00
John Stultz
16693ee216 FROMLIST: sched: Add CONFIG_SCHED_PROXY_EXEC & boot argument to enable/disable
Add a CONFIG_SCHED_PROXY_EXEC option, along with a boot argument
sched_proxy_exec= that can be used to disable the feature at boot
time if CONFIG_SCHED_PROXY_EXEC was enabled.

Cc: Joel Fernandes <joelaf@google.com>
Cc: Qais Yousef <qyousef@layalina.io>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Valentin Schneider <vschneid@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Ben Segall <bsegall@google.com>
Cc: Zimuzo Ezeozue <zezeozue@google.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Will Deacon <will@kernel.org>
Cc: Waiman Long <longman@redhat.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Metin Kaya <Metin.Kaya@arm.com>
Cc: Xuewen Yan <xuewen.yan94@gmail.com>
Cc: K Prateek Nayak <kprateek.nayak@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: kernel-team@android.com
Tested-by: K Prateek Nayak <kprateek.nayak@amd.com>
Change-Id: Ie1d941d96abf762e886ae460f2852133fea8cbc9
Signed-off-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/lkml/20241125195204.2374458-2-jstultz@google.com/
Bug: 306081722
---
v7:
* Switch to CONFIG_SCHED_PROXY_EXEC/sched_proxy_exec= as
  suggested by Metin Kaya.
* Switch boot arg from =disable/enable to use kstrtobool(),
  which supports =yes|no|1|0|true|false|on|off, as also
  suggested by Metin Kaya, and print a message when a boot
  argument is used.
v8:
* Move CONFIG_SCHED_PROXY_EXEC under Scheduler Features as
  Suggested by Metin
* Minor rework reordering with split sched contexts patch
v12:
* Rework for selected -> donor renaming
v14:
* Depend on !PREEMPT_RT to avoid build issues for now
2024-12-13 10:01:53 -08:00
Greg Kroah-Hartman
2bab7bdb88 Merge da7df496b8 ("perf trace: Avoid garbage when not printing a syscall's arguments") into android16-6.12
Steps on the way to 6.12.2

Resolves merge conflicts in:
	fs/fuse/fuse_i.h

Change-Id: If765bb10099fb7efad53a0a4bcda888cd571ac97
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-12-13 02:48:11 -08:00
Jan Hendrik Farr
e46d4caa77 Compiler Attributes: disable __counted_by for clang < 19.1.3
commit f06e108a3dc53c0f5234d18de0bd224753db5019 upstream.

This patch disables __counted_by for clang versions < 19.1.3 because
of the two issues listed below. It does this by introducing
CONFIG_CC_HAS_COUNTED_BY.

1. clang < 19.1.2 has a bug that can lead to __bdos returning 0:
https://github.com/llvm/llvm-project/pull/110497

2. clang < 19.1.3 has a bug that can lead to __bdos being off by 4:
https://github.com/llvm/llvm-project/pull/112636

Fixes: c8248faf3c ("Compiler Attributes: counted_by: Adjust name and identifier expansion")
Cc: stable@vger.kernel.org # 6.6.x: 16c31dd7fd: Compiler Attributes: counted_by: bump min gcc version
Cc: stable@vger.kernel.org # 6.6.x: 2993eb7a8d: Compiler Attributes: counted_by: fixup clang URL
Cc: stable@vger.kernel.org # 6.6.x: 231dc3f0c9: lkdtm/bugs: Improve warning message for compilers without counted_by support
Cc: stable@vger.kernel.org # 6.6.x
Reported-by: Nathan Chancellor <nathan@kernel.org>
Closes: https://lore.kernel.org/all/20240913164630.GA4091534@thelio-3990X/
Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202409260949.a1254989-oliver.sang@intel.com
Link: https://lore.kernel.org/all/Zw8iawAF5W2uzGuh@archlinux/T/#m204c09f63c076586a02d194b87dffc7e81b8de7b
Suggested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Jan Hendrik Farr <kernel@jfarr.cc>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
Reviewed-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://lore.kernel.org/r/20241029140036.577804-2-kernel@jfarr.cc
Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-05 14:02:45 +01:00
David Disseldorp
fb83b093f7 initramfs: avoid filename buffer overrun
[ Upstream commit e017671f534dd3f568db9e47b0583e853d2da9b5 ]

The initramfs filename field is defined in
Documentation/driver-api/early-userspace/buffer-format.rst as:

 37 cpio_file := ALGN(4) + cpio_header + filename + "\0" + ALGN(4) + data
...
 55 ============= ================== =========================
 56 Field name    Field size         Meaning
 57 ============= ================== =========================
...
 70 c_namesize    8 bytes            Length of filename, including final \0

When extracting an initramfs cpio archive, the kernel's do_name() path
handler assumes a zero-terminated path at @collected, passing it
directly to filp_open() / init_mkdir() / init_mknod().

If a specially crafted cpio entry carries a non-zero-terminated filename
and is followed by uninitialized memory, then a file may be created with
trailing characters that represent the uninitialized memory. The ability
to create an initramfs entry would imply already having full control of
the system, so the buffer overrun shouldn't be considered a security
vulnerability.

Append the output of the following bash script to an existing initramfs
and observe any created /initramfs_test_fname_overrunAA* path. E.g.
  ./reproducer.sh | gzip >> /myinitramfs

It's easiest to observe non-zero uninitialized memory when the output is
gzipped, as it'll overflow the heap allocated @out_buf in __gunzip(),
rather than the initrd_start+initrd_size block.

---- reproducer.sh ----
nilchar="A"	# change to "\0" to properly zero terminate / pad
magic="070701"
ino=1
mode=$(( 0100777 ))
uid=0
gid=0
nlink=1
mtime=1
filesize=0
devmajor=0
devminor=1
rdevmajor=0
rdevminor=0
csum=0
fname="initramfs_test_fname_overrun"
namelen=$(( ${#fname} + 1 ))	# plus one to account for terminator

printf "%s%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%s" \
	$magic $ino $mode $uid $gid $nlink $mtime $filesize \
	$devmajor $devminor $rdevmajor $rdevminor $namelen $csum $fname

termpadlen=$(( 1 + ((4 - ((110 + $namelen) & 3)) % 4) ))
printf "%.s${nilchar}" $(seq 1 $termpadlen)
---- reproducer.sh ----

Symlink filename fields handled in do_symlink() won't overrun past the
data segment, due to the explicit zero-termination of the symlink
target.

Fix filename buffer overrun by aborting the initramfs FSM if any cpio
entry doesn't carry a zero-terminator at the expected (name_len - 1)
offset.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: David Disseldorp <ddiss@suse.de>
Link: https://lore.kernel.org/r/20241030035509.20194-2-ddiss@suse.de
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-12-05 14:01:12 +01:00
Todd Kjos
157ec70a22 ANDROID: suppress GKI configs for 32-bit builds
For kernelci 32-bit allmodconfig builds, we get warnings like:

WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE
  Depends on [n]: IOMMU_SUPPORT [=y] && (ARM [=y] || ARM64 || COMPILE_TEST [=y]) && !GENERIC_ATOMIC64 [=y]
  Selected by [y]:
  - GKI_HIDDEN_QCOM_CONFIGS [=y] && ARCH_QCOM [=y]

Since GKI is only for 64-bit builds, ignore init/Kconfig.gki if !64BIT

Bug: 379954362
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ibe1880a6d30020e4fe63354273e74c0aece3d327
(cherry picked from commit 9d16368a67fda7f8c059fb0b4f1b4da3aaceb434)
2024-11-21 22:42:10 +00:00
Connor O'Brien
01603b5411 ANDROID: sched: Avoid placing RT threads on cores handling long softirqs
In certain audio use cases, scheduling RT threads on cores that
are handling softirqs can lead to glitches. Prevent this
behavior in cases where the softirq is likely to take a long
time. To avoid unnecessary migrations, the old behavior is
preserved for RCU, SCHED and TIMER irqs which are expected to be
relatively quick.

This patch reworks and combines two related changes originally
by John Dias <joaodias@google.com>

Cc: John Dias <joaodias@google.com>
Cc: Connor O'Brien <connoro@google.com>
Cc: Rick Yiu <rickyiu@google.com>
Cc: John Kacur <jkacur@redhat.com>
Cc: Qais Yousef <qyousef@google.com>
Cc: Chris Redpath <chris.redpath@arm.com>
Cc: Abhijeet Dharmapurikar <adharmap@quicinc.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: kernel-team@android.com
Signed-off-by: John Dias <joaodias@google.com>
[elavila: Port to mainline, amend commit text]
Signed-off-by: J. Avila <elavila@google.com>
[connoro: Reworked, simplified, and merged two patches together]
Signed-off-by: Connor O'Brien <connoro@google.com>
[jstultz: Further simplified and fixed issues, reworded commit
 message, removed arm64-isms]
Signed-off-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/lkml/20221116075929.453876-3-jstultz@google.com/
[xuewen: resolve conflicts with android15-6.6]
Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com>
Signed-off-by: John Stultz <jstultz@google.com>
Bug: 168521633
Bug: 332627282
Change-Id: Ia5b5ce37a41ebf83e6295c5ae39f1bd321bf6036
---
v2:
* Reformatted Kconfig entry to match coding style
  (Reported-by: Randy Dunlap <rdunlap@infradead.org>)
* Made rt_task_fits_capacity_and_may_preempt static to
  avoid warnings (Reported-by: kernel test robot <lkp@intel.com>)
* Rework to use preempt_count and drop kconfig dependency on ARM64
v3:
* Use introduced __cpu_softirq_pending() to avoid s390 build
  issues (Reported-by: kernel test robot <lkp@intel.com>)
v4:
* Drop TASKLET_SOFTIRQ from LONG_SOFTIRQS (suggested by Qais)
* Depend on !PREEMPT_RT (Suggested by Qais)
* Larger simplification of logic (suggested by Qais)
* Rework LONG_SOFTIRQS to use BIT() macros
* Rename task_may_preempt() to cpu_busy_with_softirqs()
v5:
* Conditionalize active_softirqs handling (suggested by Alexander
  Gordeev <agordeev@linux.ibm.com>)
* Reorder rt_task_fits_cpu to have the "fast" function first
  (Suggested by Alexander Gordeev <agordeev@linux.ibm.com>)
* Fix bug I introduced in v2 condensing
  task_thread_info(task)->preempt_count to preempt_count()
  (Reported-by: Alexander Gordeev <agordeev@linux.ibm.com>)
* Tweak comment discription to remove the vauge "slow"
  descriptor of softirqs being run by ksoftirqd
  (Suggested by Alexander Gordeev <agordeev@linux.ibm.com>)
* Switch to using CONFIG_RT_SOFTIRQ_AWARE_SCHED (suggested by
  Joel Fernandes <joel@joelfernandes.org>)
* Simplify cpu_busy_with_softirqs() logic as pointed out by
  Alexander Gordeev <agordeev@linux.ibm.com>
* Switch to using IS_ENABLED rather then defining my own macro
  (suggsted by Joel Fernandes <joel@joelfernandes.org>)
2024-10-24 18:49:26 +00:00
Sai Harshini Nimmala
de863f65b8 ANDROID: GKI: Guard dynamic task_struct size feature with config option
Ensure that dynamic task_struct size feature is enabled only for GKI
platforms. With this patch, non-GKI platforms will not face build issues
anymore due to incorrect configuration earlier.

Bug: 233921394
Fixes: 5e9a8cb714 ("ANDROID: GKI: Add to task_struct size via
cmdline")
Change-Id: Ice341f4826baf8d20a3c846d55db5ea870753c7d
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
2024-10-17 15:05:31 -07:00
Nathan Chancellor
2282ad09ee ANDROID: GKI: Put vendor_data_pad behind CONFIG_GKI_DYNAMIC_TASK_STRUCT_SIZE
vendor_data_pad uses CONFIG_GKI_TASK_STRUCT_VENDOR_SIZE_MAX, which is
only defined when CONFIG_GKI_DYNAMIC_TASK_STRUCT_SIZE is enabled,
resulting in build failures when it is not:

  In file included from arch/arm/kernel/asm-offsets.c:12:
  In file included from include/linux/mm.h:1120:
  In file included from include/linux/huge_mm.h:8:
  In file included from include/linux/fs.h:33:
  In file included from include/linux/percpu-rwsem.h:7:
  In file included from include/linux/rcuwait.h:6:
  In file included from include/linux/sched/signal.h:9:
  include/linux/sched/task.h:59:28: error: use of undeclared identifier 'CONFIG_GKI_TASK_STRUCT_VENDOR_SIZE_MAX'
     59 | extern u64 vendor_data_pad[CONFIG_GKI_TASK_STRUCT_VENDOR_SIZE_MAX / sizeof(u64)];
        |                            ^
  1 error generated.

Place all instances of vendor_data_pad behind
CONFIG_GKI_DYNAMIC_TASK_STRUCT_SIZE to address the build failures.

Fixes: 1827ee5e5a ("ANDROID: GKI: Add padding after init_task structure")
Fixes: 5e9a8cb714 ("ANDROID: GKI: Add to task_struct size via cmdline")
Change-Id: I7f5dcdd0aaffc5af3063a1b2ca4c1a3517043378
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
2024-10-16 17:26:15 +00:00
Alice Ryhl
df9a9dead8 FROMGIT: cfi: fix conditions for HAVE_CFI_ICALL_NORMALIZE_INTEGERS
The HAVE_CFI_ICALL_NORMALIZE_INTEGERS option has some tricky conditions
when KASAN or GCOV are turned on, as in that case we need some clang and
rustc fixes [1][2] to avoid boot failures. The intent with the current
setup is that you should be able to override the check and turn on the
option if your clang/rustc has the fix. However, this override does not
work in practice. Thus, use the new RUSTC_LLVM_VERSION to correctly
implement the check for whether the fix is available.

Additionally, remove KASAN_HW_TAGS from the list of incompatible
options. The CFI_ICALL_NORMALIZE_INTEGERS option is incompatible with
KASAN because LLVM will emit some constructors when using KASAN that are
assigned incorrect CFI tags. These constructors are emitted due to use
of -fsanitize=kernel-address or -fsanitize=kernel-hwaddress that are
respectively passed when KASAN_GENERIC or KASAN_SW_TAGS are enabled.
However, the KASAN_HW_TAGS option relies on hardware support for MTE
instead and does not pass either flag. (Note also that KASAN_HW_TAGS
does not `select CONSTRUCTORS`.)

Link: https://github.com/llvm/llvm-project/pull/104826 [1]
Link: https://github.com/rust-lang/rust/pull/129373 [2]
Fixes: 4c66f8307a ("cfi: encode cfi normalized integers + kasan/gcov bug in Kconfig")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20241010-icall-detect-vers-v1-2-8f114956aa88@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Bug: 359429865
(cherry picked from commit 8b8ca9c25f
 https://github.com/Rust-for-Linux/linux.git rust-fixes)
Change-Id: Iceed2dd26295ae90a797481481abbb6efcb1e8ea
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
2024-10-16 08:57:41 +00:00
Gary Guo
62376f9e47 FROMGIT: kbuild: rust: add CONFIG_RUSTC_LLVM_VERSION
Each version of Rust supports a range of LLVM versions. There are cases where
we want to gate a config on the LLVM version instead of the Rust version.
Normalized cfi integer tags are one example [1].

The invocation of rustc-version is being moved from init/Kconfig to
scripts/Kconfig.include for consistency with cc-version.

Link: https://lore.kernel.org/all/20240925-cfi-norm-kasan-fix-v1-1-0328985cdf33@google.com/ [1]
Signed-off-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/r/20241011114040.3900487-1-gary@garyguo.net
[ Added missing `-llvm` to the Usage documentation. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Bug: 359429865
(cherry picked from commit af0121c2d3
 https://github.com/Rust-for-Linux/linux.git rust-fixes)
Change-Id: I4a54c0c0963504e99583c32b507c8e257301094d
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
2024-10-16 08:57:41 +00:00
Sai Harshini Nimmala
1827ee5e5a ANDROID: GKI: Add padding after init_task structure
To reduce static memory allocated in the task_struct to accommodate
vendor data, the move to a dynamically sized task_struct is being made.
As part of this effort, add padding after the init_task structure.
This has to be done because init_task is statically allocated and hence
will not benefit from the dynamic addition of size to all task_structs.

Bug: 233921394
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Change-Id: I737f951d57a5c19ff6474d4243a22f5f9cfbfa8b
2024-10-15 01:09:54 +00:00
Sai Harshini Nimmala
db56ca3b78 ANDROID: GKI: Enable the option to alter task_struct size dynamically
Enable the config option that allows for dynamic sizing of the
task_struct. Once config option is enabled, ensure that
arch_task_struct_size is initialized to hold a valid task_struct size.
The motivation behind this change is to reduce the static memory added to
the task_struct to accommodate vendor data.

Bug: 233921394
Signed-off-by: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Change-Id: Iebc422ba4c650864f470078220b99546e56302f3
2024-10-15 01:09:54 +00:00
Alice Ryhl
8b8ca9c25f cfi: fix conditions for HAVE_CFI_ICALL_NORMALIZE_INTEGERS
The HAVE_CFI_ICALL_NORMALIZE_INTEGERS option has some tricky conditions
when KASAN or GCOV are turned on, as in that case we need some clang and
rustc fixes [1][2] to avoid boot failures. The intent with the current
setup is that you should be able to override the check and turn on the
option if your clang/rustc has the fix. However, this override does not
work in practice. Thus, use the new RUSTC_LLVM_VERSION to correctly
implement the check for whether the fix is available.

Additionally, remove KASAN_HW_TAGS from the list of incompatible
options. The CFI_ICALL_NORMALIZE_INTEGERS option is incompatible with
KASAN because LLVM will emit some constructors when using KASAN that are
assigned incorrect CFI tags. These constructors are emitted due to use
of -fsanitize=kernel-address or -fsanitize=kernel-hwaddress that are
respectively passed when KASAN_GENERIC or KASAN_SW_TAGS are enabled.
However, the KASAN_HW_TAGS option relies on hardware support for MTE
instead and does not pass either flag. (Note also that KASAN_HW_TAGS
does not `select CONSTRUCTORS`.)

Link: https://github.com/llvm/llvm-project/pull/104826 [1]
Link: https://github.com/rust-lang/rust/pull/129373 [2]
Fixes: 4c66f8307a ("cfi: encode cfi normalized integers + kasan/gcov bug in Kconfig")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20241010-icall-detect-vers-v1-2-8f114956aa88@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-10-13 22:23:13 +02:00
Gary Guo
af0121c2d3 kbuild: rust: add CONFIG_RUSTC_LLVM_VERSION
Each version of Rust supports a range of LLVM versions. There are cases where
we want to gate a config on the LLVM version instead of the Rust version.
Normalized cfi integer tags are one example [1].

The invocation of rustc-version is being moved from init/Kconfig to
scripts/Kconfig.include for consistency with cc-version.

Link: https://lore.kernel.org/all/20240925-cfi-norm-kasan-fix-v1-1-0328985cdf33@google.com/ [1]
Signed-off-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/r/20241011114040.3900487-1-gary@garyguo.net
[ Added missing `-llvm` to the Usage documentation. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-10-13 22:22:28 +02:00
Matthew Maurer
9d239c3200 ANDROID: Allow MODVERSIONS + Rust with no symbol export
We have two patches [1] [2] which provide proper MODVERSIONS support,
with no current objections. Since they're not in yet though, this is the
lowest impact way to allow the new `ashmem` driver to be tested, as it
does not need module support. Once these are merged upstream, we can
back this out.

[1] https://lore.kernel.org/all/20240925233854.90072-1-mmaurer@google.com/
[2] https://lore.kernel.org/all/20241008183823.36676-21-samitolvanen@google.com/

Bug: 347787665
Change-Id: I979def75f67d1e140253795c0fc706133d23e506
Signed-off-by: Matthew Maurer <mmaurer@google.com>
2024-10-10 10:36:41 +00:00
Matthias Maennich
32fec317a6 Merge 8cf0b93919 ("Linux 6.12-rc2") into android-mainline
Bug: 367265496
Change-Id: I5fec4dbf7e9cd941e3fcd8adca6e0d26ba6adbfe
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-10-07 17:20:05 +00:00
Matthias Maennich
0e65cf24a0 Merge aa486552a1 ("Merge tag 'memblock-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: I4a4b6fec7b7f189f30a2ce5c650c73d3dda6945d
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-10-03 20:41:35 +00:00
Matthias Maennich
662100c8e6 Merge 88264981f2 ("Merge tag 'sched_ext-for-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: If7725ee337ef04be805a9677090bbc38b9dc3358
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-09-30 20:27:29 +00:00
Matthias Maennich
e9d92621d7 Merge 7856a56541 ("Merge tag 'mm-nonmm-stable-2024-09-21-07-52' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: Ia778d96b2e701765c170e2f4e920e850ceedec0e
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-09-30 16:20:19 +00:00
Matthias Maennich
df2ebc4bcb Merge efdfcd40ad ("Merge tag 'lkmm.2024.09.14b' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu") into android-mainline
Steps on the way to 6.12-rc1

Bug: 367265496
Change-Id: I0a0d83175270f57ba857b91e7c1c403e939fa34f
Signed-off-by: Matthias Maennich <maennich@google.com>
2024-09-27 01:47:34 +00:00
Alice Ryhl
4c66f8307a cfi: encode cfi normalized integers + kasan/gcov bug in Kconfig
There is a bug in the LLVM implementation of KASAN and GCOV that makes
these options incompatible with the CFI_ICALL_NORMALIZE_INTEGERS option.

The bug has already been fixed in llvm/clang [1] and rustc [2]. However,
Kconfig currently has no way to gate features on the LLVM version inside
rustc, so we cannot write down a precise `depends on` clause in this
case. Instead, a `def_bool` option is defined for whether
CFI_ICALL_NORMALIZE_INTEGERS is available, and its default value is set
to false when GCOV or KASAN are turned on. End users using a patched
clang/rustc can turn on the HAVE_CFI_ICALL_NORMALIZE_INTEGERS option
directly to override this.

An alternative solution is to inspect a binary created by clang or rustc
to see whether the faulty CFI tags are in the binary. This would be a
precise check, but it would involve hard-coding the *hashed* version of
the CFI tag. This is because there's no way to get clang or rustc to
output the unhased version of the CFI tag. Relying on the precise
hashing algorithm using by CFI seems too fragile, so I have not pursued
this option. Besides, this kind of hack is exactly what lead to the LLVM
bug in the first place.

If the CFI_ICALL_NORMALIZE_INTEGERS option is used without CONFIG_RUST,
then we actually can perform a precise check today: just compare the
clang version number. This works since clang and llvm are always updated
in lockstep. However, encoding this in Kconfig would give the
HAVE_CFI_ICALL_NORMALIZE_INTEGERS option a dependency on CONFIG_RUST,
which is not possible as the reverse dependency already exists.

HAVE_CFI_ICALL_NORMALIZE_INTEGERS is defined to be a `def_bool` instead
of `bool` to avoid asking end users whether they want to turn on the
option. Turning it on explicitly is something only experts should do, so
making it hard to do so is not an issue.

I added a `depends on CFI_CLANG` clause to the new Kconfig option. I'm
not sure whether that makes sense or not, but it doesn't seem to make a
big difference.

In a future kernel release, I would like to add a Kconfig option similar
to CLANG_VERSION/RUSTC_VERSION for inspecting the version of the LLVM
inside rustc. Once that feature lands, this logic will be replaced with
a precise version check. This check is not being introduced here to
avoid introducing a new _VERSION constant in a fix.

Link: https://github.com/llvm/llvm-project/pull/104826 [1]
Link: https://github.com/rust-lang/rust/pull/129373 [2]
Fixes: ce4a262098 ("cfi: add CONFIG_CFI_ICALL_NORMALIZE_INTEGERS")
Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202409231044.4f064459-oliver.sang@intel.com
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20240925-cfi-norm-kasan-fix-v1-1-0328985cdf33@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-09-26 21:27:27 +02:00
Alice Ryhl
93e34a0b5c rust: KASAN+RETHUNK requires rustc 1.83.0
When enabling both KASAN and RETHUNK, objtool emits the following
warnings:

    rust/core.o: warning: objtool: asan.module_ctor+0x13: 'naked' return found in MITIGATION_RETHUNK build
    rust/core.o: warning: objtool: asan.module_dtor+0x13: 'naked' return found in MITIGATION_RETHUNK build

This is caused by the -Zfunction-return=thunk-extern flag in rustc not
informing LLVM about the mitigation at the module level (it does so at
the function level only currently, which covers most cases, but both
are required), which means that the KASAN functions asan.module_ctor
and asan.module_dtor are generated without the rethunk mitigation.

The other mitigations that we enabled for Rust (SLS, RETPOLINE) do not
have the same bug, as they're being applied through the target-feature
functionality instead.

This is being fixed for rustc 1.83.0, so update Kconfig to reject this
configuration on older compilers.

Link: https://github.com/rust-lang/rust/pull/130824
Fixes: d7868550d5 ("x86/rust: support MITIGATION_RETHUNK")
Reported-by: Miguel Ojeda <ojeda@kernel.org>
Closes: https://lore.kernel.org/all/CANiq72myZL4_poCMuNFevtpYYc0V0embjSuKb7y=C+m3vVA_8g@mail.gmail.com/
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240926093849.1192264-1-aliceryhl@google.com
[ Reworded to add the details mentioned in the list. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-09-26 21:27:27 +02:00
Miguel Ojeda
af6017b6a3 rust: cfi: fix patchable-function-entry starting version
The `-Zpatchable-function-entry` flag is available since Rust
1.81.0, not Rust 1.80.0, i.e. commit ac7595fdb1ee ("Support for -Z
patchable-function-entry") in upstream Rust.

Fixes: ca627e6365 ("rust: cfi: add support for CFI_CLANG with Rust")
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Fiona Behrens <me@kloenk.dev>
Link: https://lore.kernel.org/r/20240925141944.277936-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-09-26 21:27:27 +02:00
Linus Torvalds
5701725692 Merge tag 'rust-6.12' of https://github.com/Rust-for-Linux/linux
Pull Rust updates from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Support 'MITIGATION_{RETHUNK,RETPOLINE,SLS}' (which cleans up
     objtool warnings), teach objtool about 'noreturn' Rust symbols and
     mimic '___ADDRESSABLE()' for 'module_{init,exit}'. With that, we
     should be objtool-warning-free, so enable it to run for all Rust
     object files.

   - KASAN (no 'SW_TAGS'), KCFI and shadow call sanitizer support.

   - Support 'RUSTC_VERSION', including re-config and re-build on
     change.

   - Split helpers file into several files in a folder, to avoid
     conflicts in it. Eventually those files will be moved to the right
     places with the new build system. In addition, remove the need to
     manually export the symbols defined there, reusing existing
     machinery for that.

   - Relax restriction on configurations with Rust + GCC plugins to just
     the RANDSTRUCT plugin.

  'kernel' crate:

   - New 'list' module: doubly-linked linked list for use with reference
     counted values, which is heavily used by the upcoming Rust Binder.

     This includes 'ListArc' (a wrapper around 'Arc' that is guaranteed
     unique for the given ID), 'AtomicTracker' (tracks whether a
     'ListArc' exists using an atomic), 'ListLinks' (the prev/next
     pointers for an item in a linked list), 'List' (the linked list
     itself), 'Iter' (an iterator over a 'List'), 'Cursor' (a cursor
     into a 'List' that allows to remove elements), 'ListArcField' (a
     field exclusively owned by a 'ListArc'), as well as support for
     heterogeneous lists.

   - New 'rbtree' module: red-black tree abstractions used by the
     upcoming Rust Binder.

     This includes 'RBTree' (the red-black tree itself), 'RBTreeNode' (a
     node), 'RBTreeNodeReservation' (a memory reservation for a node),
     'Iter' and 'IterMut' (immutable and mutable iterators), 'Cursor'
     (bidirectional cursor that allows to remove elements), as well as
     an entry API similar to the Rust standard library one.

   - 'init' module: add 'write_[pin_]init' methods and the
     'InPlaceWrite' trait. Add the 'assert_pinned!' macro.

   - 'sync' module: implement the 'InPlaceInit' trait for 'Arc' by
     introducing an associated type in the trait.

   - 'alloc' module: add 'drop_contents' method to 'BoxExt'.

   - 'types' module: implement the 'ForeignOwnable' trait for
     'Pin<Box<T>>' and improve the trait's documentation. In addition,
     add the 'into_raw' method to the 'ARef' type.

   - 'error' module: in preparation for the upcoming Rust support for
     32-bit architectures, like arm, locally allow Clippy lint for
     those.

  Documentation:

   - https://rust.docs.kernel.org has been announced, so link to it.

   - Enable rustdoc's "jump to definition" feature, making its output a
     bit closer to the experience in a cross-referencer.

   - Debian Testing now also provides recent Rust releases (outside of
     the freeze period), so add it to the list.

  MAINTAINERS:

   - Trevor is joining as reviewer of the "RUST" entry.

  And a few other small bits"

* tag 'rust-6.12' of https://github.com/Rust-for-Linux/linux: (54 commits)
  kasan: rust: Add KASAN smoke test via UAF
  kbuild: rust: Enable KASAN support
  rust: kasan: Rust does not support KHWASAN
  kbuild: rust: Define probing macros for rustc
  kasan: simplify and clarify Makefile
  rust: cfi: add support for CFI_CLANG with Rust
  cfi: add CONFIG_CFI_ICALL_NORMALIZE_INTEGERS
  rust: support for shadow call stack sanitizer
  docs: rust: include other expressions in conditional compilation section
  kbuild: rust: replace proc macros dependency on `core.o` with the version text
  kbuild: rust: rebuild if the version text changes
  kbuild: rust: re-run Kconfig if the version text changes
  kbuild: rust: add `CONFIG_RUSTC_VERSION`
  rust: avoid `box_uninit_write` feature
  MAINTAINERS: add Trevor Gross as Rust reviewer
  rust: rbtree: add `RBTree::entry`
  rust: rbtree: add cursor
  rust: rbtree: add mutable iterator
  rust: rbtree: add iterator
  rust: rbtree: add red-black tree implementation backed by the C version
  ...
2024-09-25 10:25:40 -07:00