Commit Graph

427 Commits

Author SHA1 Message Date
Greg Kroah-Hartman 8cb2595f93 Merge 6.12.35 into android16-6.12-lts
GKI (arm64) relevant 87 out of 414 changes, affecting 112 files +738/-352
  bdb71ee651 configfs: Do not override creating attribute file failure in populate_attrs() [1 file, +1/-1]
  ba789be63d io_uring: account drain memory to cgroup [1 file, +1/-1]
  c58b577cf7 io_uring/kbuf: account ring io_buffer_list memory [1 file, +1/-1]
  f78b38af35 jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata() [1 file, +3/-2]
  2429bb9fad media: v4l2-dev: fix error handling in __video_register_device() [1 file, +7/-7]
  5d8b057ed7 media: videobuf2: use sgtable-based scatterlist wrappers [1 file, +2/-2]
  b52dc88361 media: uvcvideo: Return the number of processed controls [1 file, +10/-1]
  6d2b12e7c5 media: uvcvideo: Send control events for partial succeeds [1 file, +9/-3]
  aac91ae06c media: uvcvideo: Fix deferred probing error [1 file, +19/-8]
  86d9837e46 arm64/mm: Close theoretical race where stale TLB entry remains valid [1 file, +5/-4]
  5538af3843 block: use plug request list tail for one-shot backmerge attempt [1 file, +13/-13]
  943801c380 block: Clear BIO_EMULATES_ZONE_APPEND flag on BIO completion [1 file, +1/-0]
  1c71f3cf5f cgroup,freezer: fix incomplete freezing when attaching tasks [1 file, +1/-2]
  a0890b7805 bus: firewall: Fix missing static inline annotations for stubs [1 file, +9/-6]
  5766da2237 ext4: inline: fix len overflow in ext4_prepare_inline_data [1 file, +1/-1]
  796632e6f8 ext4: fix calculation of credits for extent tree modification [1 file, +6/-5]
  4b36399711 ext4: ensure i_size is smaller than maxbytes [1 file, +2/-1]
  be5f3061a6 ext4: only dirty folios when data journaling regular files [1 file, +6/-1]
  a0b1c91ada Input: gpio-keys - fix possible concurrent access in gpio_keys_irq_timer() [1 file, +2/-0]
  fed611bd8c f2fs: fix to do sanity check on ino and xnid [1 file, +6/-0]
  aaa644e7ff f2fs: prevent kernel warning due to negative i_nlink from corrupted image [1 file, +9/-0]
  ee1b421c46 f2fs: fix to do sanity check on sit_bitmap_size [1 file, +8/-0]
  f16a797dce watchdog: fix watchdog may detect false positive of softlockup [1 file, +27/-14]
  02137179ff mm: fix ratelimit_pages update error in dirty_ratio_handler() [1 file, +1/-1]
  462eee6d42 firmware: arm_scmi: Ensure that the message-id supports fastchannel [2 files, +45/-33]
  e3cf1ef571 dm-verity: fix a memory leak if some arguments are specified multiple times [3 files, +24/-5]
  f2986bccf2 dm: lock limits when reading them [1 file, +7/-1]
  ec5f0b4412 ovl: Fix nested backing file paths [1 file, +2/-2]
  92776ca0cc remoteproc: core: Cleanup acquired resources when rproc_handle_resources() fails in rproc_attach() [1 file, +2/-3]
  f4ef928ca5 remoteproc: core: Release rproc->clean_table after rproc_attach() fails [1 file, +1/-0]
  68e58f5791 PCI: dwc: ep: Correct PBA offset in .set_msix() callback [1 file, +3/-2]
  b20701d594 PCI: Add ACS quirk for Loongson PCIe [1 file, +23/-0]
  be0cf75cbd PCI: Fix lock symmetry in pci_slot_unlock() [1 file, +2/-1]
  7b45d2401d clocksource: Fix the CPUs' choice in the watchdog per CPU verification [1 file, +1/-1]
  c05aba32a9 ACPICA: Avoid sequence overread in call to strncmp() [1 file, +1/-1]
  66613b13cd ACPI: Add missing prototype for non CONFIG_SUSPEND/CONFIG_X86 case [1 file, +8/-1]
  33cd650d38 pmdomain: core: Reset genpd->states to avoid freeing invalid data [1 file, +3/-1]
  f34e0c1556 platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all() [1 file, +1/-0]
  c519f81e9c gpiolib: of: Add polarity quirk for s5m8767 [1 file, +9/-0]
  1f152ae557 PM: runtime: fix denying of auto suspend in pm_suspend_timer_fn() [1 file, +1/-1]
  6c1151d53c tipc: use kfree_sensitive() for aead cleanup [1 file, +1/-1]
  b0e647442c f2fs: use vmalloc instead of kvmalloc in .init_{,de}compress_ctx [2 files, +15/-13]
  2d834477bb bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem() [1 file, +2/-1]
  77ff6aec7c cpufreq: scmi: Skip SCMI devices that aren't used by the CPUs [1 file, +35/-1]
  0a8446058c tcp: always seek for minimal rtt in tcp_rcv_rtt_update() [1 file, +8/-14]
  f97085d365 tcp: remove zero TCP TS samples for autotuning [1 file, +5/-5]
  89b20c406e tcp: fix initial tp->rcvq_space.space value for passive TS enabled flows [1 file, +3/-3]
  84c156a351 tcp: add receive queue awareness in tcp_rcv_space_adjust() [2 files, +5/-3]
  3a9e74d158 ipv4/route: Use this_cpu_inc() for stats on PREEMPT_RT [1 file, +4/-0]
  5eb9c50e0c net: page_pool: Don't recycle into cache on PREEMPT_RT [1 file, +4/-0]
  8b0741b167 xfrm: validate assignment of maximal possible SEQ number [1 file, +42/-10]
  8fdf2f79eb bpf: Pass the same orig_call value to trampoline functions [1 file, +1/-1]
  f0023d7a2a f2fs: fix to bail out in get_new_segment() [2 files, +6/-1]
  448dc45eea bpf: Use proper type to calculate bpf_raw_tp_null_args.mask index [1 file, +2/-2]
  78f768e36c net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions [1 file, +69/-8]
  4b3383110b software node: Correct a OOB check in software_node_get_reference_args() [1 file, +1/-1]
  b7129ef57d sock: Correct error checking condition for (assign|release)_proto_idx() [1 file, +2/-2]
  a58f0a0e99 f2fs: fix to set atomic write status more clear [3 files, +12/-2]
  b8b4b8bb34 bpf, sockmap: Fix data lost during EAGAIN retries [1 file, +2/-1]
  7c41f73b64 fs/xattr.c: fix simple_xattr_list() [1 file, +1/-0]
  2e10dc9c2a io_uring/kbuf: don't truncate end buffer for multiple buffer peeks [1 file, +4/-1]
  1a4254ab06 io_uring: fix task leak issue in io_wq_create() [1 file, +3/-1]
  4220cc0b98 nvme: always punt polled uring_cmd end_io work to task_work [1 file, +7/-14]
  f9b97d466e net_sched: sch_sfq: reject invalid perturb period [1 file, +8/-2]
  2a3ad42a57 net: clear the dst when changing skb protocol [1 file, +13/-6]
  510a29d776 mm: close theoretical race where stale TLB entries could linger [1 file, +2/-0]
  57ec081869 sched_ext, sched/core: Don't call scx_group_set_weight() prematurely from sched_create_group() [3 files, +9/-2]
  3d828519bd atm: Revert atm_account_tx() if copy_from_iter_full() fails. [3 files, +8/-1]
  47f34289d1 arm64: Restrict pagetable teardown to avoid false warning [1 file, +2/-1]
  9cf5b2a3b7 mm/hugetlb: unshare page tables during VMA split, not before [5 files, +57/-16]
  dc5f0aef9e net: Fix checksum update for ILA adj-transport [4 files, +7/-7]
  2516299184 bpf: Fix L4 csum update on IPv6 in CHECKSUM_COMPLETE [3 files, +7/-2]
  50189d9c5e erofs: remove unused trace event erofs_destroy_inode [1 file, +0/-18]
  348e541fef ipv6: remove leftover ip6 cookie initializer [1 file, +0/-2]
  3c44ebad5a ipv6: replace ipcm6_init calls with ipcm6_init_sk [4 files, +3/-29]
  6b358b3adf io_uring/sqpoll: don't put task_struct on tctx setup failure [1 file, +1/-4]
  8873080b88 workqueue: Initialize wq_isolated_cpumask in workqueue_init_early() [1 file, +2/-1]
  ac462a75fd net: netmem: fix skb_ensure_writable with unreadable skbs [1 file, +0/-3]
  61b39e189d ptp: allow reading of currently dialed frequency to succeed on free-running clocks [1 file, +2/-1]
  397c1faf8f tcp: fix tcp_packet_delayed() for tcp_is_non_sack_preventing_reopen() behavior [1 file, +25/-12]
  0d3d91c350 tipc: fix null-ptr-deref when acquiring remote ip of ethernet bearer [1 file, +2/-2]
  31d50dfe9c tcp: fix passive TFO socket having invalid NAPI ID [1 file, +3/-0]
  0f8df5d6f2 ublk: santizize the arguments from userspace when adding a device [1 file, +3/-0]
  456019adaa perf: Fix sample vs do_exit() [2 files, +16/-8]
  7335c33d62 perf: Fix cgroup state vs ERROR [1 file, +30/-21]
  fd199366bf perf/core: Fix WARN in perf_cgroup_switch() [1 file, +20/-2]
  22f935bc86 arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth() [1 file, +1/-1]

Changes in 6.12.35
	configfs: Do not override creating attribute file failure in populate_attrs()
	crypto: marvell/cesa - Do not chain submitted requests
	gfs2: move msleep to sleepable context
	crypto: qat - add shutdown handler to qat_c3xxx
	crypto: qat - add shutdown handler to qat_420xx
	crypto: qat - add shutdown handler to qat_4xxx
	crypto: qat - add shutdown handler to qat_c62x
	crypto: qat - add shutdown handler to qat_dh895xcc
	ASoC: qcom: sdm845: Add error handling in sdm845_slim_snd_hw_params()
	ASoC: meson: meson-card-utils: use of_property_present() for DT parsing
	ASoC: amd: sof_amd_sdw: Fix unlikely uninitialized variable use in create_sdw_dailinks()
	io_uring: account drain memory to cgroup
	io_uring/kbuf: account ring io_buffer_list memory
	powerpc/pseries/msi: Avoid reading PCI device registers in reduced power states
	s390/pci: Remove redundant bus removal and disable from zpci_release_device()
	s390/pci: Prevent self deletion in disable_slot()
	s390/pci: Allow re-add of a reserved but not yet removed device
	s390/pci: Serialize device addition and removal
	regulator: max20086: Fix MAX200086 chip id
	regulator: max20086: Change enable gpio to optional
	net/mlx5_core: Add error handling inmlx5_query_nic_vport_qkey_viol_cntr()
	net/mlx5: Add error handling in mlx5_query_nic_vport_node_guid()
	wifi: p54: prevent buffer-overflow in p54_rx_eeprom_readback()
	wifi: mt76: mt7925: fix host interrupt register initialization
	wifi: ath11k: fix rx completion meta data corruption
	wifi: rtw88: usb: Upload the firmware in bigger chunks
	wifi: ath11k: fix ring-buffer corruption
	NFSD: unregister filesystem in case genl_register_family() fails
	NFSD: fix race between nfsd registration and exports_proc
	NFSD: Implement FATTR4_CLONE_BLKSIZE attribute
	nfsd: nfsd4_spo_must_allow() must check this is a v4 compound request
	nfsd: Initialize ssc before laundromat_work to prevent NULL dereference
	SUNRPC: Prevent hang on NFS mount with xprtsec=[m]tls
	NFSv4: Don't check for OPEN feature support in v4.1
	fs/nfs/read: fix double-unlock bug in nfs_return_empty_folio()
	wifi: ath12k: fix ring-buffer corruption
	jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata()
	svcrdma: Unregister the device if svc_rdma_accept() fails
	wifi: rtw88: usb: Reduce control message timeout to 500 ms
	wifi: rtlwifi: disable ASPM for RTL8723BE with subsystem ID 11ad:1723
	media: ov8856: suppress probe deferral errors
	media: ov5675: suppress probe deferral errors
	media: imx335: Use correct register width for HNUM
	media: nxp: imx8-isi: better handle the m2m usage_count
	media: i2c: ds90ub913: Fix returned fmt from .set_fmt()
	media: ccs-pll: Start VT pre-PLL multiplier search from correct value
	media: ov2740: Move pm-runtime cleanup on probe-errors to proper place
	media: ccs-pll: Start OP pre-PLL multiplier search from correct value
	media: ccs-pll: Correct the upper limit of maximum op_pre_pll_clk_div
	media: ccs-pll: Check for too high VT PLL multiplier in dual PLL case
	media: cxusb: no longer judge rbuf when the write fails
	media: davinci: vpif: Fix memory leak in probe error path
	media: gspca: Add error handling for stv06xx_read_sensor()
	media: i2c: imx335: Fix frame size enumeration
	media: imagination: fix a potential memory leak in e5010_probe()
	media: intel/ipu6: Fix dma mask for non-secure mode
	media: ipu6: Remove workaround for Meteor Lake ES2
	media: mediatek: vcodec: Correct vsi_core framebuffer size
	media: omap3isp: use sgtable-based scatterlist wrappers
	media: v4l2-dev: fix error handling in __video_register_device()
	media: venus: Fix probe error handling
	media: videobuf2: use sgtable-based scatterlist wrappers
	media: vidtv: Terminating the subsequent process of initialization failure
	media: vivid: Change the siize of the composing
	media: imx-jpeg: Drop the first error frames
	media: imx-jpeg: Move mxc_jpeg_free_slot_data() ahead
	media: imx-jpeg: Reset slot data pointers when freed
	media: imx-jpeg: Cleanup after an allocation error
	media: uvcvideo: Return the number of processed controls
	media: uvcvideo: Send control events for partial succeeds
	media: uvcvideo: Fix deferred probing error
	arm64/mm: Close theoretical race where stale TLB entry remains valid
	ARM: 9447/1: arm/memremap: fix arch_memremap_can_ram_remap()
	ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
	ASoC: codecs: wcd9375: Fix double free of regulator supplies
	ASoC: codecs: wcd937x: Drop unused buck_supply
	block: use plug request list tail for one-shot backmerge attempt
	block: Clear BIO_EMULATES_ZONE_APPEND flag on BIO completion
	bus: mhi: ep: Update read pointer only after buffer is written
	bus: mhi: host: Fix conflict between power_up and SYSERR
	can: kvaser_pciefd: refine error prone echo_skb_max handling logic
	can: tcan4x5x: fix power regulator retrieval during probe
	ceph: avoid kernel BUG for encrypted inode with unaligned file size
	ceph: set superblock s_magic for IMA fsmagic matching
	cgroup,freezer: fix incomplete freezing when attaching tasks
	bus: firewall: Fix missing static inline annotations for stubs
	ata: pata_via: Force PIO for ATAPI devices on VT6415/VT6330
	ata: ahci: Disallow LPM for ASUSPRO-D840SA motherboard
	ata: ahci: Disallow LPM for Asus B550-F motherboard
	bus: fsl-mc: do not add a device-link for the UAPI used DPMCP device
	bus: fsl-mc: fix GET/SET_TAILDROP command ids
	ext4: inline: fix len overflow in ext4_prepare_inline_data
	ext4: fix calculation of credits for extent tree modification
	ext4: factor out ext4_get_maxbytes()
	ext4: ensure i_size is smaller than maxbytes
	ext4: only dirty folios when data journaling regular files
	Input: ims-pcu - check record size in ims_pcu_flash_firmware()
	Input: gpio-keys - fix possible concurrent access in gpio_keys_irq_timer()
	f2fs: fix to do sanity check on ino and xnid
	f2fs: prevent kernel warning due to negative i_nlink from corrupted image
	f2fs: fix to do sanity check on sit_bitmap_size
	hwmon: (ftsteutates) Fix TOCTOU race in fts_read()
	NFC: nci: uart: Set tty->disc_data only in success path
	net/sched: fix use-after-free in taprio_dev_notifier
	net: ftgmac100: select FIXED_PHY
	iommu/vt-d: Restore context entry setup order for aliased devices
	fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var
	EDAC/altera: Use correct write width with the INTTEST register
	fbdev: Fix fb_set_var to prevent null-ptr-deref in fb_videomode_to_var
	parisc/unaligned: Fix hex output to show 8 hex chars
	vgacon: Add check for vc_origin address range in vgacon_scroll()
	parisc: fix building with gcc-15
	clk: meson-g12a: add missing fclk_div2 to spicc
	ipc: fix to protect IPCS lookups using RCU
	watchdog: fix watchdog may detect false positive of softlockup
	RDMA/iwcm: Fix use-after-free of work objects after cm_id destruction
	mm: fix ratelimit_pages update error in dirty_ratio_handler()
	soc: qcom: pmic_glink_altmode: fix spurious DP hotplug events
	configfs-tsm-report: Fix NULL dereference of tsm_ops
	firmware: arm_scmi: Ensure that the message-id supports fastchannel
	mtd: rawnand: sunxi: Add randomizer configuration in sunxi_nfc_hw_ecc_write_chunk
	mtd: nand: sunxi: Add randomizer configuration before randomizer enable
	KVM: SVM: Clear current_vmcb during vCPU free for all *possible* CPUs
	KVM: VMX: Flush shadow VMCS on emergency reboot
	dm-mirror: fix a tiny race condition
	dm-verity: fix a memory leak if some arguments are specified multiple times
	mtd: rawnand: qcom: Fix read len for onfi param page
	ftrace: Fix UAF when lookup kallsym after ftrace disabled
	dm: lock limits when reading them
	phy: fsl-imx8mq-usb: fix phy_tx_vboost_level_from_property()
	net: ch9200: fix uninitialised access during mii_nway_restart
	KVM: s390: rename PROT_NONE to PROT_TYPE_DUMMY
	sysfb: Fix screen_info type check for VGA
	video: screen_info: Relocate framebuffers behind PCI bridges
	pwm: axi-pwmgen: fix missing separate external clock
	staging: iio: ad5933: Correct settling cycles encoding per datasheet
	mips: Add -std= flag specified in KBUILD_CFLAGS to vdso CFLAGS
	ovl: Fix nested backing file paths
	regulator: max14577: Add error check for max14577_read_reg()
	remoteproc: core: Cleanup acquired resources when rproc_handle_resources() fails in rproc_attach()
	remoteproc: core: Release rproc->clean_table after rproc_attach() fails
	remoteproc: k3-m4: Don't assert reset in detach routine
	cifs: reset connections for all channels when reconnect requested
	cifs: update dstaddr whenever channel iface is updated
	cifs: dns resolution is needed only for primary channel
	smb: client: add NULL check in automount_fullpath
	Drivers: hv: Allocate interrupt and monitor pages aligned to system page boundary
	uio_hv_generic: Use correct size for interrupt and monitor pages
	uio_hv_generic: Align ring size to system page
	PCI: cadence-ep: Correct PBA offset in .set_msix() callback
	PCI: dwc: ep: Correct PBA offset in .set_msix() callback
	PCI: Add ACS quirk for Loongson PCIe
	PCI: Fix lock symmetry in pci_slot_unlock()
	PCI: dw-rockchip: Remove PCIE_L0S_ENTRY check from rockchip_pcie_link_up()
	PCI: dw-rockchip: Fix PHY function call sequence in rockchip_pcie_phy_deinit()
	iio: accel: fxls8962af: Fix temperature scan element sign
	accel/ivpu: Improve buffer object logging
	accel/ivpu: Use firmware names from upstream repo
	accel/ivpu: Use dma_resv_lock() instead of a custom mutex
	accel/ivpu: Fix warning in ivpu_gem_bo_free()
	dummycon: Trigger redraw when switching consoles with deferred takeover
	mm/hugetlb: fix huge_pmd_unshare() vs GUP-fast race
	iio: imu: inv_icm42600: Fix temperature calculation
	iio: adc: ad7944: mask high bits on direct read
	iio: adc: ti-ads1298: Kconfig: add kfifo dependency to fix module build
	iio: adc: ad7606_spi: fix reg write value mask
	ACPICA: fix acpi operand cache leak in dswstate.c
	ASoC: amd: yc: Add quirk for Lenovo Yoga Pro 7 14ASP9
	clocksource: Fix the CPUs' choice in the watchdog per CPU verification
	power: supply: collie: Fix wakeup source leaks on device unbind
	mmc: Add quirk to disable DDR50 tuning
	ACPICA: Avoid sequence overread in call to strncmp()
	ASoC: tas2770: Power cycle amp on ISENSE/VSENSE change
	ASoC: intel/sdw_utils: Assign initial value in asoc_sdw_rt_amp_spk_rtd_init()
	ACPI: bus: Bail out if acpi_kobj registration fails
	ACPI: Add missing prototype for non CONFIG_SUSPEND/CONFIG_X86 case
	ACPICA: fix acpi parse and parseext cache leaks
	ACPICA: Apply pack(1) to union aml_resource
	ALSA: hda: cs35l41: Fix swapped l/r audio channels for Acer Helios laptops
	power: supply: bq27xxx: Retrieve again when busy
	pmdomain: core: Reset genpd->states to avoid freeing invalid data
	ACPICA: utilities: Fix overflow check in vsnprintf()
	platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all()
	ASoC: tegra210_ahub: Add check to of_device_get_match_data()
	Make 'cc-option' work correctly for the -Wno-xyzzy pattern
	gpiolib: of: Add polarity quirk for s5m8767
	PM: runtime: fix denying of auto suspend in pm_suspend_timer_fn()
	power: supply: max17040: adjust thermal channel scaling
	ACPI: battery: negate current when discharging
	net: macb: Check return value of dma_set_mask_and_coherent()
	net: lan743x: Modify the EEPROM and OTP size for PCI1xxxx devices
	tipc: use kfree_sensitive() for aead cleanup
	f2fs: use vmalloc instead of kvmalloc in .init_{,de}compress_ctx
	bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem()
	Bluetooth: btusb: Add new VID/PID 13d3/3584 for MT7922
	i2c: designware: Invoke runtime suspend on quick slave re-registration
	wifi: mt76: mt7996: drop fragments with multicast or broadcast RA
	emulex/benet: correct command version selection in be_cmd_get_stats()
	Bluetooth: btusb: Add new VID/PID 13d3/3630 for MT7925
	wifi: mt76: mt76x2: Add support for LiteOn WN4516R,WN4519R
	wifi: mt76: mt7921: add 160 MHz AP for mt7922 device
	wifi: mt76: mt7925: introduce thermal protection
	wifi: mac80211: validate SCAN_FLAG_AP in scan request during MLO
	sctp: Do not wake readers in __sctp_write_space()
	libbpf/btf: Fix string handling to support multi-split BTF
	cpufreq: scmi: Skip SCMI devices that aren't used by the CPUs
	i2c: tegra: check msg length in SMBUS block read
	i2c: npcm: Add clock toggle recovery
	clk: qcom: gcc-x1e80100: Set FORCE MEM CORE for UFS clocks
	net: dlink: add synchronization for stats update
	wifi: ath12k: fix macro definition HAL_RX_MSDU_PKT_LENGTH_GET
	wifi: ath12k: fix a possible dead lock caused by ab->base_lock
	wifi: ath11k: Fix QMI memory reuse logic
	iommu/amd: Allow matching ACPI HID devices without matching UIDs
	wifi: rtw89: leave idle mode when setting WEP encryption for AP mode
	tcp: always seek for minimal rtt in tcp_rcv_rtt_update()
	tcp: remove zero TCP TS samples for autotuning
	tcp: fix initial tp->rcvq_space.space value for passive TS enabled flows
	tcp: add receive queue awareness in tcp_rcv_space_adjust()
	x86/sgx: Prevent attempts to reclaim poisoned pages
	ipv4/route: Use this_cpu_inc() for stats on PREEMPT_RT
	net: page_pool: Don't recycle into cache on PREEMPT_RT
	xfrm: validate assignment of maximal possible SEQ number
	net: atlantic: generate software timestamp just before the doorbell
	pinctrl: armada-37xx: propagate error from armada_37xx_pmx_set_by_name()
	pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get_direction()
	bpf: Pass the same orig_call value to trampoline functions
	net: stmmac: generate software timestamp just before the doorbell
	pinctrl: armada-37xx: propagate error from armada_37xx_pmx_gpio_set_direction()
	libbpf: Check bpf_map_skeleton link for NULL
	pinctrl: armada-37xx: propagate error from armada_37xx_gpio_get()
	net: mlx4: add SOF_TIMESTAMPING_TX_SOFTWARE flag when getting ts info
	net: vertexcom: mse102x: Return code for mse102x_rx_pkt_spi
	wireless: purelifi: plfxlc: fix memory leak in plfxlc_usb_wreq_asyn()
	wifi: mac80211: do not offer a mesh path if forwarding is disabled
	clk: rockchip: rk3036: mark ddrphy as critical
	hid-asus: check ROG Ally MCU version and warn
	wifi: iwlwifi: mvm: fix beacon CCK flag
	f2fs: fix to bail out in get_new_segment()
	netfilter: nft_set_pipapo: clamp maximum map bucket size to INT_MAX
	libbpf: Add identical pointer detection to btf_dedup_is_equiv()
	scsi: lpfc: Fix lpfc_check_sli_ndlp() handling for GEN_REQUEST64 commands
	scsi: smartpqi: Add new PCI IDs
	iommu/amd: Ensure GA log notifier callbacks finish running before module unload
	wifi: iwlwifi: pcie: make sure to lock rxq->read
	wifi: rtw89: 8922a: fix TX fail with wrong VCO setting
	wifi: mac80211_hwsim: Prevent tsf from setting if beacon is disabled
	netdevsim: Mark NAPI ID on skb in nsim_rcv
	net/mlx5: HWS, Fix IP version decision
	bpf: Use proper type to calculate bpf_raw_tp_null_args.mask index
	wifi: mac80211: VLAN traffic in multicast path
	Revert "mac80211: Dynamically set CoDel parameters per station"
	wifi: iwlwifi: Add missing MODULE_FIRMWARE for Qu-c0-jf-b0
	net: bridge: mcast: update multicast contex when vlan state is changed
	net: bridge: mcast: re-implement br_multicast_{enable, disable}_port functions
	vxlan: Do not treat dst cache initialization errors as fatal
	bnxt_en: Remove unused field "ref_count" in struct bnxt_ulp
	wifi: ath12k: using msdu end descriptor to check for rx multicast packets
	net: ethernet: ti: am65-cpsw: handle -EPROBE_DEFER
	software node: Correct a OOB check in software_node_get_reference_args()
	isofs: fix Y2038 and Y2156 issues in Rock Ridge TF entry
	pinctrl: mcp23s08: Reset all pins to input at probe
	wifi: ath12k: fix failed to set mhi state error during reboot with hardware grouping
	scsi: lpfc: Use memcpy() for BIOS version
	sock: Correct error checking condition for (assign|release)_proto_idx()
	i40e: fix MMIO write access to an invalid page in i40e_clear_hw
	ixgbe: Fix unreachable retry logic in combined and byte I2C write functions
	RDMA/hns: initialize db in update_srq_db()
	ice: fix check for existing switch rule
	usbnet: asix AX88772: leave the carrier control to phylink
	f2fs: fix to set atomic write status more clear
	bpf, sockmap: Fix data lost during EAGAIN retries
	net: ethernet: cortina: Use TOE/TSO on all TCP
	octeontx2-pf: Add error log forcn10k_map_unmap_rq_policer()
	wifi: ath11k: determine PM policy based on machine model
	wifi: ath12k: fix link valid field initialization in the monitor Rx
	wifi: ath12k: fix incorrect CE addresses
	wifi: ath12k: Pass correct values of center freq1 and center freq2 for 160 MHz
	net/mlx5: HWS, Harden IP version definer checks
	fbcon: Make sure modelist not set on unregistered console
	watchdog: da9052_wdt: respect TWDMIN
	bus: fsl-mc: increase MC_CMD_COMPLETION_TIMEOUT_MS value
	ARM: OMAP2+: Fix l4ls clk domain handling in STANDBY
	tee: Prevent size calculation wraparound on 32-bit kernels
	Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first"
	fs/xattr.c: fix simple_xattr_list()
	platform/x86/amd: pmc: Clear metrics table at start of cycle
	platform/x86/amd: pmf: Prevent amd_pmf_tee_deinit() from running twice
	platform/x86: dell_rbu: Fix list usage
	platform/x86: dell_rbu: Stop overwriting data buffer
	powerpc/vdso: Fix build of VDSO32 with pcrel
	powerpc/eeh: Fix missing PE bridge reconfiguration during VFIO EEH recovery
	io_uring/kbuf: don't truncate end buffer for multiple buffer peeks
	io_uring: fix task leak issue in io_wq_create()
	drivers/rapidio/rio_cm.c: prevent possible heap overwrite
	platform/loongarch: laptop: Get brightness setting from EC on probe
	platform/loongarch: laptop: Unregister generic_sub_drivers on exit
	platform/loongarch: laptop: Add backlight power control support
	LoongArch: vDSO: Correctly use asm parameters in syscall wrappers
	LoongArch: Avoid using $r0/$r1 as "mask" for csrxchg
	LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset()
	jffs2: check that raw node were preallocated before writing summary
	jffs2: check jffs2_prealloc_raw_node_refs() result in few other places
	cifs: deal with the channel loading lag while picking channels
	cifs: serialize other channels when query server interfaces is pending
	cifs: do not disable interface polling on failure
	smb: improve directory cache reuse for readdir operations
	scsi: storvsc: Increase the timeouts to storvsc_timeout
	scsi: s390: zfcp: Ensure synchronous unit_add
	nvme: always punt polled uring_cmd end_io work to task_work
	net_sched: sch_sfq: reject invalid perturb period
	net: clear the dst when changing skb protocol
	mm: close theoretical race where stale TLB entries could linger
	udmabuf: use sgtable-based scatterlist wrappers
	x86/virt/tdx: Avoid indirect calls to TDX assembly functions
	selftests/x86: Add a test to detect infinite SIGTRAP handler loop
	ksmbd: fix null pointer dereference in destroy_previous_session
	platform/x86: ideapad-laptop: use usleep_range() for EC polling
	selinux: fix selinux_xfrm_alloc_user() to set correct ctx_len
	platform/x86/intel-uncore-freq: Fail module load when plat_info is NULL
	sched_ext, sched/core: Don't call scx_group_set_weight() prematurely from sched_create_group()
	atm: Revert atm_account_tx() if copy_from_iter_full() fails.
	wifi: rtw89: phy: add dummy C2H event handler for report of TAS power
	cpufreq/amd-pstate: Add missing NULL ptr check in amd_pstate_update
	Input: sparcspkr - avoid unannotated fall-through
	wifi: ath12k: Clear affinity hint before calling ath12k_pci_free_irq() in error path
	wifi: cfg80211: init wiphy_work before allocating rfkill fails
	arm64: Restrict pagetable teardown to avoid false warning
	ALSA: usb-audio: Rename ALSA kcontrol PCM and PCM1 for the KTMicro sound card
	ALSA: hda/intel: Add Thinkpad E15 to PM deny list
	ALSA: hda/realtek - Add mute LED support for HP Victus 16-s1xxx and HP Victus 15-fa1xxx
	ALSA: hda/realtek: enable headset mic on Latitude 5420 Rugged
	ALSA: hda/realtek: Fix built-in mic on ASUS VivoBook X513EA
	ALSA: hda/realtek: Add quirk for Asus GU605C
	iio: accel: fxls8962af: Fix temperature calculation
	mm/hugetlb: unshare page tables during VMA split, not before
	drm/amdgpu: read back register after written for VCN v4.0.5
	kbuild: rust: add rustc-min-version support function
	rust: compile libcore with edition 2024 for 1.87+
	net: Fix checksum update for ILA adj-transport
	bpf: Fix L4 csum update on IPv6 in CHECKSUM_COMPLETE
	erofs: remove unused trace event erofs_destroy_inode
	nfsd: use threads array as-is in netlink interface
	sunrpc: handle SVC_GARBAGE during svc auth processing as auth error
	drm/v3d: Avoid NULL pointer dereference in `v3d_job_update_stats()`
	Kunit to check the longest symbol length
	x86/tools: Drop duplicate unlikely() definition in insn_decoder_test.c
	ipv6: remove leftover ip6 cookie initializer
	ipv6: replace ipcm6_init calls with ipcm6_init_sk
	smb: fix secondary channel creation issue with kerberos by populating hostname when adding channels
	drm/msm/disp: Correct porch timing for SDM845
	drm/msm/dsi/dsi_phy_10nm: Fix missing initial VCO rate
	drm/msm: Fix CP_RESET_CONTEXT_STATE bitfield names
	drm/msm/a7xx: Call CP_RESET_CONTEXT_STATE
	drm/ssd130x: fix ssd132x_clear_screen() columns
	ionic: Prevent driver/fw getting out of sync on devcmd(s)
	drm/nouveau/bl: increase buffer size to avoid truncate warning
	drm/i915/pmu: Fix build error with GCOV and AutoFDO enabled
	hwmon: (occ) Rework attribute registration for stack usage
	hwmon: (occ) fix unaligned accesses
	hwmon: (ltc4282) avoid repeated register write
	pldmfw: Select CRC32 when PLDMFW is selected
	aoe: clean device rq_list in aoedev_downdev()
	io_uring/sqpoll: don't put task_struct on tctx setup failure
	net: ice: Perform accurate aRFS flow match
	ice: fix eswitch code memory leak in reset scenario
	e1000e: set fixed clock frequency indication for Nahum 11 and Nahum 13
	workqueue: Initialize wq_isolated_cpumask in workqueue_init_early()
	ksmbd: add free_transport ops in ksmbd connection
	net: netmem: fix skb_ensure_writable with unreadable skbs
	bnxt_en: Fix double invocation of bnxt_ulp_stop()/bnxt_ulp_start()
	eth: bnxt: fix out-of-range access of vnic_info array
	bnxt_en: Add a helper function to configure MRU and RSS
	bnxt_en: Update MRU and RSS table of RSS contexts on queue reset
	ptp: fix breakage after ptp_vclock_in_use() rework
	ptp: allow reading of currently dialed frequency to succeed on free-running clocks
	wifi: carl9170: do not ping device which has failed to load firmware
	mpls: Use rcu_dereference_rtnl() in mpls_route_input_rcu().
	atm: atmtcp: Free invalid length skb in atmtcp_c_send().
	tcp: fix tcp_packet_delayed() for tcp_is_non_sack_preventing_reopen() behavior
	tipc: fix null-ptr-deref when acquiring remote ip of ethernet bearer
	tcp: fix passive TFO socket having invalid NAPI ID
	eth: fbnic: avoid double free when failing to DMA-map FW msg
	net: lan743x: fix potential out-of-bounds write in lan743x_ptp_io_event_clock_get()
	ublk: santizize the arguments from userspace when adding a device
	drm/xe: Wire up device shutdown handler
	drm/xe/gt: Update handling of xe_force_wake_get return
	drm/xe/bmg: Update Wa_16023588340
	calipso: Fix null-ptr-deref in calipso_req_{set,del}attr().
	mlxbf_gige: return EPROBE_DEFER if PHY IRQ is not available
	net: atm: add lec_mutex
	net: atm: fix /proc/net/atm/lec handling
	EDAC/amd64: Correct number of UMCs for family 19h models 70h-7fh
	dt-bindings: i2c: nvidia,tegra20-i2c: Specify the required properties
	smb: Log an error when close_all_cached_dirs fails
	serial: sh-sci: Clean sci_ports[0] after at earlycon exit
	serial: sh-sci: Increment the runtime usage counter for the earlycon device
	smb: client: fix first command failure during re-negotiation
	smb: client: fix max_sge overflow in smb_extract_folioq_to_rdma()
	s390/pci: Fix __pcilg_mio_inuser() inline assembly
	perf: Fix sample vs do_exit()
	perf: Fix cgroup state vs ERROR
	perf/core: Fix WARN in perf_cgroup_switch()
	arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth()
	scsi: elx: efct: Fix memory leak in efct_hw_parse_filter()
	RISC-V: KVM: Fix the size parameter check in SBI SFENCE calls
	RISC-V: KVM: Don't treat SBI HFENCE calls as NOPs
	gpio: pca953x: fix wrong error probe return value
	perf evsel: Missed close() when probing hybrid core PMUs
	perf test: Directory file descriptor leak
	gpio: mlxbf3: only get IRQ for device instance 0
	cifs: Remove duplicate fattr->cf_dtype assignment from wsl_to_fattr() function
	bpftool: Fix cgroup command to only show cgroup bpf programs
	Linux 6.12.35

Change-Id: Ida57d269272a624bedb979bfad0b3c5e7df7e846
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-07-10 16:01:38 +00:00
Huacai Chen d46f8f1ede LoongArch: Avoid using $r0/$r1 as "mask" for csrxchg
commit 52c22661c79a7b6af7fad9f77200738fc6c51878 upstream.

When building kernel with LLVM there are occasionally such errors:

In file included from ./include/linux/spinlock.h:59:
In file included from ./include/linux/irqflags.h:17:
arch/loongarch/include/asm/irqflags.h:38:3: error: must not be $r0 or $r1
   38 |                 "csrxchg %[val], %[mask], %[reg]\n\t"
      |                 ^
<inline asm>:1:16: note: instantiated into assembly here
    1 |         csrxchg $a1, $ra, 0
      |                       ^

To prevent the compiler from allocating $r0 or $r1 for the "mask" of the
csrxchg instruction, the 'q' constraint must be used but Clang < 21 does
not support it. So force to use $t0 in the inline asm, in order to avoid
using $r0/$r1 while keeping the backward compatibility.

Cc: stable@vger.kernel.org
Link: https://github.com/llvm/llvm-project/pull/141037
Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
Suggested-by: WANG Rui <wangrui@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-06-27 11:11:37 +01:00
Thomas Weißschuh c7a6bd2019 LoongArch: vDSO: Correctly use asm parameters in syscall wrappers
commit e242bbbb6d7ac7556aa1e358294dc7e3c82cc902 upstream.

The syscall wrappers use the "a0" register for two different register
variables, both the first argument and the return value. Here the "ret"
variable is used as both input and output while the argument register is
only used as input. Clang treats the conflicting input parameters as an
undefined behaviour and optimizes away the argument assignment.

The code seems to work by chance for the most part today but that may
change in the future. Specifically clock_gettime_fallback() fails with
clockids from 16 to 23, as implemented by the upcoming auxiliary clocks.

Switch the "ret" register variable to a pure output, similar to the
other architectures' vDSO code. This works in both clang and GCC.

Link: https://lore.kernel.org/lkml/20250602102825-42aa84f0-23f1-4d10-89fc-e8bbaffd291a@linutronix.de/
Link: https://lore.kernel.org/lkml/20250519082042.742926976@linutronix.de/
Fixes: c6b99bed6b ("LoongArch: Add VDSO and VSYSCALL support")
Fixes: 18efd0b10e ("LoongArch: vDSO: Wire up getrandom() vDSO implementation")
Cc: stable@vger.kernel.org
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
Reviewed-by: WANG Xuerui <git@xen0n.name>
Reviewed-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-06-27 11:11:37 +01:00
Greg Kroah-Hartman dba4f359fc Merge 6.12.30 into android16-6.12-lts
GKI (arm64) relevant 18 out of 143 changes, affecting 32 files +213/-83
  10d1496f85 fs/xattr.c: fix simple_xattr_list to always include security.* xattrs [1 file, +24/-0]
  bc4c54cbb4 binfmt_elf: Move brk for static PIE even if ASLR disabled [1 file, +47/-24]
  f0d70d8dca cgroup/cpuset: Extend kthread_is_per_cpu() check to all PF_NO_SETAFFINITY tasks [1 file, +4/-2]
  517c11fe4f tracing: probes: Fix a possible race in trace_probe_log APIs [5 files, +27/-3]
  94e7272b63 HID: uclogic: Add NULL check in uclogic_input_configured() [1 file, +4/-3]
  28826a89fd Bluetooth: MGMT: Fix MGMT_OP_ADD_DEVICE invalid device flags [1 file, +6/-3]
  d1365ca80b net_sched: Flush gso_skb list too during ->change() [7 files, +21/-6]
  ddfa034da3 nvme-pci: make nvme_pci_npages_prp() __always_inline [1 file, +1/-1]
  a3c147040b nvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable [1 file, +2/-0]
  c88f4ff535 ALSA: usb-audio: Add sample rate quirk for Audioengine D1 [1 file, +2/-0]
  93152dac0b ALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB Camera [1 file, +2/-0]
  fe1bebd0ed dma-buf: insert memory barrier before updating num_fences [1 file, +3/-2]
  7d353da580 ftrace: Fix preemption accounting for stacktrace trigger command [1 file, +1/-1]
  bffc3038a2 scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer [3 files, +7/-2]
  20d6e621be ring-buffer: Fix persistent buffer when commit page is the reader page [1 file, +5/-3]
  fe0756daad mm: userfaultfd: correct dirty flags set for both present and swap pte [1 file, +10/-2]
  74953f93f4 mm/page_alloc: fix race condition in unaccepted memory handling [1 file, +0/-23]
  5924b32446 usb: typec: ucsi: displayport: Fix deadlock [3 files, +47/-8]

Changes in 6.12.30
	arm64: dts: rockchip: Assign RT5616 MCLK rate on rk3588-friendlyelec-cm3588
	fs/xattr.c: fix simple_xattr_list to always include security.* xattrs
	drivers/platform/x86/amd: pmf: Check for invalid sideloaded Smart PC Policies
	drivers/platform/x86/amd: pmf: Check for invalid Smart PC Policies
	riscv: dts: sophgo: fix DMA data-width configuration for CV18xx
	binfmt_elf: Move brk for static PIE even if ASLR disabled
	platform/x86/amd/pmc: Declare quirk_spurious_8042 for MECHREVO Wujie 14XA (GX4HRXL)
	platform/x86: asus-wmi: Fix wlan_ctrl_by_user detection
	arm64: dts: imx8mp-var-som: Fix LDO5 shutdown causing SD card timeout
	cgroup/cpuset: Extend kthread_is_per_cpu() check to all PF_NO_SETAFFINITY tasks
	tracing: probes: Fix a possible race in trace_probe_log APIs
	tpm: tis: Double the timeout B to 4s
	uio_hv_generic: Fix sysfs creation path for ring buffer
	KVM: Add member to struct kvm_gfn_range to indicate private/shared
	KVM: x86/mmu: Prevent installing hugepages when mem attributes are changing
	iio: adc: ad7266: Fix potential timestamp alignment issue.
	iio: chemical: pms7003: use aligned_s64 for timestamp
	iio: pressure: mprls0025pa: use aligned_s64 for timestamp
	drm/amd: Add Suspend/Hibernate notification callback support
	Revert "drm/amd: Stop evicting resources on APUs in suspend"
	xhci: dbc: Improve performance by removing delay in transfer event polling.
	xhci: dbc: Avoid event polling busyloop if pending rx transfers are inactive.
	iio: adc: ad7768-1: Fix insufficient alignment of timestamp.
	iio: chemical: sps30: use aligned_s64 for timestamp
	virtio_ring: add a func argument 'recycle_done' to virtqueue_reset()
	virtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx
	RDMA/rxe: Fix slab-use-after-free Read in rxe_queue_cleanup bug
	HID: thrustmaster: fix memory leak in thrustmaster_interrupts()
	HID: uclogic: Add NULL check in uclogic_input_configured()
	nfs: handle failure of nfs_get_lock_context in unlock path
	spi: loopback-test: Do not split 1024-byte hexdumps
	RDMA/core: Fix "KASAN: slab-use-after-free Read in ib_register_device" problem
	Bluetooth: MGMT: Fix MGMT_OP_ADD_DEVICE invalid device flags
	net_sched: Flush gso_skb list too during ->change()
	tools/net/ynl: ethtool: fix crash when Hardware Clock info is missing
	mctp: no longer rely on net->dev_index_head[]
	net: mctp: Don't access ifa_index when missing
	selftests: ncdevmem: Redirect all non-payload output to stderr
	selftests: ncdevmem: Separate out dmabuf provider
	selftests: ncdevmem: Unify error handling
	selftests: ncdevmem: Make client_ip optional
	selftests: ncdevmem: Switch to AF_INET6
	tests/ncdevmem: Fix double-free of queue array
	net: mctp: Ensure keys maintain only one ref to corresponding dev
	ALSA: seq: Fix delivery of UMP events to group ports
	ALSA: ump: Fix a typo of snd_ump_stream_msg_device_info
	net: cadence: macb: Fix a possible deadlock in macb_halt_tx.
	net: dsa: sja1105: discard incoming frames in BR_STATE_LISTENING
	nvme-pci: make nvme_pci_npages_prp() __always_inline
	nvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable
	ALSA: sh: SND_AICA should depend on SH_DMA_API
	net: dsa: b53: prevent standalone from trying to forward to other ports
	vsock/test: Fix occasional failure in SIOCOUTQ tests
	net/mlx5e: Disable MACsec offload for uplink representor profile
	qlcnic: fix memory leak in qlcnic_sriov_channel_cfg_cmd()
	regulator: max20086: fix invalid memory access
	drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value
	netlink: specs: tc: fix a couple of attribute names
	netlink: specs: tc: all actions are indexed arrays
	octeontx2-pf: macsec: Fix incorrect max transmit size in TX secy
	net: ethernet: mtk_eth_soc: fix typo for declaration MT7988 ESW capability
	octeontx2-af: Fix CGX Receive counters
	octeontx2-pf: Do not reallocate all ntuple filters
	wifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request
	mlxsw: spectrum_router: Fix use-after-free when deleting GRE net devices
	net/tls: fix kernel panic when alloc_page failed
	tsnep: fix timestamping with a stacked DSA driver
	NFSv4/pnfs: Reset the layout state after a layoutreturn
	dmaengine: Revert "dmaengine: dmatest: Fix dmatest waiting less when interrupted"
	sched_ext: bpf_iter_scx_dsq_new() should always initialize iterator
	udf: Make sure i_lenExtents is uptodate on inode eviction
	HID: bpf: abort dispatch if device destroyed
	LoongArch: Prevent cond_resched() occurring within kernel-fpu
	LoongArch: Move __arch_cpu_idle() to .cpuidle.text section
	LoongArch: Save and restore CSR.CNTC for hibernation
	LoongArch: Fix MAX_REG_OFFSET calculation
	LoongArch: uprobes: Remove user_{en,dis}able_single_step()
	LoongArch: uprobes: Remove redundant code about resume_era
	btrfs: fix discard worker infinite loop after disabling discard
	btrfs: fix folio leak in submit_one_async_extent()
	btrfs: add back warning for mount option commit values exceeding 300
	Revert "drm/amd/display: Hardware cursor changes color when switched to software cursor"
	drm/amdgpu: fix incorrect MALL size for GFX1151
	drm/amdgpu: csa unmap use uninterruptible lock
	drm/amd/display: Correct the reply value when AUX write incomplete
	drm/amd/display: Avoid flooding unnecessary info messages
	MAINTAINERS: Update Alexey Makhalov's email address
	gpio: pca953x: fix IRQ storm on system wake up
	ACPI: PPTT: Fix processor subtable walk
	ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2()
	ALSA: usb-audio: Add sample rate quirk for Audioengine D1
	ALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB Camera
	dma-buf: insert memory barrier before updating num_fences
	hv_netvsc: Use vmbus_sendpacket_mpb_desc() to send VMBus messages
	hv_netvsc: Preserve contiguous PFN grouping in the page buffer array
	hv_netvsc: Remove rmsg_pgcnt
	arm64: dts: amlogic: dreambox: fix missing clkc_audio node
	arm64: dts: rockchip: Remove overdrive-mode OPPs from RK3588J SoC dtsi
	Drivers: hv: Allow vmbus_sendpacket_mpb_desc() to create multiple ranges
	Drivers: hv: vmbus: Remove vmbus_sendpacket_pagebuffer()
	kbuild: Disable -Wdefault-const-init-unsafe
	ftrace: Fix preemption accounting for stacktrace trigger command
	ftrace: Fix preemption accounting for stacktrace filter command
	tracing: samples: Initialize trace_array_printk() with the correct function
	phy: tegra: xusb: Use a bitmask for UTMI pad power state tracking
	phy: Fix error handling in tegra_xusb_port_init
	phy: renesas: rcar-gen3-usb2: Fix role detection on unbind/bind
	phy: renesas: rcar-gen3-usb2: Set timing registers only once
	scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer
	smb: client: fix memory leak during error handling for POSIX mkdir
	spi: tegra114: Use value to check for invalid delays
	tpm: Mask TPM RC in tpm2_start_auth_session()
	wifi: mt76: disable napi on driver removal
	ring-buffer: Fix persistent buffer when commit page is the reader page
	net: qede: Initialize qede_ll_ops with designated initializer
	mm: userfaultfd: correct dirty flags set for both present and swap pte
	dmaengine: ti: k3-udma: Add missing locking
	dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of a local copy
	dmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs
	dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines
	dmaengine: idxd: fix memory leak in error handling path of idxd_setup_groups
	dmaengine: idxd: Add missing cleanup for early error out in idxd_setup_internals
	dmaengine: idxd: Add missing cleanups in cleanup internals
	dmaengine: idxd: Add missing idxd cleanup to fix memory leak in remove call
	dmaengine: idxd: fix memory leak in error handling path of idxd_alloc
	dmaengine: idxd: fix memory leak in error handling path of idxd_pci_probe
	dmaengine: idxd: Refactor remove call with idxd_cleanup() helper
	CIFS: New mount option for cifs.upcall namespace resolution
	drm/xe/gsc: do not flush the GSC worker from the reset path
	mm/page_alloc: fix race condition in unaccepted memory handling
	accel/ivpu: Rename ivpu_log_level to fw_log_level
	accel/ivpu: Reset fw log on cold boot
	accel/ivpu: Refactor functions in ivpu_fw_log.c
	accel/ivpu: Fix fw log printing
	iio: light: opt3001: fix deadlock due to concurrent flag access
	Bluetooth: btnxpuart: Fix kernel panic during FW release
	drm/fbdev-dma: Support struct drm_driver.fbdev_probe
	drm/panel-mipi-dbi: Run DRM default client setup
	drm/tiny: panel-mipi-dbi: Use drm_client_setup_with_fourcc()
	usb: typec: ucsi: displayport: Fix deadlock
	phy: tegra: xusb: remove a stray unlock
	drm/amdgpu: fix pm notifier handling
	Linux 6.12.30

Change-Id: I4fefed85c02f1ed826b7ee014700b80c10300bb5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-06-05 11:53:12 +00:00
Tiezhu Yang 12f69c4e30 LoongArch: uprobes: Remove redundant code about resume_era
commit 12614f794274f63fbdfe76771b2b332077d63848 upstream.

arch_uprobe_skip_sstep() returns true if instruction was emulated, that
is to say, there is no need to single step for the emulated instructions.
regs->csr_era will point to the destination address directly after the
exception, so the resume_era related code is redundant, just remove them.

Cc: stable@vger.kernel.org
Fixes: 19bc6cb640 ("LoongArch: Add uprobes support")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-05-22 14:29:45 +02:00
Huacai Chen c92b99c4c0 LoongArch: Fix MAX_REG_OFFSET calculation
commit 90436d234230e9a950ccd87831108b688b27a234 upstream.

Fix MAX_REG_OFFSET calculation, make it point to the last register
in 'struct pt_regs' and not to the marker itself, which could allow
regs_get_register() to return an invalid offset.

Cc: stable@vger.kernel.org
Fixes: 803b0fc5c3 ("LoongArch: Add process management")
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-05-22 14:29:45 +02: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
Tiezhu Yang 93b7872d33 LoongArch: Handle fp, lsx, lasx and lbt assembly symbols
commit 2ef174b13344b3b4554d3d28e6f9e2a2c1d3138f upstream.

Like the other relevant symbols, export some fp, lsx, lasx and lbt
assembly symbols and put the function declarations in header files
rather than source files.

While at it, use "asmlinkage" for the other existing C prototypes
of assembly functions and also do not use the "extern" keyword with
function declarations according to the document coding-style.rst.

Cc: stable@vger.kernel.org # 6.6+
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-05-02 07:59:07 +02:00
Tiezhu Yang a556bb5178 LoongArch: Make regs_irqs_disabled() more clear
[ Upstream commit bb0511d59db9b3e40c8d51f0d151ccd0fd44071d ]

In the current code, the definition of regs_irqs_disabled() is actually
"!(regs->csr_prmd & CSR_CRMD_IE)" because arch_irqs_disabled_flags() is
defined as "!(flags & CSR_CRMD_IE)", it looks a little strange.

Define regs_irqs_disabled() as !(regs->csr_prmd & CSR_PRMD_PIE) directly
to make it more clear, no functional change.

While at it, the return value of regs_irqs_disabled() is true or false,
so change its type to reflect that and also make it always inline.

Fixes: 803b0fc5c3 ("LoongArch: Add process management")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-05-02 07:59:04 +02:00
Greg Kroah-Hartman 731631243e Merge ca8bed31ed ("ksmbd: fix null pointer dereference in alloc_preauth_hash()") into android16-6.12
Steps on the way to 6.12.23

Change-Id: I6a9dca651d1ea25811d70cb902debb45a951ef8c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-29 09:21:46 -07:00
Greg Kroah-Hartman 4e65b09635 Merge 77a5ed6b03 ("platform/x86/amd/pmf: Update PMF Driver for Compatibility with new PMF-TA") into android16-6.12
Steps on the way to 6.12.23

Change-Id: Ia4e42360874d99819127adfdbb6078e166f7377c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-24 10:47:20 -07:00
Greg Kroah-Hartman b3fb80bdc6 Merge 6.12.19 into android16-6.12
GKI (arm64) relevant 48 out of 271 changes, affecting 92 files +576/-223
  5b414ed3bb Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'" [1 file, +2/-2]
  48a934fc47 Revert "mm/page_alloc.c: don't show protection in zone's ->lowmem_reserve[] for empty zone" [1 file, +1/-2]
  88310caff6 Bluetooth: Add check for mgmt_alloc_skb() in mgmt_remote_name() [1 file, +2/-0]
  7841180342 Bluetooth: Add check for mgmt_alloc_skb() in mgmt_device_connected() [1 file, +3/-0]
  2d448dbd47 userfaultfd: do not block on locking a large folio with raised refcount [1 file, +16/-1]
  f57e89c1cb block: fix conversion of GPT partition name to 7-bit [1 file, +1/-1]
  9426f38372 mm/page_alloc: fix uninitialized variable [1 file, +1/-0]
  79636d2981 mm: abort vma_modify() on merge out of memory failure [1 file, +8/-4]
  605f53f13b mm: don't skip arch_sync_kernel_mappings() in error paths [2 files, +6/-4]
  9ed33c7bac mm: fix finish_fault() handling for large folios [1 file, +10/-5]
  576a2f4c43 hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio [1 file, +4/-1]
  2e66d69941 mm: memory-hotplug: check folio ref count first in do_migrate_range [1 file, +7/-13]
  3c63fb6ef7 nvme-pci: use sgls for all user requests if possible [2 files, +13/-4]
  9dedafd86e nvme-ioctl: fix leaked requests on mapping error [1 file, +8/-4]
  084819b0d8 net: gso: fix ownership in __udp_gso_segment [1 file, +6/-2]
  1688acf477 perf/core: Fix pmus_lock vs. pmus_srcu ordering [1 file, +2/-2]
  a899adf706 HID: hid-steam: Fix use-after-free when detaching device [1 file, +1/-1]
  8aa8a40c76 ppp: Fix KMSAN uninit-value warning with bpf [1 file, +19/-9]
  b71cd95764 ethtool: linkstate: migrate linkstate functions to support multi-PHY setups [1 file, +15/-8]
  9c1d09cdbc net: ethtool: plumb PHY stats to PHY drivers [7 files, +167/-2]
  639c703529 net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device [9 files, +19/-18]
  30e8aee778 vlan: enforce underlying device type [1 file, +2/-1]
  5d609f0d2f exfat: fix just enough dentries but allocate a new cluster to dir [1 file, +1/-1]
  c897b8ec46 exfat: fix soft lockup in exfat_clear_bitmap [3 files, +16/-7]
  611015122d exfat: short-circuit zero-byte writes in exfat_file_write_iter [1 file, +1/-1]
  2b484789e9 net-timestamp: support TCP GSO case for a few missing flags [1 file, +7/-4]
  b08e290324 ublk: set_params: properly check if parameters can be applied [1 file, +5/-2]
  b5741e4b9e sched/fair: Fix potential memory corruption in child_cfs_rq_on_list [1 file, +4/-2]
  39c2b2767e xhci: Restrict USB4 tunnel detection for USB3 devices to Intel hosts [1 file, +8/-0]
  4ea3319f3e usb: hub: lack of clearing xHC resources [1 file, +33/-0]
  0cab185c73 usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader [1 file, +4/-0]
  079a3e52f3 usb: typec: ucsi: Fix NULL pointer access [1 file, +7/-6]
  840afbea3f usb: gadget: u_ether: Set is_suspend flag if remote wakeup fails [1 file, +2/-2]
  ced69d88eb usb: dwc3: Set SUSPENDENABLE soon after phy init [3 files, +45/-30]
  35db1f1829 usb: dwc3: gadget: Prevent irq storm when TH re-executes [2 files, +13/-13]
  b387312527 usb: typec: ucsi: increase timeout for PPM reset operations [1 file, +1/-1]
  4bf6c57a89 usb: gadget: Set self-powered based on MaxPower and bmAttributes [1 file, +11/-5]
  dcd7ffdefb usb: gadget: Fix setting self-powered state on suspend [1 file, +2/-1]
  395011ee82 usb: gadget: Check bmAttributes only if configuration is valid [1 file, +1/-1]
  012b98cdb5 acpi: typec: ucsi: Introduce a ->poll_cci method [7 files, +25/-12]
  d7015bb3c5 xhci: pci: Fix indentation in the PCI device ID definitions [1 file, +4/-4]
  ea39f99864 usb: xhci: Enable the TRB overfetch quirk on VIA VL805 [3 files, +10/-5]
  4e8df56636 char: misc: deallocate static minor in error path [1 file, +1/-1]
  b50e18791f drivers: core: fix device leak in __fw_devlink_relax_cycles() [1 file, +1/-0]
  a684bad77e mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() [16 files, +46/-28]
  6ad9643aa5 fs/netfs/read_pgpriv2: skip folio queues without `marks3` [1 file, +3/-2]
  5bc6e5b10f fs/netfs/read_collect: fix crash due to uninitialized `prev` variable [1 file, +11/-10]
  86b7ebddab uprobes: Fix race in uprobe_free_utask [1 file, +1/-1]

Changes in 6.12.19
        x86/amd_nb: Use rdmsr_safe() in amd_get_mmconfig_range()
        rust: block: fix formatting in GenDisk doc
        drm/i915/dsi: convert to struct intel_display
        drm/i915/dsi: Use TRANS_DDI_FUNC_CTL's own port width macro
        gpio: vf610: use generic device_get_match_data()
        gpio: vf610: add locking to gpio direction functions
        cifs: Remove symlink member from cifs_open_info_data union
        smb311: failure to open files of length 1040 when mounting with SMB3.1.1 POSIX extensions
        btrfs: fix data overwriting bug during buffered write when block size < page size
        x86/microcode/AMD: Add some forgotten models to the SHA check
        loongarch: Use ASM_REACHABLE
        rust: workqueue: remove unneeded ``#[allow(clippy::new_ret_no_self)]`
        rust: sort global Rust flags
        rust: types: avoid repetition in `{As,From}Bytes` impls
        rust: enable `clippy::undocumented_unsafe_blocks` lint
        rust: enable `clippy::unnecessary_safety_comment` lint
        rust: enable `clippy::unnecessary_safety_doc` lint
        rust: enable `clippy::ignored_unit_patterns` lint
        rust: enable `rustdoc::unescaped_backticks` lint
        rust: init: remove unneeded `#[allow(clippy::disallowed_names)]`
        rust: sync: remove unneeded `#[allow(clippy::non_send_fields_in_send_ty)]`
        rust: introduce `.clippy.toml`
        rust: replace `clippy::dbg_macro` with `disallowed_macros`
        rust: provide proper code documentation titles
        rust: enable Clippy's `check-private-items`
        Documentation: rust: add coding guidelines on lints
        rust: start using the `#[expect(...)]` attribute
        Documentation: rust: discuss `#[expect(...)]` in the guidelines
        rust: error: make conversion functions public
        rust: error: optimize error type to use nonzero
        rust: alloc: add `Allocator` trait
        rust: alloc: separate `aligned_size` from `krealloc_aligned`
        rust: alloc: rename `KernelAllocator` to `Kmalloc`
        rust: alloc: implement `ReallocFunc`
        rust: alloc: make `allocator` module public
        rust: alloc: implement `Allocator` for `Kmalloc`
        rust: alloc: add module `allocator_test`
        rust: alloc: implement `Vmalloc` allocator
        rust: alloc: implement `KVmalloc` allocator
        rust: alloc: add __GFP_NOWARN to `Flags`
        rust: alloc: implement kernel `Box`
        rust: treewide: switch to our kernel `Box` type
        rust: alloc: remove extension of std's `Box`
        rust: alloc: add `Box` to prelude
        rust: alloc: introduce `ArrayLayout`
        rust: alloc: implement kernel `Vec` type
        rust: alloc: implement `IntoIterator` for `Vec`
        rust: alloc: implement `collect` for `IntoIter`
        rust: treewide: switch to the kernel `Vec` type
        rust: alloc: remove `VecExt` extension
        rust: alloc: add `Vec` to prelude
        rust: error: use `core::alloc::LayoutError`
        rust: error: check for config `test` in `Error::name`
        rust: alloc: implement `contains` for `Flags`
        rust: alloc: implement `Cmalloc` in module allocator_test
        rust: str: test: replace `alloc::format`
        rust: alloc: update module comment of alloc.rs
        kbuild: rust: remove the `alloc` crate and `GlobalAlloc`
        MAINTAINERS: add entry for the Rust `alloc` module
        drm/panic: avoid reimplementing Iterator::find
        drm/panic: remove unnecessary borrow in alignment_pattern
        drm/panic: prefer eliding lifetimes
        drm/panic: remove redundant field when assigning value
        drm/panic: correctly indent continuation of line in list item
        drm/panic: allow verbose boolean for clarity
        drm/panic: allow verbose version check
        rust: kbuild: expand rusttest target for macros
        rust: fix size_t in bindgen prototypes of C builtins
        rust: map `__kernel_size_t` and friends also to usize/isize
        rust: use custom FFI integer types
        rust: alloc: Fix `ArrayLayout` allocations
        Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"
        tracing: tprobe-events: Fix a memory leak when tprobe with $retval
        tracing: tprobe-events: Reject invalid tracepoint name
        stmmac: loongson: Pass correct arg to PCI function
        LoongArch: Convert unreachable() to BUG()
        LoongArch: Use polling play_dead() when resuming from hibernation
        LoongArch: Set max_pfn with the PFN of the last page
        LoongArch: KVM: Add interrupt checking for AVEC
        LoongArch: KVM: Reload guest CSR registers after sleep
        LoongArch: KVM: Fix GPA size issue about VM
        HID: appleir: Fix potential NULL dereference at raw event handle
        ksmbd: fix type confusion via race condition when using ipc_msg_send_request
        ksmbd: fix out-of-bounds in parse_sec_desc()
        ksmbd: fix use-after-free in smb2_lock
        ksmbd: fix bug on trap in smb2_lock
        gpio: rcar: Use raw_spinlock to protect register access
        gpio: aggregator: protect driver attr handlers against module unload
        ALSA: seq: Avoid module auto-load handling at event delivery
        ALSA: hda: intel: Add Dell ALC3271 to power_save denylist
        ALSA: hda/realtek - add supported Mic Mute LED for Lenovo platform
        ALSA: hda/realtek: update ALC222 depop optimize
        btrfs: fix a leaked chunk map issue in read_one_chunk()
        hwmon: (peci/dimmtemp) Do not provide fake thresholds data
        drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params
        drm/amdkfd: Fix NULL Pointer Dereference in KFD queue
        drm/amd/pm: always allow ih interrupt from fw
        drm/imagination: avoid deadlock on fence release
        drm/imagination: Hold drm_gem_gpuva lock for unmap
        drm/imagination: only init job done fences once
        drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M
        Revert "mm/page_alloc.c: don't show protection in zone's ->lowmem_reserve[] for empty zone"
        Revert "selftests/mm: remove local __NR_* definitions"
        platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e
        x86/boot: Sanitize boot params before parsing command line
        x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
        x86/cpu: Validate CPUID leaf 0x2 EDX output
        x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63
        drm/xe: Add staging tree for VM binds
        drm/xe/hmm: Style- and include fixes
        drm/xe/hmm: Don't dereference struct page pointers without notifier lock
        drm/xe/vm: Fix a misplaced #endif
        drm/xe/vm: Validate userptr during gpu vma prefetching
        mptcp: fix 'scheduling while atomic' in mptcp_pm_nl_append_new_local_addr
        drm/xe: Fix GT "for each engine" workarounds
        drm/xe: Fix fault mode invalidation with unbind
        drm/xe/userptr: properly setup pfn_flags_mask
        drm/xe/userptr: Unmap userptrs in the mmu notifier
        Bluetooth: Add check for mgmt_alloc_skb() in mgmt_remote_name()
        Bluetooth: Add check for mgmt_alloc_skb() in mgmt_device_connected()
        wifi: cfg80211: regulatory: improve invalid hints checking
        wifi: nl80211: reject cooked mode if it is set along with other flags
        selftests/damon/damos_quota_goal: handle minimum quota that cannot be further reduced
        selftests/damon/damos_quota: make real expectation of quota exceeds
        selftests/damon/damon_nr_regions: set ops update for merge results check to 100ms
        selftests/damon/damon_nr_regions: sort collected regiosn before checking with min/max boundaries
        rapidio: add check for rio_add_net() in rio_scan_alloc_net()
        rapidio: fix an API misues when rio_add_net() fails
        dma: kmsan: export kmsan_handle_dma() for modules
        s390/traps: Fix test_monitor_call() inline assembly
        NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback
        userfaultfd: do not block on locking a large folio with raised refcount
        block: fix conversion of GPT partition name to 7-bit
        mm/page_alloc: fix uninitialized variable
        mm: abort vma_modify() on merge out of memory failure
        mm: memory-failure: update ttu flag inside unmap_poisoned_folio
        mm: don't skip arch_sync_kernel_mappings() in error paths
        mm: fix finish_fault() handling for large folios
        hwpoison, memory_hotplug: lock folio before unmap hwpoisoned folio
        mm: memory-hotplug: check folio ref count first in do_migrate_range
        wifi: iwlwifi: mvm: clean up ROC on failure
        wifi: iwlwifi: mvm: don't try to talk to a dead firmware
        wifi: iwlwifi: limit printed string from FW file
        wifi: iwlwifi: Free pages allocated when failing to build A-MSDU
        wifi: iwlwifi: Fix A-MSDU TSO preparation
        HID: google: fix unused variable warning under !CONFIG_ACPI
        HID: intel-ish-hid: Fix use-after-free issue in hid_ishtp_cl_remove()
        HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()
        coredump: Only sort VMAs when core_sort_vma sysctl is set
        nvme-pci: add support for sgl metadata
        nvme-pci: use sgls for all user requests if possible
        nvme-ioctl: fix leaked requests on mapping error
        wifi: mac80211: Support parsing EPCS ML element
        wifi: mac80211: fix MLE non-inheritance parsing
        wifi: mac80211: fix vendor-specific inheritance
        drm/fbdev-helper: Move color-mode lookup into 4CC format helper
        drm/fbdev: Add memory-agnostic fbdev client
        drm: Add client-agnostic setup helper
        drm/fbdev-ttm: Support struct drm_driver.fbdev_probe
        drm/nouveau: Run DRM default client setup
        drm/nouveau: select FW caching
        bluetooth: btusb: Initialize .owner field of force_poll_sync_fops
        nvme-tcp: add basic support for the C2HTermReq PDU
        nvme-tcp: fix potential memory corruption in nvme_tcp_recv_pdu()
        nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch
        ALSA: hda/realtek: Remove (revert) duplicate Ally X config
        net: gso: fix ownership in __udp_gso_segment
        caif_virtio: fix wrong pointer check in cfv_probe()
        perf/core: Fix pmus_lock vs. pmus_srcu ordering
        hwmon: (pmbus) Initialise page count in pmbus_identify()
        hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table
        hwmon: (ad7314) Validate leading zero bits and return error
        tracing: probe-events: Remove unused MAX_ARG_BUF_LEN macro
        drm/imagination: Fix timestamps in firmware traces
        ALSA: usx2y: validate nrpacks module parameter on probe
        llc: do not use skb_get() before dev_queue_xmit()
        hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()
        drm/sched: Fix preprocessor guard
        be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink
        net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error
        drm/i915/color: Extract intel_color_modeset()
        drm/i915: Plumb 'dsb' all way to the plane hooks
        drm/xe: Remove double pageflip
        HID: hid-steam: Fix use-after-free when detaching device
        net: ipa: Fix v4.7 resource group names
        net: ipa: Fix QSB data for v4.7
        net: ipa: Enable checksum for IPA_ENDPOINT_AP_MODEM_{RX,TX} for v4.7
        ppp: Fix KMSAN uninit-value warning with bpf
        ethtool: linkstate: migrate linkstate functions to support multi-PHY setups
        net: ethtool: plumb PHY stats to PHY drivers
        net: ethtool: netlink: Allow NULL nlattrs when getting a phy_device
        vlan: enforce underlying device type
        x86/sgx: Fix size overflows in sgx_encl_create()
        exfat: fix just enough dentries but allocate a new cluster to dir
        exfat: fix soft lockup in exfat_clear_bitmap
        exfat: short-circuit zero-byte writes in exfat_file_write_iter
        net-timestamp: support TCP GSO case for a few missing flags
        ublk: set_params: properly check if parameters can be applied
        sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
        nvme-tcp: fix signedness bug in nvme_tcp_init_connection()
        net: dsa: mt7530: Fix traffic flooding for MMIO devices
        mctp i3c: handle NULL header address
        net: ipv6: fix dst ref loop in ila lwtunnel
        net: ipv6: fix missing dst ref drop in ila lwtunnel
        gpio: rcar: Fix missing of_node_put() call
        Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
        usb: renesas_usbhs: Call clk_put()
        xhci: Restrict USB4 tunnel detection for USB3 devices to Intel hosts
        usb: renesas_usbhs: Use devm_usb_get_phy()
        usb: hub: lack of clearing xHC resources
        usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader
        usb: typec: ucsi: Fix NULL pointer access
        usb: renesas_usbhs: Flush the notify_hotplug_work
        usb: gadget: u_ether: Set is_suspend flag if remote wakeup fails
        usb: atm: cxacru: fix a flaw in existing endpoint checks
        usb: dwc3: Set SUSPENDENABLE soon after phy init
        usb: dwc3: gadget: Prevent irq storm when TH re-executes
        usb: typec: ucsi: increase timeout for PPM reset operations
        usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality
        usb: gadget: Set self-powered based on MaxPower and bmAttributes
        usb: gadget: Fix setting self-powered state on suspend
        usb: gadget: Check bmAttributes only if configuration is valid
        kbuild: userprogs: use correct lld when linking through clang
        acpi: typec: ucsi: Introduce a ->poll_cci method
        rust: finish using custom FFI integer types
        rust: map `long` to `isize` and `char` to `u8`
        xhci: pci: Fix indentation in the PCI device ID definitions
        usb: xhci: Enable the TRB overfetch quirk on VIA VL805
        KVM: SVM: Set RFLAGS.IF=1 in C code, to get VMRUN out of the STI shadow
        KVM: SVM: Save host DR masks on CPUs with DebugSwap
        KVM: SVM: Drop DEBUGCTL[5:2] from guest's effective value
        KVM: SVM: Suppress DEBUGCTL.BTF on AMD
        KVM: x86: Snapshot the host's DEBUGCTL in common x86
        KVM: SVM: Manually context switch DEBUGCTL if LBR virtualization is disabled
        KVM: x86: Snapshot the host's DEBUGCTL after disabling IRQs
        KVM: x86: Explicitly zero EAX and EBX when PERFMON_V2 isn't supported by KVM
        cdx: Fix possible UAF error in driver_override_show()
        mei: me: add panther lake P DID
        mei: vsc: Use "wakeuphostint" when getting the host wakeup GPIO
        intel_th: pci: Add Arrow Lake support
        intel_th: pci: Add Panther Lake-H support
        intel_th: pci: Add Panther Lake-P/U support
        char: misc: deallocate static minor in error path
        drivers: core: fix device leak in __fw_devlink_relax_cycles()
        slimbus: messaging: Free transaction ID in delayed interrupt scenario
        bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
        eeprom: digsy_mtc: Make GPIO lookup table match the device
        drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
        iio: filter: admv8818: Force initialization of SDO
        iio: light: apds9306: fix max_scale_nano values
        iio: dac: ad3552r: clear reset status flag
        iio: adc: ad7192: fix channel select
        iio: adc: at91-sama5d2_adc: fix sama7g5 realbits value
        mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear()
        arm64: hugetlb: Fix huge_ptep_get_and_clear() for non-present ptes
        fs/netfs/read_pgpriv2: skip folio queues without `marks3`
        fs/netfs/read_collect: fix crash due to uninitialized `prev` variable
        kbuild: hdrcheck: fix cross build with clang
        ALSA: hda: realtek: fix incorrect IS_REACHABLE() usage
        nvme-tcp: Fix a C2HTermReq error message
        docs: rust: remove spurious item in `expect` list
        Revert "KVM: e500: always restore irqs"
        Revert "KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults"
        Revert "KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock"
        Revert "KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()"
        KVM: e500: always restore irqs
        uprobes: Fix race in uprobe_free_utask
        selftests/bpf: Clean up open-coded gettid syscall invocations
        x86/mm: Don't disable PCID when INVLPG has been fixed by microcode
        wifi: iwlwifi: pcie: Fix TSO preparation
        Linux 6.12.19

Change-Id: Ia0c2b2c6a95b53a66e21505ed6ba756c6b0a2388
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-04-17 03:02:04 -07:00
Huacai Chen 0aa5d4370b LoongArch: Increase MAX_IO_PICS up to 8
commit ec105cadff5d8c0a029a3dc1084cae46cf3f799d upstream.

Begin with Loongson-3C6000, the number of PCI host can be as many as
8 for multi-chip machines, and this number should be the same for I/O
interrupt controllers. To support these machines we also increase the
MAX_IO_PICS up to 8.

Cc: stable@vger.kernel.org
Tested-by: Mingcong Bai <baimingcong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-04-10 14:39:36 +02:00
Huacai Chen 1d0def2d16 LoongArch: Increase ARCH_DMA_MINALIGN up to 16
commit 4103cfe9dcb88010ae4911d3ff417457d1b6a720 upstream.

ARCH_DMA_MINALIGN is 1 by default, but some LoongArch-specific devices
(such as APBDMA) require 16 bytes alignment. When the data buffer length
is too small, the hardware may make an error writing cacheline. Thus, it
is dangerous to allocate a small memory buffer for DMA. It's always safe
to define ARCH_DMA_MINALIGN as L1_CACHE_BYTES but unnecessary (kmalloc()
need small memory objects). Therefore, just increase it to 16.

Cc: stable@vger.kernel.org
Tested-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-04-10 14:39:36 +02:00
Josh Poimboeuf 26bf086ebd objtool/loongarch: Add unwind hints in prepare_frametrace()
[ Upstream commit 7c977393b8277ed319e92e4b598b26598c9d30c0 ]

If 'regs' points to a local stack variable, prepare_frametrace() stores
all registers to the stack.  This confuses objtool as it expects them to
be restored from the stack later.

The stores don't affect stack tracing, so use unwind hints to hide them
from objtool.

Fixes the following warnings:

  arch/loongarch/kernel/traps.o: warning: objtool: show_stack+0xe0: stack state mismatch: reg1[22]=-1+0 reg2[22]=-2-160
  arch/loongarch/kernel/traps.o: warning: objtool: show_stack+0xe0: stack state mismatch: reg1[23]=-1+0 reg2[23]=-2-152

Fixes: cb8a2ef084 ("LoongArch: Add ORC stack unwinder support")
Reported-by: kernel test robot <lkp@intel.com>
Tested-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/270cadd8040dda74db2307f23497bb68e65db98d.1743481539.git.jpoimboe@kernel.org
Closes: https://lore.kernel.org/oe-kbuild-all/202503280703.OARM8SrY-lkp@intel.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-04-10 14:39:28 +02:00
Christoph Hellwig c2707bda56 UPSTREAM: asm-generic: provide generic page_to_phys and phys_to_page implementations
page_to_phys is duplicated by all architectures, and from some strange
reason placed in <asm/io.h> where it doesn't fit at all.

phys_to_page is only provided by a few architectures despite having a lot
of open coded users.

Provide generic versions in <asm-generic/memory_model.h> to make these
helpers more easily usable.

Note with this patch powerpc loses the CONFIG_DEBUG_VIRTUAL pfn_valid
check.  It will be added back in a generic version later.

Bug: 399192075

Change-Id: I6cdc866833e43a21e6fbabefb686797dd57d9e13
Signed-off-by: Sandeep Dhavale <dhavale@google.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
(cherry picked from commit c5c3238d9b8cee58cd4b08bbbe9347a94a566390)
Signed-off-by: Sandeep Dhavale <dhavale@google.com>
2025-03-19 13:28:28 +00:00
Greg Kroah-Hartman 7ec13fb473 Merge 3c0369e453 ("loongarch: Use ASM_REACHABLE") into android16-6.12
Steps on the way to 6.12.19

Change-Id: I2032e000de8fb5d795355890d69bac72cad0d332
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-03-13 11:50:52 -07:00
Ryan Roberts a684bad77e mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear()
commit 02410ac72ac3707936c07ede66e94360d0d65319 upstream.

In order to fix a bug, arm64 needs to be told the size of the huge page
for which the huge_pte is being cleared in huge_ptep_get_and_clear().
Provide for this by adding an `unsigned long sz` parameter to the
function. This follows the same pattern as huge_pte_clear() and
set_huge_pte_at().

This commit makes the required interface modifications to the core mm as
well as all arches that implement this function (arm64, loongarch, mips,
parisc, powerpc, riscv, s390, sparc). The actual arm64 bug will be fixed
in a separate commit.

Cc: stable@vger.kernel.org
Fixes: 66b3923a1a ("arm64: hugetlb: add support for PTE contiguous bit")
Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> # riscv
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> # s390
Link: https://lore.kernel.org/r/20250226120656.2400136-2-ryan.roberts@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-13 13:02:17 +01:00
Peter Zijlstra 3c0369e453 loongarch: Use ASM_REACHABLE
commit 624bde3465f660e54a7cd4c1efc3e536349fead5 upstream.

annotate_reachable() is unreliable since the compiler is free to place
random code inbetween two consecutive asm() statements.

This removes the last and only annotate_reachable() user.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/20241128094312.133437051@infradead.org
Closes: https://lore.kernel.org/loongarch/20250307214943.372210-1-ojeda@kernel.org/
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-13 13:01:40 +01:00
Greg Kroah-Hartman 3d75a8d3e8 Merge 6.12.14 into android16-6.12
GKI (arm64) relevant 75 out of 419 changes, affecting 91 files +700/-304
  38a1aa02b9 exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case [2 files, +29/-4]
  e5ff8d825d sched: Don't try to catch up excess steal time. [1 file, +4/-2]
  404e5fd918 printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX [1 file, +1/-1]
  b006aadf72 drm/connector: add mutex to protect ELD from concurrent access [3 files, +11/-1]
  22a1a75818 ring-buffer: Make reading page consistent with the code logic [1 file, +3/-1]
  5c2b1d9386 tun: fix group permission check [1 file, +9/-5]
  f4b8bac3cf mmc: core: Respect quirk_max_rate for non-UHS SDIO card [1 file, +2/-0]
  e557b15ea2 HID: multitouch: Add quirk for Hantick 5288 touchpad [1 file, +5/-0]
  adcb8ce68d HID: Wacom: Add PCI Wacom device support [1 file, +5/-0]
  ebb90f23f0 Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_monitor_sync [1 file, +11/-1]
  c257c15845 tipc: re-order conditions in tipc_crypto_key_rcv() [1 file, +2/-2]
  90778f31ef ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback [1 file, +28/-4]
  33a4a9f54a Input: allocate keycode for phone linking [1 file, +1/-0]
  57e07d10b3 sched/fair: Fix inaccurate h_nr_runnable accounting with delayed dequeue [1 file, +19/-0]
  bc85817e6b nvme: handle connectivity loss in nvme_set_queue_count [1 file, +7/-1]
  5eba53a9ea nvme: make nvme_tls_attrs_group static [1 file, +1/-1]
  83ebf741aa udp: gso: do not drop small packets when PMTU reduces [3 files, +30/-4]
  3139a7024e ethtool: rss: fix hiding unsupported fields in dumps [1 file, +2/-1]
  e40cb34b7f pfifo_tail_enqueue: Drop new packet when sch->limit == 0 [1 file, +3/-0]
  6312555249 netem: Update sch->q.qlen before qdisc_tree_reduce_backlog() [1 file, +1/-1]
  e36364d5d4 tun: revert fix group permission check [1 file, +5/-9]
  181b23ca2e net: sched: Fix truncation of offloaded action statistics [1 file, +1/-1]
  ac7b5f3e4d drm/client: Handle tiled displays better [1 file, +9/-0]
  f735c9d4dc fs/proc: do_task_stat: Fix ESP not readable during coredump [1 file, +1/-1]
  5a6520493c arm64/kvm: Configure HYP TCR.PS/DS based on host stage1 [1 file, +4/-4]
  c66e5205fd arm64/sme: Move storage of reg_smidr to __cpuinfo_store_cpu() [2 files, +10/-13]
  e5251ae5d3 arm64/mm: Reduce PA space to 48 bits when LPA2 is not enabled [3 files, +11/-7]
  de3ffeb212 KVM: arm64: timer: Always evaluate the need for a soft timer [1 file, +1/-3]
  f2f805ada6 KVM: Explicitly verify target vCPU is online in kvm_get_vcpu() [1 file, +9/-0]
  691218a50c Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc [1 file, +2/-1]
  ddfc234761 Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection [1 file, +2/-2]
  5a262628f4 seccomp: passthrough uretprobe systemcall without filtering [1 file, +12/-0]
  2ce09aabe0 blk-cgroup: Fix class @block_class's subsystem refcount leakage [1 file, +1/-0]
  ae959ab075 scsi: ufs: core: Fix the HIGH/LOW_TEMP Bit Definitions [1 file, +2/-2]
  45ad3c7d62 of: Correct child specifier used as input of the 2nd nexus node [1 file, +1/-1]
  e62c630810 of: address: Fix empty resource handling in __of_address_resource_bounds() [1 file, +5/-7]
  4e4b3d4926 of: Fix of_find_node_opts_by_path() handling of alias+path+options [1 file, +3/-3]
  5b91440ebe of: reserved-memory: Fix using wrong number of cells to get property 'alignment' [1 file, +2/-2]
  ed0ad04c68 ring-buffer: Do not allow events in NMI with generic atomic64 cmpxchg() [1 file, +7/-2]
  d0b81ea5a5 dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit() [1 file, +3/-11]
  68a25ceb11 dm-crypt: track tag_offset in convert_context [1 file, +7/-6]
  68f16d3034 block: don't revert iter for -EIOCBQUEUED [1 file, +3/-2]
  0a14a2b841 Revert "media: uvcvideo: Require entities to have a non-zero unique ID" [1 file, +27/-43]
  3d17a4bbf2 PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf() [1 file, +1/-0]
  36786d1a45 PCI: dwc: ep: Write BAR_MASK before iATU registers in pci_epc_set_bar() [1 file, +15/-13]
  b5cacfd067 PCI: dwc: ep: Prevent changing BAR size/flags in pci_epc_set_bar() [1 file, +21/-1]
  9fbac83100 nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk [1 file, +2/-1]
  2c4cda456e nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk [1 file, +1/-0]
  0c77c0d754 scsi: ufs: core: Fix use-after free in init error and remove paths [4 files, +30/-32]
  8db25d4c4a scsi: core: Do not retry I/Os during depopulation [1 file, +7/-2]
  c287f18f64 rv: Reset per-task monitors also for idle tasks [1 file, +4/-0]
  e456a88bdd hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING [2 files, +83/-21]
  2a54e8f118 kfence: skip __GFP_THISNODE allocations on NUMA systems [1 file, +2/-0]
  b64b773087 soc: qcom: smem_state: fix missing of_node_put in error path [1 file, +2/-1]
  5100391aca media: mc: fix endpoint iteration [1 file, +1/-1]
  d2eac8b14a media: uvcvideo: Fix crash during unbind if gpio unit is in use [2 files, +22/-7]
  4f534dd576 media: uvcvideo: Fix event flags in uvc_ctrl_send_events [1 file, +2/-2]
  ac7737ed9a media: uvcvideo: Support partial control reads [1 file, +21/-0]
  34fb9eb31d media: uvcvideo: Only save async fh if success [1 file, +11/-7]
  e8a650dbc7 media: uvcvideo: Remove redundant NULL assignment [1 file, +1/-3]
  438bda062b media: uvcvideo: Remove dangling pointers [3 files, +67/-3]
  a403eca86c mm: gup: fix infinite loop within __get_longterm_locked [1 file, +4/-10]
  4b69308314 mm/vmscan: accumulate nr_demoted for accurate demotion statistics [1 file, +4/-3]
  4491159774 mm/compaction: fix UBSAN shift-out-of-bounds warning [1 file, +2/-1]
  2c3109dcda nvmem: core: improve range check for nvmem_cell_write() [1 file, +2/-0]
  35ae7910c3 io_uring: fix multishots with selected buffers [1 file, +2/-0]
  be985aea92 io_uring/net: don't retry connect operation on EPOLLERR [2 files, +7/-0]
  e398619920 i3c: master: Fix missing 'ret' assignment in set_speed() [1 file, +1/-1]
  8b4120b3e0 misc: misc_minor_alloc to use ida for all dynamic/misc dynamic minors [1 file, +30/-9]
  19fc795e9d maple_tree: simplify split calculation [1 file, +6/-17]
  8441aea464 ptp: Ensure info->enable callback is always set [1 file, +8/-0]
  c6dd70e5b4 timers/migration: Fix off-by-one root mis-connection [1 file, +9/-1]
  45439a8b11 fs: prepend statmount.mnt_opts string with security_sb_mnt_opts() [1 file, +4/-0]
  7db0365ee6 fs: fix adding security options to statmount.mnt_opt [1 file, +14/-15]
  d49c64c1d7 statmount: let unset strings be empty [1 file, +12/-4]

Changes in 6.12.14
	irqchip/lan966x-oic: Make CONFIG_LAN966X_OIC depend on CONFIG_MCHP_LAN966X_PCI
	btrfs: fix assertion failure when splitting ordered extent after transaction abort
	btrfs: do not output error message if a qgroup has been already cleaned up
	btrfs: fix use-after-free when attempting to join an aborted transaction
	arm64/mm: Ensure adequate HUGE_MAX_HSTATE
	exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case
	s390/stackleak: Use exrl instead of ex in __stackleak_poison()
	btrfs: fix data race when accessing the inode's disk_i_size at btrfs_drop_extents()
	btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling
	sched: Don't try to catch up excess steal time.
	x86: Convert unreachable() to BUG()
	locking/ww_mutex/test: Use swap() macro
	lockdep: Fix upper limit for LOCKDEP_*_BITS configs
	x86/amd_nb: Restrict init function to AMD-based systems
	drm/virtio: New fence for every plane update
	drm: Add panel backlight quirks
	drm: panel-backlight-quirks: Add Framework 13 matte panel
	drm: panel-backlight-quirks: Add Framework 13 glossy and 2.8k panels
	nvkm/gsp: correctly advance the read pointer of GSP message queue
	nvkm: correctly calculate the available space of the GSP cmdq buffer
	drm/tests: hdmi: handle empty modes in find_preferred_mode()
	drm/tests: hdmi: return meaningful value from set_connector_edid()
	drm/amd/display: Populate chroma prefetch parameters, DET buffer fix
	drm/amd/display: Overwriting dualDPP UBF values before usage
	printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
	drm/connector: add mutex to protect ELD from concurrent access
	drm/bridge: anx7625: use eld_mutex to protect access to connector->eld
	drm/bridge: ite-it66121: use eld_mutex to protect access to connector->eld
	drm/amd/display: use eld_mutex to protect access to connector->eld
	drm/exynos: hdmi: use eld_mutex to protect access to connector->eld
	drm/radeon: use eld_mutex to protect access to connector->eld
	drm/sti: hdmi: use eld_mutex to protect access to connector->eld
	drm/vc4: hdmi: use eld_mutex to protect access to connector->eld
	drm/amd/display: Fix Mode Cutoff in DSC Passthrough to DP2.1 Monitor
	drm/amdgpu: Don't enable sdma 4.4.5 CTXEMPTY interrupt
	drm/amdkfd: Queue interrupt work to different CPU
	drm/bridge: it6505: Change definition MAX_HDCP_DOWN_STREAM_COUNT
	drm/bridge: it6505: fix HDCP Bstatus check
	drm/bridge: it6505: fix HDCP encryption when R0 ready
	drm/bridge: it6505: fix HDCP CTS compare V matching
	drm/bridge: it6505: fix HDCP CTS KSV list wait timer
	safesetid: check size of policy writes
	drm/amd/display: Increase sanitizer frame larger than limit when compile testing with clang
	drm/amd/display: Limit Scaling Ratio on DCN3.01
	ring-buffer: Make reading page consistent with the code logic
	wifi: rtw89: add crystal_cap check to avoid setting as overflow value
	tun: fix group permission check
	mmc: core: Respect quirk_max_rate for non-UHS SDIO card
	mmc: sdhci-esdhc-imx: enable 'SDHCI_QUIRK_NO_LED' quirk for S32G
	wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy()
	tomoyo: don't emit warning in tomoyo_write_control()
	mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id
	wifi: rtw88: add __packed attribute to efuse layout struct
	clk: qcom: Make GCC_8150 depend on QCOM_GDSC
	HID: multitouch: Add quirk for Hantick 5288 touchpad
	HID: Wacom: Add PCI Wacom device support
	net/mlx5: use do_aux_work for PHC overflow checks
	wifi: brcmfmac: Check the return value of of_property_read_string_index()
	wifi: iwlwifi: pcie: Add support for new device ids
	wifi: iwlwifi: avoid memory leak
	i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz
	APEI: GHES: Have GHES honor the panic= setting
	Bluetooth: btusb: Add new VID/PID 13d3/3610 for MT7922
	Bluetooth: btusb: Add new VID/PID 13d3/3628 for MT7925
	Bluetooth: MGMT: Fix slab-use-after-free Read in mgmt_remove_adv_monitor_sync
	net: wwan: iosm: Fix hibernation by re-binding the driver around it
	HID: hid-asus: Disable OOBE mode on the ProArt P16
	mmc: sdhci-msm: Correctly set the load for the regulator
	octeon_ep: update tx/rx stats locally for persistence
	octeon_ep_vf: update tx/rx stats locally for persistence
	tipc: re-order conditions in tipc_crypto_key_rcv()
	selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack()
	net: ethernet: ti: am65-cpsw: ensure proper channel cleanup in error path
	ASoC: SOF: Intel: hda-dai: Ensure DAI widget is valid during params
	x86/kexec: Allocate PGD for x86_64 transition page tables separately
	ASoC: Intel: sof_sdw: Correct quirk for Lenovo Yoga Slim 7
	iommu/arm-smmu-qcom: add sdm670 adreno iommu compatible
	iommu/arm-smmu-v3: Clean up more on probe failure
	platform/x86: int3472: Check for adev == NULL
	platform/x86: acer-wmi: Add support for Acer PH14-51
	ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback
	platform/x86: acer-wmi: Add support for Acer Predator PH16-72
	ASoC: amd: Add ACPI dependency to fix build error
	Input: allocate keycode for phone linking
	platform/x86: acer-wmi: add support for Acer Nitro AN515-58
	platform/x86: acer-wmi: Ignore AC events
	KVM: PPC: e500: Mark "struct page" dirty in kvmppc_e500_shadow_map()
	KVM: PPC: e500: Mark "struct page" pfn accessed before dropping mmu_lock
	KVM: PPC: e500: Use __kvm_faultin_pfn() to handle page faults
	KVM: e500: always restore irqs
	drm/amdgpu: Fix Circular Locking Dependency in AMDGPU GFX Isolation
	xfs: report realtime block quota limits on realtime directories
	xfs: don't over-report free space or inodes in statvfs
	tty: xilinx_uartps: split sysrq handling
	tty: Permit some TIOCL_SETSEL modes without CAP_SYS_ADMIN
	platform/x86: serdev_helpers: Check for serial_ctrl_uid == NULL
	sched/fair: Fix inaccurate h_nr_runnable accounting with delayed dequeue
	nvme: handle connectivity loss in nvme_set_queue_count
	firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
	gpu: drm_dp_cec: fix broken CEC adapter properties check
	ice: put Rx buffers after being done with current frame
	ice: gather page_count()'s of each frag right before XDP prog call
	ice: stop storing XDP verdict within ice_rx_buf
	nvme: make nvme_tls_attrs_group static
	nvme-fc: use ctrl state getter
	net: bcmgenet: Correct overlaying of PHY and MAC Wake-on-LAN
	ice: Add check for devm_kzalloc()
	vmxnet3: Fix tx queue race condition with XDP
	tg3: Disable tg3 PCIe AER on system reboot
	udp: gso: do not drop small packets when PMTU reduces
	drm/i915/dp: fix the Adaptive sync Operation mode for SDP
	ethtool: rss: fix hiding unsupported fields in dumps
	rxrpc: Fix the rxrpc_connection attend queue handling
	gpio: pca953x: Improve interrupt support
	net: atlantic: fix warning during hot unplug
	net: rose: lock the socket in rose_bind()
	gpio: sim: lock hog configfs items if present
	x86/xen: fix xen_hypercall_hvm() to not clobber %rbx
	x86/xen: add FRAME_END to xen_hypercall_hvm()
	ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read()
	pfifo_tail_enqueue: Drop new packet when sch->limit == 0
	netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
	tun: revert fix group permission check
	net: sched: Fix truncation of offloaded action statistics
	rxrpc: Fix call state set to not include the SERVER_SECURING state
	cpufreq: fix using cpufreq-dt as module
	cpufreq: s3c64xx: Fix compilation warning
	leds: lp8860: Write full EEPROM, not only half of it
	ALSA: hda/realtek: Enable Mute LED on HP Laptop 14s-fq1xxx
	cifs: Remove intermediate object of failed create SFU call
	drm/modeset: Handle tiled displays in pan_display_atomic.
	drm/client: Handle tiled displays better
	smb: client: fix order of arguments of tracepoints
	smb: client: change lease epoch type from unsigned int to __u16
	md: reintroduce md-linear
	s390/futex: Fix FUTEX_OP_ANDN implementation
	arm64: Filter out SVE hwcaps when FEAT_SVE isn't implemented
	m68k: vga: Fix I/O defines
	fs/proc: do_task_stat: Fix ESP not readable during coredump
	binfmt_flat: Fix integer overflow bug on 32 bit systems
	accel/ivpu: Fix Qemu crash when running in passthrough
	arm64/kvm: Configure HYP TCR.PS/DS based on host stage1
	arm64/mm: Override PARange for !LPA2 and use it consistently
	arm64/sme: Move storage of reg_smidr to __cpuinfo_store_cpu()
	arm64/mm: Reduce PA space to 48 bits when LPA2 is not enabled
	KVM: arm64: timer: Always evaluate the need for a soft timer
	drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()
	arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma
	remoteproc: omap: Handle ARM dma_iommu_mapping
	KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
	kvm: defer huge page recovery vhost task to later
	KVM: s390: vsie: fix some corner-cases when grabbing vsie pages
	ksmbd: fix integer overflows on 32 bit systems
	drm/amd/display: Optimize cursor position updates
	drm/amd/pm: Mark MM activity as unsupported
	drm/amd/amdgpu: change the config of cgcg on gfx12
	drm/amdkfd: only flush the validate MES contex
	drm/amdkfd: Block per-queue reset when halt_if_hws_hang=1
	Revert "drm/amd/display: Use HW lock mgr for PSR1"
	drm/i915/guc: Debug print LRC state entries only if the context is pinned
	drm/i915: Fix page cleanup on DMA remap failure
	drm/komeda: Add check for komeda_get_layer_fourcc_list()
	drm/xe/devcoredump: Move exec queue snapshot to Contexts section
	drm/i915/dp: Iterate DSC BPP from high to low on all platforms
	drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
	drm/amdgpu: add a BO metadata flag to disable write compression for Vulkan
	drm/amd/display: Fix seamless boot sequence
	Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc
	Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection
	KEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y
	clk: sunxi-ng: a100: enable MMC clock reparenting
	clk: mmp2: call pm_genpd_init() only after genpd.name is set
	media: i2c: ds90ub960: Fix UB9702 refclk register access
	clk: clk-loongson2: Fix the number count of clk provider
	clk: qcom: clk-alpha-pll: fix alpha mode configuration
	clk: qcom: gcc-sm8550: Do not turn off PCIe GDSCs during gdsc_disable()
	clk: qcom: gcc-sm8650: Do not turn off PCIe GDSCs during gdsc_disable()
	clk: qcom: gcc-sm6350: Add missing parent_map for two clocks
	clk: qcom: dispcc-sm6350: Add missing parent_map for a clock
	clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg
	clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate
	clk: mediatek: mt2701-vdec: fix conversion to mtk_clk_simple_probe
	clk: mediatek: mt2701-aud: fix conversion to mtk_clk_simple_probe
	clk: mediatek: mt2701-bdp: add missing dummy clk
	clk: mediatek: mt2701-img: add missing dummy clk
	clk: mediatek: mt2701-mm: add missing dummy clk
	seccomp: passthrough uretprobe systemcall without filtering
	blk-cgroup: Fix class @block_class's subsystem refcount leakage
	efi: libstub: Use '-std=gnu11' to fix build with GCC 15
	perf bench: Fix undefined behavior in cmpworker()
	scsi: ufs: core: Fix the HIGH/LOW_TEMP Bit Definitions
	of: Correct child specifier used as input of the 2nd nexus node
	of: address: Fix empty resource handling in __of_address_resource_bounds()
	of: Fix of_find_node_opts_by_path() handling of alias+path+options
	of: reserved-memory: Fix using wrong number of cells to get property 'alignment'
	Input: bbnsm_pwrkey - add remove hook
	HID: hid-sensor-hub: don't use stale platform-data on remove
	ring-buffer: Do not allow events in NMI with generic atomic64 cmpxchg()
	atomic64: Use arch_spin_locks instead of raw_spin_locks
	wifi: rtlwifi: rtl8821ae: Fix media status report
	wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()
	wifi: mt76: mt7921u: Add VID/PID for TP-Link TXE50UH
	wifi: rtw88: sdio: Fix disconnection after beacon loss
	wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916
	wifi: rtw88: 8703b: Fix RX/TX issues
	usb: gadget: f_tcm: Translate error to sense
	usb: gadget: f_tcm: Decrement command ref count on cleanup
	usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
	usb: gadget: f_tcm: Don't prepare BOT write request twice
	usbnet: ipheth: fix possible overflow in DPE length check
	usbnet: ipheth: use static NDP16 location in URB
	usbnet: ipheth: check that DPE points past NCM header
	usbnet: ipheth: refactor NCM datagram loop
	usbnet: ipheth: break up NCM header size computation
	usbnet: ipheth: fix DPE OoB read
	usbnet: ipheth: document scope of NCM implementation
	arm64: dts: qcom: x1e80100-asus-vivobook-s15: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e80100-qcp: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e80100-crd: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e80100-microsoft-romulus: Fix USB QMP PHY supplies
	arm64: dts: qcom: x1e80100: Fix usb_2 controller interrupts
	ASoC: acp: Support microphone from Lenovo Go S
	soc: qcom: socinfo: Avoid out of bounds read of serial number
	serial: sh-sci: Drop __initdata macro for port_cfg
	serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use
	MIPS: Loongson64: remove ROM Size unit in boardinfo
	LoongArch: Extend the maximum number of watchpoints
	powerpc/pseries/eeh: Fix get PE state translation
	dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit()
	dm-crypt: track tag_offset in convert_context
	mips/math-emu: fix emulation of the prefx instruction
	MIPS: pci-legacy: Override pci_address_to_pio
	Revert "MIPS: csrc-r4k: Select HAVE_UNSTABLE_SCHED_CLOCK if SMP && 64BIT"
	block: don't revert iter for -EIOCBQUEUED
	Revert "media: uvcvideo: Require entities to have a non-zero unique ID"
	firmware: qcom: scm: Fix missing read barrier in qcom_scm_is_available()
	firmware: qcom: scm: Fix missing read barrier in qcom_scm_get_tzmem_pool()
	ALSA: hda/realtek: Enable headset mic on Positivo C6400
	ALSA: hda/realtek: Fix quirk matching for Legion Pro 7
	ALSA: hda: Fix headset detection failure due to unstable sort
	arm64: tegra: Fix Tegra234 PCIe interrupt-map
	s390/pci: Fix SR-IOV for PFs initially in standby
	PCI: Avoid putting some root ports into D3 on TUXEDO Sirius Gen1
	PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
	PCI: dwc: ep: Write BAR_MASK before iATU registers in pci_epc_set_bar()
	PCI: dwc: ep: Prevent changing BAR size/flags in pci_epc_set_bar()
	nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
	nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
	KVM: x86/mmu: Ensure NX huge page recovery thread is alive before waking
	scsi: st: Don't set pos_unknown just after device recognition
	scsi: qla2xxx: Move FCE Trace buffer allocation to user control
	scsi: ufs: qcom: Fix crypto key eviction
	scsi: ufs: core: Fix use-after free in init error and remove paths
	scsi: storvsc: Set correct data length for sending SCSI command without payload
	scsi: core: Do not retry I/Os during depopulation
	kbuild: Move -Wenum-enum-conversion to W=2
	rust: init: use explicit ABI to clean warning in future compilers
	x86: rust: set rustc-abi=x86-softfloat on rustc>=1.86.0
	x86/acpi: Fix LAPIC/x2APIC parsing order
	x86/boot: Use '-std=gnu11' to fix build with GCC 15
	ubi: Add a check for ubi_num
	ARM: dts: dra7: Add bus_dma_limit for l4 cfg bus
	ARM: dts: ti/omap: gta04: fix pm issues caused by spi module
	arm64: dts: mediatek: mt8183: Disable DPI display output by default
	arm64: dts: qcom: sdx75: Fix MPSS memory length
	arm64: dts: qcom: x1e80100: Fix ADSP memory base and length
	arm64: dts: qcom: x1e80100: Fix CDSP memory length
	arm64: dts: qcom: sm6115: Fix MPSS memory length
	arm64: dts: qcom: sm6115: Fix CDSP memory length
	arm64: dts: qcom: sm6115: Fix ADSP memory base and length
	arm64: dts: qcom: sm6350: Fix ADSP memory length
	arm64: dts: qcom: sm6350: Fix MPSS memory length
	arm64: dts: qcom: sm6350: Fix uart1 interconnect path
	arm64: dts: qcom: sm6375: Fix ADSP memory length
	arm64: dts: qcom: sm6375: Fix CDSP memory base and length
	arm64: dts: qcom: sm6375: Fix MPSS memory base and length
	arm64: dts: qcom: sm8350: Fix ADSP memory base and length
	arm64: dts: qcom: sm8350: Fix CDSP memory base and length
	arm64: dts: qcom: sm8350: Fix MPSS memory length
	arm64: dts: qcom: sm8450: Fix ADSP memory base and length
	arm64: dts: qcom: sm8450: Fix CDSP memory length
	arm64: dts: qcom: sm8450: Fix MPSS memory length
	arm64: dts: qcom: sm8550: Fix ADSP memory base and length
	arm64: dts: qcom: sm8550: Fix CDSP memory length
	arm64: dts: qcom: sm8550: Fix MPSS memory length
	arm64: dts: qcom: sm8650: Fix ADSP memory base and length
	arm64: dts: qcom: sm8650: Fix CDSP memory length
	arm64: dts: qcom: sm8650: Fix MPSS memory length
	arm64: dts: qcom: sm8550: correct MDSS interconnects
	arm64: dts: qcom: sm8650: correct MDSS interconnects
	crypto: qce - fix priority to be less than ARMv8 CE
	arm64: tegra: Fix typo in Tegra234 dce-fabric compatible
	arm64: tegra: Disable Tegra234 sce-fabric node
	parisc: Temporarily disable jump label support
	pwm: microchip-core: fix incorrect comparison with max period
	xfs: don't call remap_verify_area with sb write protection held
	xfs: Propagate errors from xfs_reflink_cancel_cow_range in xfs_dax_write_iomap_end
	xfs: Add error handling for xfs_reflink_cancel_cow_range
	accel/ivpu: Clear runtime_error after pm_runtime_resume_and_get() fails
	ACPI: PRM: Remove unnecessary strict handler address checks
	tpm: Change to kvalloc() in eventlog/acpi.c
	rv: Reset per-task monitors also for idle tasks
	hrtimers: Force migrate away hrtimers queued after CPUHP_AP_HRTIMERS_DYING
	iommufd: Fix struct iommu_hwpt_pgfault init and padding
	kfence: skip __GFP_THISNODE allocations on NUMA systems
	media: ccs: Clean up parsed CCS static data on parse failure
	mm/hugetlb: fix avoid_reserve to allow taking folio from subpool
	iio: light: as73211: fix channel handling in only-color triggered buffer
	iommu/tegra241-cmdqv: Read SMMU IDR1.CMDQS instead of hardcoding
	iommufd/fault: Destroy response and mutex in iommufd_fault_destroy()
	iommufd/fault: Use a separate spinlock to protect fault->deliver list
	soc: samsung: exynos-pmu: Fix uninitialized ret in tensor_set_bits_atomic()
	soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
	soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
	soc: qcom: llcc: Enable LLCC_WRCACHE at boot on X1
	soc: qcom: smem_state: fix missing of_node_put in error path
	media: mmp: Bring back registration of the device
	media: mc: fix endpoint iteration
	media: nuvoton: Fix an error check in npcm_video_ece_init()
	media: imx296: Add standby delay during probe
	media: intel/ipu6: remove cpu latency qos request on error
	media: ov5640: fix get_light_freq on auto
	media: stm32: dcmipp: correct dma_set_mask_and_coherent mask value
	media: ccs: Fix CCS static data parsing for large block sizes
	media: ccs: Fix cleanup order in ccs_probe()
	media: i2c: ds90ub9x3: Fix extra fwnode_handle_put()
	media: i2c: ds90ub960: Fix use of non-existing registers on UB9702
	media: i2c: ds90ub960: Fix UB9702 VC map
	media: i2c: ds90ub960: Fix logging SP & EQ status only for UB9702
	media: uvcvideo: Fix crash during unbind if gpio unit is in use
	media: uvcvideo: Fix event flags in uvc_ctrl_send_events
	media: uvcvideo: Support partial control reads
	media: uvcvideo: Only save async fh if success
	media: uvcvideo: Remove redundant NULL assignment
	media: uvcvideo: Remove dangling pointers
	mm: kmemleak: fix upper boundary check for physical address objects
	mm: gup: fix infinite loop within __get_longterm_locked
	mm/vmscan: accumulate nr_demoted for accurate demotion statistics
	mm/hugetlb: fix hugepage allocation for interleaved memory nodes
	mm/compaction: fix UBSAN shift-out-of-bounds warning
	ata: libata-sff: Ensure that we cannot write outside the allocated buffer
	irqchip/irq-mvebu-icu: Fix access to msi_data from irq_domain::host_data
	crypto: qce - fix goto jump in error path
	crypto: qce - unregister previously registered algos in error path
	ceph: fix memory leak in ceph_mds_auth_match()
	nvmem: qcom-spmi-sdam: Set size in struct nvmem_config
	nvmem: core: improve range check for nvmem_cell_write()
	nvmem: imx-ocotp-ele: simplify read beyond device check
	nvmem: imx-ocotp-ele: fix MAC address byte order
	nvmem: imx-ocotp-ele: fix reading from non zero offset
	nvmem: imx-ocotp-ele: set word length to 1
	io_uring: fix multishots with selected buffers
	io_uring/net: don't retry connect operation on EPOLLERR
	vfio/platform: check the bounds of read/write syscalls
	selftests: mptcp: connect: -f: no reconnect
	pnfs/flexfiles: retry getting layout segment for reads
	ocfs2: fix incorrect CPU endianness conversion causing mount failure
	ocfs2: handle a symlink read error correctly
	nilfs2: fix possible int overflows in nilfs_fiemap()
	nfs: Make NFS_FSCACHE select NETFS_SUPPORT instead of depending on it
	NFSD: Encode COMPOUND operation status on page boundaries
	mailbox: tegra-hsp: Clear mailbox before using message
	mailbox: zynqmp: Remove invalid __percpu annotation in zynqmp_ipi_probe()
	NFC: nci: Add bounds checking in nci_hci_create_pipe()
	fgraph: Fix set_graph_notrace with setting TRACE_GRAPH_NOTRACE_BIT
	i3c: master: Fix missing 'ret' assignment in set_speed()
	irqchip/apple-aic: Only handle PMC interrupt as FIQ when configured so
	mtd: onenand: Fix uninitialized retlen in do_otp_read()
	misc: misc_minor_alloc to use ida for all dynamic/misc dynamic minors
	misc: fastrpc: Deregister device nodes properly in error scenarios
	misc: fastrpc: Fix registered buffer page address
	misc: fastrpc: Fix copy buffer page size
	net/ncsi: wait for the last response to Deselect Package before configuring channel
	net: phy: c45-tjaxx: add delay between MDIO write and read in soft_reset
	maple_tree: simplify split calculation
	scripts/gdb: fix aarch64 userspace detection in get_current_task
	tracing/osnoise: Fix resetting of tracepoints
	rtla/osnoise: Distinguish missing workload option
	rtla/timerlat_hist: Set OSNOISE_WORKLOAD for kernel threads
	rtla/timerlat_top: Set OSNOISE_WORKLOAD for kernel threads
	rtla: Add trace_instance_stop
	rtla/timerlat_hist: Stop timerlat tracer on signal
	rtla/timerlat_top: Stop timerlat tracer on signal
	pinctrl: samsung: fix fwnode refcount cleanup if platform_get_irq_optional() fails
	pinctrl: renesas: rzg2l: Fix PFC_MASK for RZ/V2H and RZ/G3E
	ptp: Ensure info->enable callback is always set
	RDMA/mlx5: Fix a race for an ODP MR which leads to CQE with error
	rtc: zynqmp: Fix optional clock name property
	timers/migration: Fix off-by-one root mis-connection
	s390/fpu: Add fpc exception handler / remove fixup section again
	MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static
	xfs: avoid nested calls to __xfs_trans_commit
	xfs: don't lose solo superblock counter update transactions
	xfs: separate dquot buffer reads from xfs_dqflush
	xfs: clean up log item accesses in xfs_qm_dqflush{,_done}
	xfs: attach dquot buffer to dquot log item buffer
	xfs: convert quotacheck to attach dquot buffers
	xfs: release the dquot buf outside of qli_lock
	xfs: lock dquot buffer before detaching dquot from b_li_list
	xfs: fix mount hang during primary superblock recovery failure
	spi: atmel-quadspi: Create `atmel_qspi_ops` to support newer SoC families
	spi: atmel-qspi: Memory barriers after memory-mapped I/O
	Revert "btrfs: avoid monopolizing a core when activating a swap file"
	btrfs: avoid monopolizing a core when activating a swap file
	mptcp: prevent excessive coalescing on receive
	x86/mm: Convert unreachable() to BUG()
	md/md-linear: Fix a NULL vs IS_ERR() bug in linear_add()
	md: Fix linear_set_limits()
	Revert "selftests/sched_ext: fix build after renames in sched_ext API"
	Revert "drm/amd/display: Fix green screen issue after suspend"
	drm/xe: Fix and re-enable xe_print_blob_ascii85()
	fs: prepend statmount.mnt_opts string with security_sb_mnt_opts()
	fs: fix adding security options to statmount.mnt_opt
	statmount: let unset strings be empty
	arm64: dts: rockchip: add reset-names for combphy on rk3568
	ocfs2: check dir i_size in ocfs2_find_entry
	Linux 6.12.14

Change-Id: Id4141bfc8ee9a6320b056561aa528228e7a3f1df
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-02-24 00:02:42 -08:00
Tiezhu Yang e2bc9a5d7a LoongArch: Extend the maximum number of watchpoints
commit 531936dee53e471a3ec668de3c94ca357f54b7e8 upstream.

The maximum number of load/store watchpoints and fetch instruction
watchpoints is 14 each according to LoongArch Reference Manual, so
extend the maximum number of watchpoints from 8 to 14 for ptrace.

By the way, just simply change 8 to 14 for the definition in struct
user_watch_state at the beginning, but it may corrupt uapi, then add
a new struct user_watch_state_v2 directly.

As far as I can tell, the only users for this struct in the userspace
are GDB and LLDB, there are no any problems of software compatibility
between the application and kernel according to the analysis.

The compatibility problem has been considered while developing and
testing. When the applications in the userspace get watchpoint state,
the length will be specified which is no bigger than the sizeof struct
user_watch_state or user_watch_state_v2, the actual length is assigned
as the minimal value of the application and kernel in the generic code
of ptrace:

kernel/ptrace.c: ptrace_regset():

	kiov->iov_len = min(kiov->iov_len,
			   (__kernel_size_t) (regset->n * regset->size));

	if (req == PTRACE_GETREGSET)
		return copy_regset_to_user(task, view, regset_no, 0,
					  kiov->iov_len, kiov->iov_base);
	else
		return copy_regset_from_user(task, view, regset_no, 0,
					  kiov->iov_len, kiov->iov_base);

For example, there are four kind of combinations, all of them work well.

(1) "older kernel + older gdb", the actual length is 8+(8+8+4+4)*8=200;
(2) "newer kernel + newer gdb", the actual length is 8+(8+8+4+4)*14=344;
(3) "older kernel + newer gdb", the actual length is 8+(8+8+4+4)*8=200;
(4) "newer kernel + older gdb", the actual length is 8+(8+8+4+4)*8=200.

Link: https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#control-and-status-registers-related-to-watchpoints
Cc: stable@vger.kernel.org
Fixes: 1a69f7a161 ("LoongArch: ptrace: Expose hardware breakpoints to debuggers")
Reviewed-by: WANG Xuerui <git@xen0n.name>
Reviewed-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-02-17 10:05:18 +01:00
Greg Kroah-Hartman 9634c94147 Merge 6.12.13 into android16-6.12
GKI (arm64) relevant 102 out of 584 changes, affecting 165 files +1491/-594
  4338831b83 coredump: Do not lock during 'comm' reporting [1 file, +2/-2]
  784908004f fs: fix proc_handler for sysctl_nr_open [1 file, +1/-1]
  f83f330fc4 block: retry call probe after request_module in blk_request_module [1 file, +17/-5]
  e278c7ff75 block: check BLK_FEAT_POLL under q_usage_count [2 files, +22/-12]
  d313ff5308 block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues [4 files, +22/-26]
  4621771de1 nvme: Add error check for xa_store in nvme_get_effects_log [1 file, +6/-2]
  e8c390a9a5 nvme: Add error path for xa_store in nvme_init_effects [1 file, +22/-4]
  68303b5d38 select: Fix unbalanced user_access_end() [1 file, +2/-2]
  1e8c151fb2 nvme: fix bogus kzalloc() return check in nvme_init_effects_log() [1 file, +1/-1]
  e4b64d34a4 sched/fair: Untangle NEXT_BUDDY and pick_next_task() [2 files, +11/-2]
  5bb4039f77 sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat [2 files, +14/-4]
  fd2818c5e0 sched: Split out __schedule() deactivate task logic into a helper [1 file, +40/-27]
  3f1215588b sched: psi: pass enqueue/dequeue flags to psi callbacks directly [3 files, +53/-44]
  10a7d3e734 psi: Fix race when task wakes up before psi_sched_switch() adjusts flags [2 files, +7/-3]
  ebaeca33d3 HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections [1 file, +2/-0]
  7d68c20638 OPP: add index check to assert to avoid buffer overflow in _read_freq() [1 file, +27/-15]
  ff2def2518 OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized [1 file, +13/-2]
  82bd38bd54 net_sched: sch_sfq: handle bigger packets [1 file, +13/-26]
  7d8947f215 net_sched: sch_sfq: don't allow 1 packet limit [1 file, +4/-0]
  e561d1a2ba clk: fix an OF node reference leak in of_clk_get_parent_name() [1 file, +3/-1]
  bd1bb30b9f HID: multitouch: fix support for Goodix PID 0x01e9 [1 file, +1/-1]
  d474a73856 inetpeer: remove create argument of inet_getpeer_v[46]() [7 files, +11/-12]
  dc4fd82dad inetpeer: remove create argument of inet_getpeer() [2 files, +5/-13]
  4622e45097 inetpeer: update inetpeer timestamp in inet_getpeer() [1 file, +4/-8]
  9345b588f8 inetpeer: do not get a refcount in inet_getpeer() [7 files, +32/-29]
  4f8344fce9 udp: Deal with race between UDP socket address change and rehash [2 files, +106/-0]
  a7175e363a dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition [1 file, +0/-1]
  036f2f5109 dt-bindings: clock: imx93: Add SPDIF IPG clk [1 file, +1/-0]
  5078123528 regulator: of: Implement the unwind path of of_regulator_match() [1 file, +13/-1]
  8937f5e38a ax25: rcu protect dev->ax25_ptr [7 files, +35/-20]
  3d62a5037f OPP: OF: Fix an OF node leak in _opp_add_static_v2() [1 file, +3/-1]
  a3bdd14936 HID: fix generic desktop D-Pad controls [2 files, +18/-20]
  a8251d3a4c mfd: syscon: Fix race in device_node_get_regmap() [1 file, +10/-9]
  984e7d2aa0 wifi: mac80211: Fix common size calculation for ML element [1 file, +3/-8]
  df2f2d9199 Bluetooth: btbcm: Fix NULL deref in btbcm_get_board_name() [1 file, +3/-0]
  f98ccd7d77 dev: Acquire netdev_rename_lock before restoring dev->name in dev_change_name(). [1 file, +2/-0]
  33e2168788 net: let net.core.dev_weight always be non-zero [1 file, +4/-1]
  b382ab9b88 net: avoid race between device unregistration and ethnl ops [1 file, +1/-1]
  73c7e1d689 net: sched: Disallow replacing of child qdisc from one parent to another [1 file, +4/-0]
  d7fe7e1bbe netfilter: nf_tables: fix set size with rbtree backend [3 files, +96/-2]
  5213efec90 net: sched: refine software bypass handling in tc_run [8 files, +55/-45]
  a0753466f0 tcp_cubic: fix incorrect HyStart round start detection [1 file, +5/-3]
  b7de862bda crypto: api - Fix boot-up self-test race [1 file, +2/-2]
  b002750000 bpf: bpf_local_storage: Always use bpf_mem_alloc in PREEMPT_RT [1 file, +6/-2]
  eb2e58484b rhashtable: Fix potential deadlock by moving schedule_work outside lock [1 file, +6/-4]
  8e7d29b698 bpf: Use refcount_t instead of atomic_t for mmap_count [1 file, +4/-4]
  b777b14c2a bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing [3 files, +26/-5]
  78b9778349 bpf: Send signals asynchronously if !preemptible [1 file, +1/-1]
  0e272fe6a0 bpf: tcp: Mark bpf_load_hdr_opt() arg2 as read-write [1 file, +1/-1]
  f939008a52 rhashtable: Fix rhashtable_try_insert test [1 file, +7/-5]
  33e47d9573 bpf: Cancel the running bpf_timer through kworker for PREEMPT_RT [1 file, +16/-2]
  6cffdf4838 of: property: Avoiding using uninitialized variable @imaplen in parse_interrupt_map() [1 file, +1/-1]
  92ed1efb6a of: reserved-memory: Do not make kmemleak ignore freed address [1 file, +2/-1]
  9a0fe62f93 of: reserved_mem: Restructure how the reserved memory regions are processed [3 files, +122/-54]
  e61977c714 of/fdt: Restore possibility to use both ACPI and FDT from bootloader [1 file, +1/-9]
  45e1246e5c PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy() [1 file, +1/-1]
  58465dfc42 media: uvcvideo: Propagate buf->error to userspace [1 file, +2/-1]
  a2c80a1881 PCI: qcom: Update ICC and OPP values after Link Up event [1 file, +2/-0]
  a665fab63d PCI: dwc: Always stop link in the dw_pcie_suspend_noirq [1 file, +1/-0]
  0e0ac81d51 scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails [1 file, +1/-0]
  4896402780 erofs: fix potential return value overflow of z_erofs_shrink_scan() [1 file, +1/-2]
  565611d101 module: Extend the preempt disabled section in dereference_symbol_descriptor(). [1 file, +1/-1]
  fd41b2e9aa module: Don't fail module loading when setting ro_after_init section RO failed [1 file, +4/-3]
  1614e75d1a driver core: class: Fix wild pointer dereferences in API class_dev_iter_next() [1 file, +8/-1]
  b35a3edc7c serial: 8250: Adjust the timeout for FIFO mode [1 file, +26/-6]
  87fdd4c447 xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO [1 file, +6/-4]
  2a64cff2aa xfrm: Add support for per cpu xfrm state handling. [6 files, +112/-22]
  aa48a18fdb xfrm: Cache used outbound xfrm states at the policy. [3 files, +71/-0]
  5e4334dc39 xfrm: Add an inbound percpu state cache. [6 files, +70/-7]
  a16871c783 xfrm: state: fix out-of-bounds read during lookup [1 file, +70/-19]
  6945701ca1 xfrm: delete intermediate secpath entry in packet offload mode [1 file, +13/-3]
  24ac5b7524 regulator: core: Add missing newline character [1 file, +1/-1]
  a099834a51 ipmr: do not call mr_mfc_uses_dev() for unres entries [1 file, +0/-3]
  3b732c60a0 PM: hibernate: Add error handling for syscore_suspend() [1 file, +6/-1]
  e468aace40 xfrm: Don't disable preemption while looking up cache state. [1 file, +1/-3]
  3e44707da8 ptp: Properly handle compat ioctls [1 file, +4/-0]
  a68d7a9fb8 ethtool: Fix set RXNFC command with symmetric RSS hash [1 file, +1/-1]
  a06bb37d65 vsock: Allow retrying on connect() failure [1 file, +5/-0]
  1dd823a46e tcp: correct handling of extreme memory squeeze [1 file, +6/-3]
  557707906d net: xdp: Disallow attaching device-bound programs in generic mode [1 file, +4/-0]
  a23834b782 genksyms: fix memory leak when the same symbol is added from source [2 files, +15/-2]
  52f0a28e17 genksyms: fix memory leak when the same symbol is read from *.symref file [3 files, +9/-5]
  206d8e0242 io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock() [1 file, +1/-1]
  6e26ca1818 kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST [1 file, +4/-2]
  e4e8ed67e0 kconfig: fix memory leak in sym_warn_unmet_dep() [1 file, +1/-0]
  00d1943fe4 f2fs: Introduce linear search for dentries [3 files, +45/-19]
  e0216c39b4 ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro [1 file, +2/-0]
  f395b7efce net: usb: rtl8150: enable basic endpoint checking [1 file, +22/-0]
  ae069cd2ba usb: xhci: Fix NULL pointer dereference on certain command aborts [1 file, +2/-1]
  ebba1bebf0 usb: dwc3: core: Defer the probe until USB power supply ready [1 file, +21/-9]
  01c74aeac2 usb: dwc3: Skip resume if pm_runtime_set_active() fails [1 file, +4/-1]
  ce5c91a1b2 usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE [1 file, +1/-1]
  15b50cbc6f usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS [3 files, +16/-8]
  f2013d19b7 remoteproc: core: Fix ida_free call while not allocated [1 file, +7/-7]
  d1f8e69eec media: uvcvideo: Fix double free in error path [1 file, +1/-0]
  8de4e5a922 of: reserved-memory: Warn for missing static reserved memory regions [1 file, +5/-0]
  698943070e dma-mapping: save base/size instead of pointer to shared DMA pool [1 file, +8/-6]
  78b366aa0e xfrm: Add error handling when nla_put_u32() returns an error [1 file, +4/-1]
  364d7e7f30 xfrm: Fix acquire state insertion. [1 file, +1/-0]
  1cf2177959 ethtool: Fix access to uninitialized fields in set RXNFC command [1 file, +2/-1]
  c3a3741db8 memcg: fix soft lockup in the OOM process [2 files, +13/-2]
  333f128224 ethtool: ntuple: fix rss + ring_cookie check [1 file, +1/-1]

Changes in 6.12.13
	coredump: Do not lock during 'comm' reporting
	powerpc/book3s64/hugetlb: Fix disabling hugetlb when fadump is active
	dlm: fix removal of rsb struct that is master and dir record
	dlm: fix srcu_read_lock() return type to int
	afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY
	afs: Fix directory format encoding struct
	afs: Fix cleanup of immediately failed async calls
	fs: fix proc_handler for sysctl_nr_open
	block: copy back bounce buffer to user-space correctly in case of split
	block: retry call probe after request_module in blk_request_module
	ps3disk: Do not use dev->bounce_size before it is set
	nbd: don't allow reconnect after disconnect
	pstore/blk: trivial typo fixes
	block: check BLK_FEAT_POLL under q_usage_count
	block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues
	nvme-tcp: Fix I/O queue cpu spreading for multiple controllers
	nvme: Add error check for xa_store in nvme_get_effects_log
	powerpc/pseries/iommu: IOMMU incorrectly marks MMIO range in DDW
	selftests/powerpc: Fix argument order to timer_sub()
	nvme: Add error path for xa_store in nvme_init_effects
	btrfs: improve the warning and error message for btrfs_remove_qgroup()
	partitions: ldm: remove the initial kernel-doc notation
	btrfs: subpage: fix the bitmap dump of the locked flags
	select: Fix unbalanced user_access_end()
	nvme: fix bogus kzalloc() return check in nvme_init_effects_log()
	afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
	perf/core: Save raw sample data conditionally based on sample type
	sched/fair: Untangle NEXT_BUDDY and pick_next_task()
	sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat
	sched: Fix race between yield_to() and try_to_wake_up()
	x86/cpu: Enable SD_ASYM_PACKING for PKG domain on AMD
	x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally
	sched: Split out __schedule() deactivate task logic into a helper
	sched: psi: pass enqueue/dequeue flags to psi callbacks directly
	psi: Fix race when task wakes up before psi_sched_switch() adjusts flags
	drm/v3d: Fix performance counter source settings on V3D 7.x
	drm/rockchip: vop2: fix rk3588 dp+dsi maxclk verification
	drm/msm/dp: set safe_to_exit_level before printing it
	drm/msm/hdmi: simplify code in pll_get_integloop_gain
	drm/etnaviv: Fix page property being used for non writecombine buffers
	HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections
	drm/amd/pm: Fix an error handling path in vega10_enable_se_edc_force_stall_config()
	drm/amdgpu: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
	drm/rockchip: vop2: Fix cluster windows alpha ctrl regsiters offset
	drm/rockchip: vop2: Fix the mixer alpha setup for layer 0
	drm/panthor: Preserve the result returned by panthor_fw_resume()
	drm/rockchip: vop2: Fix the windows switch between different layers
	printk: Defer legacy printing when holding printk_cpu_sync
	drm/connector: Allow clearing HDMI infoframes
	drm/rockchip: vop2: Set AXI id for rk3588
	drm/rockchip: vop2: Setup delay cycle for Esmart2/3
	drm/rockchip: vop2: Check linear format for Cluster windows on rk3566/8
	drm/rockchip: vop2: Add check for 32 bpp format for rk3588
	drm/rockchip: vop2: include rockchip_drm_drv.h
	drm/amdgpu/vcn: reset fw_shared under SRIOV
	OPP: add index check to assert to avoid buffer overflow in _read_freq()
	OPP: fix dev_pm_opp_find_bw_*() when bandwidth table not initialized
	drm/msm/dpu: provide DSPP and correct LM config for SDM670
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8150
	drm/msm/dpu: link DSPP_2/_3 blocks on SC8180X
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8250
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8350
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8550
	drm/msm/dpu: link DSPP_2/_3 blocks on SM8650
	drm/msm/dpu: link DSPP_2/_3 blocks on X1E80100
	drm/msm: Check return value of of_dma_configure()
	drm/msm: don't clean up priv->kms prematurely
	drm/msm/mdp4: correct LCDC regulator name
	drm/bridge: it6505: Change definition of AUX_FIFO_MAX_SIZE
	drm/amdgpu: tear down ttm range manager for doorbell in amdgpu_ttm_fini()
	Revert "drm/amdgpu/gfx9: put queue resets behind a debug option"
	drm/amdgpu: fix gpu recovery disable with per queue reset
	genirq: Make handle_enforce_irqctx() unconditionally available
	ipmi: ipmb: Add check devm_kasprintf() returned value
	wifi: ath11k: Fix unexpected return buffer manager error for WCN6750/WCN6855
	wifi: rtlwifi: rtl8821ae: phy: restore removed code to fix infinite loop
	wifi: rtlwifi: do not complete firmware loading needlessly
	wifi: rtlwifi: rtl8192se: rise completion of firmware loading as last step
	wifi: rtlwifi: wait for firmware loading before releasing memory
	wifi: rtlwifi: fix init_sw_vars leak when probe fails
	wifi: rtlwifi: usb: fix workqueue leak when probe fails
	wifi: wcn36xx: fix channel survey memory allocation size
	clk: renesas: cpg-mssr: Fix 'soc' node handling in cpg_mssr_reserved_init()
	wifi: cfg80211: tests: Fix potential NULL dereference in test_cfg80211_parse_colocated_ap()
	selftests/bpf: Actuate tx_metadata_len in xdp_hw_metadata
	net_sched: sch_sfq: handle bigger packets
	net_sched: sch_sfq: don't allow 1 packet limit
	spi: zynq-qspi: Add check for clk_enable()
	rxrpc: Fix handling of received connection abort
	dt-bindings: mmc: controller: clarify the address-cells description
	clk: fix an OF node reference leak in of_clk_get_parent_name()
	dt-bindings: leds: class-multicolor: Fix path to color definitions
	wifi: rtlwifi: remove unused check_buddy_priv
	wifi: rtlwifi: destroy workqueue at rtl_deinit_core
	wifi: rtlwifi: fix memory leaks and invalid access at probe error path
	wifi: rtlwifi: pci: wait for firmware loading before releasing memory
	HID: multitouch: fix support for Goodix PID 0x01e9
	regulator: dt-bindings: mt6315: Drop regulator-compatible property
	wifi: brcmfmac: add missing header include for brcmf_dbg
	module: Convert default symbol namespace to string literal
	hwmon: (nct6775): Actually make use of the HWMON_NCT6775 symbol namespace
	ACPI: fan: cleanup resources in the error path of .probe()
	cpupower: fix TSC MHz calculation
	dt-bindings: mfd: bd71815: Fix rsense and typos
	leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
	inetpeer: remove create argument of inet_getpeer_v[46]()
	inetpeer: remove create argument of inet_getpeer()
	inetpeer: update inetpeer timestamp in inet_getpeer()
	inetpeer: do not get a refcount in inet_getpeer()
	pwm: stm32-lp: Add check for clk_enable()
	cpufreq: schedutil: Fix superfluous updates caused by need_freq_update
	selftests: ktap_helpers: Fix uninitialized variable
	ptr_ring: do not block hard interrupts in ptr_ring_resize_multiple()
	net: airoha: Fix error path in airoha_probe()
	gpio: pca953x: log an error when failing to get the reset GPIO
	cpufreq: qcom: Fix qcom_cpufreq_hw_recalc_rate() to query LUT if LMh IRQ is not available
	cpufreq: qcom: Implement clk_ops::determine_rate() for qcom_cpufreq* clocks
	udp: Deal with race between UDP socket address change and rehash
	clk: imx8mp: Fix clkout1/2 support
	dt-bindings: clock: imx93: Drop IMX93_CLK_END macro definition
	dt-bindings: clock: Add i.MX91 clock support
	dt-bindings: clock: imx93: Add SPDIF IPG clk
	clk: imx93: Move IMX93_CLK_END macro to clk driver
	clk: imx: add i.MX91 clk
	clk: imx93: Add IMX93_CLK_SPDIF_IPG clock
	arm64: dts: imx93: Use IMX93_CLK_SPDIF_IPG as SPDIF IPG clock
	clk: imx: Apply some clks only for i.MX93
	clk: qcom: camcc-x1e80100: Set titan_top_gdsc as the parent GDSC of subordinate GDSCs
	team: prevent adding a device which is already a team device lower
	dt-bindings: clock: sunxi: Export PLL_VIDEO_2X and PLL_MIPI
	clk: sunxi-ng: a64: drop redundant CLK_PLL_VIDEO0_2X and CLK_PLL_MIPI
	clk: sunxi-ng: a64: stop force-selecting PLL-MIPI as TCON0 parent
	regulator: of: Implement the unwind path of of_regulator_match()
	ax25: rcu protect dev->ax25_ptr
	net/mlx5: HWS, fix definer's HWS_SET32 macro for negative offset
	OPP: OF: Fix an OF node leak in _opp_add_static_v2()
	ipmi: ssif_bmc: Fix new request loss when bmc ready for a response
	wifi: ath12k: fix tx power, max reg power update to firmware
	clk: qcom: gcc-sdm845: Do not use shared clk_ops for QUPs
	HID: hid-thrustmaster: Fix warning in thrustmaster_probe by adding endpoint check
	HID: fix generic desktop D-Pad controls
	leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak
	mfd: syscon: Fix race in device_node_get_regmap()
	samples/landlock: Fix possible NULL dereference in parse_path()
	wifi: mt76: mt7996: fix invalid interface combinations
	wifi: wlcore: fix unbalanced pm_runtime calls
	wifi: rtw89: handle entity active flag per PHY
	wifi: rtw89: chan: manage active interfaces
	wifi: rtw89: tweak setting of channel and TX power for MLO
	wifi: rtw89: fix proceeding MCC with wrong scanning state after sequence changes
	wifi: rtw89: chan: fix soft lockup in rtw89_entity_recalc_mgnt_roles()
	wifi: rtw89: avoid to init mgnt_entry list twice when WoWLAN failed
	wifi: rtw89: mcc: consider time limits not divisible by 1024
	wifi: rtw89: fix race between cancel_hw_scan and hw_scan completion
	hwmon: Fix help text for aspeed-g6-pwm-tach
	wifi: mt76: mt7925: fix off by one in mt7925_load_clc()
	wifi: mt76: mt7915: Fix mesh scan on MT7916 DBDC
	wifi: iwlwifi: fw: read STEP table from correct UEFI var
	wifi: iwlwifi: mvm: avoid NULL pointer dereference
	wifi: iwlwifi: mvm: don't count mgmt frames as MPDU
	wifi: mac80211: prohibit deactivating all links
	wifi: cfg80211: Move cfg80211_scan_req_add_chan() n_channels increment earlier
	wifi: mac80211: fix tid removal during mesh forwarding
	wifi: mac80211: Fix common size calculation for ML element
	wifi: mac80211: don't flush non-uploaded STAs
	clk: ralink: mtmips: remove duplicated 'xtal' clock for Ralink SoC RT3883
	clk: thead: Fix clk gate registration to pass flags
	clk: thead: Add CLK_IGNORE_UNUSED to fix TH1520 boot
	clk: thead: Fix cpu2vp_clk for TH1520 AP_SUBSYS clocks
	net/smc: fix data error when recvmsg with MSG_PEEK flag
	landlock: Handle weird files
	wifi: mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
	wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.
	wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()
	wifi: mt76: mt7925: fix NULL deref check in mt7925_change_vif_links
	wifi: mt76: mt7925: fix wrong band_idx setting when enable sniffer mode
	wifi: mt76: mt7925: fix get wrong chip cap from incorrect pointer
	wifi: mt76: mt7925: fix the invalid ip address for arp offload
	wifi: mt76: mt7996: fix overflows seen when writing limit attributes
	wifi: mt76: mt7915: fix overflows seen when writing limit attributes
	wifi: mt76: connac: Extend mt76_connac_mcu_uni_add_dev for MLO
	wifi: mt76: mt7925: Fix incorrect MLD address in bss_mld_tlv for MLO support
	wifi: mt76: mt7925: Fix incorrect WCID assignment for MLO
	wifi: mt76: mt7925: Fix incorrect WCID phy_idx assignment
	wifi: mt76: mt7925: fix wrong parameter for related cmd of chan info
	wifi: mt76: mt7925: Fix CNM Timeout with Single Active Link in MLO
	wifi: mt76: mt7925: Enhance mt7925_mac_link_bss_add to support MLO
	wifi: mt76: Enhance mt7925_mac_link_sta_add to support MLO
	wifi: mt76: mt7925: Update mt7925_mcu_sta_update for BC in ASSOC state
	wifi: mt76: mt7925: Update mt792x_rx_get_wcid for per-link STA
	wifi: mt76: mt7925: Update mt7925_unassign_vif_chanctx for per-link BSS
	wifi: mt76: mt7925: Update secondary link PS flow
	wifi: mt76: mt7925: Init secondary link PM state
	wifi: mt76: mt7925: Update mt7925_mcu_uni_[tx,rx]_ba for MLO
	wifi: mt76: mt7925: Cleanup MLO settings post-disconnection
	wifi: mt76: mt7925: Properly handle responses for commands with events
	wifi: mt76: mt7996: fix rx filter setting for bfee functionality
	wifi: mt76: only enable tx worker after setting the channel
	wifi: mt76: mt7915: firmware restart on devices with a second pcie link
	wifi: mt76: mt7915: fix omac index assignment after hardware reset
	wifi: mt76: mt7915: fix register mapping
	wifi: mt76: mt7996: fix register mapping
	wifi: mt76: mt7996: add max mpdu len capability
	wifi: mt76: mt7996: fix the capability of reception of EHT MU PPDU
	wifi: mt76: mt7996: fix HE Phy capability
	wifi: mt76: mt7996: fix incorrect indexing of MIB FW event
	wifi: mt76: mt7996: fix definition of tx descriptor
	wifi: mt76: mt7996: fix ldpc setting
	i2c: designware: Actually make use of the I2C_DW_COMMON and I2C_DW symbol namespaces
	cpufreq: ACPI: Fix max-frequency computation
	selftests: timers: clocksource-switch: Adapt progress to kselftest framework
	selftests: harness: fix printing of mismatch values in __EXPECT()
	wifi: cfg80211: adjust allocation of colocated AP data
	Bluetooth: btbcm: Fix NULL deref in btbcm_get_board_name()
	Bluetooth: btrtl: check for NULL in btrtl_setup_realtek()
	inet: ipmr: fix data-races
	clk: analogbits: Fix incorrect calculation of vco rate delta
	dev: Acquire netdev_rename_lock before restoring dev->name in dev_change_name().
	pwm: stm32: Add check for clk_enable()
	selftests/landlock: Fix build with non-default pthread linking
	selftests/landlock: Fix error message
	net: let net.core.dev_weight always be non-zero
	net/mlxfw: Drop hard coded max FW flash image size
	octeon_ep: remove firmware stats fetch in ndo_get_stats64
	octeon_ep_vf: remove firmware stats fetch in ndo_get_stats64
	net: avoid race between device unregistration and ethnl ops
	net: sched: Disallow replacing of child qdisc from one parent to another
	netfilter: nf_tables: fix set size with rbtree backend
	netfilter: nft_flow_offload: update tcp state flags under lock
	net: sched: refine software bypass handling in tc_run
	net: ethernet: ti: am65-cpsw: fix freeing IRQ in am65_cpsw_nuss_remove_tx_chns()
	tcp_cubic: fix incorrect HyStart round start detection
	net/rose: prevent integer overflows in rose_setsockopt()
	platform/mellanox: mlxbf-pmc: incorrect type in assignment
	platform/x86: x86-android-tablets: make platform data be static
	pinctrl: samsung: Fix irq handling if an error occurs in exynos_irq_demux_eint16_31()
	libbpf: don't adjust USDT semaphore address if .stapsdt.base addr is missing
	ASoC: cs40l50: Use *-y for Makefile
	ASoC: mediatek: mt8365: Use *-y for Makefile
	ASoC: wcd937x: Use *-y for Makefile
	tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind
	libbpf: Fix segfault due to libelf functions not setting errno
	ASoC: Intel: sof_sdw: correct mach_params->dmic_num
	ASoC: sun4i-spdif: Add clock multiplier settings
	selftests/bpf: Fix fill_link_info selftest on powerpc
	iommu/arm-smmuv3: Update comments about ATS and bypass
	crypto: tegra - do not transfer req when tegra init fails
	crypto: api - Fix boot-up self-test race
	crypto: caam - use JobR's space to access page 0 regs
	perf header: Fix one memory leakage in process_bpf_btf()
	perf header: Fix one memory leakage in process_bpf_prog_info()
	perf bpf: Fix two memory leakages when calling perf_env__insert_bpf_prog_info()
	ASoC: renesas: rz-ssi: Use only the proper amount of dividers
	perf expr: Initialize is_test value in expr__ctx_new()
	pinctrl: nomadik: Add check for clk_enable()
	ktest.pl: Remove unused declarations in run_bisect_test function
	bpf: bpf_local_storage: Always use bpf_mem_alloc in PREEMPT_RT
	rhashtable: Fix potential deadlock by moving schedule_work outside lock
	crypto: hisilicon/sec2 - fix for aead icv error
	crypto: hisilicon/sec2 - fix for aead invalid authsize
	crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto()
	crypto: iaa - Fix IAA disabling that occurs when sync_mode is set to 'async'
	bpf: Use refcount_t instead of atomic_t for mmap_count
	ALSA: seq: Make dependency on UMP clearer
	bpf: Reject struct_ops registration that uses module ptr and the module btf_id is missing
	padata: fix sysfs store callback check
	selftests/bpf: Avoid generating untracked files when running bpf selftests
	perf top: Don't complain about lack of vmlinux when not resolving some kernel samples
	perf maps: Fix display of kernel symbols
	perf machine: Don't ignore _etext when not a text symbol
	perf namespaces: Introduce nsinfo__set_in_pidns()
	perf namespaces: Fixup the nsinfo__in_pidns() return type, its bool
	ASoC: Intel: avs: Do not readq() u32 registers
	ASoC: Intel: avs: Fix the minimum firmware version numbers
	ASoC: Intel: avs: Fix theoretical infinite loop
	ASoC: Intel: avs: Fix init-config parsing
	perf MANIFEST: Add arch/*/include/uapi/asm/bpf_perf_event.h to the perf tarball
	ALSA: hda: Fix compilation of snd_hdac_adsp_xxx() helpers
	perf report: Fix misleading help message about --demangle
	pinctrl: stm32: Add check for clk_enable()
	pinctrl: amd: Take suspend type into consideration which pins are non-wake
	perf inject: Fix use without initialization of local variables
	ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83LC
	ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83JX, 83MC and 83NM
	bpf: Send signals asynchronously if !preemptible
	selftests/bpf: Fix btf leak on new btf alloc failure in btf_distill test
	libbpf: Fix return zero when elf_begin failed
	libbpf: Fix incorrect traversal end type ID when marking BTF_IS_EMBEDDED
	bpf: tcp: Mark bpf_load_hdr_opt() arg2 as read-write
	iommu/amd: Remove unused amd_iommu_domain_update()
	ALSA: hda/realtek - Fixed headphone distorted sound on Acer Aspire A115-31 laptop
	tools: Sync if_xdp.h uapi tooling header
	perf lock: Fix parse_lock_type which only retrieve one lock flag
	padata: fix UAF in padata_reorder
	padata: add pd get/put refcnt helper
	padata: avoid UAF for reorder_work
	rhashtable: Fix rhashtable_try_insert test
	smb: client: fix oops due to unset link speed
	cifs: Use cifs_autodisable_serverino() for disabling CIFS_MOUNT_SERVER_INUM in readdir.c
	bpf: Cancel the running bpf_timer through kworker for PREEMPT_RT
	soc: atmel: fix device_node release in atmel_soc_device_init()
	ARM: at91: pm: change BU Power Switch to automatic mode
	ARM: dts: imx7-tqma7: add missing vs-supply for LM75A (rev. 01xxx)
	arm64: dts: mediatek: mt8186: Move wakeup to MTU3 to get working suspend
	arm64: dts: mt8183: set DMIC one-wire mode on Damu
	arm64: dts: mediatek: mt8516: fix GICv2 range
	arm64: dts: mediatek: mt8516: fix wdt irq type
	arm64: dts: mediatek: mt8516: add i2c clock-div property
	arm64: dts: mediatek: mt8516: reserve 192 KiB for TF-A
	ARM: dts: stm32: Increase CPU core voltage on STM32MP13xx DHCOR SoM
	ARM: dts: stm32: Fix IPCC EXTI declaration on stm32mp151
	RDMA/mlx4: Avoid false error about access to uninitialized gids array
	arm64: dts: renesas: rzg3s-smarc: Fix the debug serial alias
	rdma/cxgb4: Prevent potential integer overflow on 32bit
	arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Drop regulator-compatible property
	arm64: dts: mediatek: mt8192-asurada: Drop regulator-compatible property
	arm64: dts: mediatek: mt8195-cherry: Drop regulator-compatible property
	arm64: dts: mediatek: mt8195-demo: Drop regulator-compatible property
	arm64: dts: medaitek: mt8395-nio-12l: Drop regulator-compatible property
	arm64: dts: mediatek: mt8395-genio-1200-evk: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Fix MT6397 PMIC sub-node names
	arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names
	ARM: dts: aspeed: yosemite4: correct the compatible string of adm1272
	ARM: dts: aspeed: yosemite4: Add required properties for IOE on fan boards
	ARM: dts: aspeed: yosemite4: correct the compatible string for max31790
	arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"
	RDMA/rxe: Fix mismatched max_msg_sz
	arm64: dts: mediatek: mt8183: kenzo: Support second source touchscreen
	arm64: dts: mediatek: mt8183: willow: Support second source touchscreen
	RDMA/srp: Fix error handling in srp_add_port
	arm64: dts: mediatek: mt8195: Remove suspend-breaking reset from pcie1
	ARM: dts: stm32: Deduplicate serial aliases and chosen node for STM32MP15xx DHCOM SoM
	ARM: dts: stm32: Swap USART3 and UART8 alias on STM32MP15xx DHCOM SoM
	memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()
	arm64: dts: mediatek: mt8183-kukui-jacuzzi: Drop pp3300_panel voltage settings
	arm64: dts: qcom: msm8996-xiaomi-gemini: Fix LP5562 LED1 reg property
	arm64: dts: qcom: sa8775p: Update sleep_clk frequency
	arm64: defconfig: remove obsolete CONFIG_SM_DISPCC_8650
	arm64: dts: qcom: msm8996: Fix up USB3 interrupts
	arm64: dts: qcom: msm8994: Describe USB interrupts
	arm64: dts: qcom: sm7225-fairphone-fp4: Drop extra qcom,msm-id value
	arm64: dts: qcom: msm8916: correct sleep clock frequency
	arm64: dts: qcom: msm8939: correct sleep clock frequency
	arm64: dts: qcom: msm8994: correct sleep clock frequency
	arm64: dts: qcom: qcs404: correct sleep clock frequency
	arm64: dts: qcom: q[dr]u1000: correct sleep clock frequency
	arm64: dts: qcom: qrb4210-rb2: correct sleep clock frequency
	arm64: dts: qcom: sc7280: correct sleep clock frequency
	arm64: dts: qcom: sdx75: correct sleep clock frequency
	arm64: dts: qcom: sm4450: correct sleep clock frequency
	arm64: dts: qcom: sm6125: correct sleep clock frequency
	arm64: dts: qcom: sm6375: correct sleep clock frequency
	arm64: dts: qcom: sm8250: correct sleep clock frequency
	arm64: dts: qcom: sm8350: correct sleep clock frequency
	arm64: dts: qcom: sm8450: correct sleep clock frequency
	arm64: dts: qcom: sm8550: correct sleep clock frequency
	arm64: dts: qcom: sm8650: correct sleep clock frequency
	arm64: dts: qcom: x1e80100: correct sleep clock frequency
	arm64: dts: qcom: sm8650: Fix CDSP context banks unit addresses
	ARM: dts: microchip: sama5d29_curiosity: Add no-1-8-v property to sdmmc0 node
	ARM: dts: microchip: sama5d27_wlsom1_ek: Add no-1-8-v property to sdmmc0 node
	arm64: dts: ti: k3-am62: Remove duplicate GICR reg
	arm64: dts: ti: k3-am62a: Remove duplicate GICR reg
	arm64: dts: rockchip: Fix sdmmc access on rk3308-rock-s0 v1.1 boards
	arm64: dts: allwinner: a64: explicitly assign clock parent for TCON0
	RDMA/bnxt_re: Fix to drop reference to the mmap entry in case of error
	RDMA/rtrs: Add missing deinit() call
	RDMA/hns: Clean up the legacy CONFIG_INFINIBAND_HNS
	ARM: omap1: Fix up the Retu IRQ on Nokia 770
	arm64: dts: qcom: qcm6490-shift-otter: remove invalid orientation-switch
	arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: Convert mezzanine riser to dtso
	arm64: dts: qcom: sdm845-db845c-navigation-mezzanine: remove disabled ov7251 camera
	arm64: dts: qcom: sc7180-trogdor-quackingstick: add missing avee-supply
	arm64: dts: qcom: sc7180-trogdor-pompom: rename 5v-choke thermal zone
	arm64: dts: qcom: sc7180: change labels to lower-case
	arm64: dts: qcom: sc7180: fix psci power domain node names
	arm64: dts: qcom: sm8150-microsoft-surface-duo: fix typos in da7280 properties
	arm64: dts: qcom: sc8280xp: Fix up remoteproc register space sizes
	firmware: qcom: scm: Cleanup global '__scm' on probe failures
	arm64: dts: mediatek: mt7988: Add missing clock-div property for i2c
	dts: arm64: mediatek: mt8195: Remove MT8183 compatible for OVL
	arm64: dts: mediatek: add per-SoC compatibles for keypad nodes
	arm64: dts: qcom: sc8280xp: Fix interrupt type of camss interrupts
	arm64: dts: qcom: sdm845: Fix interrupt types of camss interrupts
	arm64: dts: qcom: sm8250: Fix interrupt types of camss interrupts
	arm64: dts: marvell: cn9131-cf-solidwan: fix cp1 comphy links
	ARM: dts: mediatek: mt7623: fix IR nodename
	arm64: dts: rockchip: fix num-channels property of wolfvision pf5 mic
	arm64: dts: ti: k3-am642-hummingboard-t: Convert overlay to board dts
	fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
	arm64: tegra: Fix DMA ID for SPI2
	arm64: dts: qcom: x1e80100-romulus: Update firmware nodes
	i3c: dw: Fix use-after-free in dw_i3c_master driver due to race condition
	RDMA/mlx5: Fix indirect mkey ODP page count
	of: property: Avoiding using uninitialized variable @imaplen in parse_interrupt_map()
	of: reserved-memory: Do not make kmemleak ignore freed address
	efi: sysfb_efi: fix W=1 warnings when EFI is not set
	RDMA/cxgb4: Notify rdma stack for IB_EVENT_QP_LAST_WQE_REACHED event
	RDMA/rxe: Fix the warning "__rxe_cleanup+0x12c/0x170 [rdma_rxe]"
	iommu: iommufd: fix WARNING in iommufd_device_unbind
	iommufd/iova_bitmap: Fix shift-out-of-bounds in iova_bitmap_offset_to_index()
	spi: omap2-mcspi: Correctly handle devm_clk_get_optional() errors
	of: reserved_mem: Restructure how the reserved memory regions are processed
	of/fdt: Restore possibility to use both ACPI and FDT from bootloader
	media: rc: iguanair: handle timeouts
	media: lmedm04: Handle errors for lme2510_int_read
	PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy()
	remoteproc: mtk_scp: Only populate devices for SCP cores
	media: marvell: Add check for clk_enable()
	media: i2c: imx290: Register 0x3011 varies between imx327 and imx290
	media: i2c: imx412: Add missing newline to prints
	media: i2c: ov9282: Correct the exposure offset
	media: mipi-csis: Add check for clk_enable()
	media: camif-core: Add check for clk_enable()
	media: uvcvideo: Propagate buf->error to userspace
	mtd: rawnand: brcmnand: fix status read of brcmnand_waitfunc
	mtd: hyperbus: hbmc-am654: fix an OF node reference leak
	media: nxp: imx8-isi: fix v4l2-compliance test errors
	watchdog: rti_wdt: Fix an OF node leak in rti_wdt_probe()
	staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
	media: dvb-usb-v2: af9035: fix ISO C90 compilation error on af9035_i2c_master_xfer
	PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region()
	PCI: imx6: Configure PHY based on Root Complex or Endpoint mode
	PCI: imx6: Skip controller_id generation logic for i.MX7D
	PCI: imx6: Deassert apps_reset in imx_pcie_deassert_core_reset()
	PCI: imx6: Add missing reference clock disable logic
	PCI: qcom: Update ICC and OPP values after Link Up event
	PCI: dwc: Always stop link in the dw_pcie_suspend_noirq
	PCI: endpoint: pci-epf-test: Set dma_chan_rx pointer to NULL on error
	PCI: endpoint: pci-epf-test: Fix check for DMA MEMCPY test
	PCI: microchip: Add support for using either Root Port 1 or 2
	PCI: microchip: Set inbound address translation for coherent or non-coherent mode
	scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1
	scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails
	scsi: mpi3mr: Fix possible crash when setting up bsg fails
	firewire: test: Fix potential null dereference in firewire kunit test
	erofs: get rid of erofs_{find,insert}_workgroup
	erofs: move erofs_workgroup operations into zdata.c
	erofs: sunset `struct erofs_workgroup`
	erofs: fix potential return value overflow of z_erofs_shrink_scan()
	ocfs2: mark dquot as inactive if failed to start trans while releasing dquot
	nilfs2: do not force clear folio if buffer is referenced
	nilfs2: protect access to buffers with no active references
	nilfs2: handle errors that nilfs_prepare_chunk() may return
	module: Extend the preempt disabled section in dereference_symbol_descriptor().
	module: Don't fail module loading when setting ro_after_init section RO failed
	driver core: class: Fix wild pointer dereferences in API class_dev_iter_next()
	tty: mips_ejtag_fdc: fix one more u8 warning
	serial: 8250: Adjust the timeout for FIFO mode
	nfs: fix incorrect error handling in LOCALIO
	NFSv4.2: fix COPY_NOTIFY xdr buf size calculation
	NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE
	LoongArch: Fix warnings during S3 suspend
	tools/bootconfig: Fix the wrong format specifier
	xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO
	xfrm: Add support for per cpu xfrm state handling.
	xfrm: Cache used outbound xfrm states at the policy.
	xfrm: Add an inbound percpu state cache.
	xfrm: state: fix out-of-bounds read during lookup
	dmaengine: ti: edma: fix OF node reference leaks in edma_driver
	xfrm: delete intermediate secpath entry in packet offload mode
	rtc: tps6594: Fix integer overflow on 32bit systems
	rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
	rtc: loongson: clear TOY_MATCH0_REG in loongson_rtc_isr()
	ubifs: skip dumping tnc tree when zroot is null
	regulator: core: Add missing newline character
	net: airoha: Fix wrong GDM4 register definition
	net: hns3: fix oops when unload drivers paralleling
	gpio: mxc: remove dead code after switch to DT-only
	net: phy: marvell-88q2xxx: Fix temperature measurement with reset-gpios
	net: fec: implement TSO descriptor cleanup
	ipmr: do not call mr_mfc_uses_dev() for unres entries
	PM: hibernate: Add error handling for syscore_suspend()
	perf trace: Fix BPF loading failure (-E2BIG)
	xfrm: Don't disable preemption while looking up cache state.
	idpf: add read memory barrier when checking descriptor done bit
	idpf: fix transaction timeouts on reset
	idpf: Acquire the lock before accessing the xn->salt
	idpf: convert workqueues to unbound
	ice: fix ice_parser_rt::bst_key array size
	ice: rework of dump serdes equalizer values feature
	ice: extend dump serdes equalizer values feature
	ice: remove invalid parameter of equalizer
	iavf: allow changing VLAN state without calling PF
	s390/mm: Allow large pages for KASAN shadow mapping
	net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling
	net: rose: fix timer races against user threads
	net: netdevsim: try to close UDP port harness races
	tools: ynl: c: correct reverse decode of empty attrs
	selftests: mptcp: extend CFLAGS to keep options from environment
	selftests: net/{lib,openvswitch}: extend CFLAGS to keep options from environment
	rxrpc, afs: Fix peer hash locking vs RCU callback
	vxlan: Fix uninit-value in vxlan_vnifilter_dump()
	net: davicom: fix UAF in dm9000_drv_remove
	ptp: Properly handle compat ioctls
	net: ethtool: only allow set_rxnfc with rss + ring_cookie if driver opts in
	ethtool: Fix set RXNFC command with symmetric RSS hash
	net: stmmac: Limit the number of MTL queues to hardware capability
	net: stmmac: Limit FIFO size by hardware capability
	s390/sclp: Initialize sclp subsystem via arch_cpu_finalize_init()
	perf trace: Fix runtime error of index out of bounds
	perf test: Skip syscall enum test if no landlock syscall
	Bluetooth: btusb: mediatek: Add locks for usb_driver_claim_interface()
	Bluetooth: btnxpuart: Fix glitches seen in dual A2DP streaming
	vsock: Allow retrying on connect() failure
	bgmac: reduce max frame size to support just MTU 1500
	tcp: correct handling of extreme memory squeeze
	net: xdp: Disallow attaching device-bound programs in generic mode
	net: ravb: Fix missing rtnl lock in suspend/resume path
	net: sh_eth: Fix missing rtnl lock in suspend/resume path
	net: hsr: fix fill_frame_info() regression vs VLAN packets
	genksyms: fix memory leak when the same symbol is added from source
	genksyms: fix memory leak when the same symbol is read from *.symref file
	hostfs: fix string handling in __dentry_name()
	tools/power turbostat: Allow using cpu device in perf counters on hybrid platforms
	tools/power turbostat: Fix PMT mmaped file size rounding
	RISC-V: Mark riscv_v_init() as __init
	ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback
	io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock()
	ASoC: amd: acp: Fix possible deadlock
	tools/power turbostat: Fix forked child affinity regression
	cifs: Validate EAs for WSL reparse points
	cifs: Fix getting and setting SACLs over SMB1
	kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST
	kconfig: fix memory leak in sym_warn_unmet_dep()
	hexagon: fix using plain integer as NULL pointer warning in cmpxchg
	hexagon: Fix unbalanced spinlock in die()
	f2fs: Introduce linear search for dentries
	md/md-bitmap: factor behind write counters out from bitmap_{start/end}write()
	md/md-bitmap: remove the last parameter for bimtap_ops->endwrite()
	md: add a new callback pers->bitmap_sector()
	md/raid5: implement pers->bitmap_sector()
	md/md-bitmap: move bitmap_{start, end}write to md upper layer
	Revert "SUNRPC: Reduce thread wake-up rate when receiving large RPC messages"
	kbuild: switch from lz4c to lz4 for compression
	netfilter: nf_tables: reject mismatching sum of field_len with set key length
	drm/amd/display: Reduce accessing remote DPCD overhead
	selftests/rseq: Fix handling of glibc without rseq support
	selftests/ftrace: Fix to use remount when testing mount GID option
	ktest.pl: Check kernelrelease return in get_version
	xfs: check for dead buffers in xfs_buf_find_insert
	xfs: don't shut down the filesystem for media failures beyond end of log
	ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro
	net: usb: rtl8150: enable basic endpoint checking
	usb: xhci: Fix NULL pointer dereference on certain command aborts
	drivers/card_reader/rtsx_usb: Restore interrupt based detection
	usb: gadget: f_tcm: Fix Get/SetInterface return value
	usb: dwc3-am62: Fix an OF node leak in phy_syscon_pll_refclk()
	usb: dwc3: core: Defer the probe until USB power supply ready
	usb: dwc3: Skip resume if pm_runtime_set_active() fails
	usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE
	usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS
	clk: qcom: gcc-x1e80100: Do not turn off usb_2 controller GDSC
	mptcp: consolidate suboption status
	mptcp: pm: only set fullmesh for subflow endp
	mptcp: handle fastopen disconnect correctly
	mptcp: blackhole only if 1st SYN retrans w/o MPC is accepted
	RDMA/mlx5: Fix implicit ODP use after free
	remoteproc: core: Fix ida_free call while not allocated
	media: uvcvideo: Fix double free in error path
	pps: Fix a use-after-free
	usb: gadget: f_tcm: Don't free command immediately
	staging: media: max96712: fix kernel oops when removing module
	media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
	powerpc/pseries/iommu: Don't unset window if it was never set
	md/md-bitmap: Synchronize bitmap_get_stats() with bitmap lifetime
	btrfs: output the reason for open_ctree() failure
	of: reserved-memory: Warn for missing static reserved memory regions
	dma-mapping: save base/size instead of pointer to shared DMA pool
	xfrm: Add error handling when nla_put_u32() returns an error
	xfrm: Fix acquire state insertion.
	ethtool: Fix access to uninitialized fields in set RXNFC command
	Revert "s390/mm: Allow large pages for KASAN shadow mapping"
	selftests/bpf: Add test to verify tailcall and freplace restrictions
	ASoC: da7213: Initialize the mutex
	s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS
	drm/amd/display: Add hubp cache reset when powergating
	KVM: x86: Plumb in the vCPU to kvm_x86_ops.hwapic_isr_update()
	memcg: fix soft lockup in the OOM process
	LoongArch: Change 8 to 14 for LOONGARCH_MAX_{BRP,WRP}
	btrfs: do proper folio cleanup when run_delalloc_nocow() failed
	ethtool: ntuple: fix rss + ring_cookie check
	Linux 6.12.13

Change-Id: I0b4278d2911ea7c72e068418ed56d1514b393980
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2025-02-10 07:46:27 -08:00
Tiezhu Yang 27a46e6061 LoongArch: Change 8 to 14 for LOONGARCH_MAX_{BRP,WRP}
commit f502ea618bf16d615d7dc6138c8988d3118fe750 upstream.

The maximum number of load/store watchpoints and fetch instruction
watchpoints is 14 each according to LoongArch Reference Manual, so
change 8 to 14 for the related code.

Link: https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#control-and-status-registers-related-to-watchpoints
Cc: stable@vger.kernel.org
Fixes: edffa33c7b ("LoongArch: Add hardware breakpoints/watchpoints support")
Reviewed-by: WANG Xuerui <git@xen0n.name>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-02-08 09:58:19 +01:00
Alice Ryhl 89b937ea0c UPSTREAM: jump_label: adjust inline asm to be consistent
To avoid duplication of inline asm between C and Rust, we need to
import the inline asm from the relevant `jump_label.h` header into Rust.
To make that easier, this patch updates the header files to expose the
inline asm via a new ARCH_STATIC_BRANCH_ASM macro.

The header files are all updated to define a ARCH_STATIC_BRANCH_ASM that
takes the same arguments in a consistent order so that Rust can use the
same logic for every architecture.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Alex Gaynor <alex.gaynor@gmail.com>
Cc: Wedson Almeida Filho <wedsonaf@gmail.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Gary Guo <gary@garyguo.net>
Cc: " =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= " <bjorn3_gh@protonmail.com>
Cc: Benno Lossin <benno.lossin@proton.me>
Cc: Andreas Hindborg <a.hindborg@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Uros Bizjak <ubizjak@gmail.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Fuad Tabba <tabba@google.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Anup Patel <apatel@ventanamicro.com>
Cc: Andrew Jones <ajones@ventanamicro.com>
Cc: Alexandre Ghiti <alexghiti@rivosinc.com>
Cc: Conor Dooley <conor.dooley@microchip.com>
Cc: Samuel Holland <samuel.holland@sifive.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Cc: WANG Xuerui <kernel@xen0n.name>
Cc: Bibo Mao <maobibo@loongson.cn>
Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tianrui Zhao <zhaotianrui@loongson.cn>
Cc: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/20241030-tracepoint-v12-4-eec7f0f8ad22@google.com
Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Co-developed-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Palmer Dabbelt <palmer@rivosinc.com> # RISC-V
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

Bug: 389867843
Change-Id: I1b03dbdca7b539634ca1ddfd6d9093c0221f0d2b
(cherry picked from commit aecaf181651c91b8c89058708b065da9312a0ccd)
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
2025-01-23 23:42:02 -08:00
Tiezhu Yang 2d95df70e5 LoongArch: BPF: Adjust the parameter of emit_jirl()
[ Upstream commit c1474bb0b7cff4e8481095bd0618b8f6c2f0aeb4 ]

The branch instructions beq, bne, blt, bge, bltu, bgeu and jirl belong
to the format reg2i16, but the sequence of oprand is different for the
instruction jirl. So adjust the parameter order of emit_jirl() to make
it more readable correspond with the Instruction Set Architecture manual.

Here are the instruction formats:

  beq     rj, rd, offs16
  bne     rj, rd, offs16
  blt     rj, rd, offs16
  bge     rj, rd, offs16
  bltu    rj, rd, offs16
  bgeu    rj, rd, offs16
  jirl    rd, rj, offs16

Link: https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#branch-instructions
Suggested-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-01-02 10:34:18 +01:00
Bibo Mao 9b602190cf LoongArch: Add architecture specific huge_pte_clear()
commit 7cd1f5f77925ae905a57296932f0f9ef0dc364f8 upstream.

When executing mm selftests run_vmtests.sh, there is such an error:

 BUG: Bad page state in process uffd-unit-tests  pfn:00000
 page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x0
 flags: 0xffff0000002000(reserved|node=0|zone=0|lastcpupid=0xffff)
 raw: 00ffff0000002000 ffffbf0000000008 ffffbf0000000008 0000000000000000
 raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000
 page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
 Modules linked in: snd_seq_dummy snd_seq snd_seq_device rfkill vfat fat
    virtio_balloon efi_pstore virtio_net pstore net_failover failover fuse
    nfnetlink virtio_scsi virtio_gpu virtio_dma_buf dm_multipath efivarfs
 CPU: 2 UID: 0 PID: 1913 Comm: uffd-unit-tests Not tainted 6.12.0 #184
 Hardware name: QEMU QEMU Virtual Machine, BIOS unknown 2/2/2022
 Stack : 900000047c8ac000 0000000000000000 9000000000223a7c 900000047c8ac000
         900000047c8af690 900000047c8af698 0000000000000000 900000047c8af7d8
         900000047c8af7d0 900000047c8af7d0 900000047c8af5b0 0000000000000001
         0000000000000001 900000047c8af698 10b3c7d53da40d26 0000010000000000
         0000000000000022 0000000fffffffff fffffffffe000000 ffff800000000000
         000000000000002f 0000800000000000 000000017a6d4000 90000000028f8940
         0000000000000000 0000000000000000 90000000025aa5e0 9000000002905000
         0000000000000000 90000000028f8940 ffff800000000000 0000000000000000
         0000000000000000 0000000000000000 9000000000223a94 000000012001839c
         00000000000000b0 0000000000000004 0000000000000000 0000000000071c1d
         ...
 Call Trace:
 [<9000000000223a94>] show_stack+0x5c/0x180
 [<9000000001c3fd64>] dump_stack_lvl+0x6c/0xa0
 [<900000000056aa08>] bad_page+0x1a0/0x1f0
 [<9000000000574978>] free_unref_folios+0xbf0/0xd20
 [<90000000004e65cc>] folios_put_refs+0x1a4/0x2b8
 [<9000000000599a0c>] free_pages_and_swap_cache+0x164/0x260
 [<9000000000547698>] tlb_batch_pages_flush+0xa8/0x1c0
 [<9000000000547f30>] tlb_finish_mmu+0xa8/0x218
 [<9000000000543cb8>] exit_mmap+0x1a0/0x360
 [<9000000000247658>] __mmput+0x78/0x200
 [<900000000025583c>] do_exit+0x43c/0xde8
 [<9000000000256490>] do_group_exit+0x68/0x110
 [<9000000000256554>] sys_exit_group+0x1c/0x20
 [<9000000001c413b4>] do_syscall+0x94/0x130
 [<90000000002216d8>] handle_syscall+0xb8/0x158
 Disabling lock debugging due to kernel taint
 BUG: non-zero pgtables_bytes on freeing mm: -16384

On LoongArch system, invalid huge pte entry should be invalid_pte_table
or a single _PAGE_HUGE bit rather than a zero value. And it should be
the same with invalid pmd entry, since pmd_none() is called by function
free_pgd_range() and pmd_none() return 0 by huge_pte_clear(). So single
_PAGE_HUGE bit is also treated as a valid pte table and free_pte_range()
will be called in free_pmd_range().

  free_pmd_range()
        pmd = pmd_offset(pud, addr);
        do {
                next = pmd_addr_end(addr, end);
                if (pmd_none_or_clear_bad(pmd))
                        continue;
                free_pte_range(tlb, pmd, addr);
        } while (pmd++, addr = next, addr != end);

Here invalid_pte_table is used for both invalid huge pte entry and
pmd entry.

Cc: stable@vger.kernel.org
Fixes: 09cfefb7fa ("LoongArch: Add memory management")
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-14 20:03:20 +01:00
Kanglong Wang 139d42ca51 LoongArch: Add WriteCombine shadow mapping in KASAN
Currently, the kernel couldn't boot when ARCH_IOREMAP, ARCH_WRITECOMBINE
and KASAN are enabled together. Because DMW2 is used by kernel now which
is configured as 0xa000000000000000 for WriteCombine, but KASAN has no
segment mapping for it. This patch fix this issue.

Solution: Add the relevant definitions for WriteCombine (DMW2) in KASAN.

Cc: stable@vger.kernel.org
Fixes: 8e02c3b782 ("LoongArch: Add writecombine support for DMW-based ioremap()")
Signed-off-by: Kanglong Wang <wangkanglong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-11-12 16:35:39 +08:00
Huacai Chen 227ca9f6f6 LoongArch: Disable KASAN if PGDIR_SIZE is too large for cpu_vabits
If PGDIR_SIZE is too large for cpu_vabits, KASAN_SHADOW_END will
overflow UINTPTR_MAX because KASAN_SHADOW_START/KASAN_SHADOW_END are
aligned up by PGDIR_SIZE. And then the overflowed KASAN_SHADOW_END looks
like a user space address.

For example, PGDIR_SIZE of CONFIG_4KB_4LEVEL is 2^39, which is too large
for Loongson-2K series whose cpu_vabits = 39.

Since CONFIG_4KB_4LEVEL is completely legal for CPUs with cpu_vabits <=
39, we just disable KASAN via early return in kasan_init(). Otherwise we
get a boot failure.

Moreover, we change KASAN_SHADOW_END from the first address after KASAN
shadow area to the last address in KASAN shadow area, in order to avoid
the end address exactly overflow to 0 (which is a legal case). We don't
need to worry about alignment because pgd_addr_end() can handle it.

Cc: stable@vger.kernel.org
Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-11-12 16:35:39 +08:00
Yuli Wang c859900a84 LoongArch: Define a default value for VM_DATA_DEFAULT_FLAGS
This is a trivial cleanup, commit c62da0c35d ("mm/vma: define a
default value for VM_DATA_DEFAULT_FLAGS") has unified default values of
VM_DATA_DEFAULT_FLAGS across different platforms.

Apply the same consistency to LoongArch.

Suggested-by: Wentao Guan <guanwentao@uniontech.com>
Signed-off-by: Yuli Wang <wangyuli@uniontech.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-11-12 16:35:39 +08:00
Huacai Chen 3c252263be LoongArch: Make KASAN usable for variable cpu_vabits
Currently, KASAN on LoongArch assume the CPU VA bits is 48, which is
true for Loongson-3 series, but not for Loongson-2 series (only 40 or
lower), this patch fix that issue and make KASAN usable for variable
cpu_vabits.

Solution is very simple: Just define XRANGE_SHADOW_SHIFT which means
valid address length from VA_BITS to min(cpu_vabits, VA_BITS).

Cc: stable@vger.kernel.org
Signed-off-by: Kanglong Wang <wangkanglong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-10-23 22:15:30 +08:00
Bibo Mao d2f8671045 LoongArch: Set initial pte entry with PAGE_GLOBAL for kernel space
There are two pages in one TLB entry on LoongArch system. For kernel
space, it requires both two pte entries (buddies) with PAGE_GLOBAL bit
set, otherwise HW treats it as non-global tlb, there will be potential
problems if tlb entry for kernel space is not global. Such as fail to
flush kernel tlb with the function local_flush_tlb_kernel_range() which
supposed only flush tlb with global bit.

Kernel address space areas include percpu, vmalloc, vmemmap, fixmap and
kasan areas. For these areas both two consecutive page table entries
should be enabled with PAGE_GLOBAL bit. So with function set_pte() and
pte_clear(), pte buddy entry is checked and set besides its own pte
entry. However it is not atomic operation to set both two pte entries,
there is problem with test_vmalloc test case.

So function kernel_pte_init() is added to init a pte table when it is
created for kernel address space, and the default initial pte value is
PAGE_GLOBAL rather than zero at beginning. Then only its own pte entry
need update with function set_pte() and pte_clear(), nothing to do with
the pte buddy entry.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-10-21 22:11:19 +08:00
Huacai Chen b7296f9d5b LoongArch: Get correct cores_per_package for SMT systems
In loongson_sysconf, The "core" of cores_per_node and cores_per_package
stands for a logical core, which means in a SMT system it stands for a
thread indeed. This information is gotten from SMBIOS Type4 Structure,
so in order to get a correct cores_per_package for both SMT and non-SMT
systems in parse_cpu_table() we should use SMBIOS_THREAD_PACKAGE_OFFSET
instead of SMBIOS_CORE_PACKAGE_OFFSET.

Cc: stable@vger.kernel.org
Reported-by: Chao Li <lichao@loongson.cn>
Tested-by: Chao Li <lichao@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-10-21 22:11:18 +08:00
Yanteng Si b69269c870 LoongArch: Use "Exception return address" to comment ERA
The information contained in the comment for LOONGARCH_CSR_ERA is even
less informative than the macro itself, which can cause confusion for
junior developers. Let's use the full English term.

Signed-off-by: Yanteng Si <siyanteng@cqsoftware.com.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-10-21 22:11:18 +08:00
Linus Torvalds 3630400697 Merge tag 'loongarch-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
Pull LoongArch updates from Huacai Chen:

 - Fix objtool about do_syscall() and Clang

 - Enable generic CPU vulnerabilites support

 - Enable ACPI BGRT handling

 - Rework CPU feature probe from CPUCFG/IOCSR

 - Add ARCH_HAS_SET_MEMORY support

 - Add ARCH_HAS_SET_DIRECT_MAP support

 - Improve hardware page table walker

 - Simplify _percpu_read() and _percpu_write()

 - Add advanced extended IRQ model documentions

 - Some bug fixes and other small changes

* tag 'loongarch-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
  Docs/LoongArch: Add advanced extended IRQ model description
  LoongArch: Remove posix_types.h include from sigcontext.h
  LoongArch: Fix memleak in pci_acpi_scan_root()
  LoongArch: Simplify _percpu_read() and _percpu_write()
  LoongArch: Improve hardware page table walker
  LoongArch: Add ARCH_HAS_SET_DIRECT_MAP support
  LoongArch: Add ARCH_HAS_SET_MEMORY support
  LoongArch: Rework CPU feature probe from CPUCFG/IOCSR
  LoongArch: Enable ACPI BGRT handling
  LoongArch: Enable generic CPU vulnerabilites support
  LoongArch: Remove STACK_FRAME_NON_STANDARD(do_syscall)
  LoongArch: Set AS_HAS_THIN_ADD_SUB as y if AS_IS_LLVM
  LoongArch: Enable objtool for Clang
  objtool: Handle frame pointer related instructions
2024-09-27 10:14:35 -07:00
Xi Ruoyao 64c35d6c0f LoongArch: Remove posix_types.h include from sigcontext.h
Nothing in sigcontext.h seems to require anything from
linux/posix_types.h.  This include seems a MIPS relic originated from
an error in Linux 2.6.11-rc2 (in 2005).

The unneeded include was found debugging some vDSO self test build
failure (it's not the root cause though).

Link: https://lore.kernel.org/linux-mips/20240828030413.143930-2-xry111@xry111.site/
Link: https://lore.kernel.org/loongarch/0b540679ec8cfccec75aeb3463810924f6ff71e6.camel@xry111.site/
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Uros Bizjak d4f31acf13 LoongArch: Simplify _percpu_read() and _percpu_write()
Now _percpu_read() and _percpu_write() macros call __percpu_read()
and __percpu_write() static inline functions that result in a single
assembly instruction. However, percpu infrastructure expects its leaf
definitions to encode the size of their percpu variable, so the patch
merges all the asm clauses from the static inline function into the
corresponding leaf macros.

The secondary effect of this change is to avoid explicit __percpu
annotations for function arguments. Currently, __percpu macro is defined
in include/linux/compiler_types.h, but with proposed patch [1], __percpu
definition will need macros from include/asm-generic/percpu.h, creating
forward dependency loop.

The proposed solution is the same as x86 architecture uses.

[1] https://lore.kernel.org/lkml/20240812115945.484051-4-ubizjak@gmail.com/

Tested-by: Xi Ruoyao <xry111@xry111.site>
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Huacai Chen f93f67d06b LoongArch: Improve hardware page table walker
LoongArch has similar problems explained in commit 7f0b1bf045
("arm64: Fix barriers used for page table modifications"), when hardware
page table walker (PTW) enabled, speculative accesses may cause spurious
page fault in kernel space. Theoretically, in order to completely avoid
spurious page fault we need a "dbar + ibar" pair between the page table
modifications and the subsequent memory accesses using the corresponding
virtual address. But "ibar" is too heavy for performace, so we only use
a "dbar 0b11000" in set_pte(). And let spurious_fault() filter the rest
rare spurious page faults which should be avoided by "ibar".

Besides, we replace the llsc loop with amo in set_pte() which has better
performace, and refactor mmu_context.h to 1) avoid any load/store/branch
instructions between the writing of CSR.ASID & CSR.PGDL, 2) ensure flush
tlb operation is after updating ASID.

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Huacai Chen f04de6d8f2 LoongArch: Add ARCH_HAS_SET_DIRECT_MAP support
Add set_direct_map_*() functions for setting the direct map alias for
the page to its default permissions and to an invalid state that cannot
be cached in a TLB. (See d253ca0c3 ("x86/mm/cpa: Add set_direct_map_*()
functions")) Add a similar implementation for LoongArch.

This fixes the KFENCE warnings during hibernation:

 ==================================================================
 BUG: KFENCE: invalid read in swsusp_save+0x368/0x4d8

 Invalid read at 0x00000000f7b89a3c:
  swsusp_save+0x368/0x4d8
  hibernation_snapshot+0x3f0/0x4e0
  hibernate+0x20c/0x440
  state_store+0x128/0x140
  kernfs_fop_write_iter+0x160/0x260
  vfs_write+0x2c0/0x520
  ksys_write+0x74/0x160
  do_syscall+0xb0/0x160

 CPU: 0 UID: 0 PID: 812 Comm: bash Tainted: G    B              6.11.0-rc1+ #1566
 Tainted: [B]=BAD_PAGE
 Hardware name: Loongson-LS3A5000-7A1000-1w-CRB, BIOS vUDK2018-LoongArch-V2.0.0 10/21/2022
 ==================================================================

Note: We can only set permissions for KVRANGE/XKVRANGE kernel addresses.

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Huacai Chen e86935f705 LoongArch: Add ARCH_HAS_SET_MEMORY support
Add set_memory_ro/rw/x/nx architecture hooks to change the page
attribution.

Use own set_memory.h rather than generic set_memory.h (i.e.
include/asm-generic/set_memory.h), because we want to add other function
prototypes here.

Note: We can only set attributes for KVRANGE/XKVRANGE kernel addresses.

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Jiaxun Yang 34e3c4500c LoongArch: Rework CPU feature probe from CPUCFG/IOCSR
Probe ISA level, TLB, IOCSR information from CPUCFG to improve kernel
resilience to different core implementations.

BTW, IOCSR register definition appears to be a platform-specific spec
instead of an architecture spec, even for the Loongson CPUs there is no
guarantee that IOCSR will always present.

Thus it's dangerous to perform IOCSR probing without checking CPU type
and instruction availability.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-24 15:32:20 +08:00
Linus Torvalds 617a814f14 Merge tag 'mm-stable-2024-09-20-02-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull MM updates from Andrew Morton:
 "Along with the usual shower of singleton patches, notable patch series
  in this pull request are:

   - "Align kvrealloc() with krealloc()" from Danilo Krummrich. Adds
     consistency to the APIs and behaviour of these two core allocation
     functions. This also simplifies/enables Rustification.

   - "Some cleanups for shmem" from Baolin Wang. No functional changes -
     mode code reuse, better function naming, logic simplifications.

   - "mm: some small page fault cleanups" from Josef Bacik. No
     functional changes - code cleanups only.

   - "Various memory tiering fixes" from Zi Yan. A small fix and a
     little cleanup.

   - "mm/swap: remove boilerplate" from Yu Zhao. Code cleanups and
     simplifications and .text shrinkage.

   - "Kernel stack usage histogram" from Pasha Tatashin and Shakeel
     Butt. This is a feature, it adds new feilds to /proc/vmstat such as

       $ grep kstack /proc/vmstat
       kstack_1k 3
       kstack_2k 188
       kstack_4k 11391
       kstack_8k 243
       kstack_16k 0

     which tells us that 11391 processes used 4k of stack while none at
     all used 16k. Useful for some system tuning things, but
     partivularly useful for "the dynamic kernel stack project".

   - "kmemleak: support for percpu memory leak detect" from Pavel
     Tikhomirov. Teaches kmemleak to detect leaksage of percpu memory.

   - "mm: memcg: page counters optimizations" from Roman Gushchin. "3
     independent small optimizations of page counters".

   - "mm: split PTE/PMD PT table Kconfig cleanups+clarifications" from
     David Hildenbrand. Improves PTE/PMD splitlock detection, makes
     powerpc/8xx work correctly by design rather than by accident.

   - "mm: remove arch_make_page_accessible()" from David Hildenbrand.
     Some folio conversions which make arch_make_page_accessible()
     unneeded.

   - "mm, memcg: cg2 memory{.swap,}.peak write handlers" fro David
     Finkel. Cleans up and fixes our handling of the resetting of the
     cgroup/process peak-memory-use detector.

   - "Make core VMA operations internal and testable" from Lorenzo
     Stoakes. Rationalizaion and encapsulation of the VMA manipulation
     APIs. With a view to better enable testing of the VMA functions,
     even from a userspace-only harness.

   - "mm: zswap: fixes for global shrinker" from Takero Funaki. Fix
     issues in the zswap global shrinker, resulting in improved
     performance.

   - "mm: print the promo watermark in zoneinfo" from Kaiyang Zhao. Fill
     in some missing info in /proc/zoneinfo.

   - "mm: replace follow_page() by folio_walk" from David Hildenbrand.
     Code cleanups and rationalizations (conversion to folio_walk())
     resulting in the removal of follow_page().

   - "improving dynamic zswap shrinker protection scheme" from Nhat
     Pham. Some tuning to improve zswap's dynamic shrinker. Significant
     reductions in swapin and improvements in performance are shown.

   - "mm: Fix several issues with unaccepted memory" from Kirill
     Shutemov. Improvements to the new unaccepted memory feature,

   - "mm/mprotect: Fix dax puds" from Peter Xu. Implements mprotect on
     DAX PUDs. This was missing, although nobody seems to have notied
     yet.

   - "Introduce a store type enum for the Maple tree" from Sidhartha
     Kumar. Cleanups and modest performance improvements for the maple
     tree library code.

   - "memcg: further decouple v1 code from v2" from Shakeel Butt. Move
     more cgroup v1 remnants away from the v2 memcg code.

   - "memcg: initiate deprecation of v1 features" from Shakeel Butt.
     Adds various warnings telling users that memcg v1 features are
     deprecated.

   - "mm: swap: mTHP swap allocator base on swap cluster order" from
     Chris Li. Greatly improves the success rate of the mTHP swap
     allocation.

   - "mm: introduce numa_memblks" from Mike Rapoport. Moves various
     disparate per-arch implementations of numa_memblk code into generic
     code.

   - "mm: batch free swaps for zap_pte_range()" from Barry Song. Greatly
     improves the performance of munmap() of swap-filled ptes.

   - "support large folio swap-out and swap-in for shmem" from Baolin
     Wang. With this series we no longer split shmem large folios into
     simgle-page folios when swapping out shmem.

   - "mm/hugetlb: alloc/free gigantic folios" from Yu Zhao. Nice
     performance improvements and code reductions for gigantic folios.

   - "support shmem mTHP collapse" from Baolin Wang. Adds support for
     khugepaged's collapsing of shmem mTHP folios.

   - "mm: Optimize mseal checks" from Pedro Falcato. Fixes an mprotect()
     performance regression due to the addition of mseal().

   - "Increase the number of bits available in page_type" from Matthew
     Wilcox. Increases the number of bits available in page_type!

   - "Simplify the page flags a little" from Matthew Wilcox. Many legacy
     page flags are now folio flags, so the page-based flags and their
     accessors/mutators can be removed.

   - "mm: store zero pages to be swapped out in a bitmap" from Usama
     Arif. An optimization which permits us to avoid writing/reading
     zero-filled zswap pages to backing store.

   - "Avoid MAP_FIXED gap exposure" from Liam Howlett. Fixes a race
     window which occurs when a MAP_FIXED operqtion is occurring during
     an unrelated vma tree walk.

   - "mm: remove vma_merge()" from Lorenzo Stoakes. Major rotorooting of
     the vma_merge() functionality, making ot cleaner, more testable and
     better tested.

   - "misc fixups for DAMON {self,kunit} tests" from SeongJae Park.
     Minor fixups of DAMON selftests and kunit tests.

   - "mm: memory_hotplug: improve do_migrate_range()" from Kefeng Wang.
     Code cleanups and folio conversions.

   - "Shmem mTHP controls and stats improvements" from Ryan Roberts.
     Cleanups for shmem controls and stats.

   - "mm: count the number of anonymous THPs per size" from Barry Song.
     Expose additional anon THP stats to userspace for improved tuning.

   - "mm: finish isolate/putback_lru_page()" from Kefeng Wang: more
     folio conversions and removal of now-unused page-based APIs.

   - "replace per-quota region priorities histogram buffer with
     per-context one" from SeongJae Park. DAMON histogram
     rationalization.

   - "Docs/damon: update GitHub repo URLs and maintainer-profile" from
     SeongJae Park. DAMON documentation updates.

   - "mm/vdpa: correct misuse of non-direct-reclaim __GFP_NOFAIL and
     improve related doc and warn" from Jason Wang: fixes usage of page
     allocator __GFP_NOFAIL and GFP_ATOMIC flags.

   - "mm: split underused THPs" from Yu Zhao. Improve THP=always policy.
     This was overprovisioning THPs in sparsely accessed memory areas.

   - "zram: introduce custom comp backends API" frm Sergey Senozhatsky.
     Add support for zram run-time compression algorithm tuning.

   - "mm: Care about shadow stack guard gap when getting an unmapped
     area" from Mark Brown. Fix up the various arch_get_unmapped_area()
     implementations to better respect guard areas.

   - "Improve mem_cgroup_iter()" from Kinsey Ho. Improve the reliability
     of mem_cgroup_iter() and various code cleanups.

   - "mm: Support huge pfnmaps" from Peter Xu. Extends the usage of huge
     pfnmap support.

   - "resource: Fix region_intersects() vs add_memory_driver_managed()"
     from Huang Ying. Fix a bug in region_intersects() for systems with
     CXL memory.

   - "mm: hwpoison: two more poison recovery" from Kefeng Wang. Teaches
     a couple more code paths to correctly recover from the encountering
     of poisoned memry.

   - "mm: enable large folios swap-in support" from Barry Song. Support
     the swapin of mTHP memory into appropriately-sized folios, rather
     than into single-page folios"

* tag 'mm-stable-2024-09-20-02-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (416 commits)
  zram: free secondary algorithms names
  uprobes: turn xol_area->pages[2] into xol_area->page
  uprobes: introduce the global struct vm_special_mapping xol_mapping
  Revert "uprobes: use vm_special_mapping close() functionality"
  mm: support large folios swap-in for sync io devices
  mm: add nr argument in mem_cgroup_swapin_uncharge_swap() helper to support large folios
  mm: fix swap_read_folio_zeromap() for large folios with partial zeromap
  mm/debug_vm_pgtable: Use pxdp_get() for accessing page table entries
  set_memory: add __must_check to generic stubs
  mm/vma: return the exact errno in vms_gather_munmap_vmas()
  memcg: cleanup with !CONFIG_MEMCG_V1
  mm/show_mem.c: report alloc tags in human readable units
  mm: support poison recovery from copy_present_page()
  mm: support poison recovery from do_cow_fault()
  resource, kunit: add test case for region_intersects()
  resource: make alloc_free_mem_region() works for iomem_resource
  mm: z3fold: deprecate CONFIG_Z3FOLD
  vfio/pci: implement huge_fault support
  mm/arm64: support large pfn mappings
  mm/x86: support large pfn mappings
  ...
2024-09-21 07:29:05 -07:00
Linus Torvalds 4a39ac5b7d Merge tag 'random-6.12-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random
Pull random number generator updates from Jason Donenfeld:
 "Originally I'd planned on sending each of the vDSO getrandom()
  architecture ports to their respective arch trees. But as we started
  to work on this, we found lots of interesting issues in the shared
  code and infrastructure, the fixes for which the various archs needed
  to base their work.

  So in the end, this turned into a nice collaborative effort fixing up
  issues and porting to 5 new architectures -- arm64, powerpc64,
  powerpc32, s390x, and loongarch64 -- with everybody pitching in and
  commenting on each other's code. It was a fun development cycle.

  This contains:

   - Numerous fixups to the vDSO selftest infrastructure, getting it
     running successfully on more platforms, and fixing bugs in it.

   - Additions to the vDSO getrandom & chacha selftests. Basically every
     time manual review unearthed a bug in a revision of an arch patch,
     or an ambiguity, the tests were augmented.

     By the time the last arch was submitted for review, s390x, v1 of
     the series was essentially fine right out of the gate.

   - Fixes to the the generic C implementation of vDSO getrandom, to
     build and run successfully on all archs, decoupling it from
     assumptions we had (unintentionally) made on x86_64 that didn't
     carry through to the other architectures.

   - Port of vDSO getrandom to LoongArch64, from Xi Ruoyao and acked by
     Huacai Chen.

   - Port of vDSO getrandom to ARM64, from Adhemerval Zanella and acked
     by Will Deacon.

   - Port of vDSO getrandom to PowerPC, in both 32-bit and 64-bit
     varieties, from Christophe Leroy and acked by Michael Ellerman.

   - Port of vDSO getrandom to S390X from Heiko Carstens, the arch
     maintainer.

  While it'd be natural for there to be things to fix up over the course
  of the development cycle, these patches got a decent amount of review
  from a fairly diverse crew of folks on the mailing lists, and, for the
  most part, they've been cooking in linux-next, which has been helpful
  for ironing out build issues.

  In terms of architectures, I think that mostly takes care of the
  important 64-bit archs with hardware still being produced and running
  production loads in settings where vDSO getrandom is likely to help.

  Arguably there's still RISC-V left, and we'll see for 6.13 whether
  they find it useful and submit a port"

* tag 'random-6.12-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random: (47 commits)
  selftests: vDSO: check cpu caps before running chacha test
  s390/vdso: Wire up getrandom() vdso implementation
  s390/vdso: Move vdso symbol handling to separate header file
  s390/vdso: Allow alternatives in vdso code
  s390/module: Provide find_section() helper
  s390/facility: Let test_facility() generate static branch if possible
  s390/alternatives: Remove ALT_FACILITY_EARLY
  s390/facility: Disable compile time optimization for decompressor code
  selftests: vDSO: fix vdso_config for s390
  selftests: vDSO: fix ELF hash table entry size for s390x
  powerpc/vdso: Wire up getrandom() vDSO implementation on VDSO64
  powerpc/vdso: Wire up getrandom() vDSO implementation on VDSO32
  powerpc/vdso: Refactor CFLAGS for CVDSO build
  powerpc/vdso32: Add crtsavres
  mm: Define VM_DROPPABLE for powerpc/32
  powerpc/vdso: Fix VDSO data access when running in a non-root time namespace
  selftests: vDSO: don't include generated headers for chacha test
  arm64: vDSO: Wire up getrandom() vDSO implementation
  arm64: alternative: make alternative_has_cap_likely() VDSO compatible
  selftests: vDSO: also test counter in vdso_test_chacha
  ...
2024-09-18 15:26:31 +02:00
Huacai Chen 987cbafe62 Merge tag 'irq-core-2024-09-16' into loongarch-next
LoongArch architecture changes for 6.12 depend on the irq core
changes about AVEC irqchip to avoid confliction, so merge them
to create a base.
2024-09-17 22:20:12 +08:00
Linus Torvalds cb69d86550 Merge tag 'irq-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq updates from Thomas Gleixner:
 "Core:

   - Remove a global lock in the affinity setting code

     The lock protects a cpumask for intermediate results and the lock
     causes a bottleneck on simultaneous start of multiple virtual
     machines. Replace the lock and the static cpumask with a per CPU
     cpumask which is nicely serialized by raw spinlock held when
     executing this code.

   - Provide support for giving a suffix to interrupt domain names.

     That's required to support devices with subfunctions so that the
     domain names are distinct even if they originate from the same
     device node.

   - The usual set of cleanups and enhancements all over the place

  Drivers:

   - Support for longarch AVEC interrupt chip

   - Refurbishment of the Armada driver so it can be extended for new
     variants.

   - The usual set of cleanups and enhancements all over the place"

* tag 'irq-core-2024-09-16' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (73 commits)
  genirq: Use cpumask_intersects()
  genirq/cpuhotplug: Use cpumask_intersects()
  irqchip/apple-aic: Only access system registers on SoCs which provide them
  irqchip/apple-aic: Add a new "Global fast IPIs only" feature level
  irqchip/apple-aic: Skip unnecessary enabling of use_fast_ipi
  dt-bindings: apple,aic: Document A7-A11 compatibles
  irqdomain: Use IS_ERR_OR_NULL() in irq_domain_trim_hierarchy()
  genirq/msi: Use kmemdup_array() instead of kmemdup()
  genirq/proc: Change the return value for set affinity permission error
  genirq/proc: Use irq_move_pending() in show_irq_affinity()
  genirq/proc: Correctly set file permissions for affinity control files
  genirq: Get rid of global lock in irq_do_set_affinity()
  genirq: Fix typo in struct comment
  irqchip/loongarch-avec: Add AVEC irqchip support
  irqchip/loongson-pch-msi: Prepare get_pch_msi_handle() for AVECINTC
  irqchip/loongson-eiointc: Rename CPUHP_AP_IRQ_LOONGARCH_STARTING
  LoongArch: Architectural preparation for AVEC irqchip
  LoongArch: Move irqchip function prototypes to irq-loongson.h
  irqchip/loongson-pch-msi: Switch to MSI parent domains
  softirq: Remove unused 'action' parameter from action callback
  ...
2024-09-17 07:09:17 +02:00
Xi Ruoyao 18efd0b10e LoongArch: vDSO: Wire up getrandom() vDSO implementation
Hook up the generic vDSO implementation to the LoongArch vDSO data page
by providing the required __arch_chacha20_blocks_nostack,
__arch_get_k_vdso_rng_data, and getrandom_syscall implementations. Also
wire up the selftests.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Acked-by: Huacai Chen <chenhuacai@kernel.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2024-09-13 17:28:35 +02:00
Bibo Mao 3abb708ec0 LoongArch: KVM: Implement function kvm_para_has_feature()
Implement function kvm_para_has_feature() to detect supported paravirt
features. It can be used by device driver to detect and enable paravirt
features, such as the EIOINTC irqchip driver is able to detect feature
KVM_FEATURE_VIRT_EXTIOI and do some optimization.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-12 22:56:14 +08:00
Bibo Mao cdc118f802 LoongArch: KVM: Enable paravirt feature control from VMM
Export kernel paravirt features to user space, so that VMM can control
each single paravirt feature. By default paravirt features will be the
same with kvm supported features if VMM does not set it.

Also a new feature KVM_FEATURE_VIRT_EXTIOI is added which can be set
from user space. This feature indicates that the virt EIOINTC can route
interrupts to 256 vCPUs, rather than 4 vCPUs like with real HW.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-12 20:53:40 +08:00
Song Gao f4e40ea9f7 LoongArch: KVM: Add PMU support for guest
On LoongArch, the host and guest have their own PMU CSRs registers and
they share PMU hardware resources. A set of PMU CSRs consists of a CTRL
register and a CNTR register. We can set which PMU CSRs are used by the
guest by writing to the GCFG register [24:26] bits.

On KVM side:
- Save the host PMU CSRs into structure kvm_context.
- If the host supports the PMU feature.
  - When entering guest mode, save the host PMU CSRs and restore the guest PMU CSRs.
  - When exiting guest mode, save the guest PMU CSRs and restore the host PMU CSRs.

Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Song Gao <gaosong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-12 20:53:40 +08:00
Bibo Mao acc7f20d54 LoongArch: KVM: Add vm migration support for LBT registers
Every vcpu has separate LBT registers. And there are four scr registers,
one flags and ftop register for LBT extension. When VM migrates, VMM
needs to get LBT registers for every vcpu.

Here macro KVM_REG_LOONGARCH_LBT is added for new vcpu lbt register type,
the following macro is added to get/put LBT registers.
  KVM_REG_LOONGARCH_LBT_SCR0
  KVM_REG_LOONGARCH_LBT_SCR1
  KVM_REG_LOONGARCH_LBT_SCR2
  KVM_REG_LOONGARCH_LBT_SCR3
  KVM_REG_LOONGARCH_LBT_EFLAGS
  KVM_REG_LOONGARCH_LBT_FTOP

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-11 23:26:32 +08:00
Bibo Mao b67ee19a90 LoongArch: KVM: Add Binary Translation extension support
Loongson Binary Translation (LBT) is used to accelerate binary translation,
which contains 4 scratch registers (scr0 to scr3), x86/ARM eflags (eflags)
and x87 fpu stack pointer (ftop).

Like FPU extension, here a lazy enabling method is used for LBT. the LBT
context is saved/restored on the vcpu context switch path.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-09-11 23:26:32 +08:00