Commit Graph

5008 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
b22678f8ef Merge ddee5b4b6a ("mptcp: pm: avoid possible UaF when selecting endp") into android12-5.10-lts
Steps on the way to 5.10.226

Change-Id: I4ee8b8e793b6ecb98c7078125d994b46b1165c2e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-09-13 05:19:26 +00:00
Zheng Yejian
e3ad85c477 tracing: Avoid possible softlockup in tracing_iter_reset()
commit 49aa8a1f4d6800721c7971ed383078257f12e8f9 upstream.

In __tracing_open(), when max latency tracers took place on the cpu,
the time start of its buffer would be updated, then event entries with
timestamps being earlier than start of the buffer would be skipped
(see tracing_iter_reset()).

Softlockup will occur if the kernel is non-preemptible and too many
entries were skipped in the loop that reset every cpu buffer, so add
cond_resched() to avoid it.

Cc: stable@vger.kernel.org
Fixes: 2f26ebd549 ("tracing: use timestamp to determine start of latency traces")
Link: https://lore.kernel.org/20240827124654.3817443-1-zhengyejian@huaweicloud.com
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Zheng Yejian <zhengyejian@huaweicloud.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-09-12 11:06:43 +02:00
Greg Kroah-Hartman
b84ad15be5 This is the 5.10.224 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmbCv24ACgkQONu9yGCS
 aT7lNRAAzP2lSCUHROaMTldoQdahqoWqwFSiMI9p32HYLTerpg1GHVsi1IUvD+pv
 zhmUG9w+ACbSbZ9337G61FeEDCIBzgqaIXLCtbK2Be9nWMa9I1ZtMSFUKoSmVJBw
 YbrI/UOscJmAf44G6DeMp+N+/S2o7INK463u51SYjufo/zhFF8KsYElm23p06kgn
 lTkkUAoo9mSVvEr64zbjwLrWyBWTlcvYH/xrkWeJWXl+hBv0K5Ig9IBm0sc0DSQR
 fErADzDLFkmD9pduZbMwbzUUzC8ST41KKjTgClaHQhSMeoLoWT8CJM5Swwds4XVE
 JkoClkqnj3+stYFpLFm9UUgZ12wu/9slzgRCN6fTraSNT8gE9F9BRJXFGL+3S5OO
 oHKZYEEPTZDsD3PihgufJ4Ft27+KpMUzAgQUmVH/y47wrVJ2pf4fCK8LKT0MbjBi
 pjZaDRCxwo1aORL3+jYJBVRecrNqQ0DhacYOKznhb2KKeaHojIwLaE6k/W/0Q8U5
 1uMYv+NJ3LWDNzGcNUTCfNtuDELOpkp24Xc8RN0MK2iMMMyfjMpgKssjSBZtz0QW
 NH0UVpfiWKECKH+m03NeFnYdMuK8/VyM8vatkcemz0FfgJP2UazeiVwSujfS2r2S
 0TtsCMPP3kgKa9mAnni7lQs4wkG+OTNDNZqbuDqFZ1rHUS2Usrg=
 =8i2e
 -----END PGP SIGNATURE-----

Merge 5.10.224 into android12-5.10-lts

Changes in 5.10.224
	EDAC/skx_common: Add new ADXL components for 2-level memory
	EDAC, i10nm: make skx_common.o a separate module
	platform/chrome: cros_ec_debugfs: fix wrong EC message version
	hfsplus: fix to avoid false alarm of circular locking
	x86/of: Return consistent error type from x86_of_pci_irq_enable()
	x86/pci/intel_mid_pci: Fix PCIBIOS_* return code handling
	x86/pci/xen: Fix PCIBIOS_* return code handling
	x86/platform/iosf_mbi: Convert PCIBIOS_* return codes to errnos
	hwmon: (adt7475) Fix default duty on fan is disabled
	pwm: stm32: Always do lazy disabling
	hwmon: (max6697) Fix underflow when writing limit attributes
	hwmon: (max6697) Fix swapped temp{1,8} critical alarms
	arm64: dts: qcom: sdm845: add power-domain to UFS PHY
	soc: qcom: rpmh-rsc: Ensure irqs aren't disabled by rpmh_rsc_send_data() callers
	arm64: dts: qcom: msm8996: specify UFS core_clk frequencies
	soc: qcom: pdr: protect locator_addr with the main mutex
	soc: qcom: pdr: fix parsing of domains lists
	arm64: dts: rockchip: Increase VOP clk rate on RK3328
	ARM: dts: imx6qdl-kontron-samx6i: move phy reset into phy-node
	ARM: dts: imx6qdl-kontron-samx6i: fix PHY reset
	ARM: dts: imx6qdl-kontron-samx6i: fix board reset
	ARM: dts: imx6qdl-kontron-samx6i: fix SPI0 chip selects
	ARM: dts: imx6qdl-kontron-samx6i: fix PCIe reset polarity
	arm64: dts: mediatek: mt8183-kukui: Drop bogus output-enable property
	arm64: dts: mediatek: mt7622: fix "emmc" pinctrl mux
	arm64: dts: amlogic: gx: correct hdmi clocks
	m68k: atari: Fix TT bootup freeze / unexpected (SCU) interrupt messages
	x86/xen: Convert comma to semicolon
	m68k: cmpxchg: Fix return value for default case in __arch_xchg()
	ARM: pxa: spitz: use gpio descriptors for audio
	ARM: spitz: fix GPIO assignment for backlight
	firmware: turris-mox-rwtm: Fix checking return value of wait_for_completion_timeout()
	firmware: turris-mox-rwtm: Initialize completion before mailbox
	wifi: brcmsmac: LCN PHY code is used for BCM4313 2G-only device
	selftests/bpf: Fix prog numbers in test_sockmap
	net: esp: cleanup esp_output_tail_tcp() in case of unsupported ESPINTCP
	net/smc: Allow SMC-D 1MB DMB allocations
	net/smc: set rmb's SG_MAX_SINGLE_ALLOC limitation only when CONFIG_ARCH_NO_SG_CHAIN is defined
	selftests/bpf: Check length of recv in test_sockmap
	lib: objagg: Fix general protection fault
	mlxsw: spectrum_acl_erp: Fix object nesting warning
	mlxsw: spectrum_acl_bloom_filter: Make mlxsw_sp_acl_bf_key_encode() more flexible
	mlxsw: spectrum_acl: Fix ACL scale regression and firmware errors
	ath11k: dp: stop rx pktlog before suspend
	wifi: ath11k: fix wrong handling of CCMP256 and GCMP ciphers
	wifi: cfg80211: fix typo in cfg80211_calculate_bitrate_he()
	wifi: cfg80211: handle 2x996 RU allocation in cfg80211_calculate_bitrate_he()
	net: fec: Refactor: #define magic constants
	net: fec: Fix FEC_ECR_EN1588 being cleared on link-down
	ipvs: Avoid unnecessary calls to skb_is_gso_sctp
	netfilter: nf_tables: rise cap on SELinux secmark context
	perf/x86/intel/pt: Fix pt_topa_entry_for_page() address calculation
	perf: Fix perf_aux_size() for greater-than 32-bit size
	perf: Prevent passing zero nr_pages to rb_alloc_aux()
	qed: Improve the stack space of filter_config()
	wifi: virt_wifi: avoid reporting connection success with wrong SSID
	gss_krb5: Fix the error handling path for crypto_sync_skcipher_setkey
	wifi: virt_wifi: don't use strlen() in const context
	selftests/bpf: Close fd in error path in drop_on_reuseport
	bpf: annotate BTF show functions with __printf
	bna: adjust 'name' buf size of bna_tcb and bna_ccb structures
	bpf: Eliminate remaining "make W=1" warnings in kernel/bpf/btf.o
	selftests: forwarding: devlink_lib: Wait for udev events after reloading
	xdp: fix invalid wait context of page_pool_destroy()
	drm/panel: boe-tv101wum-nl6: If prepare fails, disable GPIO before regulators
	drm/panel: boe-tv101wum-nl6: Check for errors on the NOP in prepare()
	media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()
	media: imon: Fix race getting ictx->lock
	saa7134: Unchecked i2c_transfer function result fixed
	media: uvcvideo: Allow entity-defined get_info and get_cur
	media: uvcvideo: Override default flags
	media: renesas: vsp1: Fix _irqsave and _irq mix
	media: renesas: vsp1: Store RPF partition configuration per RPF instance
	leds: trigger: Unregister sysfs attributes before calling deactivate()
	perf report: Fix condition in sort__sym_cmp()
	drm/etnaviv: fix DMA direction handling for cached RW buffers
	drm/qxl: Add check for drm_cvt_mode
	Revert "leds: led-core: Fix refcount leak in of_led_get()"
	ext4: fix infinite loop when replaying fast_commit
	media: venus: flush all buffers in output plane streamoff
	mfd: omap-usb-tll: Use struct_size to allocate tll
	xprtrdma: Rename frwr_release_mr()
	xprtrdma: Fix rpcrdma_reqs_reset()
	SUNRPC: avoid soft lockup when transmitting UDP to reachable server.
	ext4: avoid writing unitialized memory to disk in EA inodes
	sparc64: Fix incorrect function signature and add prototype for prom_cif_init
	SUNRPC: Fixup gss_status tracepoint error output
	PCI: Fix resource double counting on remove & rescan
	coresight: Fix ref leak when of_coresight_parse_endpoint() fails
	Input: qt1050 - handle CHIP_ID reading error
	RDMA/mlx4: Fix truncated output warning in mad.c
	RDMA/mlx4: Fix truncated output warning in alias_GUID.c
	RDMA/rxe: Don't set BTH_ACK_MASK for UC or UD QPs
	ASoC: max98088: Check for clk_prepare_enable() error
	mtd: make mtd_test.c a separate module
	RDMA/device: Return error earlier if port in not valid
	Input: elan_i2c - do not leave interrupt disabled on suspend failure
	MIPS: Octeron: remove source file executable bit
	powerpc/xmon: Fix disassembly CPU feature checks
	macintosh/therm_windtunnel: fix module unload.
	RDMA/hns: Fix missing pagesize and alignment check in FRMR
	bnxt_re: Fix imm_data endianness
	netfilter: ctnetlink: use helper function to calculate expect ID
	net: dsa: mv88e6xxx: Limit chip-wide frame size config to CPU ports
	net: dsa: b53: Limit chip-wide jumbo frame config to CPU ports
	pinctrl: rockchip: update rk3308 iomux routes
	pinctrl: core: fix possible memory leak when pinctrl_enable() fails
	pinctrl: single: fix possible memory leak when pinctrl_enable() fails
	pinctrl: ti: ti-iodelay: Drop if block with always false condition
	pinctrl: ti: ti-iodelay: fix possible memory leak when pinctrl_enable() fails
	pinctrl: freescale: mxs: Fix refcount of child
	fs/proc/task_mmu: indicate PM_FILE for PMD-mapped file THP
	fs/nilfs2: remove some unused macros to tame gcc
	nilfs2: avoid undefined behavior in nilfs_cnt32_ge macro
	rtc: interface: Add RTC offset to alarm after fix-up
	dt-bindings: thermal: correct thermal zone node name limit
	tick/broadcast: Make takeover of broadcast hrtimer reliable
	net: netconsole: Disable target before netpoll cleanup
	af_packet: Handle outgoing VLAN packets without hardware offloading
	ipv6: take care of scope when choosing the src addr
	sched/fair: set_load_weight() must also call reweight_task() for SCHED_IDLE tasks
	char: tpm: Fix possible memory leak in tpm_bios_measurements_open()
	media: venus: fix use after free in vdec_close
	hfs: fix to initialize fields of hfs_inode_info after hfs_alloc_inode()
	ext2: Verify bitmap and itable block numbers before using them
	drm/gma500: fix null pointer dereference in cdv_intel_lvds_get_modes
	drm/gma500: fix null pointer dereference in psb_intel_lvds_get_modes
	scsi: qla2xxx: Fix optrom version displayed in FDMI
	drm/amd/display: Check for NULL pointer
	sched/fair: Use all little CPUs for CPU-bound workloads
	apparmor: use kvfree_sensitive to free data->data
	task_work: s/task_work_cancel()/task_work_cancel_func()/
	task_work: Introduce task_work_cancel() again
	udf: Avoid using corrupted block bitmap buffer
	m68k: amiga: Turn off Warp1260 interrupts during boot
	ext4: check dot and dotdot of dx_root before making dir indexed
	ext4: make sure the first directory block is not a hole
	wifi: mwifiex: Fix interface type change
	leds: ss4200: Convert PCIBIOS_* return codes to errnos
	jbd2: make jbd2_journal_get_max_txn_bufs() internal
	KVM: VMX: Split out the non-virtualization part of vmx_interrupt_blocked()
	tools/memory-model: Fix bug in lock.cat
	hwrng: amd - Convert PCIBIOS_* return codes to errnos
	PCI: hv: Return zero, not garbage, when reading PCI_INTERRUPT_PIN
	PCI: rockchip: Use GPIOD_OUT_LOW flag while requesting ep_gpio
	binder: fix hang of unregistered readers
	dev/parport: fix the array out-of-bounds risk
	scsi: qla2xxx: Return ENOBUFS if sg_cnt is more than one for ELS cmds
	f2fs: fix to don't dirty inode for readonly filesystem
	clk: davinci: da8xx-cfgchip: Initialize clk_init_data before use
	ubi: eba: properly rollback inside self_check_eba
	decompress_bunzip2: fix rare decompression failure
	kbuild: Fix '-S -c' in x86 stack protector scripts
	kobject_uevent: Fix OOB access within zap_modalias_env()
	devres: Fix devm_krealloc() wasting memory
	rtc: cmos: Fix return value of nvmem callbacks
	scsi: qla2xxx: During vport delete send async logout explicitly
	scsi: qla2xxx: Fix for possible memory corruption
	scsi: qla2xxx: Fix flash read failure
	scsi: qla2xxx: Complete command early within lock
	scsi: qla2xxx: validate nvme_local_port correctly
	perf/x86/intel/pt: Fix topa_entry base length
	perf/x86/intel/pt: Fix a topa_entry base address calculation
	rtc: isl1208: Fix return value of nvmem callbacks
	watchdog/perf: properly initialize the turbo mode timestamp and rearm counter
	platform: mips: cpu_hwmon: Disable driver on unsupported hardware
	RDMA/iwcm: Fix a use-after-free related to destroying CM IDs
	selftests/sigaltstack: Fix ppc64 GCC build
	rbd: don't assume rbd_is_lock_owner() for exclusive mappings
	MIPS: ip30: ip30-console: Add missing include
	MIPS: Loongson64: env: Hook up Loongsson-2K
	drm/panfrost: Mark simple_ondemand governor as softdep
	rbd: rename RBD_LOCK_STATE_RELEASING and releasing_wait
	rbd: don't assume RBD_LOCK_STATE_LOCKED for exclusive mappings
	Bluetooth: btusb: Add RTL8852BE device 0489:e125 to device tables
	Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x13d3:0x3591
	nilfs2: handle inconsistent state in nilfs_btnode_create_block()
	io_uring/io-wq: limit retrying worker initialisation
	kernel: rerun task_work while freezing in get_signal()
	kdb: address -Wformat-security warnings
	kdb: Use the passed prompt in kdb_position_cursor()
	jfs: Fix array-index-out-of-bounds in diFree
	um: time-travel: fix time-travel-start option
	f2fs: fix start segno of large section
	libbpf: Fix no-args func prototype BTF dumping syntax
	dma: fix call order in dmam_free_coherent
	MIPS: SMP-CPS: Fix address for GCR_ACCESS register for CM3 and later
	ipv4: Fix incorrect source address in Record Route option
	net: bonding: correctly annotate RCU in bond_should_notify_peers()
	netfilter: nft_set_pipapo_avx2: disable softinterrupts
	tipc: Return non-zero value from tipc_udp_addr2str() on error
	net: stmmac: Correct byte order of perfect_match
	net: nexthop: Initialize all fields in dumped nexthops
	bpf: Fix a segment issue when downgrading gso_size
	mISDN: Fix a use after free in hfcmulti_tx()
	apparmor: Fix null pointer deref when receiving skb during sock creation
	powerpc: fix a file leak in kvm_vcpu_ioctl_enable_cap()
	lirc: rc_dev_get_from_fd(): fix file leak
	ASoC: Intel: use soc_intel_is_byt_cr() only when IOSF_MBI is reachable
	ceph: fix incorrect kmalloc size of pagevec mempool
	nvme: split command copy into a helper
	nvme-pci: add missing condition check for existence of mapped data
	fs: don't allow non-init s_user_ns for filesystems without FS_USERNS_MOUNT
	powerpc/configs: Update defconfig with now user-visible CONFIG_FSL_IFC
	fuse: name fs_context consistently
	fuse: verify {g,u}id mount options correctly
	sysctl: always initialize i_uid/i_gid
	ext4: factor out a common helper to query extent map
	ext4: check the extent status again before inserting delalloc block
	soc: xilinx: move PM_INIT_FINALIZE to zynqmp_pm_domains driver
	drivers: soc: xilinx: check return status of get_api_version()
	driver core: Cast to (void *) with __force for __percpu pointer
	devres: Fix memory leakage caused by driver API devm_free_percpu()
	genirq: Allow the PM device to originate from irq domain
	irqchip/imx-irqsteer: Constify irq_chip struct
	irqchip/imx-irqsteer: Add runtime PM support
	irqchip/imx-irqsteer: Handle runtime power management correctly
	remoteproc: imx_rproc: ignore mapping vdev regions
	remoteproc: imx_rproc: Fix ignoring mapping vdev regions
	remoteproc: imx_rproc: Skip over memory region when node value is NULL
	drm/nouveau: prime: fix refcount underflow
	drm/vmwgfx: Fix overlay when using Screen Targets
	sched: act_ct: take care of padding in struct zones_ht_key
	net/iucv: fix use after free in iucv_sock_close()
	net/mlx5e: Add a check for the return value from mlx5_port_set_eth_ptys
	ipv6: fix ndisc_is_useropt() handling for PIO
	riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error()
	platform/chrome: cros_ec_proto: Lock device when updating MKBP version
	HID: wacom: Modify pen IDs
	protect the fetch of ->fd[fd] in do_dup2() from mispredictions
	ALSA: usb-audio: Correct surround channels in UAC1 channel map
	ALSA: hda/realtek: Add quirk for Acer Aspire E5-574G
	net: usb: sr9700: fix uninitialized variable use in sr_mdio_read
	r8169: don't increment tx_dropped in case of NETDEV_TX_BUSY
	mptcp: fix duplicate data handling
	netfilter: ipset: Add list flush to cancel_gc
	genirq: Allow irq_chip registration functions to take a const irq_chip
	irqchip/mbigen: Fix mbigen node address layout
	x86/mm: Fix pti_clone_pgtable() alignment assumption
	x86/mm: Fix pti_clone_entry_text() for i386
	sctp: move hlist_node and hashent out of sctp_ep_common
	sctp: Fix null-ptr-deref in reuseport_add_sock().
	net: usb: qmi_wwan: fix memory leak for not ip packets
	net: linkwatch: use system_unbound_wq
	Bluetooth: l2cap: always unlock channel in l2cap_conless_channel()
	net: dsa: bcm_sf2: Fix a possible memory leak in bcm_sf2_mdio_register()
	l2tp: fix lockdep splat
	net: fec: Stop PPS on driver remove
	rcutorture: Fix rcu_torture_fwd_cb_cr() data race
	md: do not delete safemode_timer in mddev_suspend
	md/raid5: avoid BUG_ON() while continue reshape after reassembling
	clocksource/drivers/sh_cmt: Address race condition for clock events
	ACPI: battery: create alarm sysfs attribute atomically
	ACPI: SBS: manage alarm sysfs attribute through psy core
	selftests/bpf: Fix send_signal test with nested CONFIG_PARAVIRT
	PCI: Add Edimax Vendor ID to pci_ids.h
	udf: prevent integer overflow in udf_bitmap_free_blocks()
	wifi: nl80211: don't give key data to userspace
	btrfs: fix bitmap leak when loading free space cache on duplicate entry
	drm/amdgpu: Fix the null pointer dereference to ras_manager
	drm/amdgpu/pm: Fix the null pointer dereference in apply_state_adjust_rules
	media: uvcvideo: Ignore empty TS packets
	media: uvcvideo: Fix the bandwdith quirk on USB 3.x
	jbd2: avoid memleak in jbd2_journal_write_metadata_buffer
	s390/sclp: Prevent release of buffer in I/O
	SUNRPC: Fix a race to wake a sync task
	sched/cputime: Fix mul_u64_u64_div_u64() precision for cputime
	ext4: fix wrong unit use in ext4_mb_find_by_goal
	arm64: cpufeature: Force HWCAP to be based on the sysreg visible to user-space
	arm64: Add Neoverse-V2 part
	arm64: cputype: Add Cortex-X4 definitions
	arm64: cputype: Add Neoverse-V3 definitions
	arm64: errata: Add workaround for Arm errata 3194386 and 3312417
	arm64: cputype: Add Cortex-X3 definitions
	arm64: cputype: Add Cortex-A720 definitions
	arm64: cputype: Add Cortex-X925 definitions
	arm64: errata: Unify speculative SSBS errata logic
	arm64: errata: Expand speculative SSBS workaround
	arm64: cputype: Add Cortex-X1C definitions
	arm64: cputype: Add Cortex-A725 definitions
	arm64: errata: Expand speculative SSBS workaround (again)
	i2c: smbus: Improve handling of stuck alerts
	ASoC: codecs: wsa881x: Correct Soundwire ports mask
	i2c: smbus: Send alert notifications to all devices if source not found
	bpf: kprobe: remove unused declaring of bpf_kprobe_override
	kprobes: Fix to check symbol prefixes correctly
	spi: spi-fsl-lpspi: Fix scldiv calculation
	ALSA: usb-audio: Re-add ScratchAmp quirk entries
	drm/client: fix null pointer dereference in drm_client_modeset_probe
	ALSA: line6: Fix racy access to midibuf
	ALSA: hda: Add HP MP9 G4 Retail System AMS to force connect list
	ALSA: hda/hdmi: Yet more pin fix for HP EliteDesk 800 G4
	usb: vhci-hcd: Do not drop references before new references are gained
	USB: serial: debug: do not echo input by default
	usb: gadget: core: Check for unset descriptor
	usb: gadget: u_serial: Set start_delayed during suspend
	scsi: ufs: core: Fix hba->last_dme_cmd_tstamp timestamp updating logic
	tick/broadcast: Move per CPU pointer access into the atomic section
	ntp: Clamp maxerror and esterror to operating range
	driver core: Fix uevent_show() vs driver detach race
	ntp: Safeguard against time_constant overflow
	scsi: mpt3sas: Remove scsi_dma_map() error messages
	scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES
	irqchip/meson-gpio: support more than 8 channels gpio irq
	irqchip/meson-gpio: Convert meson_gpio_irq_controller::lock to 'raw_spinlock_t'
	serial: core: check uartclk for zero to avoid divide by zero
	irqchip/xilinx: Fix shift out of bounds
	genirq/irqdesc: Honor caller provided affinity in alloc_desc()
	power: supply: axp288_charger: Fix constant_charge_voltage writes
	power: supply: axp288_charger: Round constant_charge_voltage writes down
	tracing: Fix overflow in get_free_elt()
	padata: Fix possible divide-by-0 panic in padata_mt_helper()
	x86/mtrr: Check if fixed MTRRs exist before saving them
	drm/bridge: analogix_dp: properly handle zero sized AUX transactions
	drm/mgag200: Set DDC timeout in milliseconds
	mptcp: sched: check both directions for backup
	mptcp: distinguish rcv vs sent backup flag in requests
	mptcp: fix NL PM announced address accounting
	mptcp: mib: count MPJ with backup flag
	mptcp: export local_address
	mptcp: pm: fix backup support in signal endpoints
	samples: Add fs error monitoring example
	samples: Make fs-monitor depend on libc and headers
	Add gitignore file for samples/fanotify/ subdirectory
	Fix gcc 4.9 build issue in 5.10.y
	PCI/DPC: Fix use-after-free on concurrent DPC and hot-removal
	netfilter: nf_tables: set element extended ACK reporting support
	netfilter: nf_tables: use timestamp to check for set element timeout
	netfilter: nf_tables: allow clone callbacks to sleep
	netfilter: nf_tables: prefer nft_chain_validate
	drm/i915/gem: Fix Virtual Memory mapping boundaries calculation
	powerpc: Avoid nmi_enter/nmi_exit in real mode interrupt.
	arm64: cpufeature: Fix the visibility of compat hwcaps
	media: uvcvideo: Use entity get_cur in uvc_ctrl_set
	exec: Fix ToCToU between perm check and set-uid/gid usage
	nvme/pci: Add APST quirk for Lenovo N60z laptop
	vdpa: Make use of PFN_PHYS/PFN_UP/PFN_DOWN helper macro
	vhost-vdpa: switch to use vmf_insert_pfn() in the fault handler
	wifi: cfg80211: restrict NL80211_ATTR_TXQ_QUANTUM values
	ARM: dts: imx6qdl-kontron-samx6i: fix phy-mode
	media: Revert "media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()"
	Linux 5.10.224

Change-Id: I7cd19d506c4c86df918a280598946060a494a161
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-09-04 11:06:25 +00:00
Greg Kroah-Hartman
95fd17f446 Merge tag 'android12-5.10.223_r00' into android12-5.10
This merges up to the 5.10.222 LTS release into the android12-5.10
branch.  Included in here are the following commits:

* c6acc5f079 Revert "scsi: core: Fix a use-after-free"
* dc67fccdbe ANDROID: properly backport filelock fix in 5.10.223
* 72f4574b8d Revert "ext4: Send notifications on error"
* 306e16d49c Revert "net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD()"
*   8c417688f0 Merge 5.10.223 into android12-5.10-lts
|\
| * b15dc4170c Linux 5.10.223
| * 7431144b40 tap: add missing verification for short frame
| * 6100e02372 tun: add missing verification for short frame
| * 911cc83e56 filelock: Fix fcntl/close race recovery compat path
| * 7fa9d1d252 ALSA: pcm_dmaengine: Don't synchronize DMA channel when DMA is paused
| * ddf0caf012 arm64: dts: qcom: msm8996: Disable SS instance in Parkmode for USB
| * a7ec8a5a7f ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360
| * 74c6b151a8 ALSA: hda/realtek: Enable headset mic on Positivo SU C1400
| * 6386f1b6a1 jfs: don't walk off the end of ealist
| * 77495e5da5 ocfs2: add bounds checking to ocfs2_check_dir_entry()
| * 6e03006548 net: relax socket state check at accept time.
| * a5224e2123 drm/amdgpu: Fix signedness bug in sdma_v4_0_process_trap_irq()
| * 9760c6ceb2 ext4: Send notifications on error
| * 88e44424a6 ext4: fix error code saved on super block during file system abort
| * 5ce8fad941 scsi: core: Fix a use-after-free
| * c0809c128d bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue
| * be35504b95 bpf: Fix overrunning reservations in ringbuf
| * 9e2b0a5e25 ACPI: processor_idle: Fix invalid comparison with insertion sort for latency
| * c85e6b7d9e ARM: 9324/1: fix get_user() broken with veneer
| * 727ed4810c spi: mux: set ctlr->bits_per_word_mask
| * 34f8efd274 hfsplus: fix uninit-value in copy_name
| * f236af7561 selftests/vDSO: fix clang build errors and warnings
| * 38c2028bb3 spi: imx: Don't expect DMA for i.MX{25,35,50,51,53} cspi devices
| * f65bffb464 fs: better handle deep ancestor chains in is_subdir()
| * ddeda6ca5f Bluetooth: hci_core: cancel all works upon hci_unregister_dev()
| * 739d8d0082 scsi: libsas: Fix exp-attached device scan after probe failure scanned in again after probe failed
| * 033c51dfdb powerpc/eeh: avoid possible crash when edev->pdev changes
| * 6b16098148 powerpc/pseries: Whitelist dtl slub object for copying to userspace
| * d1e4e94cb8 net: mac802154: Fix racy device stats updates by DEV_STATS_INC() and DEV_STATS_ADD()
| * 909f4c2fc9 net: usb: qmi_wwan: add Telit FN912 compositions
| * 8acf8801f3 ALSA: dmaengine_pcm: terminate dmaengine before synchronize
| * 2a28531dd0 ALSA: hda/relatek: Enable Mute LED on HP Laptop 15-gw0xxx
| * 94818bdb00 btrfs: qgroup: fix quota root leak after quota disable failure
| * 2e51db7ab7 s390/sclp: Fix sclp_init() cleanup on failure
| * 71db8dc6f8 can: kvaser_usb: fix return value for hif_usb_send_regout
| * 6e90cd1696 ASoC: ti: omap-hdmi: Fix too long driver name
| * 96414bf037 ASoC: ti: davinci-mcasp: Set min period size using FIFO config
| * 072f6348c5 ALSA: dmaengine: Synchronize dma channel after drop()
| * 73bb3e0194 bytcr_rt5640 : inverse jack detect for Archos 101 cesium
| * a87d15d1a3 Input: i8042 - add Ayaneo Kun to i8042 quirk table
| * 9b32a13486 Input: elantech - fix touchpad state on resume for Lenovo N24
| * cf704e7d04 mips: fix compat_sys_lseek syscall
| * 134b12f0c5 ALSA: hda/realtek: Add more codec ID to no shutup pins list
| * 4cdf6926f4 KVM: PPC: Book3S HV: Prevent UAF in kvm_spapr_tce_attach_iommu_group()
| * 6295bad58f wifi: cfg80211: wext: add extra SIOCSIWSCAN data check
| * 9774641b25 mei: demote client disconnect warning on suspend to debug
| * 229bce543b fs/file: fix the check in find_next_fd()
| * ffe47bf986 kconfig: remove wrong expr_trans_bool()
| * 4beba24085 kconfig: gconf: give a proper initial state to the Save button
| * 9625afe1dd null_blk: fix validation of block size
| * 9934cda0e7 arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process
| * a0cafb7b0b ila: block BH in ila_output()
| * 34eb7ab9af net: ipv6: rpl_iptunnel: block BH in rpl_output() and rpl_input()
| * fe855e5b16 Input: silead - Always support 10 fingers
| * 42e60f3bde selftests/openat2: Fix build warnings on ppc64
| * bb8ace6794 wifi: mac80211: fix UBSAN noise in ieee80211_prep_hw_scan()
| * 60cf36f290 wifi: mac80211: mesh: init nonpeer_pm to active by default in mesh sdata
| * 6df01b7eab ACPI: EC: Avoid returning AE_OK on errors in address space handler
| * fd57dbffd9 ACPI: EC: Abort address space access upon error
| * cd9472c43f scsi: qedf: Set qed_slowpath_params to zero before use
| * 5661b9c7ec filelock: Remove locks reliably when fcntl/close race is detected
| * 2e272e7d71 gcc-plugins: Rename last_stmt() for GCC 14+
* | b7647fb740 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
* | 875057880e Merge 5.10.222 into android12-5.10-lts
|\|
| * 83a48a4503 Linux 5.10.222
| * f52913e5d6 i2c: rcar: fix error code in probe()
| * 2907dd5855 i2c: rcar: clear NO_RXDMA flag after resetting
| * 41f62c95e0 i2c: rcar: ensure Gen3+ reset does not disturb local targets
| * 88046f94cc i2c: rcar: introduce Gen4 devices
| * a720e2e42f i2c: rcar: reset controller is mandatory for Gen3+
| * b4c11a53e1 i2c: rcar: Add R-Car Gen4 support
| * 785290cb16 i2c: mark HostNotify target address as used
| * 8d99f26b55 i2c: rcar: bring hardware to known state when probing
| * a9a466a69b nilfs2: fix kernel bug on rename operation of broken directory
| * ca42be8dd1 bpf: Allow reads from uninit stack
| * 9df3b2474a ipv6: prevent NULL dereference in ip6_output()
| * 5edef79864 ipv6: annotate data-races around cnf.disable_ipv6
| * 96c58b0966 efi: ia64: move IA64-only declarations to new asm/efi.h header
| * 596dedc6fa x86/retpoline: Move a NOENDBR annotation to the SRSO dummy return thunk
| * b6d942365d wireguard: send: annotate intentional data race in checking empty queue
| * 0bdb5a7444 wireguard: queueing: annotate intentional data race in cpu round robin
| * ae630de24e wireguard: allowedips: avoid unaligned 64-bit memory accesses
| * 34b76d1922 libceph: fix race between delayed_work() and ceph_monc_stop()
| * f70b51a365 ALSA: hda/realtek: Limit mic boost on VAIO PRO PX
| * 4d62aa6247 ALSA: hda/realtek: Enable Mute LED on HP 250 G7
| * 7810928842 nvmem: meson-efuse: Fix return value of nvmem callbacks
| * bdb9c58e80 hpet: Support 32-bit userspace
| * d09dd21bb5 USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor
| * e8474a10c5 usb: gadget: configfs: Prevent OOB read/write in usb_string_copy()
| * 10ae6b364b USB: Add USB_QUIRK_NO_SET_INTF quirk for START BP-850k
| * 932a86a711 USB: serial: mos7840: fix crash on resume
| * 868bc44086 USB: serial: option: add Rolling RW350-GL variants
| * 2dc6aad6ea USB: serial: option: add Netprisma LCUK54 series modules
| * fb9ff51396 USB: serial: option: add support for Foxconn T99W651
| * c9e1030198 USB: serial: option: add Fibocom FM350-GL
| * 9fb7367423 USB: serial: option: add Telit FN912 rmnet compositions
| * 8e4e917f9d USB: serial: option: add Telit generic core-dump composition
| * 26b4d6802e net: ks8851: Fix potential TX stall after interface reopen
| * 5d7e64d70a tcp: avoid too many retransmit packets
| * 24b9fafe34 tcp: use signed arithmetic in tcp_rtx_probe0_timed_out()
| * b4e9f8905d octeontx2-af: fix detection of IP layer
| * 7e0297c80f ARM: davinci: Convert comma to semicolon
| * 148d549425 s390: Mark psw in __load_psw_mask() as __unitialized
| * b81a523d54 net/sched: Fix UAF when resolving a clash
| * 9f965684c5 udp: Set SOCK_RCU_FREE earlier in udp_lib_get_port().
| * c184be30b1 ethtool: netlink: do not return SQI value if link is down
| * 3ba12c2afd ppp: reject claimed-as-LCP but actually malformed packets
| * 22b16618a8 net: ethernet: lantiq_etop: fix double free in detach
| * b4ac93b041 net: lantiq_etop: add blank line after declaration
| * efc05a5fdc octeontx2-af: Fix incorrect value output on error path in rvu_check_rsrc_availability()
| * 893e140dcc tcp: fix incorrect undo caused by DSACK of TLP retransmit
| * 1b95de9433 vfs: don't mod negative dentry count when on shrinker list
| * 7092f1e582 fs/dcache: Re-use value stored to dentry->d_flags instead of re-reading
| * 7d4c14f4b5 filelock: fix potential use-after-free in posix_lock_inode
| * 0100aeb8a1 mm: prevent derefencing NULL ptr in pfn_section_valid()
| * 1e99ce37e9 nilfs2: fix incorrect inode allocation from reserved inodes
| * 3affee779b kbuild: fix short log for AS in link-vmlinux.sh
| * 2f3c22b1d3 nvmet: fix a possible leak when destroy a ctrl during qp establishment
| * 1fa5c6eef4 platform/x86: touchscreen_dmi: Add info for the EZpad 6s Pro
| * 8802d23350 platform/x86: touchscreen_dmi: Add info for GlobalSpace SolT IVW 11.6" tablet
| * 560eaa1af0 nvme: adjust multiples of NVME_CTRL_PAGE_SIZE in offset
| * 2d428a07e8 nvme-multipath: find NUMA path only for online numa-node
| * 97982c3106 ALSA: hda/realtek: Enable headset mic of JP-IK LEAP W502 with ALC897
| * 2849a1b747 i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr
| * 2032e5dfae media: dw2102: fix a potential buffer overflow
| * a6176a802c ima: Avoid blocking in RCU read-side critical section
| * 37c59198bc bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues
| * 8b17cec338 bnx2x: Fix multiple UBSAN array-index-out-of-bounds
| * 55d6a97cf0 mtd: rawnand: Bypass a couple of sanity checks during NAND identification
| * fac2544b8c drm/amdgpu/atomfirmware: silence UBSAN warning
| * 274cba8d2d drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
| * 145faa3d03 Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again"
| * c9f715f1b4 fsnotify: Do not generate events for O_PATH file descriptors
| * 9528e95d6e can: kvaser_usb: Explicitly initialize family in leafimx driver_info struct
| * 215a26c240 Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm reboot
| * 7a49389771 mm: avoid overflows in dirty throttling logic
| * f033241a7c mm: optimize the redundant loop of mm_update_owner_next()
| * 2f2fa9cf7c nilfs2: add missing check for inode numbers on directory entries
| * 731011ac6c nilfs2: fix inode number range checks
| * 7ef519c8ef inet_diag: Initialize pad field in struct inet_diag_req_v2
| * 3908637dce selftests: make order checking verbose in msg_zerocopy selftest
| * 1782a42ca2 selftests: fix OOM in msg_zerocopy selftest
| * 707c85ba35 bonding: Fix out-of-bounds read in bond_option_arp_ip_targets_set()
| * df76fb67ea wifi: wilc1000: fix ies_len type in connect path
| * cdffc35871 tcp_metrics: validate source addr length
| * febed740a3 UPSTREAM: tcp: fix DSACK undo in fast recovery to call tcp_try_to_open()
| * 93c034c431 s390/pkey: Wipe sensitive data on failure
| * 6d6d94287f jffs2: Fix potential illegal address access in jffs2_free_inode
| * b694989bb1 bpf: Avoid uninitialized value in BPF_CORE_READ_BITFIELD
| * 6b84e9d53b powerpc/xmon: Check cpu id in commands "c#", "dp#" and "dx#"
| * 9d046f697e kunit: Fix timeout message
| * 1617249e24 orangefs: fix out-of-bounds fsid access
| * 19cd1d96d6 powerpc/64: Set _IO_BASE to POISON_POINTER_DELTA not 0 for CONFIG_PCI=n
| * 158bcaa2e3 i2c: i801: Annotate apanel_addr as __ro_after_init
| * e1ba226187 media: dvb-frontends: tda10048: Fix integer overflow
| * 7d2fbd822d media: s2255: Use refcount_t instead of atomic_t for num_channels
| * 39e7a27813 media: dvb-frontends: tda18271c2dd: Remove casting during div
| * 2a2fe25a10 net: dsa: mv88e6xxx: Correct check for empty list
| * 8eac1cc159 Input: ff-core - prefer struct_size over open coded arithmetic
| * 402825a23a firmware: dmi: Stop decoding on broken entry
| * 5a18ea7d86 sctp: prefer struct_size over open coded arithmetic
| * 4dcce63a6f media: dw2102: Don't translate i2c read into write
| * ffa7bd3ca9 drm/amd/display: Skip finding free audio for unknown engine_id
| * b2e9abc955 drm/amd/display: Check pipe offset before setting vblank
| * b5b8837d06 drm/amd/display: Check index msg_id before read or write
| * f0645c99c2 drm/amdgpu: Initialize timestamp for some legacy SOCs
| * 9db8c299a5 crypto: aead,cipher - zeroize key buffer after use
| * 5ceb40cdee scsi: qedf: Make qedf_execute_tmf() non-preemptible
| * 62349fbf86 IB/core: Implement a limit on UMAD receive List
| * 167afd3fed media: dvb-usb: dib0700_devices: Add missing release_firmware()
| * 82ef3fa640 media: dvb: as102-fe: Fix as10x_register_addr packing
| * 25d0d9b83d drm/lima: fix shared irq handling on driver remove
| * 94ffdde326 Compiler Attributes: Add __uninitialized macro
* | a297eae7e6 ANDROID: fix build error in ksz9477.c
* | 2ebd481b31 Merge 5.10.221 into android12-5.10-lts
|\|
| * 6ab8b697d7 Linux 5.10.221
| * ec3adc2af0 tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()
| * 0a95f0f6d6 serial: 8250_omap: Fix Errata i2310 with RX FIFO level check
| * 1bd2dc7702 xdp: xdp_mem_allocator can be NULL in trace_mem_connect().
| * 4686892f61 arm64: dts: rockchip: Add sound-dai-cells for RK3368
| * e9918954e3 ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node
| * b63d015b7a KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption
| * 91efb15b5a efi/x86: Free EFI memory map only when installing a new one.
| * e5d730882d efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
| * 31e0721aea efi: memmap: Move manipulation routines into x86 arch tree
| * 52dc463a76 efi: Correct comment on efi_memmap_alloc
| * d204beedc8 drivers: fix typo in firmware/efi/memmap.c
| * 3b32f26580 tcp: Fix data races around icsk->icsk_af_ops.
| * ea2ed3f78a ipv6: Fix data races around sk->sk_prot.
| * d3bf338e9c ipv6: annotate some data-races around sk->sk_prot
| * ed07b26c54 nfs: Leave pages in the pagecache if readpage failed
| * 2e6bbfa1ab pwm: stm32: Refuse too small period requests
| * 2c43adf364 mtd: spinand: macronix: Add support for serial NAND flash
| * d5f75f0199 syscalls: fix compat_sys_io_pgetevents_time64 usage
| * 84bf6b64a1 ftruncate: pass a signed offset
| * 010de9acbe ata: libata-core: Fix double free on error
| * be5016ae5a ata: ahci: Clean up sysfs file on error
| * 692858d9ed batman-adv: Don't accept TT entries for out-of-spec VIDs
| * 56fc4d3b0b drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes
| * f771b91f21 drm/i915/gt: Fix potential UAF by revoke of fence registers
| * 259549b2cc drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
| * 9ec84770e4 hexagon: fix fadvise64_64 calling conventions
| * 6906335529 csky, hexagon: fix broken sys_sync_file_range
| * bf4a43c533 kbuild: Install dtb files as 0644 in Makefile.dtbinst
| * f6c839e717 net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new
| * 3f177e46c9 net: can: j1939: recover socket queue on CAN bus error during BAM transmission
| * a2a0ebff7f net: can: j1939: Initialize unused data in j1939_send_one()
| * 44add57b5b tty: mcf: MCF54418 has 10 UARTS
| * cb87930066 serial: 8250_omap: Implementation of Errata i2310
| * 75ddbf776d usb: atm: cxacru: fix endpoint checking in cxacru_bind()
| * 621e90201c usb: musb: da8xx: fix a resource leak in probe()
| * 2798fc1560 usb: gadget: printer: fix races against disable
| * 84ca47192f usb: gadget: printer: SS+ support
| * ee88636607 net: usb: ax88179_178a: improve link status logs
| * 59a84bcf1c iio: chemical: bme680: Fix sensor data read operation
| * c326551e99 iio: chemical: bme680: Fix overflows in compensate() functions
| * 3d78fc351b iio: chemical: bme680: Fix calibration data variable
| * 44f04b1a88 iio: chemical: bme680: Fix pressure value output
| * 28f6d0b5ff iio: adc: ad7266: Fix variable checking bug
| * 78ece307f8 counter: ti-eqep: enable clock at probe
| * 76da476a4c mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()
| * 803835fda3 mmc: sdhci: Do not invert write-protect twice
| * 5048a44a25 mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos
| * a68b896aa5 ocfs2: fix DIO failure due to insufficient transaction credits
| * 49c09ca35a x86: stop playing stack games in profile_pc()
| * 38ce307939 gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
| * e44a83bf15 gpio: davinci: Validate the obtained number of IRQs
| * 98eae65cb5 drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA
| * cb4e7a8f39 nvme: fixup comment for nvme RDMA Provider Type
| * 1a7a494184 drm/radeon/radeon_display: Decrease the size of allocated memory
| * a45c45767b soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message
| * e47d3babaa media: dvbdev: Initialize sbuf
| * d23982ea9a ALSA: emux: improve patch ioctl data validation
| * 763896ab62 net/dpaa2: Avoid explicit cpumask var allocation on stack
| * 9dadab0db7 net/iucv: Avoid explicit cpumask var allocation on stack
| * 3d6432f20f bpf: Add a check for struct bpf_fib_lookup size
| * 37f646c604 mtd: partitions: redboot: Added conversion of operands to a larger type
| * cae52f61fd drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep
| * 5d43d789b5 netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers
| * 4e6367fe32 parisc: use correct compat recv/recvfrom syscalls
| * 7620738513 sparc: fix compat recv/recvfrom syscalls
| * 2a700b8de5 sparc: fix old compat_sys_select()
| * 1095b8efbb xdp: Remove WARN() from __xdp_reg_mem_model()
| * 5a3035306a xdp: Allow registering memory model without rxq reference
| * f4aa8268d7 xdp: Move the rxq_info.mem clearing to unreg_mem_model()
| * 0427f74a79 net: phy: micrel: add Microchip KSZ 9477 to the device table
| * 65a9383389 net: dsa: microchip: fix initial port flush problem
| * 3662eb2170 ASoC: fsl-asoc-card: set priv->pdev before using it
| * 229e145a81 nfsd: hold a lighter-weight client reference over CB_RECALL_ANY
| * a4f3907ab5 SUNRPC: Fix svcxdr_init_encode's buflen calculation
| * f1ef3dc758 SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation
| * be20af2458 SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
| * 3de81c1e84 SUNRPC: Fix null pointer dereference in svc_rqst_free()
| * 310dee7235 netfilter: nf_tables: validate family when identifying table via handle
| * d8a04a6bfa drm/amdgpu: fix UBSAN warning in kv_dpm.c
| * 52af94393d pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set
| * 6531f8c666 pinctrl: rockchip: use dedicated pinctrl type for RK3328
| * 926cb583b9 pinctrl/rockchip: separate struct rockchip_pin_bank to a head file
| * cfa2527ac8 pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
| * 6ff152b2be pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
| * b813e3fd10 pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER
| * b6be2b025c Input: ili210x - fix ili251x_read_touch_data() return value
| * f0ef5ca85f ACPI: x86: Force StorageD3Enable on more products
| * 3f830c2484 ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
| * bb1758cc4a ACPI: x86: utils: Add Cezanne to the list for forcing StorageD3Enable
| * c2a6ab506f ACPI: x86: Add another system to quirk list for forcing StorageD3Enable
| * fe73b1d080 ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable
| * 83f6522210 ACPI: Add quirks for AMD Renoir/Lucienne CPUs to force the D3 hint
| * b055752675 smb: client: fix deadlock in smb2_find_smb_tcon()
| * 78ebec450e cifs: missed ref-counting smb session in find
| * b03555a8fa x86/amd_nb: Check for invalid SMN reads
| * 0caf70a8e8 PCI: Add PCI_ERROR_RESPONSE and related definitions
| * a335ad77bd perf/core: Fix missing wakeup when waiting for context reference
| * 695f20c678 kheaders: explicitly define file modes for archived headers
| * 247c3f8958 Revert "kheaders: substituting --sort in archive creation"
| * 61c1c98e26 r8169: Fix possible ring buffer corruption on fragmented Tx packets.
| * 5c88f4f634 r8169: remove not needed check in rtl8169_start_xmit
| * 48833226fb r8169: remove nr_frags argument from rtl_tx_slots_avail
| * 41eeb13459 r8169: improve rtl8169_start_xmit
| * 04f9d0cd39 r8169: improve rtl_tx
| * 6d3eb1658b r8169: remove unneeded memory barrier in rtl_tx
| * 40a697e345 x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL
| * 50b1b4e4f3 x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
| * 0e84701753 tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test
| * 2c3d7b03b6 bcache: fix variable length array abuse in btree_iter
| * 6337072467 spmi: hisi-spmi-controller: Do not override device identifier
| * 90551062fd knfsd: LOOKUP can return an illegal error value
| * f77c8a2ce2 pmdomain: ti-sci: Fix duplicate PD referrals
| * 5fe1b2c72e wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power
| * 33628b6ed3 rtlwifi: rtl8192de: Style clean-ups
| * 77942a0272 ARM: dts: samsung: smdk4412: fix keypad no-autorepeat
| * 1fdaecc326 ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
| * b263a895d8 ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
| * cc255080c1 drm/amd/display: revert Exit idle optimizations before HDCP execution
| * 5d7fef7522 dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
| * 7884f4afec i2c: ocores: set IACK bit after core is enabled
| * 7879b54f0b kcov: don't lose track of remote references during softirqs
| * b1684798a3 gcov: add support for GCC 14
| * febe794b83 drm/radeon: fix UBSAN warning in kv_dpm.c
| * 71bea3e648 ALSA: hda/realtek: Limit mic boost on N14AP7
| * 7186b81c1f RDMA/mlx5: Add check for srq max_sge attribute
| * 6eca23100e ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."
| * f3d17826d6 dmaengine: ioatdma: Fix missing kmem_cache_destroy()
| * 34cc20a544 dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
| * 768ae5e025 dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
| * a486fca282 dmaengine: ioat: use PCI core macros for PCIe Capability
| * c017a8e3e3 dmaengine: ioatdma: Fix leaking on version mismatch
| * f99b00ed9b dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
| * d293db11cb dmaengine: ioat: switch from 'pci_' to 'dma_' API
| * 97509608b7 regulator: core: Fix modpost error "regulator_get_regmap" undefined
| * 6a0f5d540f net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
| * 72d9611968 netfilter: ipset: Fix suspicious rcu_dereference_protected()
| * 333c0a1f7d virtio_net: checksum offloading handling fix
| * b4bca4722f net: stmmac: No need to calculate speed divider when offload is disabled
| * 03f625505e sched: act_ct: add netns into the key of tcf_ct_flow_table
| * b4899d75b8 net/sched: act_ct: set 'net' pointer when creating new nf_flow_table
| * 3eb1b39627 tipc: force a dst refcount before doing decryption
| * c6a7da65a2 net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()
| * 66c7aa157a net/sched: act_api: rely on rcu in tcf_idr_check_alloc
| * fb910ac2d3 qca_spi: Make interrupt remembering atomic
| * 2b82028a1f netns: Make get_net_ns() handle zero refcount net
| * 20427b8578 xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
| * 1ed9849fdf ipv6: prevent possible NULL dereference in rt6_probe()
| * de5ad4d45c ipv6: prevent possible NULL deref in fib6_nh_init()
| * 5391f9db2c netrom: Fix a memory leak in nr_heartbeat_expiry()
| * 1aabe0f850 cipso: fix total option length computation
| * a85bae262c tracing: Build event generation tests only as modules
| * 36d771ce60 mips: bmips: BCM6358: make sure CBR is correctly set
| * 7117969bff MIPS: Routerboard 532: Fix vendor retry check code
| * 15c8b2e1d6 serial: exar: adding missing CTI and Exar PCI ids
| * 6c1b9fe148 MIPS: Octeon: Add PCIe link status check
| * c59f79e2b4 PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
| * bffff80d10 udf: udftime: prevent overflow in udf_disk_stamp_to_time()
| * 04736c1bc3 usb: misc: uss720: check for incompatible versions of the Belkin F5U002
| * 38a82c8d00 f2fs: remove clear SB_INLINECRYPT flag in default_options
| * d8481016c2 iommu/arm-smmu-v3: Free MSIs in case of ENOMEM
| * 449d55871c power: supply: cros_usbpd: provide ID table for avoiding fallback match
| * 1939648b3a powerpc/io: Avoid clang null pointer arithmetic warnings
| * a8c988d752 powerpc/pseries: Enforce hcall result buffer validity and size
| * 03e7b2f7ae drm/lima: mask irqs in timeout path before hard reset
| * e12c363cf5 drm/lima: add mask irq callback to gp and pp
| * 2db63bf7d8 ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14
| * b4291f58a9 drm/amd/display: Exit idle optimizations before HDCP execution
| * 52d4cfa56b Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl
| * 6fdc98bcc6 ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7
| * 6f6cb07482 HID: Add quirk for Logitech Casa touchpad
| * 43c0ca793a netpoll: Fix race condition in netpoll_owner_active
| * 1b577bb1cb kselftest: arm64: Add a null pointer check
| * 144d76a676 scsi: qedi: Fix crash while reading debugfs attribute
| * 96941f29eb drop_monitor: replace spin_lock by raw_spin_lock
| * a720d71dd4 af_packet: avoid a false positive warning in packet_setsockopt()
| * b5a53d14dd wifi: ath9k: work around memset overflow warning
| * 82cdea8f3a batman-adv: bypass empty buckets in batadv_purge_orig_ref()
| * e1c3f5fb1b selftests/bpf: Fix flaky test btf_map_in_map/lookup_update
| * 973b32034c selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
| * 58706e482b block/ioctl: prefer different overflow check
| * c15df6f498 rcutorture: Fix invalid context warning when enable srcu barrier testing
| * dd2cb39afc rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment
| * ec58e6ff29 padata: Disable BH when taking works lock on MT path
| * 82c7acf9a1 zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING
| * 864963d269 i2c: designware: Fix the functionality flags of the slave-only interface
| * 0f37d22a62 i2c: at91: Fix the functionality flags of the slave-only interface
| * f68820f125 usb-storage: alauda: Check whether the media is initialized
| * 2b6bb0b4ab greybus: Fix use-after-free bug in gb_interface_release due to race condition.
| * d6c26a59e6 remoteproc: k3-r5: Jump to error handling labels in start/stop errors
| * 990d071010 mptcp: pm: update add_addr counters after connect
| * 5a4efafcf8 mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
| * 208cd22ef5 mptcp: ensure snd_una is properly initialized on connect
| * 73014c77ec hugetlb_encode.h: fix undefined behaviour (34 << 26)
| * 0047568dbd serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level
| * 33eae51f65 tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
| * 0ecfe3a928 nilfs2: fix potential kernel bug due to lack of writeback flag waiting
| * f699f9f8b2 intel_th: pci: Add Lunar Lake support
| * 31f3136fd6 intel_th: pci: Add Meteor Lake-S support
| * c02003a97a intel_th: pci: Add Sapphire Rapids SOC support
| * dbfe50b50e intel_th: pci: Add Granite Rapids SOC support
| * 78a41b1614 intel_th: pci: Add Granite Rapids support
| * 02d3b5e48d remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs
| * fe5b53c602 dmaengine: axi-dmac: fix possible race in remove()
| * 42ed6bfc2d PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id
| * 050ce8af68 ocfs2: fix races between hole punching and AIO+DIO
| * 11a075a1c8 ocfs2: use coarse time for new created files
| * 70c1835e77 fs/proc: fix softlockup in __read_vmcore
| * f70ff73734 vmci: prevent speculation leaks by sanitizing event in event_deliver()
| * 4dfffb5031 drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found
| * 0acc356da8 drm/exynos/vidi: fix memory leak in .get_modes()
| * 760603e30b drivers: core: synchronize really_probe() and dev_uevent()
| * fd45d6f194 iio: imu: inv_icm42600: delete unneeded update watermark call
| * 9d4dce5870 iio: dac: ad5592r: fix temperature channel scaling value
| * e4ce76890e iio: adc: ad9467: fix scan type sign
| * ff9c2a9426 ionic: fix use after netif_napi_del()
| * b278f9b458 net/ipv6: Fix the RT cache flush via sysctl using a previous delay
| * 01ce5bdfdf net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters
| * 93b53c202b netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
| * ea1a98c9a3 Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ
| * dfd7f46707 net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
| * 330c8661c9 tcp: fix race in tcp_v6_syn_recv_sock()
| * 9b164605c1 drm/bridge/panel: Fix runtime warning on panel bridge release
| * bda7cdaeeb drm/komeda: check for error-valued pointer
| * cbf18d8128 liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
| * 187e293c82 net: hns3: add cond_resched() to hns3 ring buffer init process
| * bd8e1e6af6 net: sfp: Always call `sfp_sm_mod_remove()` on remove
| * abc55e738b drm/vmwgfx: 3D disabled should not effect STDU memory limits
| * caa9c9acb9 HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()
| * cf34f8f669 iommu: Return right value in iommu_sva_bind_device()
| * d4673a34d8 iommu/amd: Fix sysfs leak in iommu init
| * c0f1bd317b iommu/amd: Introduce pci segment structure
| * a843c0e9da gpio: tqmx86: store IRQ trigger type and unmask status separately
| * 33f6832798 HID: core: remove unnecessary WARN_ON() in implement()
| * 544015b945 gpio: tqmx86: fix typo in Kconfig label
| * 66c79c5acc SUNRPC: return proper error from gss_wrap_req_priv
| * b6a204f937 Input: try trimming too long modalias strings
| * 20b3f435b7 powerpc/uaccess: Fix build errors seen with GCC 13/14
| * 0081d2b3ae scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
| * baeae72258 xhci: Apply broken streams quirk to Etron EJ188 xHCI host
| * 0b05b12e2d xhci: Apply reset resume quirk to Etron EJ188 xHCI host
| * 22de7c9cba xhci: Set correct transferred length for cancelled bulk transfers
| * fc745f6e83 jfs: xattr: fix buffer overflow for invalid xattr
| * 498ff29800 mei: me: release irq in mei_me_pci_resume error path
| * c0747d76eb USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages
| * c77ad608df nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
| * adf1b931d5 nilfs2: return the mapped address from nilfs_get_page()
| * 8b56df81b3 nilfs2: Remove check for PageError
| * 05544fd3f1 btrfs: fix leak of qgroup extent records after transaction abort
| * 79bf1ea0d5 selftests/mm: compaction_test: fix bogus test success on Aarch64
| * 7c1cc0a5d4 selftests/mm: conform test to TAP format output
| * 9d3886a160 selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
| * 6ff7cfa02b mmc: davinci: Don't strip remove function when driver is builtin
| * b5a2a69081 serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler
| * 9a2e0aa9a8 serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
| * e8b8054f5e drm/amd/display: Handle Y carry-over in VCP X.Y calculation
| * e500b1c4e2 usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
| * c693698787 ipv6: fix possible race in __fib6_drop_pcpu_from()
| * 74c97c8003 af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
| * 35a69f9e5d af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
| * a64e4b8f9b af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
| * f70ef84b82 af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
| * 44a2437c60 af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
| * b5a6507c61 af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
| * cc5d123ce4 af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
| * d2c53bedeb af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
| * 13f61e503e ptp: Fix error message on failed pin verification
| * 6db4af0998 net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
| * d8c79ae03e tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB
| * dd254cde57 vxlan: Fix regression when dropping packets due to invalid src addresses
| * 52b1aa07cd net: sched: sch_multiq: fix possible OOB write in multiq_tune()
| * f9f69e3f69 ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
| * 3cbb2ba0a0 net/ncsi: Fix the multi thread manner of NCSI driver
| * 7329bc66b4 net/ncsi: Simplify Kconfig/dts control flow
| * f40cac4e70 net/ncsi: add NCSI Intel OEM command to keep PHY up
| * 7c9b9f822e wifi: mac80211: correctly parse Spatial Reuse Parameter Set element
| * 46c59a2533 wifi: iwlwifi: mvm: don't read past the mfuart notifcation
| * 3c4771091e wifi: iwlwifi: mvm: check n_ssids before accessing the ssids
| * 2c80bd07c1 wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef
| * 99c4903dce wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64
| * 8d5c7d7bfd wifi: cfg80211: pmsr: use correct nla_get_uX functions
| * e7e916d693 wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()
| * 7518e20a18 wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects
| * f64d566f43 null_blk: Print correct max open zones limit in null_init_zoned_dev()
| * 8f48a7f8b9 tracing/selftests: Fix kprobe event name test for .isra. functions
* | 88eb084d18 Revert "Merge 5.10.220 into android12-5.10-lts"
* | 87a7f35a24 Merge 5.10.220 into android12-5.10-lts
|\|
| * 3a3877de44 Linux 5.10.220
| * 9444ce5cd4 nfsd: Fix a regression in nfsd_setattr()
| * a1a153fc73 nfsd: don't call locks_release_private() twice concurrently
| * feb3352af7 nfsd: don't take fi_lock in nfsd_break_deleg_cb()
| * 99fb654d01 nfsd: fix RELEASE_LOCKOWNER
| * ca791e1a31 nfsd: drop the nfsd_put helper
| * 838a602db7 nfsd: call nfsd_last_thread() before final nfsd_put()
| * e35cb663a4 NFSD: fix possible oops when nfsd/pool_stats is closed.
| * 3add01e067 Documentation: Add missing documentation for EXPORT_OP flags
| * d31cd25f55 nfsd: separate nfsd_last_thread() from nfsd_put()
| * 987c0e1028 nfsd: Simplify code around svc_exit_thread() call in nfsd()
| * 7229200f68 nfsd: don't allow nfsd threads to be signalled.
| * 8ef87fe6e8 nfsd: Fix creation time serialization order
| * 72f28b5ad0 NFSD: Add an nfsd4_encode_nfstime4() helper
| * b4417c53d4 lockd: drop inappropriate svc_get() from locked_get()
| * b28b5c726e nfsd: fix double fget() bug in __write_ports_addfd()
| * 8157832461 nfsd: make a copy of struct iattr before calling notify_change
| * 05f45f3981 NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
| * 6c05d25ca8 nfsd: simplify the delayed disposal list code
| * 56b36b8960 NFSD: Convert filecache to rhltable
| * 5a132ffa76 nfsd: allow reaping files still under writeback
| * f7b157737c nfsd: update comment over __nfsd_file_cache_purge
| * f593ea1423 nfsd: don't take/put an extra reference when putting a file
| * c3677c14b3 nfsd: add some comments to nfsd_file_do_acquire
| * c9e8ed6efa nfsd: don't kill nfsd_files because of lease break error
| * 2c95ad0a0c nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator
| * e378da8357 nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries
| * 9c599dee87 nfsd: don't open-code clear_and_wake_up_bit
| * 65a33135e9 nfsd: call op_release, even when op_func returns an error
| * 50827896c3 NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL
| * 8235cd619d nfsd: don't replace page in rq_pages if it's a continuation of last page
| * 37b34eb567 lockd: set file_lock start and end when decoding nlm4 testargs
| * b0f3373279 NFSD: Protect against filesystem freezing
| * 37cd49faaa NFSD: copy the whole verifier in nfsd_copy_write_verifier
| * dd7d50c695 nfsd: don't fsync nfsd_files on last close
| * 1178547637 nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
| * 3db6c79de9 NFSD: fix problems with cleanup on errors in nfsd4_copy
| * e5e1dc8284 nfsd: don't hand out delegation on setuid files being opened for write
| * 2da5014998 NFSD: fix leaked reference count of nfsd4_ssc_umount_item
| * fd63299db8 nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
| * 3c7b9b3487 nfsd: allow nfsd_file_get to sanely handle a NULL pointer
| * 9d7608dc4b NFSD: enhance inter-server copy cleanup
| * 6856f1385d nfsd: don't destroy global nfs4_file table in per-net shutdown
| * e997a230d8 nfsd: don't free files unconditionally in __nfsd_file_cache_purge
| * 2bbf10861d NFSD: replace delayed_work with work_struct for nfsd_client_shrinker
| * 438ef64bbf NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time
| * 6ac4c383c3 NFSD: fix use-after-free in nfsd4_ssc_setup_dul()
| * 2ecc439931 NFSD: Use set_bit(RQ_DROPME)
| * 115b58b56f Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
| * 45c08a7529 nfsd: fix handling of cached open files in nfsd4_open codepath
| * f31bc0bc12 nfsd: rework refcounting in filecache
| * dfbf3066d9 NFSD: Avoid clashing function prototypes
| * ea46809860 NFSD: Use only RQ_DROPME to signal the need to drop a reply
| * 71a98737cd NFSD: add delegation reaper to react to low memory condition
| * 80a81db01a NFSD: add support for sending CB_RECALL_ANY
| * 87098b663f NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker
| * 35a48412f6 NFSD: pass range end to vfs_fsync_range() instead of count
| * 0d5f3de2b4 lockd: fix file selection in nlmsvc_cancel_blocked
| * 7ecaa9aff9 lockd: ensure we use the correct file descriptor when unlocking
| * 781c3f3d18 lockd: set missing fl_flags field when retrieving args
| * ae8f2bb3dd NFSD: Use struct_size() helper in alloc_session()
| * e2505cb851 nfsd: return error if nfs4_setacl fails
| * 31c93ee5f1 lockd: set other missing fields when unlocking files
| * 739202b2b9 NFSD: Add an nfsd_file_fsync tracepoint
| * 4453e0c1bb nfsd: fix up the filecache laundrette scheduling
| * 3d479899f4 nfsd: reorganize filecache.c
| * 605a5acd6f nfsd: remove the pages_flushed statistic from filecache
| * 384b23f136 NFSD: Fix licensing header in filecache.c
| * 56eedeaf71 NFSD: Use rhashtable for managing nfs4_file objects
| * 8fdef89612 NFSD: Refactor find_file()
| * 5e92a16849 NFSD: Clean up find_or_add_file()
| * 5aa2c4a1fe NFSD: Add a nfsd4_file_hash_remove() helper
| * e77b1d63c0 NFSD: Clean up nfsd4_init_file()
| * c152e4ffb9 NFSD: Update file_hashtbl() helpers
| * b0952d4948 NFSD: Use const pointers as parameters to fh_ helpers
| * a10d111fd0 NFSD: Trace delegation revocations
| * 88cf6a1e76 NFSD: Trace stateids returned via DELEGRETURN
| * 14c9c091f2 NFSD: Clean up nfs4_preprocess_stateid_op() call sites
| * d9991b0b9d NFSD: Flesh out a documenting comment for filecache.c
| * 5f866f5a86 NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
| * c09b456a81 NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
| * caa6270201 NFSD: Pass the target nfsd_file to nfsd_commit()
| * 599d5c2291 exportfs: use pr_debug for unreachable debug statements
| * 4ab1211c28 nfsd: allow disabling NFSv2 at compile time
| * 68f7bd7f29 nfsd: move nfserrno() to vfs.c
| * abbd1215c3 nfsd: ignore requests to disable unsupported versions
| * 81714ef8e3 NFSD: Finish converting the NFSv3 GETACL result encoder
| * a20b0abab9 NFSD: Finish converting the NFSv2 GETACL result encoder
| * 1dd04600f6 NFSD: Remove redundant assignment to variable host_err
| * 48a237cb5e NFSD: Simplify READ_PLUS
| * 10727ce312 nfsd: use locks_inode_context helper
| * 32c59062f8 lockd: use locks_inode_context helper
| * 70ffaa7896 filelock: add a new locks_inode_context accessor function
| * 7ea635fc47 NFSD: Fix reads with a non-zero offset that don't end on a page boundary
| * 7d867c6c30 nfsd: put the export reference in nfsd4_verify_deleg_dentry
| * 551f17db65 nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
| * 31268eb457 nfsd: fix net-namespace logic in __nfsd_file_cache_purge
| * 5428383c6f NFSD: unregister shrinker when nfsd_init_net() fails
| * 1bb3349257 nfsd: rework hashtable handling in nfsd_do_file_acquire
| * 2db3e73f9a nfsd: fix nfsd_file_unhash_and_dispose
| * 683fb922e7 fanotify: Remove obsoleted fanotify_event_has_path()
| * 229e73a0f4 fsnotify: remove unused declaration
| * a2d440dce6 fs/notify: constify path
| * 241685bab2 nfsd: extra checks when freeing delegation stateids
| * 345e3bb5e8 nfsd: make nfsd4_run_cb a bool return function
| * d7f2774d8c nfsd: fix comments about spinlock handling with delegations
| * 89b6362704 nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
| * 31b16e6b0b NFSD: Cap rsize_bop result based on send buffer size
| * 60b46564e0 NFSD: Rename the fields in copy_stateid_t
| * b7aea45a67 nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops
| * 21e18dd5eb nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
| * 443e648425 nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
| * 615d761a6b nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
| * a063abefc6 nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
| * cda3e9b8cd NFSD: Pack struct nfsd4_compoundres
| * a54822e64d NFSD: Remove unused nfsd4_compoundargs::cachetype field
| * 17bb698078 NFSD: Remove "inline" directives on op_rsize_bop helpers
| * f533a01b09 NFSD: Clean up nfs4svc_encode_compoundres()
| * 918054d2d8 NFSD: Clean up WRITE arg decoders
| * c92e8b295a NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
| * d08acee648 NFSD: Refactor common code out of dirlist helpers
| * 5e76b25d7c NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
| * 5ed2524893 SUNRPC: Parametrize how much of argsize should be zeroed
| * 6e50de3b3a NFSD: add shrinker to reap courtesy clients on low memory condition
| * 67302ef04e NFSD: keep track of the number of courtesy clients in the system
| * 1022fe63c5 NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
| * 235738ccea NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
| * b6c6c7153b NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
| * f326970df1 NFSD: Refactor nfsd_setattr()
| * 95dce2279c NFSD: Add a mechanism to wait for a DELEGRETURN
| * 3c0e831b87 NFSD: Add tracepoints to report NFSv4 callback completions
| * bc6bead0af nfsd: remove nfsd4_prepare_cb_recall() declaration
| * 330914c342 nfsd: clean up mounted_on_fileid handling
| * f574d41b1b NFSD: Fix handling of oversized NFSv4 COMPOUND requests
| * b0062184a1 NFSD: drop fname and flen args from nfsd_create_locked()
| * c23687911f NFSD: Protect against send buffer overflow in NFSv3 READ
| * 2007867c58 NFSD: Protect against send buffer overflow in NFSv2 READ
| * 57774b1526 NFSD: Protect against send buffer overflow in NFSv3 READDIR
| * 0e57d696f6 NFSD: Protect against send buffer overflow in NFSv2 READDIR
| * 2bd6f95ff9 NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND
| * d40bef3801 nfsd: Propagate some error code returned by memdup_user()
| * 490af5b07d nfsd: Avoid some useless tests
| * cef1ab71ae NFSD: remove redundant variable status
| * 30b0e49a95 NFSD enforce filehandle check for source file in COPY
| * 9dc20a662f lockd: move from strlcpy with unused retval to strscpy
| * 91eebaa181 NFSD: move from strlcpy with unused retval to strscpy
| * 57afda7bf2 nfsd_splice_actor(): handle compound pages
| * c7d320e620 NFSD: fix regression with setting ACLs.
| * 1f87122d34 lockd: detect and reject lock arguments that overflow
| * b15656dfa2 NFSD: discard fh_locked flag and fh_lock/fh_unlock
| * 5a8d428f5e NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
| * 9ef325edea NFSD: use explicit lock/unlock for directory ops
| * 203f09fae4 NFSD: reduce locking in nfsd_lookup()
| * bedd266b1f NFSD: only call fh_unlock() once in nfsd_link()
| * 77f83bc2ed NFSD: always drop directory lock in nfsd_unlink()
| * 617f72a1aa NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
| * c5409ce523 NFSD: add posix ACLs to struct nfsd_attrs
| * 18ee0869d6 NFSD: add security label to struct nfsd_attrs
| * 2a5642abeb NFSD: set attributes when creating symlinks
| * 45cf4b1bb1 NFSD: introduce struct nfsd_attrs
| * 3aac39eaa6 NFSD: verify the opened dentry after setting a delegation
| * 820bf1383d NFSD: drop fh argument from alloc_init_deleg
| * c62dcf8633 NFSD: Move copy offload callback arguments into a separate structure
| * e1d1b6574e NFSD: Add nfsd4_send_cb_offload()
| * d87486acbd NFSD: Remove kmalloc from nfsd4_do_async_copy()
| * a860bd179e NFSD: Refactor nfsd4_do_copy()
| * 8153ed38cc NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
| * 0d592d96d6 NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
| * ac774e1eeb NFSD: Replace boolean fields in struct nfsd4_copy
| * 627b896c52 NFSD: Make nfs4_put_copy() static
| * 0d7e3df76b NFSD: Reorder the fields in struct nfsd4_op
| * 94fd87568e NFSD: Shrink size of struct nfsd4_copy
| * 7c6fd14057 NFSD: Shrink size of struct nfsd4_copy_notify
| * 02bc4d514c NFSD: nfserrno(-ENOMEM) is nfserr_jukebox
| * 8ce03085cc NFSD: Fix strncpy() fortify warning
| * 0a1b9a216f NFSD: Clean up nfsd4_encode_readlink()
| * c7863472e5 NFSD: Use xdr_pad_size()
| * c587004a76 NFSD: Simplify starting_len
| * e77d3f5ee5 NFSD: Optimize nfsd4_encode_readv()
| * d176e7348b NFSD: Add an nfsd4_read::rd_eof field
| * 427bd174a4 NFSD: Clean up SPLICE_OK in nfsd4_encode_read()
| * 8fd87bf897 NFSD: Optimize nfsd4_encode_fattr()
| * d8c3d70408 NFSD: Optimize nfsd4_encode_operation()
| * 3b5dcf6b46 nfsd: silence extraneous printk on nfsd.ko insertion
| * f81ab23756 NFSD: limit the number of v4 clients to 1024 per 1GB of system memory
| * ec16f5f7fa NFSD: keep track of the number of v4 clients in the system
| * 4e7a739f63 NFSD: refactoring v4 specific code to a helper in nfs4state.c
| * 705e2cb1fe NFSD: Ensure nf_inode is never dereferenced
| * 451b2c2125 NFSD: NFSv4 CLOSE should release an nfsd_file immediately
| * c553e79c08 NFSD: Move nfsd_file_trace_alloc() tracepoint
| * 26664203dd NFSD: Separate tracepoints for acquire and create
| * de070f66d2 NFSD: Clean up unused code after rhashtable conversion
| * a174ce98b3 NFSD: Convert the filecache to use rhashtable
| * ebe886ac37 NFSD: Set up an rhashtable for the filecache
| * 1ea9b51f73 NFSD: Replace the "init once" mechanism
| * bbb260f3ce NFSD: Remove nfsd_file::nf_hashval
| * 12494d98fe NFSD: nfsd_file_hash_remove can compute hashval
| * 10ba39f788 NFSD: Refactor __nfsd_file_close_inode()
| * a86953523e NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode
| * ef7fe4908a NFSD: Remove lockdep assertion from unhash_and_release_locked()
| * 525c2c81fd NFSD: No longer record nf_hashval in the trace log
| * 99735b8d82 NFSD: Never call nfsd_file_gc() in foreground paths
| * 586e8d6c3d NFSD: Fix the filecache LRU shrinker
| * 51fc2b2c79 NFSD: Leave open files out of the filecache LRU
| * c15db0869e NFSD: Trace filecache LRU activity
| * 7cca6908fa NFSD: WARN when freeing an item still linked via nf_lru
| * 0c426d4621 NFSD: Hook up the filecache stat file
| * 6dc5cab808 NFSD: Zero counters when the filecache is re-initialized
| * 04b9376a10 NFSD: Record number of flush calls
| * 2cba48b3d0 NFSD: Report the number of items evicted by the LRU walk
| * af057e5884 NFSD: Refactor nfsd_file_lru_scan()
| * e7d5efd20e NFSD: Refactor nfsd_file_gc()
| * 8d038e72e7 NFSD: Add nfsd_file_lru_dispose_list() helper
| * d176e98400 NFSD: Report average age of filecache items
| * ca9cc17ec0 NFSD: Report count of freed filecache items
| * a38dff5964 NFSD: Report count of calls to nfsd_file_acquire()
| * 91c03a6124 NFSD: Report filecache LRU size
| * 4ff0e22e54 NFSD: Demote a WARN to a pr_warn()
| * cc3b111e3b nfsd: remove redundant assignment to variable len
| * 0a18cd2b94 NFSD: Fix space and spelling mistake
| * b5b79fc3ff NLM: Defend against file_lock changes after vfs_test_lock()
| * 16acc0677f SUNRPC: Fix xdr_encode_bool()
| * bcaac325dd nfsd: eliminate the NFSD_FILE_BREAK_* flags
| * 302ae1fb80 fsnotify: Fix comment typo
| * 85c640adf9 fanotify: introduce FAN_MARK_IGNORE
| * 99a022c4bc fanotify: cleanups for fanotify_mark() input validations
| * b8d06d1187 fanotify: prepare for setting event flags in ignore mask
| * 71860cc4e4 fs: inotify: Fix typo in inotify comment
| * 795f9fa1b5 lockd: fix nlm_close_files
| * 486c1acf14 lockd: set fl_owner when unlocking files
| * 845b309cf5 NFSD: Decode NFSv4 birth time attribute
| * 58f985d688 NFS: restore module put when manager exits.
| * e9156a2431 fanotify: refine the validation checks on non-dir inode mask
| * 6943f1073a SUNRPC: Optimize xdr_reserve_space()
| * ada1757b25 NFSD: Fix potential use-after-free in nfsd_file_put()
| * 4862b61886 NFSD: nfsd_file_put() can sleep
| * 06252d1bd5 NFSD: Add documenting comment for nfsd4_release_lockowner()
| * 345e2e48d8 NFSD: Modernize nfsd4_release_lockowner()
| * 13459d2225 nfsd: destroy percpu stats counters after reply cache shutdown
| * 15081df04a nfsd: Fix null-ptr-deref in nfsd_fill_super()
| * ff4e7a4b49 nfsd: Unregister the cld notifier when laundry_wq create failed
| * e1e87709c4 SUNRPC: Use RMW bitops in single-threaded hot paths
| * f7a1ecf2aa NFSD: Clean up the show_nf_flags() macro
| * 7b8462f22a NFSD: Trace filecache opens
| * a38be00474 NFSD: Move documenting comment for nfsd4_process_open2()
| * bfe9aab120 NFSD: Fix whitespace
| * 2805c5439c NFSD: Remove dprintk call sites from tail of nfsd4_open()
| * c20097329d NFSD: Instantiate a struct file when creating a regular NFSv4 file
| * d8714bda3f NFSD: Clean up nfsd_open_verified()
| * 274fd0f9c2 NFSD: Remove do_nfsd_create()
| * 66af1db0cc NFSD: Refactor NFSv4 OPEN(CREATE)
| * a019add1b4 NFSD: Refactor NFSv3 CREATE
| * a132795b61 NFSD: Refactor nfsd_create_setattr()
| * ee0742a93c NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
| * 304505e2e8 NFSD: Clean up nfsd3_proc_create()
| * c6207942b2 NFSD: Show state of courtesy client in client info
| * 4a39f029e7 NFSD: add support for lock conflict to courteous server
| * 97f77d7d50 fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
| * eb2eb6b6af fs/lock: add helper locks_owner_has_blockers to check for blockers
| * 461d0b57c9 NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd
| * a26848e2bc NFSD: add support for share reservation conflict to courteous server
| * 67ef9e5fd7 NFSD: add courteous server support for thread with only delegation
| * bf1cbe2f36 NFSD: Clean up nfsd_splice_actor()
| * 2723d479f5 fanotify: fix incorrect fmode_t casts
| * 4cd725129e fsnotify: consistent behavior for parent not watching children
| * e3bce57ffc fsnotify: introduce mark type iterator
| * f6017a718b fanotify: enable "evictable" inode marks
| * 3083d602ba fanotify: use fsnotify group lock helpers
| * f85d590059 fanotify: implement "evictable" inode marks
| * 80fb0ae4b1 fanotify: factor out helper fanotify_mark_update_flags()
| * b9576077ee fanotify: create helper fanotify_mark_user_flags()
| * ff34ebaa6f fsnotify: allow adding an inode mark without pinning inode
| * 3bd557cfdf dnotify: use fsnotify group lock helpers
| * cc1c875b69 nfsd: use fsnotify group lock helpers
| * c2c6ced500 inotify: use fsnotify group lock helpers
| * f91ba4a49b fsnotify: create helpers for group mark_mutex lock
| * 74f9be7f64 fsnotify: make allow_dups a property of the group
| * 4dc30393bd fsnotify: pass flags argument to fsnotify_alloc_group()
| * 1c47d87317 inotify: move control flags from mask to mark flags
| * aecfd231bf fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock.
| * d71ea54835 fanotify: do not allow setting dirent events in mask of non-dir
| * 9862064ca8 nfsd: Clean up nfsd_file_put()
| * cf04df21a4 nfsd: Fix a write performance regression
| * 997575f1a1 SUNRPC: Return true/false (not 1/0) from bool functions
| * a5fa9c824d fsnotify: remove redundant parameter judgment
| * 552c24a32c fsnotify: optimize FS_MODIFY events with no ignored masks
| * 5e84e33832 fsnotify: fix merge with parent's ignored mask
| * 62fa144b85 nfsd: fix using the correct variable for sizeof()
| * e96076f579 NFSD: Clean up _lm_ operation names
| * ec3b252a55 NFSD: Remove CONFIG_NFSD_V3
| * 7e4328b3b9 NFSD: Move svc_serv_ops::svo_function into struct svc_serv
| * 9802c57460 NFSD: Remove svc_serv_ops::svo_module
| * 36c57b27a7 SUNRPC: Remove svc_shutdown_net()
| * a4bbb1ab69 SUNRPC: Rename svc_close_xprt()
| * c58a9cfd20 SUNRPC: Rename svc_create_xprt()
| * 9a43ddd6b6 SUNRPC: Remove svo_shutdown method
| * 8c60a47670 SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt()
| * 99ab6abc88 SUNRPC: Remove the .svo_enqueue_xprt method
| * 194071d46c NFSD: Streamline the rare "found" case
| * 3304d16c24 NFSD: Skip extra computation for RC_NOCACHE case
| * 4aa8dac58c NFSD: De-duplicate hash bucket indexing
| * ca6761d39a nfsd: Add support for the birth time attribute
| * 0d1bbb0efe NFSD: Deprecate NFS_OFFSET_MAX
| * 70a80c7e8d NFSD: COMMIT operations must not return NFS?ERR_INVAL
| * a231ae6bb5 NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
| * 38d02ba22e NFSD: Fix ia_size underflow
| * 1726a39b08 NFSD: Fix the behavior of READ near OFFSET_MAX
| * fc2d8c153d lockd: fix failure to cleanup client locks
| * 20a74a6911 lockd: fix server crash on reboot of client holding lock
| * a667e1df40 fanotify: remove variable set but not used
| * 11bcfabf24 nfsd: fix crash on COPY_NOTIFY with special stateid
| * 4eefd1125b NFSD: Move fill_pre_wcc() and fill_post_wcc()
| * 695719e5e6 Revert "nfsd: skip some unnecessary stats in the v4 case"
| * 5e07d49f4a NFSD: Trace boot verifier resets
| * a1c9bcfd16 NFSD: Rename boot verifier functions
| * e49677ff33 NFSD: Clean up the nfsd_net::nfssvc_boot field
| * 083d44094f NFSD: Write verifier might go backwards
| * 306d2c1c08 nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()
| * 45ef8b7aea NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
| * 5a1575c02b NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
| * aa9ea9ec29 NFSD: Clean up nfsd_vfs_write()
| * 30282a70aa nfsd: Retry once in nfsd_open on an -EOPENSTALE return
| * 3128aa9c98 nfsd: Add errno mapping for EREMOTEIO
| * f12557372b nfsd: map EBADF
| * 9175fcf39c NFSD: Fix zero-length NFSv3 WRITEs
| * fab02e9799 nfsd4: add refcount for nfsd4_blocked_lock
| * 535204ecae nfs: block notification on fs with its own ->lock
| * bf5e7e1fa1 NFSD: De-duplicate nfsd4_decode_bitmap4()
| * 5a0710a6b4 nfsd: improve stateid access bitmask documentation
| * f0dbe05f6d NFSD: Combine XDR error tracepoints
| * e8f923e1e9 NFSD: simplify per-net file cache management
| * 677fd67d8b NFSD: Fix inconsistent indenting
| * 0bc12c1289 NFSD: Remove be32_to_cpu() from DRC hash function
| * e072a635c1 NFS: switch the callback service back to non-pooled.
| * 948e4664cc lockd: use svc_set_num_threads() for thread start and stop
| * deeda24a67 SUNRPC: always treat sv_nrpools==1 as "not pooled"
| * 74a0e37a20 SUNRPC: move the pool_map definitions (back) into svc.c
| * 9fe19a48a3 lockd: rename lockd_create_svc() to lockd_get()
| * e5087b3d58 lockd: introduce lockd_put()
| * 8304dd04fb lockd: move svc_exit_thread() into the thread
| * 7077a00703 lockd: move lockd_start_svc() call into lockd_create_svc()
| * a389baad91 lockd: simplify management of network status notifiers
| * 32f3e5a70f lockd: introduce nlmsvc_serv
| * d95899dadb NFSD: simplify locking for network notifier.
| * 7149250bee SUNRPC: discard svo_setup and rename svc_set_num_threads_sync()
| * 3614523741 NFSD: Make it possible to use svc_set_num_threads_sync
| * 6343271d53 NFSD: narrow nfsd_mutex protection in nfsd thread
| * 61d12fc30a SUNRPC: use sv_lock to protect updates to sv_nrthreads.
| * 4efe0b9d11 nfsd: make nfsd_stats.th_cnt atomic_t
| * 17041f0140 SUNRPC: stop using ->sv_nrthreads as a refcount
| * 64312a7c9f SUNRPC/NFSD: clean up get/put functions.
| * e9a4156137 SUNRPC: change svc_get() to return the svc.
| * e0bf899352 NFSD: handle errors better in write_ports_addfd()
| * 307b391221 NFSD: Fix sparse warning
| * c59dc174b2 exit: Rename module_put_and_exit to module_put_and_kthread_exit
| * 15606c8d52 exit: Implement kthread_exit
| * 63b8c19231 fanotify: wire up FAN_RENAME event
| * a860dd8bf5 fanotify: report old and/or new parent+name in FAN_RENAME event
| * c76fa85159 fanotify: record either old name new name or both for FAN_RENAME
| * da527da33b fanotify: record old and new parent and name in FAN_RENAME event
| * f59e978cfa fanotify: support secondary dir fh and name in fanotify_info
| * 967ae13720 fanotify: use helpers to parcel fanotify_info buffer
| * 4e63ce9199 fanotify: use macros to get the offset to fanotify_info buffer
| * 580eb8de84 fsnotify: generate FS_RENAME event with rich information
| * 4e59c7b3e3 fanotify: introduce group flag FAN_REPORT_TARGET_FID
| * be14cab43d fsnotify: separate mark iterator type from object type enum
| * c0a5f0b561 fsnotify: clarify object type argument
| * 9e291a6a28 NFSD: Fix READDIR buffer overflow
| * 1abf3ec558 NFSD: Fix exposure in nfsd4_decode_bitmap()
| * 88ccda1a81 nfsd4: remove obselete comment
| * f4e9e9565e NFSD:fix boolreturn.cocci warning
| * 022723fe15 nfsd: update create verifier comment
| * c7b0a9c75d SUNRPC: Change return value type of .pc_encode
| * 61cf681507 SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
| * 47047d40af NFSD: Save location of NFSv4 COMPOUND status
| * f747ce574c SUNRPC: Change return value type of .pc_decode
| * 0696b6b513 SUNRPC: Replace the "__be32 *p" parameter to .pc_decode
| * 396b359832 NFSD: Have legacy NFSD WRITE decoders use xdr_stream_subsegment()
| * c23b25dd19 NFSD: Initialize pointer ni with NULL and not plain integer 0
| * 6784188090 NFSD: simplify struct nfsfh
| * 25054b04ec NFSD: drop support for ancient filehandles
| * 918bc45a57 NFSD: move filehandle format declarations out of "uapi".
| * d2815110a7 NFSD: Optimize DRC bucket pruning
| * 2b2963c72c SUNRPC: Trace calls to .rpc_call_done
| * 2eda014477 fanotify: Allow users to request FAN_FS_ERROR events
| * b0f01b7c08 fanotify: Emit generic error info for error event
| * aefd9029fa fanotify: Report fid info for file related file system errors
| * bb247feb22 fanotify: WARN_ON against too large file handles
| * 7fa20568b6 fanotify: Add helpers to decide whether to report FID/DFID
| * 7935cf4070 fanotify: Wrap object_fh inline space in a creator macro
| * b974c8aa00 fanotify: Support merging of error events
| * 9b98f4ff51 fanotify: Support enqueueing of error events
| * 68aacb60a7 fanotify: Pre-allocate pool of error events
| * eec22d03a9 fanotify: Reserve UAPI bits for FAN_FS_ERROR
| * badbf879de fsnotify: Support FS_ERROR event type
| * 8ccc724f50 fanotify: Require fid_mode for any non-fd event
| * 2f65be6209 fanotify: Encode empty file handle when no inode is provided
| * 86bda2d752 fanotify: Allow file handle encoding for unhashed events
| * 44ce59c254 fanotify: Support null inode event in fanotify_dfid_inode
| * 313234a93e fsnotify: Pass group argument to free_event
| * c9f9d99ea4 fsnotify: Protect fsnotify_handle_inode_event from no-inode events
| * 5c4ce075c9 fsnotify: Retrieve super block from the data field
| * 44844158ee fsnotify: Add wrapper around fsnotify_add_event
| * 24eda1b5e6 fsnotify: Add helper to detect overflow_event
| * 7c9ba74cb3 inotify: Don't force FS_IN_IGNORED
| * 9539a89f28 fanotify: Split fsid check from other fid mode checks
| * 326be73a59 fanotify: Fold event size calculation to its own function
| * 7fee789540 fsnotify: Don't insert unmergeable events in hashtable
| * 60b6dab8c8 fsnotify: clarify contract for create event hooks
| * 9601d20734 fsnotify: pass dentry instead of inode data
| * f114860f72 fsnotify: pass data_type to fsnotify_name()
| * 6719531e67 nfsd: Fix a warning for nfsd_file_close_inode
| * 7918a95bc2 NLM: Fix svcxdr_encode_owner()
| * b801327ba3 fsnotify: fix sb_connectors leak
| * 1773901afb NFS: Remove unused callback void decoder
| * edf220fe15 NFS: Add a private local dispatcher for NFSv4 callback operations
| * 91bbbffece SUNRPC: Eliminate the RQ_AUTHERR flag
| * febf43bcdc SUNRPC: Set rq_auth_stat in the pg_authenticate() callout
| * a96da583ff SUNRPC: Add svc_rqst::rq_auth_stat
| * efea5d558e nfs: don't allow reexport reclaims
| * bd5b3deed0 lockd: don't attempt blocking locks on nfs reexports
| * 5ea5be84dd nfs: don't atempt blocking locks on nfs reexports
| * e580323ac0 Keep read and write fds with each nlm_file
| * b4bf52174b lockd: update nlm_lookup_file reexport comment
| * 14c2a0fad5 nlm: minor refactoring
| * 3fbc744783 nlm: minor nlm_lookup_file argument change
| * 860f01260e lockd: change the proc_handler for nsm_use_hostnames
| * f469e60f9a sysctl: introduce new proc handler proc_dobool
| * 130dcbf77a NFSD: remove vanity comments
| * 86df138e8d NFSD: Batch release pages during splice read
| * a4f616afb4 SUNRPC: Add svc_rqst_replace_page() API
| * 9e5f2e0ae0 NFSD: Clean up splice actor
| * 860893f9e3 fsnotify: optimize the case of no marks of any type
| * 9917e1bda3 fsnotify: count all objects with attached connectors
| * 44858a3488 fsnotify: count s_fsnotify_inode_refs for attached connectors
| * cdbf9c5f81 fsnotify: replace igrab() with ihold() on attach connector
| * cde8883b0b fanotify: add pidfd support to the fanotify API
| * 77bc7f529a fanotify: introduce a generic info record copying helper
| * 3ddcb19396 fanotify: minor cosmetic adjustments to fid labels
| * 03b5d3ee50 kernel/pid.c: implement additional checks upon pidfd_create() parameters
| * 774c2dbca7 kernel/pid.c: remove static qualifier from pidfd_create()
| * e79057d15d nfsd: fix NULL dereference in nfs3svc_encode_getaclres
| * 5610ed80e8 NFSD: Prevent a possible oops in the nfs_dirent() tracepoint
| * 17600880e1 nfsd: remove redundant assignment to pointer 'this'
| * ce18198762 lockd: Update the NLMv4 SHARE results encoder to use struct xdr_stream
| * fec0730992 lockd: Update the NLMv4 nlm_res results encoder to use struct xdr_stream
| * e1e61d647f lockd: Update the NLMv4 TEST results encoder to use struct xdr_stream
| * 4f5ba2e6b4 lockd: Update the NLMv4 void results encoder to use struct xdr_stream
| * 0add7c13bf lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream
| * 604c8a432c lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream
| * 300a4b1632 lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream
| * 33f31f6e85 lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream
| * 9e1daae630 lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream
| * 0652983fbe lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream
| * 101d45274a lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream
| * 360159aafa lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream
| * c8f4048250 lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream
| * 45c1384bd7 lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream
| * b049476790 lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream
| * d0ddd21bd5 lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream
| * e6c92714e9 lockd: Update the NLMv1 void results encoder to use struct xdr_stream
| * 02a3c81665 lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream
| * 6c522daf60 lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream
| * 56c936af53 lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream
| * 90f483a775 lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream
| * b4ea38d69d lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream
| * 2025b3acf6 lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream
| * 3e8675ff1e lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream
| * 8f9f41ebfa lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream
| * 4c3f448aaa lockd: Update the NLMv1 void argument decoder to use struct xdr_stream
| * fa4b890c0d lockd: Common NLM XDR helpers
| * 3595ff1c2c lockd: Create a simplified .vs_dispatch method for NLM requests
| * eeea3b96d1 lockd: Remove stale comments
| * c58120ab47 nfsd: rpc_peeraddr2str needs rcu lock
| * 2983611a66 NFSD: Fix error return code in nfsd4_interssc_connect()
| * c5a305d93e nfsd: fix kernel test robot warning in SSC code
| * 22b7c93d96 nfsd4: Expose the callback address and state of each NFS4 client
| * dbc0aa4795 nfsd: move fsnotify on client creation outside spinlock
| * a4bc287943 NFSD: delay unmount source's export after inter-server copy completed.
| * 817c6eb975 NFSD add vfs_fsync after async copy is done
| * 94a8924701 nfsd: move some commit_metadata()s outside the inode lock
| * f666a75ccd nfsd: Prevent truncation of an unlinked inode from blocking access to its directory
| * e7bbdd7dee NFSD: Update nfsd_cb_args tracepoint
| * 3e8aeb13a7 NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints
| * 3a63aa2459 NFSD: Add an nfsd_cb_probe tracepoint
| * a577eb06de NFSD: Replace the nfsd_deleg_break tracepoint
| * 9f76187f0a NFSD: Add an nfsd_cb_offload tracepoint
| * 60aac21534 NFSD: Add an nfsd_cb_lm_notify tracepoint
| * 59ddc5a82b NFSD: Enhance the nfsd_cb_setup tracepoint
| * fc3b4f0188 NFSD: Adjust cb_shutdown tracepoint
| * 634816f9d3 NFSD: Add cb_lost tracepoint
| * 3076ede3fc NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros
| * 2be1f22751 NFSD: Capture every CB state transition
| * b6ba775ccc NFSD: Constify @fh argument of knfsd_fh_hash()
| * 88b3cdfd48 NFSD: Add tracepoints for EXCHANGEID edge cases
| * 5070351cdc NFSD: Add tracepoints for SETCLIENTID edge cases
| * 650530d522 NFSD: Add a couple more nfsd_clid_expired call sites
| * 056332823c NFSD: Add nfsd_clid_destroyed tracepoint
| * 580ec8b653 NFSD: Add nfsd_clid_reclaim_complete tracepoint
| * 3b6808c793 NFSD: Add nfsd_clid_confirmed tracepoint
| * c6889b75a6 NFSD: Remove trace_nfsd_clid_inuse_err
| * 8da1871206 NFSD: Add nfsd_clid_verf_mismatch tracepoint
| * c8493d7308 NFSD: Add nfsd_clid_cred_mismatch tracepoint
| * b00bb7dfe2 NFSD: Add an RPC authflavor tracepoint display helper
| * a4d250f510 fanotify: fix permission model of unprivileged group
| * 0245993ace NFS: fix nfs_fetch_iversion()
| * b2c0c7cb7f NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.
| * 3793f28102 nfsd: Fix fall-through warnings for Clang
| * 39ab09108e nfsd: grant read delegations to clients holding writes
| * d2431cc967 nfsd: reshuffle some code
| * ee548b1629 nfsd: track filehandle aliasing in nfs4_files
| * cc6d658669 nfsd: hash nfs4_files by inode number
| * e63b956b2d nfsd: removed unused argument in nfsd_startup_generic()
| * 856b0c4979 nfsd: remove unused function
| * bd373a90d0 fanotify_user: use upper_32_bits() to verify mask
| * 4ac0ad2372 fanotify: support limited functionality for unprivileged users
| * 3e441a872a fanotify: configurable limits via sysfs
| * 7df80a90e1 fanotify: limit number of event merge attempts
| * 40e1e98c1b fsnotify: use hash table for faster events merge
| * ae7fd89dae fanotify: mix event info and pid into merge key hash
| * 5b57a2b74d fanotify: reduce event objectid to 29-bit hash
| * 4f14948942 Revert "fanotify: limit number of event merge attempts"
| * 62b7f38473 fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue
| * d9168ab8d7 NFSD: Use DEFINE_SPINLOCK() for spinlock
| * b20d88bf1e UAPI: nfsfh.h: Replace one-element array with flexible-array member
| * 117dac268d SUNRPC: Export svc_xprt_received()
| * 289adc864d nfsd: report client confirmation status in "info" file
| * 14b13e0603 nfsd: don't ignore high bits of copy count
| * 1f76b1e659 nfsd: COPY with length 0 should copy to end of file
| * ed01819390 nfsd: Fix typo "accesible"
| * 2a5df97ba4 nfsd: Log client tracking type log message as info instead of warning
| * 0fa20162bf nfsd: helper for laundromat expiry calculations
| * aab7be2475 NFSD: Clean up NFSDDBG_FACILITY macro
| * e7dac943b4 NFSD: Add a tracepoint to record directory entry encoding
| * a6d9f6f371 NFSD: Clean up after updating NFSv3 ACL encoders
| * 857a37235c NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream
| * d505e66191 NFSD: Update the NFSv3 GETACL result encoder to use struct xdr_stream
| * 67d4f36707 NFSD: Clean up after updating NFSv2 ACL encoders
| * 3d2033a58c NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream
| * 6ef7a56fd7 NFSD: Update the NFSv2 ACL GETATTR result encoder to use struct xdr_stream
| * 82ac35b167 NFSD: Update the NFSv2 SETACL result encoder to use struct xdr_stream
| * 6677b0d16a NFSD: Update the NFSv2 GETACL result encoder to use struct xdr_stream
| * 89ac9a8101 NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs
| * 93584780eb NFSD: Remove unused NFSv2 directory entry encoders
| * b8658c947d NFSD: Update the NFSv2 READDIR entry encoder to use struct xdr_stream
| * 801e4d79b7 NFSD: Update the NFSv2 READDIR result encoder to use struct xdr_stream
| * bc17759a4e NFSD: Count bytes instead of pages in the NFSv2 READDIR encoder
| * c4e2727589 NFSD: Add a helper that encodes NFSv3 directory offset cookies
| * 60bc5af5b8 NFSD: Update the NFSv2 STATFS result encoder to use struct xdr_stream
| * ad0614d3a8 NFSD: Update the NFSv2 READ result encoder to use struct xdr_stream
| * 27909a583c NFSD: Update the NFSv2 READLINK result encoder to use struct xdr_stream
| * 9aab4f03e8 NFSD: Update the NFSv2 diropres encoder to use struct xdr_stream
| * c64d5d0ca9 NFSD: Update the NFSv2 attrstat encoder to use struct xdr_stream
| * 816c23c911 NFSD: Update the NFSv2 stat encoder to use struct xdr_stream
| * e4e6019ce5 NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations
| * d855480201 NFSD: Remove unused NFSv3 directory entry encoders
| * 37aa5e6402 NFSD: Update NFSv3 READDIR entry encoders to use struct xdr_stream
| * 7cbec0dc09 NFSD: Update the NFSv3 READDIR3res encoder to use struct xdr_stream
| * cacfe8f6d8 NFSD: Count bytes instead of pages in the NFSv3 READDIR encoder
| * 3b2fef48b7 NFSD: Add a helper that encodes NFSv3 directory offset cookies
| * 30dabf1d4f NFSD: Update the NFSv3 COMMIT3res encoder to use struct xdr_stream
| * 349d96b070 NFSD: Update the NFSv3 PATHCONF3res encoder to use struct xdr_stream
| * 4c06f831d2 NFSD: Update the NFSv3 FSINFO3res encoder to use struct xdr_stream
| * f6908e2bcd NFSD: Update the NFSv3 FSSTAT3res encoder to use struct xdr_stream
| * 066dc317fa NFSD: Update the NFSv3 LINK3res encoder to use struct xdr_stream
| * 0404cffec4 NFSD: Update the NFSv3 RENAMEv3res encoder to use struct xdr_stream
| * 1863ca4c9e NFSD: Update the NFSv3 CREATE family of encoders to use struct xdr_stream
| * 8737a75f26 NFSD: Update the NFSv3 WRITE3res encoder to use struct xdr_stream
| * b241ab9823 NFSD: Update the NFSv3 READ3res encode to use struct xdr_stream
| * 170e6bd25e NFSD: Update the NFSv3 READLINK3res encoder to use struct xdr_stream
| * c3995f8be1 NFSD: Update the NFSv3 wccstat result encoder to use struct xdr_stream
| * f74e0652a6 NFSD: Update the NFSv3 LOOKUP3res encoder to use struct xdr_stream
| * fd9e183df6 NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream
| * 0ef12d755c NFSD: Update the GETATTR3res encoder to use struct xdr_stream
| * 48aadfa75b NFSD: Extract the svcxdr_init_encode() helper
| * e864d4d834 namei: introduce struct renamedata
| * b0fa673c8c fs: add file and path permissions helpers
| * 666a413295 kallsyms: only build {,module_}kallsyms_on_each_symbol when required
| * f8d8568627 kallsyms: refactor {,module_}kallsyms_on_each_symbol
| * bef9d8b4f8 module: use RCU to synchronize find_module
| * 32edffff86 module: unexport find_module and module_mutex
| * 51f620fcc4 inotify, memcg: account inotify instances to kmemcg
| * c1fe2bb305 nfsd: skip some unnecessary stats in the v4 case
| * 0220d51186 nfs: use change attribute for NFS re-exports
| * 5a0b45626f NFSv4_2: SSC helper should use its own config.
| * b267f61182 nfsd: cstate->session->se_client -> cstate->clp
| * bc6015541c nfsd: simplify nfsd4_check_open_reclaim
| * 25ac4fdbdc nfsd: remove unused set_client argument
| * 87ab73c1cc nfsd: find_cpntf_state cleanup
| * 1d4ccfdc7d nfsd: refactor set_client
| * 1700657468 nfsd: rename lookup_clientid->set_client
| * ea92c0768f nfsd: simplify nfsd_renew
| * 52923f25be nfsd: simplify process_lock
| * 4f26b1747a nfsd4: simplify process_lookup1
| * 42cf742d86 nfsd: report per-export stats
| * 65b1df1358 nfsd: protect concurrent access to nfsd stats counters
| * d1344de0d6 nfsd: remove unused stats counters
| * 0a13baa6ab NFSD: Clean up after updating NFSv3 ACL decoders
| * 22af3dfbe6 NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
| * f89e3fa89e NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream
| * 5ea5e56cfb NFSD: Clean up after updating NFSv2 ACL decoders
| * 81f79eb223 NFSD: Update the NFSv2 ACL ACCESS argument decoder to use struct xdr_stream
| * 9eea3915dd NFSD: Update the NFSv2 ACL GETATTR argument decoder to use struct xdr_stream
| * 508a791fbe NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
| * e077857ef0 NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs
| * ea6b0e02dc NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream
| * e440613886 NFSD: Remove argument length checking in nfsd_dispatch()
| * 7e6746027b NFSD: Update the NFSv2 SYMLINK argument decoder to use struct xdr_stream
| * 1db54ce543 NFSD: Update the NFSv2 CREATE argument decoder to use struct xdr_stream
| * 40de4113f8 NFSD: Update the NFSv2 SETATTR argument decoder to use struct xdr_stream
| * ebfb21605f NFSD: Update the NFSv2 LINK argument decoder to use struct xdr_stream
| * a362dd478b NFSD: Update the NFSv2 RENAME argument decoder to use struct xdr_stream
| * 0047abd4c4 NFSD: Update NFSv2 diropargs decoding to use struct xdr_stream
| * 7d9ab8ee57 NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream
| * 672111a408 NFSD: Add helper to set up the pages where the dirlist is encoded
| * 365835d2ff NFSD: Update the NFSv2 READLINK argument decoder to use struct xdr_stream
| * ecee6ba592 NFSD: Update the NFSv2 WRITE argument decoder to use struct xdr_stream
| * 6e88b7ec6c NFSD: Update the NFSv2 READ argument decoder to use struct xdr_stream
| * ba7e0412fb NFSD: Update the NFSv2 GETATTR argument decoder to use struct xdr_stream
| * 9ceeee0ec8 NFSD: Update the MKNOD3args decoder to use struct xdr_stream
| * 8841760f68 NFSD: Update the SYMLINK3args decoder to use struct xdr_stream
| * b5d1ae6cc4 NFSD: Update the MKDIR3args decoder to use struct xdr_stream
| * bd54084b58 NFSD: Update the CREATE3args decoder to use struct xdr_stream
| * 48ea0cb79b NFSD: Update the SETATTR3args decoder to use struct xdr_stream
| * 71d7e7c6a6 NFSD: Update the LINK3args decoder to use struct xdr_stream
| * e84af23391 NFSD: Update the RENAME3args decoder to use struct xdr_stream
| * 69e54a4470 NFSD: Update the NFSv3 DIROPargs decoder to use struct xdr_stream
| * 47614a374e NFSD: Update COMMIT3arg decoder to use struct xdr_stream
| * fbcd668016 NFSD: Update READDIR3args decoders to use struct xdr_stream
| * e0ddafcc25 NFSD: Add helper to set up the pages where the dirlist is encoded
| * 29270d477f NFSD: Fix returned READDIR offset cookie
| * 19285d319f NFSD: Update READLINK3arg decoder to use struct xdr_stream
| * 5f36ae59d6 NFSD: Update WRITE3arg decoder to use struct xdr_stream
| * b77a4a968d NFSD: Update READ3arg decoder to use struct xdr_stream
| * 7bb23be450 NFSD: Update ACCESS3arg decoder to use struct xdr_stream
| * d668aa92a6 NFSD: Update GETATTR3args decoder to use struct xdr_stream
| * 22b19656ea SUNRPC: Move definition of XDR_UNIT
| * 97d254cba3 SUNRPC: Display RPC procedure names instead of proc numbers
| * c336597d03 SUNRPC: Make trace_svc_process() display the RPC procedure symbolically
| * 5b82798f78 NFSD: Restore NFSv4 decoding's SAVEMEM functionality
| * bca0057f68 NFSD: Fix sparse warning in nfssvc.c
| * 131676b824 fs/lockd: convert comma to semicolon
| * 185e81a977 inotify: Increase default inotify.max_user_watches limit to 1048576
| * 1aecdaa7e2 file: Replace ksys_close with close_fd
| * 6d256a904c file: Rename __close_fd to close_fd and remove the files parameter
| * 7458c5ae46 file: Merge __alloc_fd into alloc_fd
| * 9e8ef54ca8 file: In f_dupfd read RLIMIT_NOFILE once.
| * 89f9e52964 file: Merge __fd_install into fd_install
| * b4b827da90 proc/fd: In fdinfo seq_show don't use get_files_struct
| * c0e3f6df04 proc/fd: In proc_readfd_common use task_lookup_next_fd_rcu
| * a6da7536e4 file: Implement task_lookup_next_fd_rcu
| * 6007aeeaef kcmp: In get_file_raw_ptr use task_lookup_fd_rcu
| * c2291f7bdf proc/fd: In tid_fd_mode use task_lookup_fd_rcu
| * 32ac87287d file: Implement task_lookup_fd_rcu
| * c4716bb296 file: Rename fcheck lookup_fd_rcu
| * 23f5564992 file: Replace fcheck_files with files_lookup_fd_rcu
| * 9080557c56 file: Factor files_lookup_fd_locked out of fcheck_files
| * ddb21f9984 file: Rename __fcheck_files to files_lookup_fd_raw
| * e6f42bc11a Revert "fget: clarify and improve __fget_files() implementation"
| * 4d037e1173 proc/fd: In proc_fd_link use fget_task
| * c874ec02cb bpf: In bpf_task_fd_query use fget_task
| * fe1722255e kcmp: In kcmp_epoll_target use fget_task
| * ba7aac19b4 exec: Remove reset_files_struct
| * 44f79df28b exec: Simplify unshare_files
| * 5091d051c5 exec: Move unshare_files to fix posix file locking during exec
| * 527c9b6eb1 exec: Don't open code get_close_on_exec
| * 8f1df3d0c1 nfsd: Record NFSv4 pre/post-op attributes as non-atomic
| * 0750e494c7 nfsd: Set PF_LOCAL_THROTTLE on local filesystems only
| * f3056a0ac2 nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE
| * 38e213c1e4 exportfs: Add a function to return the raw output from fh_to_dentry()
| * 93f7d515d8 nfsd: close cached files prior to a REMOVE or RENAME that would replace target
| * 203ca3253b nfsd: allow filesystems to opt out of subtree checking
| * d5314c9bb7 nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations
| * 34de27ed84 Revert "nfsd4: support change_attr_type attribute"
| * b720ceec88 nfsd4: don't query change attribute in v2/v3 case
| * 796785a79b nfsd: minor nfsd4_change_attribute cleanup
| * 88dea0f92b nfsd: simplify nfsd4_change_info
| * f8032b859d nfsd: only call inode_query_iversion in the I_VERSION case
| * 3aea16e6b7 NFSD: Remove macros that are no longer used
| * b24e6a40ee NFSD: Replace READ* macros in nfsd4_decode_compound()
| * 6b48808835 NFSD: Make nfsd4_ops::opnum a u32
| * c2d0c16990 NFSD: Replace READ* macros in nfsd4_decode_listxattrs()
| * 8e1b8a78a9 NFSD: Replace READ* macros in nfsd4_decode_setxattr()
| * 9bc67df0f9 NFSD: Replace READ* macros in nfsd4_decode_xattr_name()
| * b719fc9375 NFSD: Replace READ* macros in nfsd4_decode_clone()
| * a2f6c16ad1 NFSD: Replace READ* macros in nfsd4_decode_seek()
| * f8eb5424e3 NFSD: Replace READ* macros in nfsd4_decode_offload_status()
| * c2d2a919b2 NFSD: Replace READ* macros in nfsd4_decode_copy_notify()
| * 8604d294c1 NFSD: Replace READ* macros in nfsd4_decode_copy()
| * dc1a31ca8e NFSD: Replace READ* macros in nfsd4_decode_nl4_server()
| * a0b8dabc59 NFSD: Replace READ* macros in nfsd4_decode_fallocate()
| * de0dc37a79 NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete()
| * 093f9d2c8f NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid()
| * 7675420fde NFSD: Replace READ* macros in nfsd4_decode_test_stateid()
| * f0de0b6895 NFSD: Replace READ* macros in nfsd4_decode_sequence()
| * 1ea743dc48 NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name()
| * b63e313dce NFSD: Replace READ* macros in nfsd4_decode_layoutreturn()
| * 40e627c502 NFSD: Replace READ* macros in nfsd4_decode_layoutget()
| * 40770a0f8e NFSD: Replace READ* macros in nfsd4_decode_layoutcommit()
| * c0a4c4e46b NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo()
| * 5f892c1178 NFSD: Replace READ* macros in nfsd4_decode_free_stateid()
| * 92ae309a99 NFSD: Replace READ* macros in nfsd4_decode_destroy_session()
| * 73684a8118 NFSD: Replace READ* macros in nfsd4_decode_create_session()
| * 2bd9ef494a NFSD: Add a helper to decode channel_attrs4
| * d01f41320d NFSD: Add a helper to decode nfs_impl_id4
| * d50a76f1f3 NFSD: Add a helper to decode state_protect4_a
| * 0c935af3cf NFSD: Add a separate decoder for ssv_sp_parms
| * cb568dbdef NFSD: Add a separate decoder to handle state_protect_ops
| * b736338042 NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session()
| * 7d21084074 NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl()
| * 5658ca0651 NFSD: Replace READ* macros in nfsd4_decode_cb_sec()
| * 79f1a8323a NFSD: Replace READ* macros in nfsd4_decode_release_lockowner()
| * eeab2f3bf2 NFSD: Replace READ* macros in nfsd4_decode_write()
| * b1af8f131e NFSD: Replace READ* macros in nfsd4_decode_verify()
| * 19a4c05e81 NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm()
| * 2503dcf0f6 NFSD: Replace READ* macros in nfsd4_decode_setclientid()
| * 7c06ba5c8b NFSD: Replace READ* macros in nfsd4_decode_setattr()
| * 5277d60346 NFSD: Replace READ* macros in nfsd4_decode_secinfo()
| * 2cef1009f8 NFSD: Replace READ* macros in nfsd4_decode_renew()
| * e2b287a53c NFSD: Replace READ* macros in nfsd4_decode_rename()
| * 274b8f0597 NFSD: Replace READ* macros in nfsd4_decode_remove()
| * c24e2a4943 NFSD: Replace READ* macros in nfsd4_decode_readdir()
| * d0a0219a35 NFSD: Replace READ* macros in nfsd4_decode_read()
| * 4b28cd7e83 NFSD: Replace READ* macros in nfsd4_decode_putfh()
| * ad1ea32c97 NFSD: Replace READ* macros in nfsd4_decode_open_downgrade()
| * e557a2eabb NFSD: Replace READ* macros in nfsd4_decode_open_confirm()
| * f6eb911d79 NFSD: Replace READ* macros in nfsd4_decode_open()
| * 4507c23e42 NFSD: Add helper to decode OPEN's open_claim4 argument
| * 48385b58bc NFSD: Replace READ* macros in nfsd4_decode_share_deny()
| * fa60cc6971 NFSD: Replace READ* macros in nfsd4_decode_share_access()
| * 070df4a4e9 NFSD: Add helper to decode OPEN's openflag4 argument
| * c1ea8812d4 NFSD: Add helper to decode OPEN's createhow4 argument
| * 11ea3e65f0 NFSD: Add helper to decode NFSv4 verifiers
| * def95074db NFSD: Replace READ* macros in nfsd4_decode_lookup()
| * 340878b2e0 NFSD: Replace READ* macros in nfsd4_decode_locku()
| * 3625de1522 NFSD: Replace READ* macros in nfsd4_decode_lockt()
| * 8357985d21 NFSD: Replace READ* macros in nfsd4_decode_lock()
| * d27f2dceda NFSD: Add helper for decoding locker4
| * 0c281b7083 NFSD: Add helpers to decode a clientid4 and an NFSv4 state owner
| * 753bb6b0e7 NFSD: Relocate nfsd4_decode_opaque()
| * 84bc365eee NFSD: Replace READ* macros in nfsd4_decode_link()
| * 42c4437d78 NFSD: Replace READ* macros in nfsd4_decode_getattr()
| * 42e319695e NFSD: Replace READ* macros in nfsd4_decode_delegreturn()
| * 3012fe5fea NFSD: Replace READ* macros in nfsd4_decode_create()
| * 57516a96ca NFSD: Replace READ* macros in nfsd4_decode_fattr()
| * 9737a9a8f9 NFSD: Replace READ* macros that decode the fattr4 umask attribute
| * 91a6752dad NFSD: Replace READ* macros that decode the fattr4 security label attribute
| * 064e439bef NFSD: Replace READ* macros that decode the fattr4 time_set attributes
| * df42ebb61b NFSD: Replace READ* macros that decode the fattr4 owner_group attribute
| * dec78fb66d NFSD: Replace READ* macros that decode the fattr4 owner attribute
| * 8801b0c284 NFSD: Replace READ* macros that decode the fattr4 mode attribute
| * 3d3690b662 NFSD: Replace READ* macros that decode the fattr4 acl attribute
| * ee02662724 NFSD: Replace READ* macros that decode the fattr4 size attribute
| * 2a8ae03957 NFSD: Change the way the expected length of a fattr4 is checked
| * f82c6ad7e2 NFSD: Replace READ* macros in nfsd4_decode_commit()
| * c701c0e5a9 NFSD: Replace READ* macros in nfsd4_decode_close()
| * 9921353a52 NFSD: Replace READ* macros in nfsd4_decode_access()
| * bbb0a710a2 NFSD: Replace the internals of the READ_BUF() macro
| * 2994c88884 NFSD: Add tracepoints in nfsd4_decode/encode_compound()
| * 568f9ca73d NFSD: Add tracepoints in nfsd_dispatch()
| * fbffaddb76 NFSD: Add common helpers to decode void args and encode void results
| * 79e4e0d489 SUNRPC: Prepare for xdr_stream-style decoding on the server-side
| * 2f46cc8141 SUNRPC: Add xdr_set_scratch_page() and xdr_reset_scratch_buffer()
| * 164937edca nfsd: Fix error return code in nfsd_file_cache_init()
| * 9393f1628f NFSD: Add SPDX header for fs/nfsd/trace.c
| * a7b8e883ce NFSD: Remove extra "0x" in tracepoint format specifier
| * 9f8405182b NFSD: Clean up the show_nf_may macro
| * e513685101 nfsd/nfs3: remove unused macro nfsd3_fhandleres
| * 92f59545b9 NFSD: A semicolon is not needed after a switch statement.
| * a2f25c3208 NFSD: Invoke svc_encode_result_payload() in "read" NFSD encoders
| * 9aa0a43a55 SUNRPC: Rename svc_encode_read_payload()
* | 640645c85b Revert "drm/mipi-dsi: use correct return type for the DSC functions"
* | e4f3376872 Revert "media: cec: fix a deadlock situation"
* | 12d97237e4 Revert "media: cec: call enable_adap on s_log_addrs"
* | f257da513d Revert "media: cec: abort if the current transmit was canceled"
* | baa6c4164b Revert "media: cec: correctly pass on reply results"
* | 802e36bc55 Revert "media: cec: use call_op and check for !unregistered"
* | 590dc9d34f Revert "media: cec-adap.c: drop activate_cnt, use state info instead"
* | c0342019d8 Revert "media: cec: core: avoid confusing "transmit timed out" message"
* | 8047831dc6 Revert "media: cec: core: avoid recursive cec_claim_log_addrs"
* | 0546f6a05d Revert "media: cec: core: add adap_nb_transmit_canceled() callback"
* | 054258ff89 ANDROID: ABI fixup for abi break in struct dst_ops
* | fedef46c69 Merge 5.10.219 into android12-5.10-lts
|/
* a2ed160621 Linux 5.10.219
* 487489c4c8 RDMA/hns: Fix CQ and QP cache affinity
* 68a9559376 RDMA/hns: Use mutex instead of spinlock for ida allocation
* 5fe764c781 f2fs: compress: fix compression chksum
* d7ae4792b5 scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW major version > 5
* 6285d50a23 NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS
* 3e41609e62 nfs: fix undefined behavior in nfs_block_bits()
* 7360cef95a s390/ap: Fix crash in AP internal function modify_bitmap()
* 76dc776153 ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
* 08018302f2 sparc: move struct termio to asm/termios.h
* 2295a7ef5c net: fix __dst_negative_advice() race
* 51664ef6ac kdb: Use format-specifiers rather than memset() for padding in kdb_read()
* e3d11ff45f kdb: Merge identical case statements in kdb_read()
* 2b5e1534df kdb: Fix console handling when editing and tab-completing commands
* 7c19e28f3a kdb: Use format-strings rather than '\0' injection in kdb_read()
* cfdc2fa4db kdb: Fix buffer overflow during tab-complete
* b487b48efd watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin
* 161f5a1189 sparc64: Fix number of online CPUs
* 6e7dd338c0 intel_th: pci: Add Meteor Lake-S CPU support
* 1249478555 net/9p: fix uninit-value in p9_client_rpc()
* 3cc7687f7f net/ipv6: Fix route deleting failure when metric equals 0
* a718b6d2a3 crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
* 6815376b7f crypto: ecrdsa - Fix module auto-load on add_key
* 4d8226bc7e KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
* 32f92b0078 fbdev: savage: Handle err return when savagefb_check_var failed
* 68447c350f mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
* 63eda0f3eb mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
* b3418751cc mmc: sdhci-acpi: Sort DMI quirks alphabetically
* 24b7af86a8 mmc: core: Add mmc_gpiod_set_cd_config() function
* e6823bb7f4 media: v4l2-core: hold videodev_lock until dev reg, finishes
* 567d3a4959 media: mxl5xx: Move xpt structures off stack
* 1514e1fb2a media: mc: mark the media devnode as registered from the, start
* 82e6eba1a5 arm64: dts: hi3798cv200: fix the size of GICR
* c539721e90 wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path
* 6d5bfcd2cc wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE
* 8dffc574c7 wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
* aa64464c8f md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
* 1f26711c08 arm64: dts: qcom: qcs404: fix bluetooth device address
* 5cd0428356 arm64: tegra: Correct Tegra132 I2C alias
* e2c6a9b342 ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
* 73485d6bd9 ata: pata_legacy: make legacy_exit() work again
* 8112fa72b7 drm/amdgpu: add error handle to avoid out-of-bounds
* b479fd59a1 media: lgdt3306a: Add a check against null-pointer-def
* 75c87e2ac6 f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()
* cade34279c netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get()
* 9c1c2ea099 netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV
* a447f26830 x86/mm: Remove broken vsyscall emulation code from the page fault code
* 3ee36f0048 vxlan: Fix regression when dropping packets due to invalid src addresses
* 67fa90d4a2 nilfs2: fix use-after-free of timer for log writer thread
* e31fe702ed afs: Don't cross .backup mountpoint from backup volume
* b6920325ac io_uring: fail NOP if non-zero op flags is passed in
* 54e8f88d2b mmc: core: Do not force a retune before RPMB switch
* 75805481c3 binder: fix max_thread type inconsistency
* 4cefcd0af7 SUNRPC: Fix loop termination condition in gss_free_in_token_pages()
* 0cf6693d3f media: cec: core: add adap_nb_transmit_canceled() callback
* 6752dfcfff genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline
* bdd0aa055b ALSA: timer: Set lower bound of start tick time
* 1f4b848935 hwmon: (shtc1) Fix property misspelling
* 1abbf079da ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound
* 3c5caaef46 spi: stm32: Don't warn about spurious interrupts
* 19e5a3d771 kconfig: fix comparison to constant symbols, 'm', 'n'
* 07eeedafc5 netfilter: tproxy: bail out if IP has been disabled on the device
* ddd2912a94 net:fec: Add fec_enet_deinit()
* 29467edc23 bpf: Allow delete from sockmap/sockhash only if update is allowed
* 117cacd72c net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM
* 3c0d36972e enic: Validate length of nl attributes in enic_set_vf_port
* 540d73a5c0 bpf: Fix potential integer overflow in resolve_btfids
* ae6fc4e6a3 dma-buf/sw-sync: don't enable IRQ from sync_print_obj()
* 72c6038d23 net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion
* 82fdfbf242 nvmet: fix ns enable/disable possible hang
* 5f72ba46f1 spi: Don't mark message DMA mapped when no transfer in it is
* 7ca9cf24b0 netfilter: nft_payload: restore vlan q-in-q match support
* e01065b339 netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
* 0f26983c24 nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()
* 728fb8b3b5 nfc: nci: Fix kcov check in nci_rx_work()
* d72e126e9a tls: fix missing memory barrier in tls_init
* cb95173e6c net: fec: avoid lock evasion when reading pps_enable
* 7fbe54f02a virtio: delete vq in vp_find_vqs_msix() when request_irq() fails
* 461a760d57 arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY
* 8cae65ace4 openvswitch: Set the skbuff pkt_type for proper pmtud support.
* e9b2f60636 tcp: Fix shift-out-of-bounds in dctcp_update_alpha().
* 42bd4e491c params: lift param_set_uint_minmax to common code
* daf341e0a2 ipv6: sr: fix memleak in seg6_hmac_init_algo
* 1c65ebce7d rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL
* f2b326b774 sunrpc: fix NFSACL RPC retry on soft mount
* 6f39d5aae6 ASoC: tas2552: Add TX path for capturing AUDIO-OUT data
* f80b786ab0 nfc: nci: Fix uninit-value in nci_rx_work
* ee6a497844 x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
* 8fb8be0e3b regulator: bd71828: Don't overwrite runtime voltages
* a2b0c3a6d4 null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()
* 3166b2dffa media: cec: core: avoid confusing "transmit timed out" message
* 5103090f4e media: cec: core: avoid recursive cec_claim_log_addrs
* 3e938b7d40 media: cec-adap.c: drop activate_cnt, use state info instead
* 73ef9ae980 media: cec: use call_op and check for !unregistered
* 8fa7e4896f media: cec: correctly pass on reply results
* b64cb24a9e media: cec: abort if the current transmit was canceled
* 2c67f3634f media: cec: call enable_adap on s_log_addrs
* 0ab74ae99f media: cec: fix a deadlock situation
* ca55f013be media: core headers: fix kernel-doc warnings
* 9f6da5da3d media: cec: cec-api: add locking in cec_release()
* a0ca5ff242 media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
* 6be4923ade um: Fix the -Wmissing-prototypes warning for __switch_mm
* 12ea1ec137 powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp
* a2d61b328e media: flexcop-usb: fix sanity check of bNumEndpoints
* c11caf1339 media: flexcop-usb: clean up endpoint sanity checks
* ca17da9000 scsi: qla2xxx: Replace all non-returning strlcpy() with strscpy()
* a16775828a media: stk1160: fix bounds checking in stk1160_copy_video()
* f4b3d2585b drm/bridge: tc358775: fix support for jeida-18 and jeida-24
* 4d5ef7face um: vector: fix bpfflash parameter evaluation
* 351d1a6454 um: Add winch to winch_handlers before registering winch IRQ
* 1ef5d235be um: Fix return value in ubd_init()
* 96b9ed94dc drm/msm/dpu: Always flush the slave INTF on the CTL
* a3bb8070b7 Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation
* 580e47c282 mmc: sdhci_am654: Fix ITAPDLY for HS400 timing
* 2621bf50f5 mmc: sdhci_am654: Add ITAPDLYSEL in sdhci_j721e_4bit_set_clock
* b55d988df1 mmc: sdhci_am654: Add OTAP/ITAP delay enable
* 76f2b3ccbd mmc: sdhci_am654: Drop lookup for deprecated ti,otap-del-sel
* 8dcfbb27e4 mmc: sdhci_am654: Write ITAPDLY for DDR52 timing
* e7a444a35e mmc: sdhci_am654: Add tuning algorithm for delay chain
* 52f8d76769 Input: ioc3kbd - add device table
* 0096d223f7 Input: ioc3kbd - convert to platform remove callback returning void
* abeaeaee7f Input: ims-pcu - fix printf string overflow
* adc7dc29b7 s390/ipl: Fix incorrect initialization of nvme dump block
* 66a02effb8 s390/ipl: Fix incorrect initialization of len fields in nvme reipl block
* ec43f32f66 libsubcmd: Fix parse-options memory leak
* 158adcb7fd serial: sh-sci: protect invalidating RXDMA on shutdown
* b8962cf985 f2fs: compress: don't allow unaligned truncation on released compress inode
* c1958b978d f2fs: fix to release node block count in error path of f2fs_new_node_page()
* a6e1f7744e f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
* 4b6e5edefd PCI/EDR: Align EDR_PORT_LOCATE_DSM with PCI Firmware r3.3
* d2e2e90c76 PCI/EDR: Align EDR_PORT_DPC_ENABLE_DSM with PCI Firmware r3.3
* 9ca02da316 extcon: max8997: select IRQ_DOMAIN instead of depending on it
* d32caf5137 ppdev: Add an error check in register_device
* 9349e1f2c9 ppdev: Remove usage of the deprecated ida_simple_xx() API
* 713fc00c57 stm class: Fix a double free in stm_register_device()
* 7716b201d2 usb: gadget: u_audio: Clear uac pointer when freed.
* 23209f947d microblaze: Remove early printk call from cpuinfo-static.c
* 34ff72bb5d microblaze: Remove gcc flag for non existing early_printk.c file
* 26e6e25d74 fpga: region: add owner module and take its refcount
* af02dec83a fpga: region: Use standard dev_release for class driver
* b089bb733c docs: driver-api: fpga: avoid using UTF-8 chars
* 9fdd3d1cd0 fpga: region: Rename dev to parent for parent device
* 840c9c7d6a fpga: region: change FPGA indirect article to an
* be76107dc4 iio: pressure: dps310: support negative temperature values
* cdbe0477a0 f2fs: fix to check pinfile flag in f2fs_move_file_range()
* 2b16554fb2 f2fs: fix to relocate check condition in f2fs_fallocate()
* f1169d2b2a f2fs: fix typos in comments
* bdca4b6786 f2fs: do not allow partial truncation on pinned file
* d992b78026 f2fs: fix to force keeping write barrier for strict fsync mode
* eebbc4eb7e f2fs: add cp_error check in f2fs_write_compressed_pages
* 431ecafbff f2fs: compress: fix to relocate check condition in f2fs_{release,reserve}_compress_blocks()
* 8e1651cd66 f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit
* 486009bc2f f2fs: compress: remove unneeded preallocation
* df4978d968 f2fs: compress: clean up parameter of __f2fs_cluster_blocks()
* 5b09d2e790 f2fs: add compress_mode mount option
* 70fb69e05a f2fs: compress: support chksum
* 1ada965692 serial: sc16is7xx: add proper sched.h include for sched_set_fifo()
* 276bc8a7dc greybus: arche-ctrl: move device table to its right location
* d1f67d1d8c serial: max3100: Fix bitwise types
* e8e2a4339d serial: max3100: Update uart_driver_registered on driver removal
* cc121e3722 serial: max3100: Lock port->lock when calling uart_handle_cts_change()
* bc40d0e356 firmware: dmi-id: add a release callback function
* 83e078085f dmaengine: idma64: Add check for dma_set_max_seg_size
* fd4bcb991e soundwire: cadence: fix invalid PDI offset
* 7b98f1493a f2fs: fix to wait on page writeback in __clone_blkaddrs()
* eac10cf3a9 greybus: lights: check return of get_channel_from_mode
* ae20865fe6 sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level
* e892f9932d af_packet: do not call packet_read_pending() from tpacket_destruct_skb()
* b117e5b4f2 netrom: fix possible dead-lock in nr_rt_ioctl()
* cafccde429 net: qrtr: ns: Fix module refcnt
* 66fd37d0a8 net: qrtr: fix null-ptr-deref in qrtr_ns_remove
* 3e83903cd4 RDMA/IPoIB: Fix format truncation compilation errors
* 68e8c44c0d selftests/kcmp: remove unused open mode
* 08df7b006c selftests/kcmp: Make the test output consistent and clear
* f148a95f68 SUNRPC: Fix gss_free_in_token_pages()
* e28a16af4c ext4: fix potential unnitialized variable
* 4deaa4d5f8 ext4: remove unused parameter from ext4_mb_new_blocks_simple()
* fdbce45449 ext4: try all groups in ext4_mb_new_blocks_simple
* e498c2f441 ext4: fix unit mismatch in ext4_mb_new_blocks_simple
* f49c865d5b ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple
* 2a2bba3cbd sunrpc: removed redundant procp check
* 7c9ab0a449 ext4: avoid excessive credit estimate in ext4_tmpfile()
* 4d693ca24a x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map
* 9ff328de02 clk: qcom: mmcc-msm8998: fix venus clock issue
* 45b31be4dd RDMA/hns: Modify the print level of CQE error
* 9cce44567f RDMA/hns: Use complete parentheses in macros
* 9efed7448b RDMA/hns: Fix return value in hns_roce_map_mr_sg
* 4c91ad5ed5 RDMA/hns: Fix incorrect symbol types
* e612e695d3 RDMA/hns: Create QP with selected QPN for bank load balance
* 3c3744c309 RDMA/hns: Refactor the hns_roce_buf allocation flow
* eb9635b4a9 drm/mipi-dsi: use correct return type for the DSC functions
* 5d344b3089 drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
* f10aa595ee drm/bridge: tc358775: Don't log an error when DSI host can't be found
* ee751403fb drm/bridge: lt9611: Don't log an error when DSI host can't be found
* 3ce31a0e37 ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value
* 2d9adecc88 drm: vc4: Fix possible null pointer dereference
* a5fa5b40a2 drm/arm/malidp: fix a possible null pointer dereference
* 4b68b861b5 media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries
* 08ce354f3d fbdev: sh7760fb: allow modular build
* 85d1a27402 drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference
* 552280a992 media: radio-shark2: Avoid led_names truncations
* 409f20085d media: ngene: Add dvb_ca_en50221_init return value check
* bb3c425921 fbdev: sisfb: hide unused variables
* 94349e015c powerpc/fsl-soc: hide unused const variable
* d17b75ee9c drm/mediatek: Add 0 size check to mtk_drm_gem_obj
* 7441f9e056 drm/meson: vclk: fix calculation of 59.94 fractional rates
* 078e02dcb4 fbdev: shmobile: fix snprintf truncation
* d3727d6e2b mtd: rawnand: hynix: fixed typo
* 613a349cbf ASoC: Intel: Disable route checks for Skylake boards
* ece8098579 ASoC: soc-acpi: add helper to identify parent driver.
* 04bc4d1090 drm/amd/display: Fix potential index out of bounds in color transformation function
* f6fbb8535e net/mlx5: Discard command completions in internal error
* 00e6335329 ipv6: sr: fix invalid unregister error path
* d33327a7c0 ipv6: sr: fix incorrect unregister order
* 1ba1b4cc3a ipv6: sr: add missing seg6_local_exit
* 5ab6aecbed net: openvswitch: fix overwriting ct original tuple for ICMPv6
* c3dc80f633 net: usb: smsc95xx: stop lying about skb->truesize
* 4d51845d73 af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg
* 161e43067b net: ethernet: cortina: Locking fixes
* e22b23f588 eth: sungem: remove .ndo_poll_controller to avoid deadlocks
* ad31e0e765 net: ipv6: fix wrong start position when receive hop-by-hop fragment
* 3eccf76b57 m68k: mac: Fix reboot hang on Mac IIci
* 4eeffecc8e m68k: Fix spinlock race in kernel thread creation
* d50b11c21f net: usb: sr9700: stop lying about skb->truesize
* 2093cc6e87 usb: aqc111: stop lying about skb->truesize
* 4cff6817ee wifi: mwl8k: initialize cmd->addr[] properly
* 769b9fd2af scsi: qedf: Ensure the copied buf is NUL terminated
* 00b425ff08 scsi: bfa: Ensure the copied buf is NUL terminated
* 2321281f19 HID: intel-ish-hid: ipc: Add check for pci_alloc_irq_vectors
* 2bd97a0868 selftests/binderfs: use the Makefile's rules, not Make's implicit rules
* 019ae041a5 Revert "sh: Handle calling csum_partial with misaligned data"
* 3557a7fc5c sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()
* ee25389df8 wifi: ar5523: enable proper endpoint verification
* 8650725bb0 wifi: carl9170: add a proper sanity check for endpoints
* 280619bbde macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
* 9d13202922 net: give more chances to rcu in netdev_wait_allrefs_any()
* bc7cae63fa tcp: avoid premature drops in tcp_add_backlog()
* 88aa40df8e wifi: ath10k: populate board data for WCN3990
* 5c4756e0fb wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()
* 1b27468dbe x86/purgatory: Switch to the position-independent small code model
* 176fb7770d scsi: hpsa: Fix allocation size for Scsi_Host private data
* 0dc60ee1ed scsi: libsas: Fix the failure of adding phy with zero-address to port
* 69fab9d2e2 udp: Avoid call to compute_score on multiple sites
* 452f8dc251 net: remove duplicate reuseport_lookup functions
* 0ce990e6ef net: export inet_lookup_reuseport and inet6_lookup_reuseport
* dfc56ff5ec cpufreq: exit() callback is optional
* 92aca16797 cpufreq: Rearrange locking in cpufreq_remove_dev()
* 19b06dec36 cpufreq: Split cpufreq_offline()
* 3a28fbf533 cpufreq: Reorganize checks in cpufreq_offline()
* 7a4d18a27d selftests/bpf: Fix umount cgroup2 error in test_sockmap
* dd52e3bc4f gfs2: Fix "ignore unlock failures after withdraw"
* 11f9bd1102 ACPI: disable -Wstringop-truncation
* a8f0a14c3b irqchip/loongson-pch-msi: Fix off-by-one on allocation error path
* f31b49ba36 irqchip/alpine-msi: Fix off-by-one in allocation error path
* bb291d4d08 scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL
* 3bbfbd5a36 scsi: ufs: core: Perform read back after disabling interrupts
* bbc00d1b7a scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV
* dca9754276 scsi: ufs: qcom: Perform read back after writing CGC enable
* c8f2eefc49 scsi: ufs: qcom: Perform read back after writing unipro mode
* 506f63e97d scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5
* ee4bf03d26 scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0
* d113c66bb4 scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US
* 82783759e8 scsi: ufs-qcom: Fix ufs RST_n spec violation
* d193f4a153 scsi: ufs: qcom: Perform read back after writing reset bit
* 742f580670 qed: avoid truncating work queue length
* 01ea6818fa x86/boot: Ignore relocations in .notes sections in walk_relocs() too
* 5fb37c456d wifi: ath10k: poll service ready message before failing
* 3f5b73ef8f md: fix resync softlockup when bitmap size is less than array size
* c62f315238 null_blk: Fix missing mutex_destroy() at module removal
* b2f8354f73 soc: mediatek: cmdq: Fix typo of CMDQ_JUMP_RELATIVE
* f0eea095ce jffs2: prevent xattr node from overflowing the eraseblock
* de1207e5fd s390/cio: fix tracepoint subchannel type field
* 9f6dbd0aa1 crypto: x86/sha256-avx2 - add missing vzeroupper
* 0ceb0a40c5 crypto: x86/nh-avx2 - add missing vzeroupper
* 6cd2cbd553 crypto: ccp - drop platform ifdef checks
* f24cac6459 parisc: add missing export of __cmpxchg_u8()
* dae53e39cd nilfs2: fix out-of-range warning
* edbfc42ab0 ecryptfs: Fix buffer size for tag 66 packet
* e05ee61361 firmware: raspberrypi: Use correct device for DMA mappings
* ebed0d666f crypto: bcm - Fix pointer arithmetic
* a81f072e50 openpromfs: finish conversion to the new mount API
* 904a590dab nvme: find numa distance only if controller has valid numa id
* 5b4d14a0bc drm/amdkfd: Flush the process wq before creating a kfd_process
* eb464a8d82 ASoC: da7219-aad: fix usage of device_get_named_child_node()
* 43ff957b96 ASoC: rt715: add vendor clear control register
* 0c71bfad14 regulator: vqmmc-ipq4019: fix module autoloading
* fcc54151a9 ASoC: dt-bindings: rt5645: add cbj sleeve gpio property
* 6cd625926e ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating
* c9c742eaa5 drm/amd/display: Set color_mgmt_changed to true on unsuspend
* c393ce8157 net: usb: qmi_wwan: add Telit FN920C04 compositions
* c7d22022ec wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class
* d7ff29a429 ALSA: core: Fix NULL module pointer assignment at card init
* eff7cdf890 nilfs2: fix potential hang in nilfs_detach_log_writer()
* 89e07418a6 nilfs2: fix unexpected freezing of nilfs_segctor_sync()
* 0d0ecd841f net: smc91x: Fix m68k kernel compilation for ColdFire CPU
* 1e16019604 ring-buffer: Fix a race between readers and resize checks
* 07ef95cc7a speakup: Fix sizeof() vs ARRAY_SIZE() bug
* 0fb736c993 tty: n_gsm: fix possible out-of-bounds in gsm0_receive()
* 03a7939453 x86/tsc: Trust initial offset in architectural TSC-adjust MSRs

Change-Id: I1e3b04e5bcd7844daa82bc19f6db4faa4c8f9f7d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-08-27 10:37:57 +00:00
Tze-nan Wu
eb223bf01e tracing: Fix overflow in get_free_elt()
commit bcf86c01ca4676316557dd482c8416ece8c2e143 upstream.

"tracing_map->next_elt" in get_free_elt() is at risk of overflowing.

Once it overflows, new elements can still be inserted into the tracing_map
even though the maximum number of elements (`max_elts`) has been reached.
Continuing to insert elements after the overflow could result in the
tracing_map containing "tracing_map->max_size" elements, leaving no empty
entries.
If any attempt is made to insert an element into a full tracing_map using
`__tracing_map_insert()`, it will cause an infinite loop with preemption
disabled, leading to a CPU hang problem.

Fix this by preventing any further increments to "tracing_map->next_elt"
once it reaches "tracing_map->max_elt".

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Fixes: 08d43a5fa0 ("tracing: Add lock-free tracing_map")
Co-developed-by: Cheng-Jui Wang <cheng-jui.wang@mediatek.com>
Link: https://lore.kernel.org/20240805055922.6277-1-Tze-nan.Wu@mediatek.com
Signed-off-by: Cheng-Jui Wang <cheng-jui.wang@mediatek.com>
Signed-off-by: Tze-nan Wu <Tze-nan.Wu@mediatek.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-08-19 05:41:20 +02:00
Greg Kroah-Hartman
7541015675 ANDROID: GKI: remove export of tracing control functions
Android GKI kernel modules should NOT have the ability to control the
system-wide tracing functionality, nor query to determine if it is on or
not.  So remove the exports of these functions.

Upstream does not wish to do this, so an Android-only change is
required.  See the bug id for details.

Bug: 355584612
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I50f69cd9930ddc6b876c5c1dd86f51cfb2ee1bac
2024-07-26 08:54:19 +00:00
Greg Kroah-Hartman
2ebd481b31 Merge 5.10.221 into android12-5.10-lts
Changes in 5.10.221
	tracing/selftests: Fix kprobe event name test for .isra. functions
	null_blk: Print correct max open zones limit in null_init_zoned_dev()
	wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects
	wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()
	wifi: cfg80211: pmsr: use correct nla_get_uX functions
	wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64
	wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef
	wifi: iwlwifi: mvm: check n_ssids before accessing the ssids
	wifi: iwlwifi: mvm: don't read past the mfuart notifcation
	wifi: mac80211: correctly parse Spatial Reuse Parameter Set element
	net/ncsi: add NCSI Intel OEM command to keep PHY up
	net/ncsi: Simplify Kconfig/dts control flow
	net/ncsi: Fix the multi thread manner of NCSI driver
	ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
	net: sched: sch_multiq: fix possible OOB write in multiq_tune()
	vxlan: Fix regression when dropping packets due to invalid src addresses
	tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB
	net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
	ptp: Fix error message on failed pin verification
	af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
	af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
	af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
	af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
	af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
	af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
	af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
	af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
	ipv6: fix possible race in __fib6_drop_pcpu_from()
	usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete
	drm/amd/display: Handle Y carry-over in VCP X.Y calculation
	serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
	serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler
	mmc: davinci: Don't strip remove function when driver is builtin
	selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
	selftests/mm: conform test to TAP format output
	selftests/mm: compaction_test: fix bogus test success on Aarch64
	btrfs: fix leak of qgroup extent records after transaction abort
	nilfs2: Remove check for PageError
	nilfs2: return the mapped address from nilfs_get_page()
	nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
	USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages
	mei: me: release irq in mei_me_pci_resume error path
	jfs: xattr: fix buffer overflow for invalid xattr
	xhci: Set correct transferred length for cancelled bulk transfers
	xhci: Apply reset resume quirk to Etron EJ188 xHCI host
	xhci: Apply broken streams quirk to Etron EJ188 xHCI host
	scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
	powerpc/uaccess: Fix build errors seen with GCC 13/14
	Input: try trimming too long modalias strings
	SUNRPC: return proper error from gss_wrap_req_priv
	gpio: tqmx86: fix typo in Kconfig label
	HID: core: remove unnecessary WARN_ON() in implement()
	gpio: tqmx86: store IRQ trigger type and unmask status separately
	iommu/amd: Introduce pci segment structure
	iommu/amd: Fix sysfs leak in iommu init
	iommu: Return right value in iommu_sva_bind_device()
	HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()
	drm/vmwgfx: 3D disabled should not effect STDU memory limits
	net: sfp: Always call `sfp_sm_mod_remove()` on remove
	net: hns3: add cond_resched() to hns3 ring buffer init process
	liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
	drm/komeda: check for error-valued pointer
	drm/bridge/panel: Fix runtime warning on panel bridge release
	tcp: fix race in tcp_v6_syn_recv_sock()
	net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets
	Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ
	netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
	net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters
	net/ipv6: Fix the RT cache flush via sysctl using a previous delay
	ionic: fix use after netif_napi_del()
	iio: adc: ad9467: fix scan type sign
	iio: dac: ad5592r: fix temperature channel scaling value
	iio: imu: inv_icm42600: delete unneeded update watermark call
	drivers: core: synchronize really_probe() and dev_uevent()
	drm/exynos/vidi: fix memory leak in .get_modes()
	drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found
	vmci: prevent speculation leaks by sanitizing event in event_deliver()
	fs/proc: fix softlockup in __read_vmcore
	ocfs2: use coarse time for new created files
	ocfs2: fix races between hole punching and AIO+DIO
	PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id
	dmaengine: axi-dmac: fix possible race in remove()
	remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs
	intel_th: pci: Add Granite Rapids support
	intel_th: pci: Add Granite Rapids SOC support
	intel_th: pci: Add Sapphire Rapids SOC support
	intel_th: pci: Add Meteor Lake-S support
	intel_th: pci: Add Lunar Lake support
	nilfs2: fix potential kernel bug due to lack of writeback flag waiting
	tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
	serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level
	hugetlb_encode.h: fix undefined behaviour (34 << 26)
	mptcp: ensure snd_una is properly initialized on connect
	mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
	mptcp: pm: update add_addr counters after connect
	remoteproc: k3-r5: Jump to error handling labels in start/stop errors
	greybus: Fix use-after-free bug in gb_interface_release due to race condition.
	usb-storage: alauda: Check whether the media is initialized
	i2c: at91: Fix the functionality flags of the slave-only interface
	i2c: designware: Fix the functionality flags of the slave-only interface
	zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING
	padata: Disable BH when taking works lock on MT path
	rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment
	rcutorture: Fix invalid context warning when enable srcu barrier testing
	block/ioctl: prefer different overflow check
	selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh
	selftests/bpf: Fix flaky test btf_map_in_map/lookup_update
	batman-adv: bypass empty buckets in batadv_purge_orig_ref()
	wifi: ath9k: work around memset overflow warning
	af_packet: avoid a false positive warning in packet_setsockopt()
	drop_monitor: replace spin_lock by raw_spin_lock
	scsi: qedi: Fix crash while reading debugfs attribute
	kselftest: arm64: Add a null pointer check
	netpoll: Fix race condition in netpoll_owner_active
	HID: Add quirk for Logitech Casa touchpad
	ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7
	Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl
	drm/amd/display: Exit idle optimizations before HDCP execution
	ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14
	drm/lima: add mask irq callback to gp and pp
	drm/lima: mask irqs in timeout path before hard reset
	powerpc/pseries: Enforce hcall result buffer validity and size
	powerpc/io: Avoid clang null pointer arithmetic warnings
	power: supply: cros_usbpd: provide ID table for avoiding fallback match
	iommu/arm-smmu-v3: Free MSIs in case of ENOMEM
	f2fs: remove clear SB_INLINECRYPT flag in default_options
	usb: misc: uss720: check for incompatible versions of the Belkin F5U002
	udf: udftime: prevent overflow in udf_disk_stamp_to_time()
	PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
	MIPS: Octeon: Add PCIe link status check
	serial: exar: adding missing CTI and Exar PCI ids
	MIPS: Routerboard 532: Fix vendor retry check code
	mips: bmips: BCM6358: make sure CBR is correctly set
	tracing: Build event generation tests only as modules
	cipso: fix total option length computation
	netrom: Fix a memory leak in nr_heartbeat_expiry()
	ipv6: prevent possible NULL deref in fib6_nh_init()
	ipv6: prevent possible NULL dereference in rt6_probe()
	xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
	netns: Make get_net_ns() handle zero refcount net
	qca_spi: Make interrupt remembering atomic
	net/sched: act_api: rely on rcu in tcf_idr_check_alloc
	net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()
	tipc: force a dst refcount before doing decryption
	net/sched: act_ct: set 'net' pointer when creating new nf_flow_table
	sched: act_ct: add netns into the key of tcf_ct_flow_table
	net: stmmac: No need to calculate speed divider when offload is disabled
	virtio_net: checksum offloading handling fix
	netfilter: ipset: Fix suspicious rcu_dereference_protected()
	net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
	regulator: core: Fix modpost error "regulator_get_regmap" undefined
	dmaengine: ioat: switch from 'pci_' to 'dma_' API
	dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
	dmaengine: ioatdma: Fix leaking on version mismatch
	dmaengine: ioat: use PCI core macros for PCIe Capability
	dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
	dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
	dmaengine: ioatdma: Fix missing kmem_cache_destroy()
	ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."
	RDMA/mlx5: Add check for srq max_sge attribute
	ALSA: hda/realtek: Limit mic boost on N14AP7
	drm/radeon: fix UBSAN warning in kv_dpm.c
	gcov: add support for GCC 14
	kcov: don't lose track of remote references during softirqs
	i2c: ocores: set IACK bit after core is enabled
	dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
	drm/amd/display: revert Exit idle optimizations before HDCP execution
	ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
	ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
	ARM: dts: samsung: smdk4412: fix keypad no-autorepeat
	rtlwifi: rtl8192de: Style clean-ups
	wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power
	pmdomain: ti-sci: Fix duplicate PD referrals
	knfsd: LOOKUP can return an illegal error value
	spmi: hisi-spmi-controller: Do not override device identifier
	bcache: fix variable length array abuse in btree_iter
	tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test
	x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
	x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL
	r8169: remove unneeded memory barrier in rtl_tx
	r8169: improve rtl_tx
	r8169: improve rtl8169_start_xmit
	r8169: remove nr_frags argument from rtl_tx_slots_avail
	r8169: remove not needed check in rtl8169_start_xmit
	r8169: Fix possible ring buffer corruption on fragmented Tx packets.
	Revert "kheaders: substituting --sort in archive creation"
	kheaders: explicitly define file modes for archived headers
	perf/core: Fix missing wakeup when waiting for context reference
	PCI: Add PCI_ERROR_RESPONSE and related definitions
	x86/amd_nb: Check for invalid SMN reads
	cifs: missed ref-counting smb session in find
	smb: client: fix deadlock in smb2_find_smb_tcon()
	ACPI: Add quirks for AMD Renoir/Lucienne CPUs to force the D3 hint
	ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable
	ACPI: x86: Add another system to quirk list for forcing StorageD3Enable
	ACPI: x86: utils: Add Cezanne to the list for forcing StorageD3Enable
	ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
	ACPI: x86: Force StorageD3Enable on more products
	Input: ili210x - fix ili251x_read_touch_data() return value
	pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER
	pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
	pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
	pinctrl/rockchip: separate struct rockchip_pin_bank to a head file
	pinctrl: rockchip: use dedicated pinctrl type for RK3328
	pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set
	drm/amdgpu: fix UBSAN warning in kv_dpm.c
	netfilter: nf_tables: validate family when identifying table via handle
	SUNRPC: Fix null pointer dereference in svc_rqst_free()
	SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
	SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation
	SUNRPC: Fix svcxdr_init_encode's buflen calculation
	nfsd: hold a lighter-weight client reference over CB_RECALL_ANY
	ASoC: fsl-asoc-card: set priv->pdev before using it
	net: dsa: microchip: fix initial port flush problem
	net: phy: micrel: add Microchip KSZ 9477 to the device table
	xdp: Move the rxq_info.mem clearing to unreg_mem_model()
	xdp: Allow registering memory model without rxq reference
	xdp: Remove WARN() from __xdp_reg_mem_model()
	sparc: fix old compat_sys_select()
	sparc: fix compat recv/recvfrom syscalls
	parisc: use correct compat recv/recvfrom syscalls
	netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers
	drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep
	mtd: partitions: redboot: Added conversion of operands to a larger type
	bpf: Add a check for struct bpf_fib_lookup size
	net/iucv: Avoid explicit cpumask var allocation on stack
	net/dpaa2: Avoid explicit cpumask var allocation on stack
	ALSA: emux: improve patch ioctl data validation
	media: dvbdev: Initialize sbuf
	soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message
	drm/radeon/radeon_display: Decrease the size of allocated memory
	nvme: fixup comment for nvme RDMA Provider Type
	drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA
	gpio: davinci: Validate the obtained number of IRQs
	gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
	x86: stop playing stack games in profile_pc()
	ocfs2: fix DIO failure due to insufficient transaction credits
	mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos
	mmc: sdhci: Do not invert write-protect twice
	mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()
	counter: ti-eqep: enable clock at probe
	iio: adc: ad7266: Fix variable checking bug
	iio: chemical: bme680: Fix pressure value output
	iio: chemical: bme680: Fix calibration data variable
	iio: chemical: bme680: Fix overflows in compensate() functions
	iio: chemical: bme680: Fix sensor data read operation
	net: usb: ax88179_178a: improve link status logs
	usb: gadget: printer: SS+ support
	usb: gadget: printer: fix races against disable
	usb: musb: da8xx: fix a resource leak in probe()
	usb: atm: cxacru: fix endpoint checking in cxacru_bind()
	serial: 8250_omap: Implementation of Errata i2310
	tty: mcf: MCF54418 has 10 UARTS
	net: can: j1939: Initialize unused data in j1939_send_one()
	net: can: j1939: recover socket queue on CAN bus error during BAM transmission
	net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new
	kbuild: Install dtb files as 0644 in Makefile.dtbinst
	csky, hexagon: fix broken sys_sync_file_range
	hexagon: fix fadvise64_64 calling conventions
	drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
	drm/i915/gt: Fix potential UAF by revoke of fence registers
	drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes
	batman-adv: Don't accept TT entries for out-of-spec VIDs
	ata: ahci: Clean up sysfs file on error
	ata: libata-core: Fix double free on error
	ftruncate: pass a signed offset
	syscalls: fix compat_sys_io_pgetevents_time64 usage
	mtd: spinand: macronix: Add support for serial NAND flash
	pwm: stm32: Refuse too small period requests
	nfs: Leave pages in the pagecache if readpage failed
	ipv6: annotate some data-races around sk->sk_prot
	ipv6: Fix data races around sk->sk_prot.
	tcp: Fix data races around icsk->icsk_af_ops.
	drivers: fix typo in firmware/efi/memmap.c
	efi: Correct comment on efi_memmap_alloc
	efi: memmap: Move manipulation routines into x86 arch tree
	efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
	efi/x86: Free EFI memory map only when installing a new one.
	KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption
	ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node
	arm64: dts: rockchip: Add sound-dai-cells for RK3368
	xdp: xdp_mem_allocator can be NULL in trace_mem_connect().
	serial: 8250_omap: Fix Errata i2310 with RX FIFO level check
	tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()
	Linux 5.10.221

Change-Id: Icac1c62fcbda5102be7ea031121f28d6fee36875
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-07-17 09:08:09 +00:00
Greg Kroah-Hartman
88eb084d18 Revert "Merge 5.10.220 into android12-5.10-lts"
This reverts commit 87a7f35a24, reversing
changes made to 640645c85b.

5.10.220 is a bunch of vfs and nfs changes that are not needed in
Android systems, so revert the whole lot all at once, except for the
version number bump.

Change-Id: If28dc2231f27d326d3730716f23545dd0a2cdc75
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-07-16 16:33:14 +00:00
Greg Kroah-Hartman
87a7f35a24 Merge 5.10.220 into android12-5.10-lts
Changes in 5.10.220
	SUNRPC: Rename svc_encode_read_payload()
	NFSD: Invoke svc_encode_result_payload() in "read" NFSD encoders
	NFSD: A semicolon is not needed after a switch statement.
	nfsd/nfs3: remove unused macro nfsd3_fhandleres
	NFSD: Clean up the show_nf_may macro
	NFSD: Remove extra "0x" in tracepoint format specifier
	NFSD: Add SPDX header for fs/nfsd/trace.c
	nfsd: Fix error return code in nfsd_file_cache_init()
	SUNRPC: Add xdr_set_scratch_page() and xdr_reset_scratch_buffer()
	SUNRPC: Prepare for xdr_stream-style decoding on the server-side
	NFSD: Add common helpers to decode void args and encode void results
	NFSD: Add tracepoints in nfsd_dispatch()
	NFSD: Add tracepoints in nfsd4_decode/encode_compound()
	NFSD: Replace the internals of the READ_BUF() macro
	NFSD: Replace READ* macros in nfsd4_decode_access()
	NFSD: Replace READ* macros in nfsd4_decode_close()
	NFSD: Replace READ* macros in nfsd4_decode_commit()
	NFSD: Change the way the expected length of a fattr4 is checked
	NFSD: Replace READ* macros that decode the fattr4 size attribute
	NFSD: Replace READ* macros that decode the fattr4 acl attribute
	NFSD: Replace READ* macros that decode the fattr4 mode attribute
	NFSD: Replace READ* macros that decode the fattr4 owner attribute
	NFSD: Replace READ* macros that decode the fattr4 owner_group attribute
	NFSD: Replace READ* macros that decode the fattr4 time_set attributes
	NFSD: Replace READ* macros that decode the fattr4 security label attribute
	NFSD: Replace READ* macros that decode the fattr4 umask attribute
	NFSD: Replace READ* macros in nfsd4_decode_fattr()
	NFSD: Replace READ* macros in nfsd4_decode_create()
	NFSD: Replace READ* macros in nfsd4_decode_delegreturn()
	NFSD: Replace READ* macros in nfsd4_decode_getattr()
	NFSD: Replace READ* macros in nfsd4_decode_link()
	NFSD: Relocate nfsd4_decode_opaque()
	NFSD: Add helpers to decode a clientid4 and an NFSv4 state owner
	NFSD: Add helper for decoding locker4
	NFSD: Replace READ* macros in nfsd4_decode_lock()
	NFSD: Replace READ* macros in nfsd4_decode_lockt()
	NFSD: Replace READ* macros in nfsd4_decode_locku()
	NFSD: Replace READ* macros in nfsd4_decode_lookup()
	NFSD: Add helper to decode NFSv4 verifiers
	NFSD: Add helper to decode OPEN's createhow4 argument
	NFSD: Add helper to decode OPEN's openflag4 argument
	NFSD: Replace READ* macros in nfsd4_decode_share_access()
	NFSD: Replace READ* macros in nfsd4_decode_share_deny()
	NFSD: Add helper to decode OPEN's open_claim4 argument
	NFSD: Replace READ* macros in nfsd4_decode_open()
	NFSD: Replace READ* macros in nfsd4_decode_open_confirm()
	NFSD: Replace READ* macros in nfsd4_decode_open_downgrade()
	NFSD: Replace READ* macros in nfsd4_decode_putfh()
	NFSD: Replace READ* macros in nfsd4_decode_read()
	NFSD: Replace READ* macros in nfsd4_decode_readdir()
	NFSD: Replace READ* macros in nfsd4_decode_remove()
	NFSD: Replace READ* macros in nfsd4_decode_rename()
	NFSD: Replace READ* macros in nfsd4_decode_renew()
	NFSD: Replace READ* macros in nfsd4_decode_secinfo()
	NFSD: Replace READ* macros in nfsd4_decode_setattr()
	NFSD: Replace READ* macros in nfsd4_decode_setclientid()
	NFSD: Replace READ* macros in nfsd4_decode_setclientid_confirm()
	NFSD: Replace READ* macros in nfsd4_decode_verify()
	NFSD: Replace READ* macros in nfsd4_decode_write()
	NFSD: Replace READ* macros in nfsd4_decode_release_lockowner()
	NFSD: Replace READ* macros in nfsd4_decode_cb_sec()
	NFSD: Replace READ* macros in nfsd4_decode_backchannel_ctl()
	NFSD: Replace READ* macros in nfsd4_decode_bind_conn_to_session()
	NFSD: Add a separate decoder to handle state_protect_ops
	NFSD: Add a separate decoder for ssv_sp_parms
	NFSD: Add a helper to decode state_protect4_a
	NFSD: Add a helper to decode nfs_impl_id4
	NFSD: Add a helper to decode channel_attrs4
	NFSD: Replace READ* macros in nfsd4_decode_create_session()
	NFSD: Replace READ* macros in nfsd4_decode_destroy_session()
	NFSD: Replace READ* macros in nfsd4_decode_free_stateid()
	NFSD: Replace READ* macros in nfsd4_decode_getdeviceinfo()
	NFSD: Replace READ* macros in nfsd4_decode_layoutcommit()
	NFSD: Replace READ* macros in nfsd4_decode_layoutget()
	NFSD: Replace READ* macros in nfsd4_decode_layoutreturn()
	NFSD: Replace READ* macros in nfsd4_decode_secinfo_no_name()
	NFSD: Replace READ* macros in nfsd4_decode_sequence()
	NFSD: Replace READ* macros in nfsd4_decode_test_stateid()
	NFSD: Replace READ* macros in nfsd4_decode_destroy_clientid()
	NFSD: Replace READ* macros in nfsd4_decode_reclaim_complete()
	NFSD: Replace READ* macros in nfsd4_decode_fallocate()
	NFSD: Replace READ* macros in nfsd4_decode_nl4_server()
	NFSD: Replace READ* macros in nfsd4_decode_copy()
	NFSD: Replace READ* macros in nfsd4_decode_copy_notify()
	NFSD: Replace READ* macros in nfsd4_decode_offload_status()
	NFSD: Replace READ* macros in nfsd4_decode_seek()
	NFSD: Replace READ* macros in nfsd4_decode_clone()
	NFSD: Replace READ* macros in nfsd4_decode_xattr_name()
	NFSD: Replace READ* macros in nfsd4_decode_setxattr()
	NFSD: Replace READ* macros in nfsd4_decode_listxattrs()
	NFSD: Make nfsd4_ops::opnum a u32
	NFSD: Replace READ* macros in nfsd4_decode_compound()
	NFSD: Remove macros that are no longer used
	nfsd: only call inode_query_iversion in the I_VERSION case
	nfsd: simplify nfsd4_change_info
	nfsd: minor nfsd4_change_attribute cleanup
	nfsd4: don't query change attribute in v2/v3 case
	Revert "nfsd4: support change_attr_type attribute"
	nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations
	nfsd: allow filesystems to opt out of subtree checking
	nfsd: close cached files prior to a REMOVE or RENAME that would replace target
	exportfs: Add a function to return the raw output from fh_to_dentry()
	nfsd: Fix up nfsd to ensure that timeout errors don't result in ESTALE
	nfsd: Set PF_LOCAL_THROTTLE on local filesystems only
	nfsd: Record NFSv4 pre/post-op attributes as non-atomic
	exec: Don't open code get_close_on_exec
	exec: Move unshare_files to fix posix file locking during exec
	exec: Simplify unshare_files
	exec: Remove reset_files_struct
	kcmp: In kcmp_epoll_target use fget_task
	bpf: In bpf_task_fd_query use fget_task
	proc/fd: In proc_fd_link use fget_task
	Revert "fget: clarify and improve __fget_files() implementation"
	file: Rename __fcheck_files to files_lookup_fd_raw
	file: Factor files_lookup_fd_locked out of fcheck_files
	file: Replace fcheck_files with files_lookup_fd_rcu
	file: Rename fcheck lookup_fd_rcu
	file: Implement task_lookup_fd_rcu
	proc/fd: In tid_fd_mode use task_lookup_fd_rcu
	kcmp: In get_file_raw_ptr use task_lookup_fd_rcu
	file: Implement task_lookup_next_fd_rcu
	proc/fd: In proc_readfd_common use task_lookup_next_fd_rcu
	proc/fd: In fdinfo seq_show don't use get_files_struct
	file: Merge __fd_install into fd_install
	file: In f_dupfd read RLIMIT_NOFILE once.
	file: Merge __alloc_fd into alloc_fd
	file: Rename __close_fd to close_fd and remove the files parameter
	file: Replace ksys_close with close_fd
	inotify: Increase default inotify.max_user_watches limit to 1048576
	fs/lockd: convert comma to semicolon
	NFSD: Fix sparse warning in nfssvc.c
	NFSD: Restore NFSv4 decoding's SAVEMEM functionality
	SUNRPC: Make trace_svc_process() display the RPC procedure symbolically
	SUNRPC: Display RPC procedure names instead of proc numbers
	SUNRPC: Move definition of XDR_UNIT
	NFSD: Update GETATTR3args decoder to use struct xdr_stream
	NFSD: Update ACCESS3arg decoder to use struct xdr_stream
	NFSD: Update READ3arg decoder to use struct xdr_stream
	NFSD: Update WRITE3arg decoder to use struct xdr_stream
	NFSD: Update READLINK3arg decoder to use struct xdr_stream
	NFSD: Fix returned READDIR offset cookie
	NFSD: Add helper to set up the pages where the dirlist is encoded
	NFSD: Update READDIR3args decoders to use struct xdr_stream
	NFSD: Update COMMIT3arg decoder to use struct xdr_stream
	NFSD: Update the NFSv3 DIROPargs decoder to use struct xdr_stream
	NFSD: Update the RENAME3args decoder to use struct xdr_stream
	NFSD: Update the LINK3args decoder to use struct xdr_stream
	NFSD: Update the SETATTR3args decoder to use struct xdr_stream
	NFSD: Update the CREATE3args decoder to use struct xdr_stream
	NFSD: Update the MKDIR3args decoder to use struct xdr_stream
	NFSD: Update the SYMLINK3args decoder to use struct xdr_stream
	NFSD: Update the MKNOD3args decoder to use struct xdr_stream
	NFSD: Update the NFSv2 GETATTR argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 READ argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 WRITE argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 READLINK argument decoder to use struct xdr_stream
	NFSD: Add helper to set up the pages where the dirlist is encoded
	NFSD: Update the NFSv2 READDIR argument decoder to use struct xdr_stream
	NFSD: Update NFSv2 diropargs decoding to use struct xdr_stream
	NFSD: Update the NFSv2 RENAME argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 LINK argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 SETATTR argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 CREATE argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 SYMLINK argument decoder to use struct xdr_stream
	NFSD: Remove argument length checking in nfsd_dispatch()
	NFSD: Update the NFSv2 GETACL argument decoder to use struct xdr_stream
	NFSD: Add an xdr_stream-based decoder for NFSv2/3 ACLs
	NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 ACL GETATTR argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 ACL ACCESS argument decoder to use struct xdr_stream
	NFSD: Clean up after updating NFSv2 ACL decoders
	NFSD: Update the NFSv3 GETACL argument decoder to use struct xdr_stream
	NFSD: Update the NFSv2 SETACL argument decoder to use struct xdr_stream
	NFSD: Clean up after updating NFSv3 ACL decoders
	nfsd: remove unused stats counters
	nfsd: protect concurrent access to nfsd stats counters
	nfsd: report per-export stats
	nfsd4: simplify process_lookup1
	nfsd: simplify process_lock
	nfsd: simplify nfsd_renew
	nfsd: rename lookup_clientid->set_client
	nfsd: refactor set_client
	nfsd: find_cpntf_state cleanup
	nfsd: remove unused set_client argument
	nfsd: simplify nfsd4_check_open_reclaim
	nfsd: cstate->session->se_client -> cstate->clp
	NFSv4_2: SSC helper should use its own config.
	nfs: use change attribute for NFS re-exports
	nfsd: skip some unnecessary stats in the v4 case
	inotify, memcg: account inotify instances to kmemcg
	module: unexport find_module and module_mutex
	module: use RCU to synchronize find_module
	kallsyms: refactor {,module_}kallsyms_on_each_symbol
	kallsyms: only build {,module_}kallsyms_on_each_symbol when required
	fs: add file and path permissions helpers
	namei: introduce struct renamedata
	NFSD: Extract the svcxdr_init_encode() helper
	NFSD: Update the GETATTR3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 ACCESS3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 LOOKUP3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 wccstat result encoder to use struct xdr_stream
	NFSD: Update the NFSv3 READLINK3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 READ3res encode to use struct xdr_stream
	NFSD: Update the NFSv3 WRITE3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 CREATE family of encoders to use struct xdr_stream
	NFSD: Update the NFSv3 RENAMEv3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 LINK3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 FSSTAT3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 FSINFO3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 PATHCONF3res encoder to use struct xdr_stream
	NFSD: Update the NFSv3 COMMIT3res encoder to use struct xdr_stream
	NFSD: Add a helper that encodes NFSv3 directory offset cookies
	NFSD: Count bytes instead of pages in the NFSv3 READDIR encoder
	NFSD: Update the NFSv3 READDIR3res encoder to use struct xdr_stream
	NFSD: Update NFSv3 READDIR entry encoders to use struct xdr_stream
	NFSD: Remove unused NFSv3 directory entry encoders
	NFSD: Reduce svc_rqst::rq_pages churn during READDIR operations
	NFSD: Update the NFSv2 stat encoder to use struct xdr_stream
	NFSD: Update the NFSv2 attrstat encoder to use struct xdr_stream
	NFSD: Update the NFSv2 diropres encoder to use struct xdr_stream
	NFSD: Update the NFSv2 READLINK result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 READ result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 STATFS result encoder to use struct xdr_stream
	NFSD: Add a helper that encodes NFSv3 directory offset cookies
	NFSD: Count bytes instead of pages in the NFSv2 READDIR encoder
	NFSD: Update the NFSv2 READDIR result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 READDIR entry encoder to use struct xdr_stream
	NFSD: Remove unused NFSv2 directory entry encoders
	NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs
	NFSD: Update the NFSv2 GETACL result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 SETACL result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 ACL GETATTR result encoder to use struct xdr_stream
	NFSD: Update the NFSv2 ACL ACCESS result encoder to use struct xdr_stream
	NFSD: Clean up after updating NFSv2 ACL encoders
	NFSD: Update the NFSv3 GETACL result encoder to use struct xdr_stream
	NFSD: Update the NFSv3 SETACL result encoder to use struct xdr_stream
	NFSD: Clean up after updating NFSv3 ACL encoders
	NFSD: Add a tracepoint to record directory entry encoding
	NFSD: Clean up NFSDDBG_FACILITY macro
	nfsd: helper for laundromat expiry calculations
	nfsd: Log client tracking type log message as info instead of warning
	nfsd: Fix typo "accesible"
	nfsd: COPY with length 0 should copy to end of file
	nfsd: don't ignore high bits of copy count
	nfsd: report client confirmation status in "info" file
	SUNRPC: Export svc_xprt_received()
	UAPI: nfsfh.h: Replace one-element array with flexible-array member
	NFSD: Use DEFINE_SPINLOCK() for spinlock
	fsnotify: allow fsnotify_{peek,remove}_first_event with empty queue
	Revert "fanotify: limit number of event merge attempts"
	fanotify: reduce event objectid to 29-bit hash
	fanotify: mix event info and pid into merge key hash
	fsnotify: use hash table for faster events merge
	fanotify: limit number of event merge attempts
	fanotify: configurable limits via sysfs
	fanotify: support limited functionality for unprivileged users
	fanotify_user: use upper_32_bits() to verify mask
	nfsd: remove unused function
	nfsd: removed unused argument in nfsd_startup_generic()
	nfsd: hash nfs4_files by inode number
	nfsd: track filehandle aliasing in nfs4_files
	nfsd: reshuffle some code
	nfsd: grant read delegations to clients holding writes
	nfsd: Fix fall-through warnings for Clang
	NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.
	NFS: fix nfs_fetch_iversion()
	fanotify: fix permission model of unprivileged group
	NFSD: Add an RPC authflavor tracepoint display helper
	NFSD: Add nfsd_clid_cred_mismatch tracepoint
	NFSD: Add nfsd_clid_verf_mismatch tracepoint
	NFSD: Remove trace_nfsd_clid_inuse_err
	NFSD: Add nfsd_clid_confirmed tracepoint
	NFSD: Add nfsd_clid_reclaim_complete tracepoint
	NFSD: Add nfsd_clid_destroyed tracepoint
	NFSD: Add a couple more nfsd_clid_expired call sites
	NFSD: Add tracepoints for SETCLIENTID edge cases
	NFSD: Add tracepoints for EXCHANGEID edge cases
	NFSD: Constify @fh argument of knfsd_fh_hash()
	NFSD: Capture every CB state transition
	NFSD: Drop TRACE_DEFINE_ENUM for NFSD4_CB_<state> macros
	NFSD: Add cb_lost tracepoint
	NFSD: Adjust cb_shutdown tracepoint
	NFSD: Enhance the nfsd_cb_setup tracepoint
	NFSD: Add an nfsd_cb_lm_notify tracepoint
	NFSD: Add an nfsd_cb_offload tracepoint
	NFSD: Replace the nfsd_deleg_break tracepoint
	NFSD: Add an nfsd_cb_probe tracepoint
	NFSD: Remove the nfsd_cb_work and nfsd_cb_done tracepoints
	NFSD: Update nfsd_cb_args tracepoint
	nfsd: Prevent truncation of an unlinked inode from blocking access to its directory
	nfsd: move some commit_metadata()s outside the inode lock
	NFSD add vfs_fsync after async copy is done
	NFSD: delay unmount source's export after inter-server copy completed.
	nfsd: move fsnotify on client creation outside spinlock
	nfsd4: Expose the callback address and state of each NFS4 client
	nfsd: fix kernel test robot warning in SSC code
	NFSD: Fix error return code in nfsd4_interssc_connect()
	nfsd: rpc_peeraddr2str needs rcu lock
	lockd: Remove stale comments
	lockd: Create a simplified .vs_dispatch method for NLM requests
	lockd: Common NLM XDR helpers
	lockd: Update the NLMv1 void argument decoder to use struct xdr_stream
	lockd: Update the NLMv1 TEST arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 LOCK arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 CANCEL arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 UNLOCK arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 nlm_res arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 SM_NOTIFY arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 SHARE arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 FREE_ALL arguments decoder to use struct xdr_stream
	lockd: Update the NLMv1 void results encoder to use struct xdr_stream
	lockd: Update the NLMv1 TEST results encoder to use struct xdr_stream
	lockd: Update the NLMv1 nlm_res results encoder to use struct xdr_stream
	lockd: Update the NLMv1 SHARE results encoder to use struct xdr_stream
	lockd: Update the NLMv4 void arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 TEST arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 LOCK arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 CANCEL arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 UNLOCK arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 nlm_res arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 SM_NOTIFY arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 SHARE arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream
	lockd: Update the NLMv4 void results encoder to use struct xdr_stream
	lockd: Update the NLMv4 TEST results encoder to use struct xdr_stream
	lockd: Update the NLMv4 nlm_res results encoder to use struct xdr_stream
	lockd: Update the NLMv4 SHARE results encoder to use struct xdr_stream
	nfsd: remove redundant assignment to pointer 'this'
	NFSD: Prevent a possible oops in the nfs_dirent() tracepoint
	nfsd: fix NULL dereference in nfs3svc_encode_getaclres
	kernel/pid.c: remove static qualifier from pidfd_create()
	kernel/pid.c: implement additional checks upon pidfd_create() parameters
	fanotify: minor cosmetic adjustments to fid labels
	fanotify: introduce a generic info record copying helper
	fanotify: add pidfd support to the fanotify API
	fsnotify: replace igrab() with ihold() on attach connector
	fsnotify: count s_fsnotify_inode_refs for attached connectors
	fsnotify: count all objects with attached connectors
	fsnotify: optimize the case of no marks of any type
	NFSD: Clean up splice actor
	SUNRPC: Add svc_rqst_replace_page() API
	NFSD: Batch release pages during splice read
	NFSD: remove vanity comments
	sysctl: introduce new proc handler proc_dobool
	lockd: change the proc_handler for nsm_use_hostnames
	nlm: minor nlm_lookup_file argument change
	nlm: minor refactoring
	lockd: update nlm_lookup_file reexport comment
	Keep read and write fds with each nlm_file
	nfs: don't atempt blocking locks on nfs reexports
	lockd: don't attempt blocking locks on nfs reexports
	nfs: don't allow reexport reclaims
	SUNRPC: Add svc_rqst::rq_auth_stat
	SUNRPC: Set rq_auth_stat in the pg_authenticate() callout
	SUNRPC: Eliminate the RQ_AUTHERR flag
	NFS: Add a private local dispatcher for NFSv4 callback operations
	NFS: Remove unused callback void decoder
	fsnotify: fix sb_connectors leak
	NLM: Fix svcxdr_encode_owner()
	nfsd: Fix a warning for nfsd_file_close_inode
	fsnotify: pass data_type to fsnotify_name()
	fsnotify: pass dentry instead of inode data
	fsnotify: clarify contract for create event hooks
	fsnotify: Don't insert unmergeable events in hashtable
	fanotify: Fold event size calculation to its own function
	fanotify: Split fsid check from other fid mode checks
	inotify: Don't force FS_IN_IGNORED
	fsnotify: Add helper to detect overflow_event
	fsnotify: Add wrapper around fsnotify_add_event
	fsnotify: Retrieve super block from the data field
	fsnotify: Protect fsnotify_handle_inode_event from no-inode events
	fsnotify: Pass group argument to free_event
	fanotify: Support null inode event in fanotify_dfid_inode
	fanotify: Allow file handle encoding for unhashed events
	fanotify: Encode empty file handle when no inode is provided
	fanotify: Require fid_mode for any non-fd event
	fsnotify: Support FS_ERROR event type
	fanotify: Reserve UAPI bits for FAN_FS_ERROR
	fanotify: Pre-allocate pool of error events
	fanotify: Support enqueueing of error events
	fanotify: Support merging of error events
	fanotify: Wrap object_fh inline space in a creator macro
	fanotify: Add helpers to decide whether to report FID/DFID
	fanotify: WARN_ON against too large file handles
	fanotify: Report fid info for file related file system errors
	fanotify: Emit generic error info for error event
	fanotify: Allow users to request FAN_FS_ERROR events
	SUNRPC: Trace calls to .rpc_call_done
	NFSD: Optimize DRC bucket pruning
	NFSD: move filehandle format declarations out of "uapi".
	NFSD: drop support for ancient filehandles
	NFSD: simplify struct nfsfh
	NFSD: Initialize pointer ni with NULL and not plain integer 0
	NFSD: Have legacy NFSD WRITE decoders use xdr_stream_subsegment()
	SUNRPC: Replace the "__be32 *p" parameter to .pc_decode
	SUNRPC: Change return value type of .pc_decode
	NFSD: Save location of NFSv4 COMPOUND status
	SUNRPC: Replace the "__be32 *p" parameter to .pc_encode
	SUNRPC: Change return value type of .pc_encode
	nfsd: update create verifier comment
	NFSD:fix boolreturn.cocci warning
	nfsd4: remove obselete comment
	NFSD: Fix exposure in nfsd4_decode_bitmap()
	NFSD: Fix READDIR buffer overflow
	fsnotify: clarify object type argument
	fsnotify: separate mark iterator type from object type enum
	fanotify: introduce group flag FAN_REPORT_TARGET_FID
	fsnotify: generate FS_RENAME event with rich information
	fanotify: use macros to get the offset to fanotify_info buffer
	fanotify: use helpers to parcel fanotify_info buffer
	fanotify: support secondary dir fh and name in fanotify_info
	fanotify: record old and new parent and name in FAN_RENAME event
	fanotify: record either old name new name or both for FAN_RENAME
	fanotify: report old and/or new parent+name in FAN_RENAME event
	fanotify: wire up FAN_RENAME event
	exit: Implement kthread_exit
	exit: Rename module_put_and_exit to module_put_and_kthread_exit
	NFSD: Fix sparse warning
	NFSD: handle errors better in write_ports_addfd()
	SUNRPC: change svc_get() to return the svc.
	SUNRPC/NFSD: clean up get/put functions.
	SUNRPC: stop using ->sv_nrthreads as a refcount
	nfsd: make nfsd_stats.th_cnt atomic_t
	SUNRPC: use sv_lock to protect updates to sv_nrthreads.
	NFSD: narrow nfsd_mutex protection in nfsd thread
	NFSD: Make it possible to use svc_set_num_threads_sync
	SUNRPC: discard svo_setup and rename svc_set_num_threads_sync()
	NFSD: simplify locking for network notifier.
	lockd: introduce nlmsvc_serv
	lockd: simplify management of network status notifiers
	lockd: move lockd_start_svc() call into lockd_create_svc()
	lockd: move svc_exit_thread() into the thread
	lockd: introduce lockd_put()
	lockd: rename lockd_create_svc() to lockd_get()
	SUNRPC: move the pool_map definitions (back) into svc.c
	SUNRPC: always treat sv_nrpools==1 as "not pooled"
	lockd: use svc_set_num_threads() for thread start and stop
	NFS: switch the callback service back to non-pooled.
	NFSD: Remove be32_to_cpu() from DRC hash function
	NFSD: Fix inconsistent indenting
	NFSD: simplify per-net file cache management
	NFSD: Combine XDR error tracepoints
	nfsd: improve stateid access bitmask documentation
	NFSD: De-duplicate nfsd4_decode_bitmap4()
	nfs: block notification on fs with its own ->lock
	nfsd4: add refcount for nfsd4_blocked_lock
	NFSD: Fix zero-length NFSv3 WRITEs
	nfsd: map EBADF
	nfsd: Add errno mapping for EREMOTEIO
	nfsd: Retry once in nfsd_open on an -EOPENSTALE return
	NFSD: Clean up nfsd_vfs_write()
	NFSD: De-duplicate net_generic(SVC_NET(rqstp), nfsd_net_id)
	NFSD: De-duplicate net_generic(nf->nf_net, nfsd_net_id)
	nfsd: Add a tracepoint for errors in nfsd4_clone_file_range()
	NFSD: Write verifier might go backwards
	NFSD: Clean up the nfsd_net::nfssvc_boot field
	NFSD: Rename boot verifier functions
	NFSD: Trace boot verifier resets
	Revert "nfsd: skip some unnecessary stats in the v4 case"
	NFSD: Move fill_pre_wcc() and fill_post_wcc()
	nfsd: fix crash on COPY_NOTIFY with special stateid
	fanotify: remove variable set but not used
	lockd: fix server crash on reboot of client holding lock
	lockd: fix failure to cleanup client locks
	NFSD: Fix the behavior of READ near OFFSET_MAX
	NFSD: Fix ia_size underflow
	NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
	NFSD: COMMIT operations must not return NFS?ERR_INVAL
	NFSD: Deprecate NFS_OFFSET_MAX
	nfsd: Add support for the birth time attribute
	NFSD: De-duplicate hash bucket indexing
	NFSD: Skip extra computation for RC_NOCACHE case
	NFSD: Streamline the rare "found" case
	SUNRPC: Remove the .svo_enqueue_xprt method
	SUNRPC: Merge svc_do_enqueue_xprt() into svc_enqueue_xprt()
	SUNRPC: Remove svo_shutdown method
	SUNRPC: Rename svc_create_xprt()
	SUNRPC: Rename svc_close_xprt()
	SUNRPC: Remove svc_shutdown_net()
	NFSD: Remove svc_serv_ops::svo_module
	NFSD: Move svc_serv_ops::svo_function into struct svc_serv
	NFSD: Remove CONFIG_NFSD_V3
	NFSD: Clean up _lm_ operation names
	nfsd: fix using the correct variable for sizeof()
	fsnotify: fix merge with parent's ignored mask
	fsnotify: optimize FS_MODIFY events with no ignored masks
	fsnotify: remove redundant parameter judgment
	SUNRPC: Return true/false (not 1/0) from bool functions
	nfsd: Fix a write performance regression
	nfsd: Clean up nfsd_file_put()
	fanotify: do not allow setting dirent events in mask of non-dir
	fs/lock: documentation cleanup. Replace inode->i_lock with flc_lock.
	inotify: move control flags from mask to mark flags
	fsnotify: pass flags argument to fsnotify_alloc_group()
	fsnotify: make allow_dups a property of the group
	fsnotify: create helpers for group mark_mutex lock
	inotify: use fsnotify group lock helpers
	nfsd: use fsnotify group lock helpers
	dnotify: use fsnotify group lock helpers
	fsnotify: allow adding an inode mark without pinning inode
	fanotify: create helper fanotify_mark_user_flags()
	fanotify: factor out helper fanotify_mark_update_flags()
	fanotify: implement "evictable" inode marks
	fanotify: use fsnotify group lock helpers
	fanotify: enable "evictable" inode marks
	fsnotify: introduce mark type iterator
	fsnotify: consistent behavior for parent not watching children
	fanotify: fix incorrect fmode_t casts
	NFSD: Clean up nfsd_splice_actor()
	NFSD: add courteous server support for thread with only delegation
	NFSD: add support for share reservation conflict to courteous server
	NFSD: move create/destroy of laundry_wq to init_nfsd and exit_nfsd
	fs/lock: add helper locks_owner_has_blockers to check for blockers
	fs/lock: add 2 callbacks to lock_manager_operations to resolve conflict
	NFSD: add support for lock conflict to courteous server
	NFSD: Show state of courtesy client in client info
	NFSD: Clean up nfsd3_proc_create()
	NFSD: Avoid calling fh_drop_write() twice in do_nfsd_create()
	NFSD: Refactor nfsd_create_setattr()
	NFSD: Refactor NFSv3 CREATE
	NFSD: Refactor NFSv4 OPEN(CREATE)
	NFSD: Remove do_nfsd_create()
	NFSD: Clean up nfsd_open_verified()
	NFSD: Instantiate a struct file when creating a regular NFSv4 file
	NFSD: Remove dprintk call sites from tail of nfsd4_open()
	NFSD: Fix whitespace
	NFSD: Move documenting comment for nfsd4_process_open2()
	NFSD: Trace filecache opens
	NFSD: Clean up the show_nf_flags() macro
	SUNRPC: Use RMW bitops in single-threaded hot paths
	nfsd: Unregister the cld notifier when laundry_wq create failed
	nfsd: Fix null-ptr-deref in nfsd_fill_super()
	nfsd: destroy percpu stats counters after reply cache shutdown
	NFSD: Modernize nfsd4_release_lockowner()
	NFSD: Add documenting comment for nfsd4_release_lockowner()
	NFSD: nfsd_file_put() can sleep
	NFSD: Fix potential use-after-free in nfsd_file_put()
	SUNRPC: Optimize xdr_reserve_space()
	fanotify: refine the validation checks on non-dir inode mask
	NFS: restore module put when manager exits.
	NFSD: Decode NFSv4 birth time attribute
	lockd: set fl_owner when unlocking files
	lockd: fix nlm_close_files
	fs: inotify: Fix typo in inotify comment
	fanotify: prepare for setting event flags in ignore mask
	fanotify: cleanups for fanotify_mark() input validations
	fanotify: introduce FAN_MARK_IGNORE
	fsnotify: Fix comment typo
	nfsd: eliminate the NFSD_FILE_BREAK_* flags
	SUNRPC: Fix xdr_encode_bool()
	NLM: Defend against file_lock changes after vfs_test_lock()
	NFSD: Fix space and spelling mistake
	nfsd: remove redundant assignment to variable len
	NFSD: Demote a WARN to a pr_warn()
	NFSD: Report filecache LRU size
	NFSD: Report count of calls to nfsd_file_acquire()
	NFSD: Report count of freed filecache items
	NFSD: Report average age of filecache items
	NFSD: Add nfsd_file_lru_dispose_list() helper
	NFSD: Refactor nfsd_file_gc()
	NFSD: Refactor nfsd_file_lru_scan()
	NFSD: Report the number of items evicted by the LRU walk
	NFSD: Record number of flush calls
	NFSD: Zero counters when the filecache is re-initialized
	NFSD: Hook up the filecache stat file
	NFSD: WARN when freeing an item still linked via nf_lru
	NFSD: Trace filecache LRU activity
	NFSD: Leave open files out of the filecache LRU
	NFSD: Fix the filecache LRU shrinker
	NFSD: Never call nfsd_file_gc() in foreground paths
	NFSD: No longer record nf_hashval in the trace log
	NFSD: Remove lockdep assertion from unhash_and_release_locked()
	NFSD: nfsd_file_unhash can compute hashval from nf->nf_inode
	NFSD: Refactor __nfsd_file_close_inode()
	NFSD: nfsd_file_hash_remove can compute hashval
	NFSD: Remove nfsd_file::nf_hashval
	NFSD: Replace the "init once" mechanism
	NFSD: Set up an rhashtable for the filecache
	NFSD: Convert the filecache to use rhashtable
	NFSD: Clean up unused code after rhashtable conversion
	NFSD: Separate tracepoints for acquire and create
	NFSD: Move nfsd_file_trace_alloc() tracepoint
	NFSD: NFSv4 CLOSE should release an nfsd_file immediately
	NFSD: Ensure nf_inode is never dereferenced
	NFSD: refactoring v4 specific code to a helper in nfs4state.c
	NFSD: keep track of the number of v4 clients in the system
	NFSD: limit the number of v4 clients to 1024 per 1GB of system memory
	nfsd: silence extraneous printk on nfsd.ko insertion
	NFSD: Optimize nfsd4_encode_operation()
	NFSD: Optimize nfsd4_encode_fattr()
	NFSD: Clean up SPLICE_OK in nfsd4_encode_read()
	NFSD: Add an nfsd4_read::rd_eof field
	NFSD: Optimize nfsd4_encode_readv()
	NFSD: Simplify starting_len
	NFSD: Use xdr_pad_size()
	NFSD: Clean up nfsd4_encode_readlink()
	NFSD: Fix strncpy() fortify warning
	NFSD: nfserrno(-ENOMEM) is nfserr_jukebox
	NFSD: Shrink size of struct nfsd4_copy_notify
	NFSD: Shrink size of struct nfsd4_copy
	NFSD: Reorder the fields in struct nfsd4_op
	NFSD: Make nfs4_put_copy() static
	NFSD: Replace boolean fields in struct nfsd4_copy
	NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
	NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
	NFSD: Refactor nfsd4_do_copy()
	NFSD: Remove kmalloc from nfsd4_do_async_copy()
	NFSD: Add nfsd4_send_cb_offload()
	NFSD: Move copy offload callback arguments into a separate structure
	NFSD: drop fh argument from alloc_init_deleg
	NFSD: verify the opened dentry after setting a delegation
	NFSD: introduce struct nfsd_attrs
	NFSD: set attributes when creating symlinks
	NFSD: add security label to struct nfsd_attrs
	NFSD: add posix ACLs to struct nfsd_attrs
	NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
	NFSD: always drop directory lock in nfsd_unlink()
	NFSD: only call fh_unlock() once in nfsd_link()
	NFSD: reduce locking in nfsd_lookup()
	NFSD: use explicit lock/unlock for directory ops
	NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
	NFSD: discard fh_locked flag and fh_lock/fh_unlock
	lockd: detect and reject lock arguments that overflow
	NFSD: fix regression with setting ACLs.
	nfsd_splice_actor(): handle compound pages
	NFSD: move from strlcpy with unused retval to strscpy
	lockd: move from strlcpy with unused retval to strscpy
	NFSD enforce filehandle check for source file in COPY
	NFSD: remove redundant variable status
	nfsd: Avoid some useless tests
	nfsd: Propagate some error code returned by memdup_user()
	NFSD: Increase NFSD_MAX_OPS_PER_COMPOUND
	NFSD: Protect against send buffer overflow in NFSv2 READDIR
	NFSD: Protect against send buffer overflow in NFSv3 READDIR
	NFSD: Protect against send buffer overflow in NFSv2 READ
	NFSD: Protect against send buffer overflow in NFSv3 READ
	NFSD: drop fname and flen args from nfsd_create_locked()
	NFSD: Fix handling of oversized NFSv4 COMPOUND requests
	nfsd: clean up mounted_on_fileid handling
	nfsd: remove nfsd4_prepare_cb_recall() declaration
	NFSD: Add tracepoints to report NFSv4 callback completions
	NFSD: Add a mechanism to wait for a DELEGRETURN
	NFSD: Refactor nfsd_setattr()
	NFSD: Make nfsd4_setattr() wait before returning NFS4ERR_DELAY
	NFSD: Make nfsd4_rename() wait before returning NFS4ERR_DELAY
	NFSD: Make nfsd4_remove() wait before returning NFS4ERR_DELAY
	NFSD: keep track of the number of courtesy clients in the system
	NFSD: add shrinker to reap courtesy clients on low memory condition
	SUNRPC: Parametrize how much of argsize should be zeroed
	NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
	NFSD: Refactor common code out of dirlist helpers
	NFSD: Use xdr_inline_decode() to decode NFSv3 symlinks
	NFSD: Clean up WRITE arg decoders
	NFSD: Clean up nfs4svc_encode_compoundres()
	NFSD: Remove "inline" directives on op_rsize_bop helpers
	NFSD: Remove unused nfsd4_compoundargs::cachetype field
	NFSD: Pack struct nfsd4_compoundres
	nfsd: use DEFINE_PROC_SHOW_ATTRIBUTE to define nfsd_proc_ops
	nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes_fops
	nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
	nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_reply_cache_stats_fops
	nfsd: use DEFINE_SHOW_ATTRIBUTE to define nfsd_file_cache_stats_fops
	NFSD: Rename the fields in copy_stateid_t
	NFSD: Cap rsize_bop result based on send buffer size
	nfsd: only fill out return pointer on success in nfsd4_lookup_stateid
	nfsd: fix comments about spinlock handling with delegations
	nfsd: make nfsd4_run_cb a bool return function
	nfsd: extra checks when freeing delegation stateids
	fs/notify: constify path
	fsnotify: remove unused declaration
	fanotify: Remove obsoleted fanotify_event_has_path()
	nfsd: fix nfsd_file_unhash_and_dispose
	nfsd: rework hashtable handling in nfsd_do_file_acquire
	NFSD: unregister shrinker when nfsd_init_net() fails
	nfsd: fix net-namespace logic in __nfsd_file_cache_purge
	nfsd: fix use-after-free in nfsd_file_do_acquire tracepoint
	nfsd: put the export reference in nfsd4_verify_deleg_dentry
	NFSD: Fix reads with a non-zero offset that don't end on a page boundary
	filelock: add a new locks_inode_context accessor function
	lockd: use locks_inode_context helper
	nfsd: use locks_inode_context helper
	NFSD: Simplify READ_PLUS
	NFSD: Remove redundant assignment to variable host_err
	NFSD: Finish converting the NFSv2 GETACL result encoder
	NFSD: Finish converting the NFSv3 GETACL result encoder
	nfsd: ignore requests to disable unsupported versions
	nfsd: move nfserrno() to vfs.c
	nfsd: allow disabling NFSv2 at compile time
	exportfs: use pr_debug for unreachable debug statements
	NFSD: Pass the target nfsd_file to nfsd_commit()
	NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately"
	NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection
	NFSD: Flesh out a documenting comment for filecache.c
	NFSD: Clean up nfs4_preprocess_stateid_op() call sites
	NFSD: Trace stateids returned via DELEGRETURN
	NFSD: Trace delegation revocations
	NFSD: Use const pointers as parameters to fh_ helpers
	NFSD: Update file_hashtbl() helpers
	NFSD: Clean up nfsd4_init_file()
	NFSD: Add a nfsd4_file_hash_remove() helper
	NFSD: Clean up find_or_add_file()
	NFSD: Refactor find_file()
	NFSD: Use rhashtable for managing nfs4_file objects
	NFSD: Fix licensing header in filecache.c
	nfsd: remove the pages_flushed statistic from filecache
	nfsd: reorganize filecache.c
	nfsd: fix up the filecache laundrette scheduling
	NFSD: Add an nfsd_file_fsync tracepoint
	lockd: set other missing fields when unlocking files
	nfsd: return error if nfs4_setacl fails
	NFSD: Use struct_size() helper in alloc_session()
	lockd: set missing fl_flags field when retrieving args
	lockd: ensure we use the correct file descriptor when unlocking
	lockd: fix file selection in nlmsvc_cancel_blocked
	NFSD: pass range end to vfs_fsync_range() instead of count
	NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker
	NFSD: add support for sending CB_RECALL_ANY
	NFSD: add delegation reaper to react to low memory condition
	NFSD: Use only RQ_DROPME to signal the need to drop a reply
	NFSD: Avoid clashing function prototypes
	nfsd: rework refcounting in filecache
	nfsd: fix handling of cached open files in nfsd4_open codepath
	Revert "SUNRPC: Use RMW bitops in single-threaded hot paths"
	NFSD: Use set_bit(RQ_DROPME)
	NFSD: fix use-after-free in nfsd4_ssc_setup_dul()
	NFSD: register/unregister of nfsd-client shrinker at nfsd startup/shutdown time
	NFSD: replace delayed_work with work_struct for nfsd_client_shrinker
	nfsd: don't free files unconditionally in __nfsd_file_cache_purge
	nfsd: don't destroy global nfs4_file table in per-net shutdown
	NFSD: enhance inter-server copy cleanup
	nfsd: allow nfsd_file_get to sanely handle a NULL pointer
	nfsd: clean up potential nfsd_file refcount leaks in COPY codepath
	NFSD: fix leaked reference count of nfsd4_ssc_umount_item
	nfsd: don't hand out delegation on setuid files being opened for write
	NFSD: fix problems with cleanup on errors in nfsd4_copy
	nfsd: fix courtesy client with deny mode handling in nfs4_upgrade_open
	nfsd: don't fsync nfsd_files on last close
	NFSD: copy the whole verifier in nfsd_copy_write_verifier
	NFSD: Protect against filesystem freezing
	lockd: set file_lock start and end when decoding nlm4 testargs
	nfsd: don't replace page in rq_pages if it's a continuation of last page
	NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL
	nfsd: call op_release, even when op_func returns an error
	nfsd: don't open-code clear_and_wake_up_bit
	nfsd: NFSD_FILE_KEY_INODE only needs to find GC'ed entries
	nfsd: simplify test_bit return in NFSD_FILE_KEY_FULL comparator
	nfsd: don't kill nfsd_files because of lease break error
	nfsd: add some comments to nfsd_file_do_acquire
	nfsd: don't take/put an extra reference when putting a file
	nfsd: update comment over __nfsd_file_cache_purge
	nfsd: allow reaping files still under writeback
	NFSD: Convert filecache to rhltable
	nfsd: simplify the delayed disposal list code
	NFSD: Fix problem of COMMIT and NFS4ERR_DELAY in infinite loop
	nfsd: make a copy of struct iattr before calling notify_change
	nfsd: fix double fget() bug in __write_ports_addfd()
	lockd: drop inappropriate svc_get() from locked_get()
	NFSD: Add an nfsd4_encode_nfstime4() helper
	nfsd: Fix creation time serialization order
	nfsd: don't allow nfsd threads to be signalled.
	nfsd: Simplify code around svc_exit_thread() call in nfsd()
	nfsd: separate nfsd_last_thread() from nfsd_put()
	Documentation: Add missing documentation for EXPORT_OP flags
	NFSD: fix possible oops when nfsd/pool_stats is closed.
	nfsd: call nfsd_last_thread() before final nfsd_put()
	nfsd: drop the nfsd_put helper
	nfsd: fix RELEASE_LOCKOWNER
	nfsd: don't take fi_lock in nfsd_break_deleg_cb()
	nfsd: don't call locks_release_private() twice concurrently
	nfsd: Fix a regression in nfsd_setattr()
	Linux 5.10.220

Change-Id: I589ec5e63d1f985ab69f9755b9a87330627d44c5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-07-16 15:58:54 +00:00
Greg Kroah-Hartman
fedef46c69 This is the 5.10.219 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmZuzl4ACgkQONu9yGCS
 aT7+ohAAyRkTis6xeME1FWIJthCJl8FzUq9nfN+OccK3TwCbXyZKXlZK8lVz0T5U
 DvG1Tg+rR76+hIJghMIy2FEPRBA19WMq9a+Ms2ZyyggPrlgksFivO8N8YgnIxabb
 EJPN7pAzO+GA+vd8YeGeK1ldq8QUISlN35s+hkur1jeBctWRcpHeOTjIej/Qytmj
 ny1o7hCp179+SPygSEYEYtguACaQflhfBjOgAQ9DwWjP6vO2W9Vb16X4tiT0udHm
 ExPjOwxbEMN/7m9gKrnl6WcIROSOy55FnfcYZP+NRY4jBlANUgXF1ca9hAhcIKSv
 oOyeRN5S3FZAdxIHG9SFU9b6MPwJSeO5ETQyfiRGNFRkXOa2tKknNSsuACu8kSwx
 SKJIpcuW1DkortwsYFbilXdl6TrK6oCcEczV5qtludcRoDznfUGejb5e81v3yYkO
 no6ORvBJSBnEObY+gpexvxQp2Ae1+YkSLJaDzYWMC+JHBIgWTz2F2qJJkP6bRAUV
 QduFTdTenDnL7zW3DseZGJKotU95cUoKNAwa7wfboZeygHc2+KaUOchKcqI0P9dZ
 pS27RzcAJJ2uufujofyxOOhzFKw98WFurfNsMZTDBwHuqReoiRAS7pi0PeTMuqUv
 GC8V1eIKgeWdI+pdTZLXylziiM41IylLjU/hxCrsykb+EwFa5NY=
 =B1lK
 -----END PGP SIGNATURE-----

Merge 5.10.219 into android12-5.10-lts

Changes in 5.10.219
	x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
	tty: n_gsm: fix possible out-of-bounds in gsm0_receive()
	speakup: Fix sizeof() vs ARRAY_SIZE() bug
	ring-buffer: Fix a race between readers and resize checks
	net: smc91x: Fix m68k kernel compilation for ColdFire CPU
	nilfs2: fix unexpected freezing of nilfs_segctor_sync()
	nilfs2: fix potential hang in nilfs_detach_log_writer()
	ALSA: core: Fix NULL module pointer assignment at card init
	wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class
	net: usb: qmi_wwan: add Telit FN920C04 compositions
	drm/amd/display: Set color_mgmt_changed to true on unsuspend
	ASoC: rt5645: Fix the electric noise due to the CBJ contacts floating
	ASoC: dt-bindings: rt5645: add cbj sleeve gpio property
	regulator: vqmmc-ipq4019: fix module autoloading
	ASoC: rt715: add vendor clear control register
	ASoC: da7219-aad: fix usage of device_get_named_child_node()
	drm/amdkfd: Flush the process wq before creating a kfd_process
	nvme: find numa distance only if controller has valid numa id
	openpromfs: finish conversion to the new mount API
	crypto: bcm - Fix pointer arithmetic
	firmware: raspberrypi: Use correct device for DMA mappings
	ecryptfs: Fix buffer size for tag 66 packet
	nilfs2: fix out-of-range warning
	parisc: add missing export of __cmpxchg_u8()
	crypto: ccp - drop platform ifdef checks
	crypto: x86/nh-avx2 - add missing vzeroupper
	crypto: x86/sha256-avx2 - add missing vzeroupper
	s390/cio: fix tracepoint subchannel type field
	jffs2: prevent xattr node from overflowing the eraseblock
	soc: mediatek: cmdq: Fix typo of CMDQ_JUMP_RELATIVE
	null_blk: Fix missing mutex_destroy() at module removal
	md: fix resync softlockup when bitmap size is less than array size
	wifi: ath10k: poll service ready message before failing
	x86/boot: Ignore relocations in .notes sections in walk_relocs() too
	qed: avoid truncating work queue length
	scsi: ufs: qcom: Perform read back after writing reset bit
	scsi: ufs-qcom: Fix ufs RST_n spec violation
	scsi: ufs: qcom: Perform read back after writing REG_UFS_SYS1CLK_1US
	scsi: ufs: ufs-qcom: Fix the Qcom register name for offset 0xD0
	scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW version major 5
	scsi: ufs: qcom: Perform read back after writing unipro mode
	scsi: ufs: qcom: Perform read back after writing CGC enable
	scsi: ufs: cdns-pltfrm: Perform read back after writing HCLKDIV
	scsi: ufs: core: Perform read back after disabling interrupts
	scsi: ufs: core: Perform read back after disabling UIC_COMMAND_COMPL
	irqchip/alpine-msi: Fix off-by-one in allocation error path
	irqchip/loongson-pch-msi: Fix off-by-one on allocation error path
	ACPI: disable -Wstringop-truncation
	gfs2: Fix "ignore unlock failures after withdraw"
	selftests/bpf: Fix umount cgroup2 error in test_sockmap
	cpufreq: Reorganize checks in cpufreq_offline()
	cpufreq: Split cpufreq_offline()
	cpufreq: Rearrange locking in cpufreq_remove_dev()
	cpufreq: exit() callback is optional
	net: export inet_lookup_reuseport and inet6_lookup_reuseport
	net: remove duplicate reuseport_lookup functions
	udp: Avoid call to compute_score on multiple sites
	scsi: libsas: Fix the failure of adding phy with zero-address to port
	scsi: hpsa: Fix allocation size for Scsi_Host private data
	x86/purgatory: Switch to the position-independent small code model
	wifi: ath10k: Fix an error code problem in ath10k_dbg_sta_write_peer_debug_trigger()
	wifi: ath10k: populate board data for WCN3990
	tcp: avoid premature drops in tcp_add_backlog()
	net: give more chances to rcu in netdev_wait_allrefs_any()
	macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
	wifi: carl9170: add a proper sanity check for endpoints
	wifi: ar5523: enable proper endpoint verification
	sh: kprobes: Merge arch_copy_kprobe() into arch_prepare_kprobe()
	Revert "sh: Handle calling csum_partial with misaligned data"
	selftests/binderfs: use the Makefile's rules, not Make's implicit rules
	HID: intel-ish-hid: ipc: Add check for pci_alloc_irq_vectors
	scsi: bfa: Ensure the copied buf is NUL terminated
	scsi: qedf: Ensure the copied buf is NUL terminated
	wifi: mwl8k: initialize cmd->addr[] properly
	usb: aqc111: stop lying about skb->truesize
	net: usb: sr9700: stop lying about skb->truesize
	m68k: Fix spinlock race in kernel thread creation
	m68k: mac: Fix reboot hang on Mac IIci
	net: ipv6: fix wrong start position when receive hop-by-hop fragment
	eth: sungem: remove .ndo_poll_controller to avoid deadlocks
	net: ethernet: cortina: Locking fixes
	af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg
	net: usb: smsc95xx: stop lying about skb->truesize
	net: openvswitch: fix overwriting ct original tuple for ICMPv6
	ipv6: sr: add missing seg6_local_exit
	ipv6: sr: fix incorrect unregister order
	ipv6: sr: fix invalid unregister error path
	net/mlx5: Discard command completions in internal error
	drm/amd/display: Fix potential index out of bounds in color transformation function
	ASoC: soc-acpi: add helper to identify parent driver.
	ASoC: Intel: Disable route checks for Skylake boards
	mtd: rawnand: hynix: fixed typo
	fbdev: shmobile: fix snprintf truncation
	drm/meson: vclk: fix calculation of 59.94 fractional rates
	drm/mediatek: Add 0 size check to mtk_drm_gem_obj
	powerpc/fsl-soc: hide unused const variable
	fbdev: sisfb: hide unused variables
	media: ngene: Add dvb_ca_en50221_init return value check
	media: radio-shark2: Avoid led_names truncations
	drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference
	fbdev: sh7760fb: allow modular build
	media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries
	drm/arm/malidp: fix a possible null pointer dereference
	drm: vc4: Fix possible null pointer dereference
	ASoC: tracing: Export SND_SOC_DAPM_DIR_OUT to its value
	drm/bridge: lt9611: Don't log an error when DSI host can't be found
	drm/bridge: tc358775: Don't log an error when DSI host can't be found
	drm/panel: simple: Add missing Innolux G121X1-L03 format, flags, connector
	drm/mipi-dsi: use correct return type for the DSC functions
	RDMA/hns: Refactor the hns_roce_buf allocation flow
	RDMA/hns: Create QP with selected QPN for bank load balance
	RDMA/hns: Fix incorrect symbol types
	RDMA/hns: Fix return value in hns_roce_map_mr_sg
	RDMA/hns: Use complete parentheses in macros
	RDMA/hns: Modify the print level of CQE error
	clk: qcom: mmcc-msm8998: fix venus clock issue
	x86/insn: Fix PUSH instruction in x86 instruction decoder opcode map
	ext4: avoid excessive credit estimate in ext4_tmpfile()
	sunrpc: removed redundant procp check
	ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple
	ext4: fix unit mismatch in ext4_mb_new_blocks_simple
	ext4: try all groups in ext4_mb_new_blocks_simple
	ext4: remove unused parameter from ext4_mb_new_blocks_simple()
	ext4: fix potential unnitialized variable
	SUNRPC: Fix gss_free_in_token_pages()
	selftests/kcmp: Make the test output consistent and clear
	selftests/kcmp: remove unused open mode
	RDMA/IPoIB: Fix format truncation compilation errors
	net: qrtr: fix null-ptr-deref in qrtr_ns_remove
	net: qrtr: ns: Fix module refcnt
	netrom: fix possible dead-lock in nr_rt_ioctl()
	af_packet: do not call packet_read_pending() from tpacket_destruct_skb()
	sched/fair: Allow disabling sched_balance_newidle with sched_relax_domain_level
	greybus: lights: check return of get_channel_from_mode
	f2fs: fix to wait on page writeback in __clone_blkaddrs()
	soundwire: cadence: fix invalid PDI offset
	dmaengine: idma64: Add check for dma_set_max_seg_size
	firmware: dmi-id: add a release callback function
	serial: max3100: Lock port->lock when calling uart_handle_cts_change()
	serial: max3100: Update uart_driver_registered on driver removal
	serial: max3100: Fix bitwise types
	greybus: arche-ctrl: move device table to its right location
	serial: sc16is7xx: add proper sched.h include for sched_set_fifo()
	f2fs: compress: support chksum
	f2fs: add compress_mode mount option
	f2fs: compress: clean up parameter of __f2fs_cluster_blocks()
	f2fs: compress: remove unneeded preallocation
	f2fs: introduce FI_COMPRESS_RELEASED instead of using IMMUTABLE bit
	f2fs: compress: fix to relocate check condition in f2fs_{release,reserve}_compress_blocks()
	f2fs: add cp_error check in f2fs_write_compressed_pages
	f2fs: fix to force keeping write barrier for strict fsync mode
	f2fs: do not allow partial truncation on pinned file
	f2fs: fix typos in comments
	f2fs: fix to relocate check condition in f2fs_fallocate()
	f2fs: fix to check pinfile flag in f2fs_move_file_range()
	iio: pressure: dps310: support negative temperature values
	fpga: region: change FPGA indirect article to an
	fpga: region: Rename dev to parent for parent device
	docs: driver-api: fpga: avoid using UTF-8 chars
	fpga: region: Use standard dev_release for class driver
	fpga: region: add owner module and take its refcount
	microblaze: Remove gcc flag for non existing early_printk.c file
	microblaze: Remove early printk call from cpuinfo-static.c
	usb: gadget: u_audio: Clear uac pointer when freed.
	stm class: Fix a double free in stm_register_device()
	ppdev: Remove usage of the deprecated ida_simple_xx() API
	ppdev: Add an error check in register_device
	extcon: max8997: select IRQ_DOMAIN instead of depending on it
	PCI/EDR: Align EDR_PORT_DPC_ENABLE_DSM with PCI Firmware r3.3
	PCI/EDR: Align EDR_PORT_LOCATE_DSM with PCI Firmware r3.3
	f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
	f2fs: fix to release node block count in error path of f2fs_new_node_page()
	f2fs: compress: don't allow unaligned truncation on released compress inode
	serial: sh-sci: protect invalidating RXDMA on shutdown
	libsubcmd: Fix parse-options memory leak
	s390/ipl: Fix incorrect initialization of len fields in nvme reipl block
	s390/ipl: Fix incorrect initialization of nvme dump block
	Input: ims-pcu - fix printf string overflow
	Input: ioc3kbd - convert to platform remove callback returning void
	Input: ioc3kbd - add device table
	mmc: sdhci_am654: Add tuning algorithm for delay chain
	mmc: sdhci_am654: Write ITAPDLY for DDR52 timing
	mmc: sdhci_am654: Drop lookup for deprecated ti,otap-del-sel
	mmc: sdhci_am654: Add OTAP/ITAP delay enable
	mmc: sdhci_am654: Add ITAPDLYSEL in sdhci_j721e_4bit_set_clock
	mmc: sdhci_am654: Fix ITAPDLY for HS400 timing
	Input: pm8xxx-vibrator - correct VIB_MAX_LEVELS calculation
	drm/msm/dpu: Always flush the slave INTF on the CTL
	um: Fix return value in ubd_init()
	um: Add winch to winch_handlers before registering winch IRQ
	um: vector: fix bpfflash parameter evaluation
	drm/bridge: tc358775: fix support for jeida-18 and jeida-24
	media: stk1160: fix bounds checking in stk1160_copy_video()
	scsi: qla2xxx: Replace all non-returning strlcpy() with strscpy()
	media: flexcop-usb: clean up endpoint sanity checks
	media: flexcop-usb: fix sanity check of bNumEndpoints
	powerpc/pseries: Add failure related checks for h_get_mpp and h_get_ppp
	um: Fix the -Wmissing-prototypes warning for __switch_mm
	media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
	media: cec: cec-api: add locking in cec_release()
	media: core headers: fix kernel-doc warnings
	media: cec: fix a deadlock situation
	media: cec: call enable_adap on s_log_addrs
	media: cec: abort if the current transmit was canceled
	media: cec: correctly pass on reply results
	media: cec: use call_op and check for !unregistered
	media: cec-adap.c: drop activate_cnt, use state info instead
	media: cec: core: avoid recursive cec_claim_log_addrs
	media: cec: core: avoid confusing "transmit timed out" message
	null_blk: Fix the WARNING: modpost: missing MODULE_DESCRIPTION()
	regulator: bd71828: Don't overwrite runtime voltages
	x86/kconfig: Select ARCH_WANT_FRAME_POINTERS again when UNWINDER_FRAME_POINTER=y
	nfc: nci: Fix uninit-value in nci_rx_work
	ASoC: tas2552: Add TX path for capturing AUDIO-OUT data
	sunrpc: fix NFSACL RPC retry on soft mount
	rpcrdma: fix handling for RDMA_CM_EVENT_DEVICE_REMOVAL
	ipv6: sr: fix memleak in seg6_hmac_init_algo
	params: lift param_set_uint_minmax to common code
	tcp: Fix shift-out-of-bounds in dctcp_update_alpha().
	openvswitch: Set the skbuff pkt_type for proper pmtud support.
	arm64: asm-bug: Add .align 2 to the end of __BUG_ENTRY
	virtio: delete vq in vp_find_vqs_msix() when request_irq() fails
	net: fec: avoid lock evasion when reading pps_enable
	tls: fix missing memory barrier in tls_init
	nfc: nci: Fix kcov check in nci_rx_work()
	nfc: nci: Fix handling of zero-length payload packets in nci_rx_work()
	netfilter: nfnetlink_queue: acquire rcu_read_lock() in instance_destroy_rcu()
	netfilter: nft_payload: restore vlan q-in-q match support
	spi: Don't mark message DMA mapped when no transfer in it is
	nvmet: fix ns enable/disable possible hang
	net/mlx5e: Use rx_missed_errors instead of rx_dropped for reporting buffer exhaustion
	dma-buf/sw-sync: don't enable IRQ from sync_print_obj()
	bpf: Fix potential integer overflow in resolve_btfids
	enic: Validate length of nl attributes in enic_set_vf_port
	net: usb: smsc95xx: fix changing LED_SEL bit value updated from EEPROM
	bpf: Allow delete from sockmap/sockhash only if update is allowed
	net:fec: Add fec_enet_deinit()
	netfilter: tproxy: bail out if IP has been disabled on the device
	kconfig: fix comparison to constant symbols, 'm', 'n'
	spi: stm32: Don't warn about spurious interrupts
	ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound
	hwmon: (shtc1) Fix property misspelling
	ALSA: timer: Set lower bound of start tick time
	genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline
	media: cec: core: add adap_nb_transmit_canceled() callback
	SUNRPC: Fix loop termination condition in gss_free_in_token_pages()
	binder: fix max_thread type inconsistency
	mmc: core: Do not force a retune before RPMB switch
	io_uring: fail NOP if non-zero op flags is passed in
	afs: Don't cross .backup mountpoint from backup volume
	nilfs2: fix use-after-free of timer for log writer thread
	vxlan: Fix regression when dropping packets due to invalid src addresses
	x86/mm: Remove broken vsyscall emulation code from the page fault code
	netfilter: nf_tables: restrict tunnel object to NFPROTO_NETDEV
	netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get()
	f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode()
	media: lgdt3306a: Add a check against null-pointer-def
	drm/amdgpu: add error handle to avoid out-of-bounds
	ata: pata_legacy: make legacy_exit() work again
	ACPI: resource: Do IRQ override on TongFang GXxHRXx and GMxHGxx
	arm64: tegra: Correct Tegra132 I2C alias
	arm64: dts: qcom: qcs404: fix bluetooth device address
	md/raid5: fix deadlock that raid5d() wait for itself to clear MD_SB_CHANGE_PENDING
	wifi: rtl8xxxu: Fix the TX power of RTL8192CU, RTL8723AU
	wifi: rtlwifi: rtl8192de: Fix low speed with WPA3-SAE
	wifi: rtlwifi: rtl8192de: Fix endianness issue in RX path
	arm64: dts: hi3798cv200: fix the size of GICR
	media: mc: mark the media devnode as registered from the, start
	media: mxl5xx: Move xpt structures off stack
	media: v4l2-core: hold videodev_lock until dev reg, finishes
	mmc: core: Add mmc_gpiod_set_cd_config() function
	mmc: sdhci-acpi: Sort DMI quirks alphabetically
	mmc: sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
	mmc: sdhci-acpi: Disable write protect detection on Toshiba WT10-A
	fbdev: savage: Handle err return when savagefb_check_var failed
	KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
	crypto: ecrdsa - Fix module auto-load on add_key
	crypto: qat - Fix ADF_DEV_RESET_SYNC memory leak
	net/ipv6: Fix route deleting failure when metric equals 0
	net/9p: fix uninit-value in p9_client_rpc()
	intel_th: pci: Add Meteor Lake-S CPU support
	sparc64: Fix number of online CPUs
	watchdog: rti_wdt: Set min_hw_heartbeat_ms to accommodate a safety margin
	kdb: Fix buffer overflow during tab-complete
	kdb: Use format-strings rather than '\0' injection in kdb_read()
	kdb: Fix console handling when editing and tab-completing commands
	kdb: Merge identical case statements in kdb_read()
	kdb: Use format-specifiers rather than memset() for padding in kdb_read()
	net: fix __dst_negative_advice() race
	sparc: move struct termio to asm/termios.h
	ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find()
	s390/ap: Fix crash in AP internal function modify_bitmap()
	nfs: fix undefined behavior in nfs_block_bits()
	NFS: Fix READ_PLUS when server doesn't support OP_READ_PLUS
	scsi: ufs: ufs-qcom: Clear qunipro_g4_sel for HW major version > 5
	f2fs: compress: fix compression chksum
	RDMA/hns: Use mutex instead of spinlock for ida allocation
	RDMA/hns: Fix CQ and QP cache affinity
	Linux 5.10.219

Change-Id: I0e21ff44d28df2a2802a9fb35f0959bb5ab528fc
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-07-10 14:41:23 +00:00
Jeff Johnson
0e84701753 tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test
[ Upstream commit 23748e3e0fbfe471eff5ce439921629f6a427828 ]

Fix the 'make W=1' warning:

WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/trace/preemptirq_delay_test.o

Link: https://lore.kernel.org/linux-trace-kernel/20240518-md-preemptirq_delay_test-v1-1-387d11b30d85@quicinc.com

Cc: stable@vger.kernel.org
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: f96e8577da ("lib: Add module for testing preemptoff/irqsoff latency tracers")
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:12:43 +02:00
Masami Hiramatsu (Google)
a85bae262c tracing: Build event generation tests only as modules
[ Upstream commit 3572bd5689b0812b161b40279e39ca5b66d73e88 ]

The kprobes and synth event generation test modules add events and lock
(get a reference) those event file reference in module init function,
and unlock and delete it in module exit function. This is because those
are designed for playing as modules.

If we make those modules as built-in, those events are left locked in the
kernel, and never be removed. This causes kprobe event self-test failure
as below.

[   97.349708] ------------[ cut here ]------------
[   97.353453] WARNING: CPU: 3 PID: 1 at kernel/trace/trace_kprobe.c:2133 kprobe_trace_self_tests_init+0x3f1/0x480
[   97.357106] Modules linked in:
[   97.358488] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 6.9.0-g699646734ab5-dirty #14
[   97.361556] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
[   97.363880] RIP: 0010:kprobe_trace_self_tests_init+0x3f1/0x480
[   97.365538] Code: a8 24 08 82 e9 ae fd ff ff 90 0f 0b 90 48 c7 c7 e5 aa 0b 82 e9 ee fc ff ff 90 0f 0b 90 48 c7 c7 2d 61 06 82 e9 8e fd ff ff 90 <0f> 0b 90 48 c7 c7 33 0b 0c 82 89 c6 e8 6e 03 1f ff 41 ff c7 e9 90
[   97.370429] RSP: 0000:ffffc90000013b50 EFLAGS: 00010286
[   97.371852] RAX: 00000000fffffff0 RBX: ffff888005919c00 RCX: 0000000000000000
[   97.373829] RDX: ffff888003f40000 RSI: ffffffff8236a598 RDI: ffff888003f40a68
[   97.375715] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
[   97.377675] R10: ffffffff811c9ae5 R11: ffffffff8120c4e0 R12: 0000000000000000
[   97.379591] R13: 0000000000000001 R14: 0000000000000015 R15: 0000000000000000
[   97.381536] FS:  0000000000000000(0000) GS:ffff88807dcc0000(0000) knlGS:0000000000000000
[   97.383813] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   97.385449] CR2: 0000000000000000 CR3: 0000000002244000 CR4: 00000000000006b0
[   97.387347] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   97.389277] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   97.391196] Call Trace:
[   97.391967]  <TASK>
[   97.392647]  ? __warn+0xcc/0x180
[   97.393640]  ? kprobe_trace_self_tests_init+0x3f1/0x480
[   97.395181]  ? report_bug+0xbd/0x150
[   97.396234]  ? handle_bug+0x3e/0x60
[   97.397311]  ? exc_invalid_op+0x1a/0x50
[   97.398434]  ? asm_exc_invalid_op+0x1a/0x20
[   97.399652]  ? trace_kprobe_is_busy+0x20/0x20
[   97.400904]  ? tracing_reset_all_online_cpus+0x15/0x90
[   97.402304]  ? kprobe_trace_self_tests_init+0x3f1/0x480
[   97.403773]  ? init_kprobe_trace+0x50/0x50
[   97.404972]  do_one_initcall+0x112/0x240
[   97.406113]  do_initcall_level+0x95/0xb0
[   97.407286]  ? kernel_init+0x1a/0x1a0
[   97.408401]  do_initcalls+0x3f/0x70
[   97.409452]  kernel_init_freeable+0x16f/0x1e0
[   97.410662]  ? rest_init+0x1f0/0x1f0
[   97.411738]  kernel_init+0x1a/0x1a0
[   97.412788]  ret_from_fork+0x39/0x50
[   97.413817]  ? rest_init+0x1f0/0x1f0
[   97.414844]  ret_from_fork_asm+0x11/0x20
[   97.416285]  </TASK>
[   97.417134] irq event stamp: 13437323
[   97.418376] hardirqs last  enabled at (13437337): [<ffffffff8110bc0c>] console_unlock+0x11c/0x150
[   97.421285] hardirqs last disabled at (13437370): [<ffffffff8110bbf1>] console_unlock+0x101/0x150
[   97.423838] softirqs last  enabled at (13437366): [<ffffffff8108e17f>] handle_softirqs+0x23f/0x2a0
[   97.426450] softirqs last disabled at (13437393): [<ffffffff8108e346>] __irq_exit_rcu+0x66/0xd0
[   97.428850] ---[ end trace 0000000000000000 ]---

And also, since we can not cleanup dynamic_event file, ftracetest are
failed too.

To avoid these issues, build these tests only as modules.

Link: https://lore.kernel.org/all/171811263754.85078.5877446624311852525.stgit@devnote2/

Fixes: 9fe41efaca ("tracing: Add synth event generation test module")
Fixes: 64836248dd ("tracing: Add kprobe event command generation test module")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:12:37 +02:00
Christoph Hellwig
bef9d8b4f8 module: use RCU to synchronize find_module
[ Upstream commit a006050575745ca2be25118b90f1c37f454ac542 ]

Allow for a RCU-sched critical section around find_module, following
the lower level find_module_all helper, and switch the two callers
outside of module.c to use such a RCU-sched critical section instead
of module_mutex.

Reviewed-by: Petr Mladek <pmladek@suse.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-21 14:52:58 +02:00
Petr Pavlu
1e16019604 ring-buffer: Fix a race between readers and resize checks
commit c2274b908db05529980ec056359fae916939fdaa upstream.

The reader code in rb_get_reader_page() swaps a new reader page into the
ring buffer by doing cmpxchg on old->list.prev->next to point it to the
new page. Following that, if the operation is successful,
old->list.next->prev gets updated too. This means the underlying
doubly-linked list is temporarily inconsistent, page->prev->next or
page->next->prev might not be equal back to page for some page in the
ring buffer.

The resize operation in ring_buffer_resize() can be invoked in parallel.
It calls rb_check_pages() which can detect the described inconsistency
and stop further tracing:

[  190.271762] ------------[ cut here ]------------
[  190.271771] WARNING: CPU: 1 PID: 6186 at kernel/trace/ring_buffer.c:1467 rb_check_pages.isra.0+0x6a/0xa0
[  190.271789] Modules linked in: [...]
[  190.271991] Unloaded tainted modules: intel_uncore_frequency(E):1 skx_edac(E):1
[  190.272002] CPU: 1 PID: 6186 Comm: cmd.sh Kdump: loaded Tainted: G            E      6.9.0-rc6-default #5 158d3e1e6d0b091c34c3b96bfd99a1c58306d79f
[  190.272011] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552c-rebuilt.opensuse.org 04/01/2014
[  190.272015] RIP: 0010:rb_check_pages.isra.0+0x6a/0xa0
[  190.272023] Code: [...]
[  190.272028] RSP: 0018:ffff9c37463abb70 EFLAGS: 00010206
[  190.272034] RAX: ffff8eba04b6cb80 RBX: 0000000000000007 RCX: ffff8eba01f13d80
[  190.272038] RDX: ffff8eba01f130c0 RSI: ffff8eba04b6cd00 RDI: ffff8eba0004c700
[  190.272042] RBP: ffff8eba0004c700 R08: 0000000000010002 R09: 0000000000000000
[  190.272045] R10: 00000000ffff7f52 R11: ffff8eba7f600000 R12: ffff8eba0004c720
[  190.272049] R13: ffff8eba00223a00 R14: 0000000000000008 R15: ffff8eba067a8000
[  190.272053] FS:  00007f1bd64752c0(0000) GS:ffff8eba7f680000(0000) knlGS:0000000000000000
[  190.272057] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  190.272061] CR2: 00007f1bd6662590 CR3: 000000010291e001 CR4: 0000000000370ef0
[  190.272070] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  190.272073] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  190.272077] Call Trace:
[  190.272098]  <TASK>
[  190.272189]  ring_buffer_resize+0x2ab/0x460
[  190.272199]  __tracing_resize_ring_buffer.part.0+0x23/0xa0
[  190.272206]  tracing_resize_ring_buffer+0x65/0x90
[  190.272216]  tracing_entries_write+0x74/0xc0
[  190.272225]  vfs_write+0xf5/0x420
[  190.272248]  ksys_write+0x67/0xe0
[  190.272256]  do_syscall_64+0x82/0x170
[  190.272363]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  190.272373] RIP: 0033:0x7f1bd657d263
[  190.272381] Code: [...]
[  190.272385] RSP: 002b:00007ffe72b643f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[  190.272391] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f1bd657d263
[  190.272395] RDX: 0000000000000002 RSI: 0000555a6eb538e0 RDI: 0000000000000001
[  190.272398] RBP: 0000555a6eb538e0 R08: 000000000000000a R09: 0000000000000000
[  190.272401] R10: 0000555a6eb55190 R11: 0000000000000246 R12: 00007f1bd6662500
[  190.272404] R13: 0000000000000002 R14: 00007f1bd6667c00 R15: 0000000000000002
[  190.272412]  </TASK>
[  190.272414] ---[ end trace 0000000000000000 ]---

Note that ring_buffer_resize() calls rb_check_pages() only if the parent
trace_buffer has recording disabled. Recent commit d78ab792705c
("tracing: Stop current tracer when resizing buffer") causes that it is
now always the case which makes it more likely to experience this issue.

The window to hit this race is nonetheless very small. To help
reproducing it, one can add a delay loop in rb_get_reader_page():

 ret = rb_head_page_replace(reader, cpu_buffer->reader_page);
 if (!ret)
 	goto spin;
 for (unsigned i = 0; i < 1U << 26; i++)  /* inserted delay loop */
 	__asm__ __volatile__ ("" : : : "memory");
 rb_list_head(reader->list.next)->prev = &cpu_buffer->reader_page->list;

.. and then run the following commands on the target system:

 echo 1 > /sys/kernel/tracing/events/sched/sched_switch/enable
 while true; do
 	echo 16 > /sys/kernel/tracing/buffer_size_kb; sleep 0.1
 	echo 8 > /sys/kernel/tracing/buffer_size_kb; sleep 0.1
 done &
 while true; do
 	for i in /sys/kernel/tracing/per_cpu/*; do
 		timeout 0.1 cat $i/trace_pipe; sleep 0.2
 	done
 done

To fix the problem, make sure ring_buffer_resize() doesn't invoke
rb_check_pages() concurrently with a reader operating on the same
ring_buffer_per_cpu by taking its cpu_buffer->reader_lock.

Link: https://lore.kernel.org/linux-trace-kernel/20240517134008.24529-3-petr.pavlu@suse.com

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 659f451ff2 ("ring-buffer: Add integrity check at end of iter read")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
[ Fixed whitespace ]
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-16 13:31:59 +02:00
Greg Kroah-Hartman
c15c1199d6 Merge 5.10.216 into android12-5.10-lts
Changes in 5.10.216
	batman-adv: Avoid infinite loop trying to resize local TT
	Bluetooth: Fix memory leak in hci_req_sync_complete()
	media: cec: core: remove length check of Timer Status
	nouveau: fix function cast warning
	net: openvswitch: fix unwanted error log on timeout policy probing
	u64_stats: fix u64_stats_init() for lockdep when used repeatedly in one file
	xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING
	geneve: fix header validation in geneve[6]_xmit_skb
	octeontx2-af: Fix NIX SQ mode and BP config
	ipv6: fib: hide unused 'pn' variable
	ipv4/route: avoid unused-but-set-variable warning
	ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr
	Bluetooth: SCO: Fix not validating setsockopt user input
	netfilter: complete validation of user input
	net/mlx5: Properly link new fs rules into the tree
	af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
	af_unix: Fix garbage collector racing against connect()
	net: ena: Fix potential sign extension issue
	net: ena: Wrong missing IO completions check order
	net: ena: Fix incorrect descriptor free behavior
	iommu/vt-d: Allocate local memory for page request queue
	mailbox: imx: fix suspend failue
	btrfs: qgroup: correctly model root qgroup rsv in convert
	drm/client: Fully protect modes[] with dev->mode_config.mutex
	vhost: Add smp_rmb() in vhost_vq_avail_empty()
	x86/cpu: Actually turn off mitigations by default for SPECULATION_MITIGATIONS=n
	selftests: timers: Fix abs() warning in posix_timers test
	x86/apic: Force native_apic_mem_read() to use the MOV instruction
	irqflags: Explicitly ignore lockdep_hrtimer_exit() argument
	btrfs: record delayed inode root in transaction
	riscv: Enable per-task stack canaries
	riscv: process: Fix kernel gp leakage
	selftests/ftrace: Limit length in subsystem-enable tests
	kprobes: Fix possible use-after-free issue on kprobe registration
	Revert "tracing/trigger: Fix to return error if failed to alloc snapshot"
	netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()
	netfilter: nft_set_pipapo: do not free live element
	tun: limit printing rate when illegal packet received by tun dev
	RDMA/rxe: Fix the problem "mutex_destroy missing"
	RDMA/cm: Print the old state when cm_destroy_id gets timeout
	RDMA/mlx5: Fix port number for counter query in multi-port configuration
	drm: nv04: Fix out of bounds access
	drm/panel: visionox-rm69299: don't unregister DSI device
	clk: Remove prepare_lock hold assertion in __clk_release()
	clk: Mark 'all_lists' as const
	clk: remove extra empty line
	clk: Print an info line before disabling unused clocks
	clk: Initialize struct clk_core kref earlier
	clk: Get runtime PM before walking tree during disable_unused
	x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
	binder: check offset alignment in binder_get_object()
	thunderbolt: Avoid notify PM core about runtime PM resume
	thunderbolt: Fix wake configurations after device unplug
	comedi: vmk80xx: fix incomplete endpoint checking
	serial/pmac_zilog: Remove flawed mitigation for rx irq flood
	USB: serial: option: add Fibocom FM135-GL variants
	USB: serial: option: add support for Fibocom FM650/FG650
	USB: serial: option: add Lonsung U8300/U9300 product
	USB: serial: option: support Quectel EM060K sub-models
	USB: serial: option: add Rolling RW101-GL and RW135-GL support
	USB: serial: option: add Telit FN920C04 rmnet compositions
	Revert "usb: cdc-wdm: close race between read and workqueue"
	usb: dwc2: host: Fix dereference issue in DDMA completion flow.
	usb: Disable USB3 LPM at shutdown
	mei: me: disable RPL-S on SPS and IGN firmwares
	speakup: Avoid crash on very long word
	fs: sysfs: Fix reference leak in sysfs_break_active_protection()
	init/main.c: Fix potential static_command_line memory overflow
	drm/amdgpu: validate the parameters of bo mapping operations more clearly
	nouveau: fix instmem race condition around ptr stores
	nilfs2: fix OOB in nilfs_set_de_type
	arm64: dts: rockchip: fix alphabetical ordering RK3399 puma
	arm64: dts: rockchip: enable internal pull-up on PCIE_WAKE# for RK3399 Puma
	arm64: dts: rockchip: Remove unsupported node from the Pinebook Pro dts
	arm64: dts: mediatek: mt7622: add support for coherent DMA
	arm64: dts: mediatek: mt7622: introduce nodes for Wireless Ethernet Dispatch
	arm64: dts: mediatek: mt7622: fix clock controllers
	arm64: dts: mediatek: mt7622: fix IR nodename
	arm64: dts: mediatek: mt7622: fix ethernet controller "compatible"
	arm64: dts: mediatek: mt7622: drop "reset-names" from thermal block
	arm64: dts: mediatek: mt2712: fix validation errors
	ARC: [plat-hsdk]: Remove misplaced interrupt-cells property
	wifi: iwlwifi: mvm: remove old PASN station when adding a new one
	vxlan: drop packets from invalid src-address
	mlxsw: core: Unregister EMAD trap using FORWARD action
	NFC: trf7970a: disable all regulators on removal
	ipv4: check for NULL idev in ip_route_use_hint()
	net: usb: ax88179_178a: stop lying about skb->truesize
	net: gtp: Fix Use-After-Free in gtp_dellink
	ipvs: Fix checksumming on GSO of SCTP packets
	net: openvswitch: Fix Use-After-Free in ovs_ct_exit
	mlxsw: spectrum_acl_tcam: Fix race during rehash delayed work
	mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update
	mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash
	mlxsw: spectrum_acl_tcam: Rate limit error message
	mlxsw: spectrum_acl_tcam: Fix memory leak during rehash
	mlxsw: spectrum_acl_tcam: Fix warning during rehash
	mlxsw: spectrum_acl_tcam: Fix incorrect list API usage
	mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work
	netfilter: nf_tables: honor table dormant flag from netdev release event path
	i40e: Do not use WQ_MEM_RECLAIM flag for workqueue
	i40e: Report MFS in decimal base instead of hex
	iavf: Fix TC config comparison with existing adapter TC config
	net: ethernet: ti: am65-cpts: Fix PTPv1 message type on TX packets
	af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc().
	serial: core: Provide port lock wrappers
	serial: mxs-auart: add spinlock around changing cts state
	Revert "crypto: api - Disallow identical driver names"
	net/mlx5e: Fix a race in command alloc flow
	tracing: Show size of requested perf buffer
	tracing: Increase PERF_MAX_TRACE_SIZE to handle Sentinel1 and docker together
	PM / devfreq: Fix buffer overflow in trans_stat_show
	Bluetooth: Fix type of len in {l2cap,sco}_sock_getsockopt_old()
	Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0bda:0x4853
	btrfs: fix information leak in btrfs_ioctl_logical_to_ino()
	cpu: Re-enable CPU mitigations by default for !X86 architectures
	arm64: dts: rockchip: enable internal pull-up for Q7_THRM# on RK3399 Puma
	drm/amdgpu/sdma5.2: use legacy HDP flush for SDMA2/3
	drm/amdgpu: Fix leak when GPU memory allocation fails
	irqchip/gic-v3-its: Prevent double free on error
	ethernet: Add helper for assigning packet type when dest address does not match device address
	net: b44: set pause params only when interface is up
	stackdepot: respect __GFP_NOLOCKDEP allocation flag
	mtd: diskonchip: work around ubsan link failure
	tcp: Clean up kernel listener's reqsk in inet_twsk_purge()
	tcp: Fix NEW_SYN_RECV handling in inet_twsk_purge()
	dmaengine: owl: fix register access functions
	idma64: Don't try to serve interrupts when device is powered off
	dma: xilinx_dpdma: Fix locking
	riscv: fix VMALLOC_START definition
	riscv: Fix TASK_SIZE on 64-bit NOMMU
	i2c: smbus: fix NULL function pointer dereference
	HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up
	bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS
	udp: preserve the connected status if only UDP cmsg
	serial: core: fix kernel-doc for uart_port_unlock_irqrestore()
	riscv: Disable STACKPROTECTOR_PER_TASK if GCC_PLUGIN_RANDSTRUCT is enabled
	Linux 5.10.216

Change-Id: Ia2bf3ba6ed3f36a56f71543442427eb770a2400b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-13 16:02:17 +00:00
Greg Kroah-Hartman
9100d24dfd This is the 5.10.215 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmYaZdgACgkQONu9yGCS
 aT4oMxAA0pATFAq8RN5f9CmYlMg5HqHgzZ8lJv8P0/reOINhUa+F5sJb1n+x+Ch4
 WQbmiFeZRzfsKZ2qKhIdNR0Lg+9JOr/DtYXdSBZ6InfSWrTAIrQ9fjl5Warkmcgg
 O4WbgF5BVgU3vGFATgxLvnUZwhR1D7WK93oMDunzrT7+OqyncU3f1Uj53ZAu9030
 z18UNqnTxDLYH/CMGwAeRkaZqBev9gZ1HdgQWA27SVLqWQwZq0al81Cmlo+ECVmk
 5dF6V2pid4qfKGJjDDfx1NS0PVnoP68iK4By1SXyoFV9VBiSwp77nUUyDr7YsHsT
 u8GpZHr9jZvSO5/xtKv20NPLejTPCRKc06CbkwpikDRtGOocBL8em0GuVqlf8hMs
 KwDb6ZEzYhXZGPJHbJM+aRD1tq/KHw9X7TrldOszMQPr6lubBtscPbg1FCg3OlcC
 HUrtub0i275x7TH0dJeRTD8TRE9jRmF+tl7KQytEJM3JRrquFjLyhDj+/VJnZkiB
 lzj3FRf4zshzgz4+CAeqXO/8Lu8b3fGYmcW1acCmk7emjDcXUKojPj/Aig6T4l7P
 oCWDY3+w1E6eiyE8BazxY1KUa/41ld0VJnlW5JWGRaDFTJwrk0h6/rvf9qImSckw
 IGx24UezRyp6NS1op3Qm2iwHLr41pFRfKxNm9ppgH9iBPzOhe38=
 =pkLL
 -----END PGP SIGNATURE-----

Merge 5.10.215 into android12-5.10-lts

Changes in 5.10.215
	amdkfd: use calloc instead of kzalloc to avoid integer overflow
	Documentation/hw-vuln: Update spectre doc
	x86/cpu: Support AMD Automatic IBRS
	x86/bugs: Use sysfs_emit()
	timers: Update kernel-doc for various functions
	timers: Use del_timer_sync() even on UP
	timers: Rename del_timer_sync() to timer_delete_sync()
	wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
	media: staging: ipu3-imgu: Set fields before media_entity_pads_init()
	clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd
	smack: Set SMACK64TRANSMUTE only for dirs in smack_inode_setxattr()
	smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity()
	arm: dts: marvell: Fix maxium->maxim typo in brownstone dts
	drm/vmwgfx: stop using ttm_bo_create v2
	drm/vmwgfx: switch over to the new pin interface v2
	drm/vmwgfx/vmwgfx_cmdbuf_res: Remove unused variable 'ret'
	drm/vmwgfx: Fix some static checker warnings
	drm/vmwgfx: Fix possible null pointer derefence with invalid contexts
	serial: max310x: fix NULL pointer dereference in I2C instantiation
	media: xc4000: Fix atomicity violation in xc4000_get_frequency
	KVM: Always flush async #PF workqueue when vCPU is being destroyed
	sparc64: NMI watchdog: fix return value of __setup handler
	sparc: vDSO: fix return value of __setup handler
	crypto: qat - fix double free during reset
	crypto: qat - resolve race condition during AER recovery
	selftests/mqueue: Set timeout to 180 seconds
	ext4: correct best extent lstart adjustment logic
	block: introduce zone_write_granularity limit
	block: Clear zone limits for a non-zoned stacked queue
	bounds: support non-power-of-two CONFIG_NR_CPUS
	fat: fix uninitialized field in nostale filehandles
	ubifs: Set page uptodate in the correct place
	ubi: Check for too small LEB size in VTBL code
	ubi: correct the calculation of fastmap size
	mtd: rawnand: meson: fix scrambling mode value in command macro
	parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros
	parisc: Fix ip_fast_csum
	parisc: Fix csum_ipv6_magic on 32-bit systems
	parisc: Fix csum_ipv6_magic on 64-bit systems
	parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
	PM: suspend: Set mem_sleep_current during kernel command line setup
	clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays
	clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
	clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
	clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
	powerpc/fsl: Fix mfpmr build errors with newer binutils
	USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB
	USB: serial: add device ID for VeriFone adapter
	USB: serial: cp210x: add ID for MGP Instruments PDS100
	USB: serial: option: add MeiG Smart SLM320 product
	USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M
	PM: sleep: wakeirq: fix wake irq warning in system suspend
	mmc: tmio: avoid concurrent runs of mmc_request_done()
	fuse: fix root lookup with nonzero generation
	fuse: don't unhash root
	usb: typec: ucsi: Clean up UCSI_CABLE_PROP macros
	printk/console: Split out code that enables default console
	serial: Lock console when calling into driver before registration
	btrfs: fix off-by-one chunk length calculation at contains_pending_extent()
	PCI: Drop pci_device_remove() test of pci_dev->driver
	PCI/PM: Drain runtime-idle callbacks before driver removal
	PCI/ERR: Cache RCEC EA Capability offset in pci_init_capabilities()
	PCI: Cache PCIe Device Capabilities register
	PCI: Work around Intel I210 ROM BAR overlap defect
	PCI/ASPM: Make Intel DG2 L1 acceptable latency unlimited
	PCI/DPC: Quirk PIO log size for certain Intel Root Ports
	PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports
	Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
	dm-raid: fix lockdep waring in "pers->hot_add_disk"
	mac802154: fix llsec key resources release in mac802154_llsec_key_del
	mm: swap: fix race between free_swap_and_cache() and swapoff()
	mmc: core: Fix switch on gp3 partition
	drm/etnaviv: Restore some id values
	hwmon: (amc6821) add of_match table
	ext4: fix corruption during on-line resize
	nvmem: meson-efuse: fix function pointer type mismatch
	slimbus: core: Remove usage of the deprecated ida_simple_xx() API
	phy: tegra: xusb: Add API to retrieve the port number of phy
	usb: gadget: tegra-xudc: Use dev_err_probe()
	usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic
	speakup: Fix 8bit characters from direct synth
	PCI/ERR: Clear AER status only when we control AER
	PCI/AER: Block runtime suspend when handling errors
	nfs: fix UAF in direct writes
	kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
	PCI: dwc: endpoint: Fix advertised resizable BAR size
	vfio/platform: Disable virqfds on cleanup
	ring-buffer: Fix waking up ring buffer readers
	ring-buffer: Do not set shortest_full when full target is hit
	ring-buffer: Fix resetting of shortest_full
	ring-buffer: Fix full_waiters_pending in poll
	soc: fsl: qbman: Always disable interrupts when taking cgr_lock
	soc: fsl: qbman: Add helper for sanity checking cgr ops
	soc: fsl: qbman: Add CGR update function
	soc: fsl: qbman: Use raw spinlock for cgr_lock
	s390/zcrypt: fix reference counting on zcrypt card objects
	drm/panel: do not return negative error codes from drm_panel_get_modes()
	drm/exynos: do not return negative values from .get_modes()
	drm/imx/ipuv3: do not return negative values from .get_modes()
	drm/vc4: hdmi: do not return negative values from .get_modes()
	memtest: use {READ,WRITE}_ONCE in memory scanning
	nilfs2: fix failure to detect DAT corruption in btree and direct mappings
	nilfs2: prevent kernel bug at submit_bh_wbc()
	cpufreq: dt: always allocate zeroed cpumask
	x86/CPU/AMD: Update the Zenbleed microcode revisions
	net: hns3: tracing: fix hclgevf trace event strings
	wireguard: netlink: check for dangling peer via is_dead instead of empty list
	wireguard: netlink: access device through ctx instead of peer
	ahci: asm1064: correct count of reported ports
	ahci: asm1064: asm1166: don't limit reported ports
	drm/amd/display: Return the correct HDCP error code
	drm/amd/display: Fix noise issue on HDMI AV mute
	dm snapshot: fix lockup in dm_exception_table_exit
	vxge: remove unnecessary cast in kfree()
	x86/stackprotector/32: Make the canary into a regular percpu variable
	x86/pm: Work around false positive kmemleak report in msr_build_context()
	scripts: kernel-doc: Fix syntax error due to undeclared args variable
	comedi: comedi_test: Prevent timers rescheduling during deletion
	cpufreq: brcmstb-avs-cpufreq: fix up "add check for cpufreq_cpu_get's return value"
	netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
	netfilter: nf_tables: disallow anonymous set with timeout flag
	netfilter: nf_tables: reject constant set with timeout
	Drivers: hv: vmbus: Calculate ring buffer size for more efficient use of memory
	xfrm: Avoid clang fortify warning in copy_to_user_tmpl()
	KVM: SVM: Flush pages under kvm->lock to fix UAF in svm_register_enc_region()
	ALSA: hda/realtek - Fix headset Mic no show at resume back for Lenovo ALC897 platform
	USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command
	usb: gadget: ncm: Fix handling of zero block length packets
	usb: port: Don't try to peer unused USB ports based on location
	tty: serial: fsl_lpuart: avoid idle preamble pending if CTS is enabled
	mei: me: add arrow lake point S DID
	mei: me: add arrow lake point H DID
	vt: fix unicode buffer corruption when deleting characters
	fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
	tee: optee: Fix kernel panic caused by incorrect error handling
	xen/events: close evtchn after mapping cleanup
	printk: Update @console_may_schedule in console_trylock_spinning()
	btrfs: allocate btrfs_ioctl_defrag_range_args on stack
	x86/asm: Add _ASM_RIP() macro for x86-64 (%rip) suffix
	x86/bugs: Add asm helpers for executing VERW
	x86/entry_64: Add VERW just before userspace transition
	x86/entry_32: Add VERW just before userspace transition
	x86/bugs: Use ALTERNATIVE() instead of mds_user_clear static key
	KVM/VMX: Use BT+JNC, i.e. EFLAGS.CF to select VMRESUME vs. VMLAUNCH
	KVM/VMX: Move VERW closer to VMentry for MDS mitigation
	x86/mmio: Disable KVM mitigation when X86_FEATURE_CLEAR_CPU_BUF is set
	Documentation/hw-vuln: Add documentation for RFDS
	x86/rfds: Mitigate Register File Data Sampling (RFDS)
	KVM/x86: Export RFDS_NO and RFDS_CLEAR to guests
	perf/core: Fix reentry problem in perf_output_read_group()
	efivarfs: Request at most 512 bytes for variable names
	powerpc: xor_vmx: Add '-mhard-float' to CFLAGS
	serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO
	mm/memory-failure: fix an incorrect use of tail pages
	mm/migrate: set swap entry values of THP tail pages properly.
	init: open /initrd.image with O_LARGEFILE
	wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes
	exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
	hexagon: vmlinux.lds.S: handle attributes section
	mmc: core: Initialize mmc_blk_ioc_data
	mmc: core: Avoid negative index with array access
	net: ll_temac: platform_get_resource replaced by wrong function
	usb: cdc-wdm: close race between read and workqueue
	ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
	scsi: core: Fix unremoved procfs host directory regression
	staging: vc04_services: changen strncpy() to strscpy_pad()
	staging: vc04_services: fix information leak in create_component()
	USB: core: Add hub_get() and hub_put() routines
	usb: dwc2: host: Fix remote wakeup from hibernation
	usb: dwc2: host: Fix hibernation flow
	usb: dwc2: host: Fix ISOC flow in DDMA mode
	usb: dwc2: gadget: LPM flow fix
	usb: udc: remove warning when queue disabled ep
	usb: typec: ucsi: Ack unsupported commands
	usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset
	scsi: qla2xxx: Split FCE|EFT trace control
	scsi: qla2xxx: Fix command flush on cable pull
	scsi: qla2xxx: Delay I/O Abort on PCI error
	x86/cpu: Enable STIBP on AMD if Automatic IBRS is enabled
	PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports
	scsi: lpfc: Correct size for wqe for memset()
	USB: core: Fix deadlock in usb_deauthorize_interface()
	nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet
	ixgbe: avoid sleeping allocation in ixgbe_ipsec_vf_add_sa()
	tcp: properly terminate timers for kernel sockets
	ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields()
	bpf: Protect against int overflow for stack access size
	Octeontx2-af: fix pause frame configuration in GMP mode
	dm integrity: fix out-of-range warning
	r8169: fix issue caused by buggy BIOS on certain boards with RTL8168d
	x86/cpufeatures: Add new word for scattered features
	Bluetooth: hci_event: set the conn encrypted before conn establishes
	Bluetooth: Fix TOCTOU in HCI debugfs implementation
	netfilter: nf_tables: disallow timeout for anonymous sets
	net/rds: fix possible cp null dereference
	vfio/pci: Disable auto-enable of exclusive INTx IRQ
	vfio/pci: Lock external INTx masking ops
	vfio: Introduce interface to flush virqfd inject workqueue
	vfio/pci: Create persistent INTx handler
	vfio/platform: Create persistent IRQ handlers
	vfio/fsl-mc: Block calling interrupt handler without trigger
	io_uring: ensure '0' is returned on file registration success
	Revert "x86/mm/ident_map: Use gbpages only where full GB page should be mapped."
	mm, vmscan: prevent infinite loop for costly GFP_NOIO | __GFP_RETRY_MAYFAIL allocations
	x86/srso: Add SRSO mitigation for Hygon processors
	block: add check that partition length needs to be aligned with block size
	netfilter: nf_tables: reject new basechain after table flag update
	netfilter: nf_tables: flush pending destroy work before exit_net release
	netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get()
	netfilter: validate user input for expected length
	vboxsf: Avoid an spurious warning if load_nls_xxx() fails
	bpf, sockmap: Prevent lock inversion deadlock in map delete elem
	net/sched: act_skbmod: prevent kernel-infoleak
	net: stmmac: fix rx queue priority assignment
	erspan: make sure erspan_base_hdr is present in skb->head
	selftests: reuseaddr_conflict: add missing new line at the end of the output
	ipv6: Fix infinite recursion in fib6_dump_done().
	udp: do not transition UDP GRO fraglist partial checksums to unnecessary
	octeontx2-pf: check negative error code in otx2_open()
	i40e: fix i40e_count_filters() to count only active/new filters
	i40e: fix vf may be used uninitialized in this function warning
	scsi: qla2xxx: Update manufacturer details
	scsi: qla2xxx: Update manufacturer detail
	Revert "usb: phy: generic: Get the vbus supply"
	udp: do not accept non-tunnel GSO skbs landing in a tunnel
	net: ravb: Always process TX descriptor ring
	arm64: dts: qcom: sc7180: Remove clock for bluetooth on Trogdor
	arm64: dts: qcom: sc7180-trogdor: mark bluetooth address as broken
	ASoC: ops: Fix wraparound for mask in snd_soc_get_volsw
	ata: sata_sx4: fix pdc20621_get_from_dimm() on 64-bit
	scsi: mylex: Fix sysfs buffer lengths
	ata: sata_mv: Fix PCI device ID table declaration compilation warning
	ALSA: hda/realtek: Update Panasonic CF-SZ6 quirk to support headset with microphone
	driver core: Introduce device_link_wait_removal()
	of: dynamic: Synchronize of_changeset_destroy() with the devlink removals
	x86/mce: Make sure to grab mce_sysfs_mutex in set_bank()
	s390/entry: align system call table on 8 bytes
	riscv: Fix spurious errors from __get/put_kernel_nofault
	x86/bugs: Fix the SRSO mitigation on Zen3/4
	x86/retpoline: Do the necessary fixup to the Zen3/4 srso return thunk for !SRSO
	mptcp: don't account accept() of non-MPC client as fallback to TCP
	x86/cpufeatures: Add CPUID_LNX_5 to track recently added Linux-defined word
	objtool: Add asm version of STACK_FRAME_NON_STANDARD
	wifi: ath9k: fix LNA selection in ath_ant_try_scan()
	VMCI: Fix memcpy() run-time warning in dg_dispatch_as_host()
	panic: Flush kernel log buffer at the end
	arm64: dts: rockchip: fix rk3328 hdmi ports node
	arm64: dts: rockchip: fix rk3399 hdmi ports node
	ionic: set adminq irq affinity
	pstore/zone: Add a null pointer check to the psz_kmsg_read
	tools/power x86_energy_perf_policy: Fix file leak in get_pkg_num()
	btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks()
	btrfs: export: handle invalid inode or root reference in btrfs_get_parent()
	btrfs: send: handle path ref underflow in header iterate_inode_ref()
	net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list()
	Bluetooth: btintel: Fix null ptr deref in btintel_read_version
	Input: synaptics-rmi4 - fail probing if memory allocation for "phys" fails
	pinctrl: renesas: checker: Limit cfg reg enum checks to provided IDs
	sysv: don't call sb_bread() with pointers_lock held
	scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc()
	isofs: handle CDs with bad root inode but good Joliet root directory
	media: sta2x11: fix irq handler cast
	ext4: add a hint for block bitmap corrupt state in mb_groups
	ext4: forbid commit inconsistent quota data when errors=remount-ro
	drm/amd/display: Fix nanosec stat overflow
	SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to unsigned int
	Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default"
	libperf evlist: Avoid out-of-bounds access
	block: prevent division by zero in blk_rq_stat_sum()
	RDMA/cm: add timeout to cm_destroy_id wait
	Input: allocate keycode for Display refresh rate toggle
	platform/x86: touchscreen_dmi: Add an extra entry for a variant of the Chuwi Vi8 tablet
	ktest: force $buildonly = 1 for 'make_warnings_file' test type
	ring-buffer: use READ_ONCE() to read cpu_buffer->commit_page in concurrent environment
	tools: iio: replace seekdir() in iio_generic_buffer
	usb: typec: tcpci: add generic tcpci fallback compatible
	usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined
	fbdev: viafb: fix typo in hw_bitblt_1 and hw_bitblt_2
	drivers/nvme: Add quirks for device 126f:2262
	fbmon: prevent division by zero in fb_videomode_from_videomode()
	netfilter: nf_tables: release batch on table validation from abort path
	netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path
	netfilter: nf_tables: discard table flag update with pending basechain deletion
	tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc
	virtio: reenable config if freezing device failed
	x86/mm/pat: fix VM_PAT handling in COW mappings
	drm/i915/gt: Reset queue_priority_hint on parking
	Bluetooth: btintel: Fixe build regression
	VMCI: Fix possible memcpy() run-time warning in vmci_datagram_invoke_guest_handler()
	kbuild: dummy-tools: adjust to stricter stackprotector check
	scsi: sd: Fix wrong zone_write_granularity value during revalidate
	x86/retpoline: Add NOENDBR annotation to the SRSO dummy return thunk
	x86/head/64: Re-enable stack protection
	Linux 5.10.215

Change-Id: I45a0a9c4a0683ff5ef97315690f1f884f666e1b5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:03:55 +00:00
Robin H. Johnson
ffbeb5d4f9 tracing: Show size of requested perf buffer
commit a90afe8d020da9298c98fddb19b7a6372e2feb45 upstream.

If the perf buffer isn't large enough, provide a hint about how large it
needs to be for whatever is running.

Link: https://lkml.kernel.org/r/20210831043723.13481-1-robbat2@gentoo.org

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
2024-05-02 16:23:43 +02:00
Siddh Raman Pant
26ebeffff2 Revert "tracing/trigger: Fix to return error if failed to alloc snapshot"
This reverts commit 56cfbe6071 which is
commit 0958b33ef5a04ed91f61cef4760ac412080c4e08 upstream.

The change has an incorrect assumption about the return value because
in the current stable trees for versions 5.15 and before, the following
commit responsible for making 0 a success value is not present:
b8cc44a4d3c1 ("tracing: Remove logic for registering multiple event triggers at a time")

The return value should be 0 on failure in the current tree, because in
the functions event_trigger_callback() and event_enable_trigger_func(),
we have:

	ret = cmd_ops->reg(glob, trigger_ops, trigger_data, file);
	/*
	 * The above returns on success the # of functions enabled,
	 * but if it didn't find any functions it returns zero.
	 * Consider no functions a failure too.
	 */
	if (!ret) {
		ret = -ENOENT;

Cc: stable@kernel.org # 5.15, 5.10, 5.4, 4.19
Signed-off-by: Siddh Raman Pant <siddh.raman.pant@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-02 16:23:36 +02:00
linke li
91698804bb ring-buffer: use READ_ONCE() to read cpu_buffer->commit_page in concurrent environment
[ Upstream commit f1e30cb6369251c03f63c564006f96a54197dcc4 ]

In function ring_buffer_iter_empty(), cpu_buffer->commit_page is read
while other threads may change it. It may cause the time_stamp that read
in the next line come from a different page. Use READ_ONCE() to avoid
having to reason about compiler optimizations now and in future.

Link: https://lore.kernel.org/linux-trace-kernel/tencent_DFF7D3561A0686B5E8FC079150A02505180A@qq.com

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: linke li <lilinke99@qq.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:59:51 +02:00
Steven Rostedt (Google)
47ad5c133e ring-buffer: Fix full_waiters_pending in poll
[ Upstream commit 8145f1c35fa648da662078efab299c4467b85ad5 ]

If a reader of the ring buffer is doing a poll, and waiting for the ring
buffer to hit a specific watermark, there could be a case where it gets
into an infinite ping-pong loop.

The poll code has:

  rbwork->full_waiters_pending = true;
  if (!cpu_buffer->shortest_full ||
      cpu_buffer->shortest_full > full)
         cpu_buffer->shortest_full = full;

The writer will see full_waiters_pending and check if the ring buffer is
filled over the percentage of the shortest_full value. If it is, it calls
an irq_work to wake up all the waiters.

But the code could get into a circular loop:

	CPU 0					CPU 1
	-----					-----
 [ Poll ]
   [ shortest_full = 0 ]
   rbwork->full_waiters_pending = true;
					  if (rbwork->full_waiters_pending &&
					      [ buffer percent ] > shortest_full) {
					         rbwork->wakeup_full = true;
					         [ queue_irqwork ]

   cpu_buffer->shortest_full = full;

					  [ IRQ work ]
					  if (rbwork->wakeup_full) {
					        cpu_buffer->shortest_full = 0;
					        wakeup poll waiters;
  [woken]
   if ([ buffer percent ] > full)
      break;
   rbwork->full_waiters_pending = true;
					  if (rbwork->full_waiters_pending &&
					      [ buffer percent ] > shortest_full) {
					         rbwork->wakeup_full = true;
					         [ queue_irqwork ]

   cpu_buffer->shortest_full = full;

					  [ IRQ work ]
					  if (rbwork->wakeup_full) {
					        cpu_buffer->shortest_full = 0;
					        wakeup poll waiters;
  [woken]

 [ Wash, rinse, repeat! ]

In the poll, the shortest_full needs to be set before the
full_pending_waiters, as once that is set, the writer will compare the
current shortest_full (which is incorrect) to decide to call the irq_work,
which will reset the shortest_full (expecting the readers to update it).

Also move the setting of full_waiters_pending after the check if the ring
buffer has the required percentage filled. There's no reason to tell the
writer to wake up waiters if there are no waiters.

Link: https://lore.kernel.org/linux-trace-kernel/20240312131952.630922155@goodmis.org

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Fixes: 42fb0a1e84ff5 ("tracing/ring-buffer: Have polling block on watermark")
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:58:34 +02:00
Steven Rostedt (Google)
616a78bd68 ring-buffer: Fix resetting of shortest_full
[ Upstream commit 68282dd930ea38b068ce2c109d12405f40df3f93 ]

The "shortest_full" variable is used to keep track of the waiter that is
waiting for the smallest amount on the ring buffer before being woken up.
When a tasks waits on the ring buffer, it passes in a "full" value that is
a percentage. 0 means wake up on any data. 1-100 means wake up from 1% to
100% full buffer.

As all waiters are on the same wait queue, the wake up happens for the
waiter with the smallest percentage.

The problem is that the smallest_full on the cpu_buffer that stores the
smallest amount doesn't get reset when all the waiters are woken up. It
does get reset when the ring buffer is reset (echo > /sys/kernel/tracing/trace).

This means that tasks may be woken up more often then when they want to
be. Instead, have the shortest_full field get reset just before waking up
all the tasks. If the tasks wait again, they will update the shortest_full
before sleeping.

Also add locking around setting of shortest_full in the poll logic, and
change "work" to "rbwork" to match the variable name for rb_irq_work
structures that are used in other places.

Link: https://lore.kernel.org/linux-trace-kernel/20240308202431.948914369@goodmis.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linke li <lilinke99@qq.com>
Cc: Rabin Vincent <rabin@rab.in>
Fixes: 2c2b0a78b3 ("ring-buffer: Add percentage of ring buffer full to wake up reader")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Stable-dep-of: 8145f1c35fa6 ("ring-buffer: Fix full_waiters_pending in poll")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:58:34 +02:00
Steven Rostedt (Google)
756934d840 ring-buffer: Do not set shortest_full when full target is hit
[ Upstream commit 761d9473e27f0c8782895013a3e7b52a37c8bcfc ]

The rb_watermark_hit() checks if the amount of data in the ring buffer is
above the percentage level passed in by the "full" variable. If it is, it
returns true.

But it also sets the "shortest_full" field of the cpu_buffer that informs
writers that it needs to call the irq_work if the amount of data on the
ring buffer is above the requested amount.

The rb_watermark_hit() always sets the shortest_full even if the amount in
the ring buffer is what it wants. As it is not going to wait, because it
has what it wants, there's no reason to set shortest_full.

Link: https://lore.kernel.org/linux-trace-kernel/20240312115641.6aa8ba08@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 42fb0a1e84ff5 ("tracing/ring-buffer: Have polling block on watermark")
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:58:33 +02:00
Steven Rostedt (Google)
3d4873cf80 ring-buffer: Fix waking up ring buffer readers
[ Upstream commit b3594573681b53316ec0365332681a30463edfd6 ]

A task can wait on a ring buffer for when it fills up to a specific
watermark. The writer will check the minimum watermark that waiters are
waiting for and if the ring buffer is past that, it will wake up all the
waiters.

The waiters are in a wait loop, and will first check if a signal is
pending and then check if the ring buffer is at the desired level where it
should break out of the loop.

If a file that uses a ring buffer closes, and there's threads waiting on
the ring buffer, it needs to wake up those threads. To do this, a
"wait_index" was used.

Before entering the wait loop, the waiter will read the wait_index. On
wakeup, it will check if the wait_index is different than when it entered
the loop, and will exit the loop if it is. The waker will only need to
update the wait_index before waking up the waiters.

This had a couple of bugs. One trivial one and one broken by design.

The trivial bug was that the waiter checked the wait_index after the
schedule() call. It had to be checked between the prepare_to_wait() and
the schedule() which it was not.

The main bug is that the first check to set the default wait_index will
always be outside the prepare_to_wait() and the schedule(). That's because
the ring_buffer_wait() doesn't have enough context to know if it should
break out of the loop.

The loop itself is not needed, because all the callers to the
ring_buffer_wait() also has their own loop, as the callers have a better
sense of what the context is to decide whether to break out of the loop
or not.

Just have the ring_buffer_wait() block once, and if it gets woken up, exit
the function and let the callers decide what to do next.

Link: https://lore.kernel.org/all/CAHk-=whs5MdtNjzFkTyaUy=vHi=qwWgPi0JgTe6OYUYMNSRZfg@mail.gmail.com/
Link: https://lore.kernel.org/linux-trace-kernel/20240308202431.792933613@goodmis.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linke li <lilinke99@qq.com>
Cc: Rabin Vincent <rabin@rab.in>
Fixes: e30f53aad2 ("tracing: Do not busy wait in buffer splice")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Stable-dep-of: 761d9473e27f ("ring-buffer: Do not set shortest_full when full target is hit")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:58:33 +02:00
Greg Kroah-Hartman
66e91da883 This is the 5.10.210 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmXYTLkACgkQONu9yGCS
 aT4+fhAAqqR/Cvx53ZKMQ8GZTCudAZnr/Dz6kWYwxhhhIbQjDpCaf9mgsrEDaQS2
 ancSZjzYaOUIXq/IsthXxQIUhiZbuM3iuSEi7+odWgSYdkFyzuUt8MWLBGSaB5Er
 ojn+APtq7vPXTSnp7uMwqMC3/BHCKkeYIjRVevhhHBKG5d3lzkV1xU8NcvMkLaly
 CIRxpWXD3w2b7K0GEbb/zN1GQEHDCQcxjuaJoe/5FKGJkqd3T31eyiJTRumCCMcz
 j8vkGkYmcMJpWf04iLgVA1p13I5/HGrXdEBI/GutN8IABIC3Cp42jW8phHYKW5ZM
 a4R25LZG5buND1Ubpq+EDrYn3EaPek5XRki0w8ZAXfNa3rYc+N6mQjkzNSOzhJ/5
 VNsn3EAE1Dwtar5Z3ASe9ugDbh+0bgx85PbfaADK88V+qWb3DVr1TBWmDNu2vfVP
 rv4I0EKu9r3vOE8aNMEBuhAVkIK3mEQUxwab6RKNrMby/5Uwa+ugrrUtQd8V+T1S
 j6r6v7u7aZ8mhYO7d6WSvAKL85lCWGbs3WRIKCJZmDRyqWrWW9tVWRN9wrZ2QnRr
 iaCQKk8P474P7/j1zwnmih8l4wS1oszveNziWwd0fi1Nn/WQYM+JKYQvpuQijmQ+
 J9jLyWo7a59zffIE6mzJdNwFy9hlw9X+VnJmExk/Q88Z7Bt5wPQ=
 =laYd
 -----END PGP SIGNATURE-----

Merge 5.10.210 into android12-5.10-lts

Changes in 5.10.210
	usb: cdns3: Fixes for sparse warnings
	usb: cdns3: fix uvc failure work since sg support enabled
	usb: cdns3: fix incorrect calculation of ep_buf_size when more than one config
	usb: cdns3: fix iso transfer error when mult is not zero
	usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled
	PCI: mediatek: Clear interrupt status before dispatching handler
	units: change from 'L' to 'UL'
	units: add the HZ macros
	serial: sc16is7xx: set safe default SPI clock frequency
	spi: introduce SPI_MODE_X_MASK macro
	serial: sc16is7xx: add check for unsupported SPI modes during probe
	iio: adc: ad7091r: Set alert bit in config register
	iio: adc: ad7091r: Allow users to configure device events
	iio: adc: ad7091r: Enable internal vref if external vref is not supplied
	dmaengine: fix NULL pointer in channel unregistration function
	iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
	ext4: allow for the last group to be marked as trimmed
	crypto: api - Disallow identical driver names
	PM: hibernate: Enforce ordering during image compression/decompression
	hwrng: core - Fix page fault dead lock on mmap-ed hwrng
	crypto: s390/aes - Fix buffer overread in CTR mode
	rpmsg: virtio: Free driver_override when rpmsg_remove()
	bus: mhi: host: Drop chan lock before queuing buffers
	parisc/firmware: Fix F-extend for PDC addresses
	async: Split async_schedule_node_domain()
	async: Introduce async_schedule_dev_nocall()
	arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
	arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
	lsm: new security_file_ioctl_compat() hook
	scripts/get_abi: fix source path leak
	mmc: core: Use mrq.sbc in close-ended ffu
	mmc: mmc_spi: remove custom DMA mapped buffers
	rtc: Adjust failure return code for cmos_set_alarm()
	nouveau/vmm: don't set addr on the fail path to avoid warning
	ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
	rename(): fix the locking of subdirectories
	block: Remove special-casing of compound pages
	stddef: Introduce DECLARE_FLEX_ARRAY() helper
	smb3: Replace smb2pdu 1-element arrays with flex-arrays
	mm: vmalloc: introduce array allocation functions
	KVM: use __vcalloc for very large allocations
	net/smc: fix illegal rmb_desc access in SMC-D connection dump
	tcp: make sure init the accept_queue's spinlocks once
	bnxt_en: Wait for FLR to complete during probe
	vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
	llc: make llc_ui_sendmsg() more robust against bonding changes
	llc: Drop support for ETH_P_TR_802_2.
	net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
	tracing: Ensure visibility when inserting an element into tracing_map
	afs: Hide silly-rename files from userspace
	tcp: Add memory barrier to tcp_push()
	netlink: fix potential sleeping issue in mqueue_flush_file
	ipv6: init the accept_queue's spinlocks in inet6_create
	net/mlx5: DR, Use the right GVMI number for drop action
	net/mlx5e: fix a double-free in arfs_create_groups
	netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
	netfilter: nf_tables: validate NFPROTO_* family
	net: mvpp2: clear BM pool before initialization
	selftests: netdevsim: fix the udp_tunnel_nic test
	fjes: fix memleaks in fjes_hw_setup
	net: fec: fix the unhandled context fault from smmu
	btrfs: ref-verify: free ref cache before clearing mount opt
	btrfs: tree-checker: fix inline ref size in error messages
	btrfs: don't warn if discard range is not aligned to sector
	btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
	btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
	rbd: don't move requests to the running list on errors
	exec: Fix error handling in begin_new_exec()
	wifi: iwlwifi: fix a memory corruption
	netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
	netfilter: nf_tables: reject QUEUE/DROP verdict parameters
	gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04
	drm: Don't unref the same fb many times by mistake due to deadlock handling
	drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking
	drm/tidss: Fix atomic_flush check
	drm/bridge: nxp-ptn3460: simplify some error checking
	PM: sleep: Use dev_printk() when possible
	PM: sleep: Avoid calling put_device() under dpm_list_mtx
	PM: core: Remove unnecessary (void *) conversions
	PM: sleep: Fix possible deadlocks in core system-wide PM code
	fs/pipe: move check to pipe_has_watch_queue()
	pipe: wakeup wr_wait after setting max_usage
	ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
	arm64: dts: qcom: sc7180: Use pdc interrupts for USB instead of GIC interrupts
	arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
	media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
	mm: use __pfn_to_section() instead of open coding it
	mm/sparsemem: fix race in accessing memory_section->usage
	btrfs: remove err variable from btrfs_delete_subvolume
	btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
	drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]
	drm/exynos: fix accidental on-stack copy of exynos_drm_plane
	drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
	gpio: eic-sprd: Clear interrupt after set the interrupt type
	spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
	mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
	tick/sched: Preserve number of idle sleeps across CPU hotplug events
	x86/entry/ia32: Ensure s32 is sign extended to s64
	powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
	drivers/perf: pmuv3: don't expose SW_INCR event in sysfs
	powerpc: Fix build error due to is_valid_bugaddr()
	powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()
	x86/boot: Ignore NMIs during very early boot
	powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE
	powerpc/lib: Validate size for vector operations
	x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel
	perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
	debugobjects: Stop accessing objects after releasing hash bucket lock
	regulator: core: Only increment use_count when enable_count changes
	audit: Send netlink ACK before setting connection in auditd_set
	ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop
	PNP: ACPI: fix fortify warning
	ACPI: extlog: fix NULL pointer dereference check
	PM / devfreq: Synchronize devfreq_monitor_[start/stop]
	ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events
	FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
	UBSAN: array-index-out-of-bounds in dtSplitRoot
	jfs: fix slab-out-of-bounds Read in dtSearch
	jfs: fix array-index-out-of-bounds in dbAdjTree
	jfs: fix uaf in jfs_evict_inode
	pstore/ram: Fix crash when setting number of cpus to an odd number
	crypto: stm32/crc32 - fix parsing list of devices
	afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu()
	afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*()
	rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()
	jfs: fix array-index-out-of-bounds in diNewExt
	s390/ptrace: handle setting of fpc register correctly
	KVM: s390: fix setting of fpc register
	SUNRPC: Fix a suspicious RCU usage warning
	ecryptfs: Reject casefold directory inodes
	ext4: fix inconsistent between segment fstrim and full fstrim
	ext4: unify the type of flexbg_size to unsigned int
	ext4: remove unnecessary check from alloc_flex_gd()
	ext4: avoid online resizing failures due to oversized flex bg
	wifi: rt2x00: restart beacon queue when hardware reset
	selftests/bpf: satisfy compiler by having explicit return in btf test
	selftests/bpf: Fix pyperf180 compilation failure with clang18
	scsi: lpfc: Fix possible file string name overflow when updating firmware
	PCI: Add no PM reset quirk for NVIDIA Spectrum devices
	bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
	scsi: arcmsr: Support new PCI device IDs 1883 and 1886
	ARM: dts: imx7d: Fix coresight funnel ports
	ARM: dts: imx7s: Fix lcdif compatible
	ARM: dts: imx7s: Fix nand-controller #size-cells
	wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()
	bpf: Add map and need_defer parameters to .map_fd_put_ptr()
	scsi: libfc: Don't schedule abort twice
	scsi: libfc: Fix up timeout error in fc_fcp_rec_error()
	bpf: Set uattr->batch.count as zero before batched update or deletion
	ARM: dts: rockchip: fix rk3036 hdmi ports node
	ARM: dts: imx25/27-eukrea: Fix RTC node name
	ARM: dts: imx: Use flash@0,0 pattern
	ARM: dts: imx27: Fix sram node
	ARM: dts: imx1: Fix sram node
	ionic: pass opcode to devcmd_wait
	block/rnbd-srv: Check for unlikely string overflow
	ARM: dts: imx25: Fix the iim compatible string
	ARM: dts: imx25/27: Pass timing0
	ARM: dts: imx27-apf27dev: Fix LED name
	ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
	ARM: dts: imx23/28: Fix the DMA controller node name
	net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
	block: prevent an integer overflow in bvec_try_merge_hw_page
	md: Whenassemble the array, consult the superblock of the freshest device
	arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
	arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
	wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices
	wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
	wifi: cfg80211: free beacon_ies when overridden from hidden BSS
	Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066
	Bluetooth: L2CAP: Fix possible multiple reject send
	i40e: Fix VF disable behavior to block all traffic
	f2fs: fix to check return value of f2fs_reserve_new_block()
	ALSA: hda: Refer to correct stream index at loops
	ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
	fast_dput(): handle underflows gracefully
	RDMA/IPoIB: Fix error code return in ipoib_mcast_join
	drm/amd/display: Fix tiled display misalignment
	f2fs: fix write pointers on zoned device after roll forward
	drm/drm_file: fix use of uninitialized variable
	drm/framebuffer: Fix use of uninitialized variable
	drm/mipi-dsi: Fix detach call without attach
	media: stk1160: Fixed high volume of stk1160_dbg messages
	media: rockchip: rga: fix swizzling for RGB formats
	PCI: add INTEL_HDA_ARL to pci_ids.h
	ALSA: hda: Intel: add HDA_ARL PCI ID support
	ALSA: hda: intel-dspcfg: add filters for ARL-S and ARL
	drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
	IB/ipoib: Fix mcast list locking
	media: ddbridge: fix an error code problem in ddb_probe
	drm/msm/dpu: Ratelimit framedone timeout msgs
	clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
	clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
	watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786
	drm/amdgpu: Let KFD sync with VM fences
	drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()'
	leds: trigger: panic: Don't register panic notifier if creating the trigger failed
	um: Fix naming clash between UML and scheduler
	um: Don't use vfprintf() for os_info()
	um: net: Fix return type of uml_net_start_xmit()
	i3c: master: cdns: Update maximum prescaler value for i2c clock
	xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import
	mfd: ti_am335x_tscadc: Fix TI SoC dependencies
	PCI: Only override AMD USB controller if required
	PCI: switchtec: Fix stdev_release() crash after surprise hot remove
	usb: hub: Replace hardcoded quirk value with BIT() macro
	tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE
	fs/kernfs/dir: obey S_ISGID
	PCI/AER: Decode Requester ID when no error info found
	libsubcmd: Fix memory leak in uniq()
	virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings
	blk-mq: fix IO hang from sbitmap wakeup race
	ceph: fix deadlock or deadcode of misusing dget()
	drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in 'get_platform_power_management_table()'
	drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'
	perf: Fix the nr_addr_filters fix
	wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update
	drm: using mul_u32_u32() requires linux/math64.h
	scsi: isci: Fix an error code problem in isci_io_request_build()
	scsi: core: Introduce enum scsi_disposition
	scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler
	ip6_tunnel: use dev_sw_netstats_rx_add()
	ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()
	net-zerocopy: Refactor frag-is-remappable test.
	tcp: add sanity checks to rx zerocopy
	ixgbe: Remove non-inclusive language
	ixgbe: Refactor returning internal error codes
	ixgbe: Refactor overtemp event handling
	ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
	ipv6: Ensure natural alignment of const ipv6 loopback and router addresses
	llc: call sock_orphan() at release time
	netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
	netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
	net: ipv4: fix a memleak in ip_setup_cork
	af_unix: fix lockdep positive in sk_diag_dump_icons()
	net: sysfs: Fix /sys/class/net/<iface> path
	HID: apple: Add support for the 2021 Magic Keyboard
	HID: apple: Add 2021 magic keyboard FN key mapping
	bonding: remove print in bond_verify_device_path
	uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++
	PM: sleep: Fix error handling in dpm_prepare()
	dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
	dmaengine: ti: k3-udma: Report short packet errors
	dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
	dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
	phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
	dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
	phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
	drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case
	net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
	selftests: net: avoid just another constant wait
	tunnels: fix out of bounds access when building IPv6 PMTU error
	atm: idt77252: fix a memleak in open_card_ubr0
	hwmon: (aspeed-pwm-tacho) mutex for tach reading
	hwmon: (coretemp) Fix out-of-bounds memory access
	hwmon: (coretemp) Fix bogus core_id to attr name mapping
	inet: read sk->sk_family once in inet_recv_error()
	rxrpc: Fix response to PING RESPONSE ACKs to a dead call
	tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()
	ppp_async: limit MRU to 64K
	netfilter: nft_compat: reject unused compat flag
	netfilter: nft_compat: restrict match/target protocol to u16
	netfilter: nft_ct: reject direction for ct id
	netfilter: nft_set_pipapo: store index in scratch maps
	netfilter: nft_set_pipapo: add helper to release pcpu scratch area
	netfilter: nft_set_pipapo: remove scratch_aligned pointer
	scsi: core: Move scsi_host_busy() out of host lock if it is for per-command
	blk-iocost: Fix an UBSAN shift-out-of-bounds warning
	net/af_iucv: clean up a try_then_request_module()
	USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
	USB: serial: option: add Fibocom FM101-GL variant
	USB: serial: cp210x: add ID for IMST iM871A-USB
	usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
	hrtimer: Report offline hrtimer enqueue
	Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
	Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
	vhost: use kzalloc() instead of kmalloc() followed by memset()
	clocksource: Skip watchdog check for large watchdog intervals
	net: stmmac: xgmac: use #define for string constants
	net: stmmac: xgmac: fix a typo of register name in DPP safety handling
	netfilter: nft_set_rbtree: skip end interval element from gc
	btrfs: forbid creating subvol qgroups
	btrfs: do not ASSERT() if the newly created subvolume already got read
	btrfs: forbid deleting live subvol qgroup
	btrfs: send: return EOPNOTSUPP on unknown flags
	of: unittest: Fix compile in the non-dynamic case
	net: openvswitch: limit the number of recursions from action sets
	spi: ppc4xx: Drop write-only variable
	ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
	net: sysfs: Fix /sys/class/net/<iface> path for statistics
	MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
	i40e: Fix waiting for queues of all VSIs to be disabled
	tracing/trigger: Fix to return error if failed to alloc snapshot
	mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again
	ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32
	ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx
	HID: wacom: generic: Avoid reporting a serial of '0' to userspace
	HID: wacom: Do not register input devices until after hid_hw_start
	usb: ucsi_acpi: Fix command completion handling
	USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
	usb: f_mass_storage: forbid async queue when shutdown happen
	media: ir_toy: fix a memleak in irtoy_tx
	powerpc/kasan: Fix addr error caused by page alignment
	i2c: i801: Remove i801_set_block_buffer_mode
	i2c: i801: Fix block process call transactions
	modpost: trim leading spaces when processing source files list
	scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"
	lsm: fix the logic in security_inode_getsecctx()
	firewire: core: correct documentation of fw_csr_string() kernel API
	kbuild: Fix changing ELF file type for output of gen_btf for big endian
	nfc: nci: free rx_data_reassembly skb on NCI device cleanup
	net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()
	xen-netback: properly sync TX responses
	ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
	binder: signal epoll threads of self-work
	misc: fastrpc: Mark all sessions as invalid in cb_remove
	ext4: fix double-free of blocks due to wrong extents moved_len
	tracing: Fix wasted memory in saved_cmdlines logic
	staging: iio: ad5933: fix type mismatch regression
	iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC
	iio: accel: bma400: Fix a compilation problem
	media: rc: bpf attach/detach requires write permission
	hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove
	ring-buffer: Clean ring_buffer_poll_wait() error return
	serial: max310x: set default value when reading clock ready bit
	serial: max310x: improve crystal stable clock detection
	x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
	x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
	mmc: slot-gpio: Allow non-sleeping GPIO ro
	ALSA: hda/conexant: Add quirk for SWS JS201D
	nilfs2: fix data corruption in dsync block recovery for small block sizes
	nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
	crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked
	nfp: use correct macro for LengthSelect in BAR config
	nfp: flower: prevent re-adding mac index for bonded port
	wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()
	irqchip/irq-brcmstb-l2: Add write memory barrier before exit
	irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update
	s390/qeth: Fix potential loss of L3-IP@ in case of network issues
	ceph: prevent use-after-free in encode_cap_msg()
	of: property: fix typo in io-channels
	can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
	pmdomain: core: Move the unused cleanup to a _sync initcall
	tracing: Inform kmemleak of saved_cmdlines allocation
	Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
	bus: moxtet: Add spi device table
	PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
	mips: Fix max_mapnr being uninitialized on early stages
	crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
	serial: Add rs485_supported to uart_port
	serial: 8250_exar: Fill in rs485_supported
	serial: 8250_exar: Set missing rs485_supported flag
	scripts/decode_stacktrace.sh: silence stderr messages from addr2line/nm
	scripts/decode_stacktrace.sh: support old bash version
	scripts: decode_stacktrace: demangle Rust symbols
	scripts/decode_stacktrace.sh: optionally use LLVM utilities
	netfilter: ipset: fix performance regression in swap operation
	netfilter: ipset: Missing gc cancellations fixed
	hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()
	Revert "arm64: Stash shadow stack pointer in the task struct on interrupt"
	net: prevent mss overflow in skb_segment()
	sched/membarrier: reduce the ability to hammer on sys_membarrier
	nilfs2: fix potential bug in end_buffer_async_write
	nilfs2: replace WARN_ONs for invalid DAT metadata block requests
	dm: limit the number of targets and parameter size area
	PM: runtime: add devm_pm_runtime_enable helper
	PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
	drm/msm/dsi: Enable runtime PM
	netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
	net: bcmgenet: Fix EEE implementation
	PCI: dwc: Fix a 64bit bug in dw_pcie_ep_raise_msix_irq()
	Linux 5.10.210

Change-Id: I5e7327f58dd6abd26ac2b1e328a81c1010d1147c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-04-10 07:10:03 +00:00
Steven Rostedt (Google)
6a42eb0d21 tracing: Inform kmemleak of saved_cmdlines allocation
commit 2394ac4145ea91b92271e675a09af2a9ea6840b7 upstream.

The allocation of the struct saved_cmdlines_buffer structure changed from:

        s = kmalloc(sizeof(*s), GFP_KERNEL);
	s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL);

to:

	orig_size = sizeof(*s) + val * TASK_COMM_LEN;
	order = get_order(orig_size);
	size = 1 << (order + PAGE_SHIFT);
	page = alloc_pages(GFP_KERNEL, order);
	if (!page)
		return NULL;

	s = page_address(page);
	memset(s, 0, sizeof(*s));

	s->saved_cmdlines = kmalloc_array(TASK_COMM_LEN, val, GFP_KERNEL);

Where that s->saved_cmdlines allocation looks to be a dangling allocation
to kmemleak. That's because kmemleak only keeps track of kmalloc()
allocations. For allocations that use page_alloc() directly, the kmemleak
needs to be explicitly informed about it.

Add kmemleak_alloc() and kmemleak_free() around the page allocation so
that it doesn't give the following false positive:

unreferenced object 0xffff8881010c8000 (size 32760):
  comm "swapper", pid 0, jiffies 4294667296
  hex dump (first 32 bytes):
    ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
    ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
  backtrace (crc ae6ec1b9):
    [<ffffffff86722405>] kmemleak_alloc+0x45/0x80
    [<ffffffff8414028d>] __kmalloc_large_node+0x10d/0x190
    [<ffffffff84146ab1>] __kmalloc+0x3b1/0x4c0
    [<ffffffff83ed7103>] allocate_cmdlines_buffer+0x113/0x230
    [<ffffffff88649c34>] tracer_alloc_buffers.isra.0+0x124/0x460
    [<ffffffff8864a174>] early_trace_init+0x14/0xa0
    [<ffffffff885dd5ae>] start_kernel+0x12e/0x3c0
    [<ffffffff885f5758>] x86_64_start_reservations+0x18/0x30
    [<ffffffff885f582b>] x86_64_start_kernel+0x7b/0x80
    [<ffffffff83a001c3>] secondary_startup_64_no_verify+0x15e/0x16b

Link: https://lore.kernel.org/linux-trace-kernel/87r0hfnr9r.fsf@kernel.org/
Link: https://lore.kernel.org/linux-trace-kernel/20240214112046.09a322d6@gandalf.local.home

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Fixes: 44dc5c41b5b1 ("tracing: Fix wasted memory in saved_cmdlines logic")
Reported-by: Kalle Valo <kvalo@kernel.org>
Tested-by: Kalle Valo <kvalo@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:30 +01:00
Vincent Donnefort
92a0a5d613 ring-buffer: Clean ring_buffer_poll_wait() error return
commit 66bbea9ed6446b8471d365a22734dc00556c4785 upstream.

The return type for ring_buffer_poll_wait() is __poll_t. This is behind
the scenes an unsigned where we can set event bits. In case of a
non-allocated CPU, we do return instead -EINVAL (0xffffffea). Lucky us,
this ends up setting few error bits (EPOLLERR | EPOLLHUP | EPOLLNVAL), so
user-space at least is aware something went wrong.

Nonetheless, this is an incorrect code. Replace that -EINVAL with a
proper EPOLLERR to clean that output. As this doesn't change the
behaviour, there's no need to treat this change as a bug fix.

Link: https://lore.kernel.org/linux-trace-kernel/20240131140955.3322792-1-vdonnefort@google.com

Cc: stable@vger.kernel.org
Fixes: 6721cb6002 ("ring-buffer: Do not poll non allocated cpu buffers")
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:27 +01:00
Steven Rostedt (Google)
8a744f925d tracing: Fix wasted memory in saved_cmdlines logic
commit 44dc5c41b5b1267d4dd037d26afc0c4d3a568acb upstream.

While looking at improving the saved_cmdlines cache I found a huge amount
of wasted memory that should be used for the cmdlines.

The tracing data saves pids during the trace. At sched switch, if a trace
occurred, it will save the comm of the task that did the trace. This is
saved in a "cache" that maps pids to comms and exposed to user space via
the /sys/kernel/tracing/saved_cmdlines file. Currently it only caches by
default 128 comms.

The structure that uses this creates an array to store the pids using
PID_MAX_DEFAULT (which is usually set to 32768). This causes the structure
to be of the size of 131104 bytes on 64 bit machines.

In hex: 131104 = 0x20020, and since the kernel allocates generic memory in
powers of two, the kernel would allocate 0x40000 or 262144 bytes to store
this structure. That leaves 131040 bytes of wasted space.

Worse, the structure points to an allocated array to store the comm names,
which is 16 bytes times the amount of names to save (currently 128), which
is 2048 bytes. Instead of allocating a separate array, make the structure
end with a variable length string and use the extra space for that.

This is similar to a recommendation that Linus had made about eventfs_inode names:

  https://lore.kernel.org/all/20240130190355.11486-5-torvalds@linux-foundation.org/

Instead of allocating a separate string array to hold the saved comms,
have the structure end with: char saved_cmdlines[]; and round up to the
next power of two over sizeof(struct saved_cmdline_buffers) + num_cmdlines * TASK_COMM_LEN
It will use this extra space for the saved_cmdline portion.

Now, instead of saving only 128 comms by default, by using this wasted
space at the end of the structure it can save over 8000 comms and even
saves space by removing the need for allocating the other array.

Link: https://lore.kernel.org/linux-trace-kernel/20240209063622.1f7b6d5f@rorschach.local.home

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Vincent Donnefort <vdonnefort@google.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Mete Durlu <meted@linux.ibm.com>
Fixes: 939c7a4f04 ("tracing: Introduce saved_cmdlines_size file")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:27 +01:00
Masami Hiramatsu (Google)
56cfbe6071 tracing/trigger: Fix to return error if failed to alloc snapshot
commit 0958b33ef5a04ed91f61cef4760ac412080c4e08 upstream.

Fix register_snapshot_trigger() to return error code if it failed to
allocate a snapshot instead of 0 (success). Unless that, it will register
snapshot trigger without an error.

Link: https://lore.kernel.org/linux-trace-kernel/170622977792.270660.2789298642759362200.stgit@devnote2

Fixes: 0bbe7f7199 ("tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation")
Cc: stable@vger.kernel.org
Cc: Vincent Donnefort <vdonnefort@google.com>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:24 +01:00
Petr Pavlu
ef70dfa0b1 tracing: Ensure visibility when inserting an element into tracing_map
[ Upstream commit 2b44760609e9eaafc9d234a6883d042fc21132a7 ]

Running the following two commands in parallel on a multi-processor
AArch64 machine can sporadically produce an unexpected warning about
duplicate histogram entries:

 $ while true; do
     echo hist:key=id.syscall:val=hitcount > \
       /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger
     cat /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/hist
     sleep 0.001
   done
 $ stress-ng --sysbadaddr $(nproc)

The warning looks as follows:

[ 2911.172474] ------------[ cut here ]------------
[ 2911.173111] Duplicates detected: 1
[ 2911.173574] WARNING: CPU: 2 PID: 12247 at kernel/trace/tracing_map.c:983 tracing_map_sort_entries+0x3e0/0x408
[ 2911.174702] Modules linked in: iscsi_ibft(E) iscsi_boot_sysfs(E) rfkill(E) af_packet(E) nls_iso8859_1(E) nls_cp437(E) vfat(E) fat(E) ena(E) tiny_power_button(E) qemu_fw_cfg(E) button(E) fuse(E) efi_pstore(E) ip_tables(E) x_tables(E) xfs(E) libcrc32c(E) aes_ce_blk(E) aes_ce_cipher(E) crct10dif_ce(E) polyval_ce(E) polyval_generic(E) ghash_ce(E) gf128mul(E) sm4_ce_gcm(E) sm4_ce_ccm(E) sm4_ce(E) sm4_ce_cipher(E) sm4(E) sm3_ce(E) sm3(E) sha3_ce(E) sha512_ce(E) sha512_arm64(E) sha2_ce(E) sha256_arm64(E) nvme(E) sha1_ce(E) nvme_core(E) nvme_auth(E) t10_pi(E) sg(E) scsi_mod(E) scsi_common(E) efivarfs(E)
[ 2911.174738] Unloaded tainted modules: cppc_cpufreq(E):1
[ 2911.180985] CPU: 2 PID: 12247 Comm: cat Kdump: loaded Tainted: G            E      6.7.0-default #2 1b58bbb22c97e4399dc09f92d309344f69c44a01
[ 2911.182398] Hardware name: Amazon EC2 c7g.8xlarge/, BIOS 1.0 11/1/2018
[ 2911.183208] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[ 2911.184038] pc : tracing_map_sort_entries+0x3e0/0x408
[ 2911.184667] lr : tracing_map_sort_entries+0x3e0/0x408
[ 2911.185310] sp : ffff8000a1513900
[ 2911.185750] x29: ffff8000a1513900 x28: ffff0003f272fe80 x27: 0000000000000001
[ 2911.186600] x26: ffff0003f272fe80 x25: 0000000000000030 x24: 0000000000000008
[ 2911.187458] x23: ffff0003c5788000 x22: ffff0003c16710c8 x21: ffff80008017f180
[ 2911.188310] x20: ffff80008017f000 x19: ffff80008017f180 x18: ffffffffffffffff
[ 2911.189160] x17: 0000000000000000 x16: 0000000000000000 x15: ffff8000a15134b8
[ 2911.190015] x14: 0000000000000000 x13: 205d373432323154 x12: 5b5d313131333731
[ 2911.190844] x11: 00000000fffeffff x10: 00000000fffeffff x9 : ffffd1b78274a13c
[ 2911.191716] x8 : 000000000017ffe8 x7 : c0000000fffeffff x6 : 000000000057ffa8
[ 2911.192554] x5 : ffff0012f6c24ec0 x4 : 0000000000000000 x3 : ffff2e5b72b5d000
[ 2911.193404] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0003ff254480
[ 2911.194259] Call trace:
[ 2911.194626]  tracing_map_sort_entries+0x3e0/0x408
[ 2911.195220]  hist_show+0x124/0x800
[ 2911.195692]  seq_read_iter+0x1d4/0x4e8
[ 2911.196193]  seq_read+0xe8/0x138
[ 2911.196638]  vfs_read+0xc8/0x300
[ 2911.197078]  ksys_read+0x70/0x108
[ 2911.197534]  __arm64_sys_read+0x24/0x38
[ 2911.198046]  invoke_syscall+0x78/0x108
[ 2911.198553]  el0_svc_common.constprop.0+0xd0/0xf8
[ 2911.199157]  do_el0_svc+0x28/0x40
[ 2911.199613]  el0_svc+0x40/0x178
[ 2911.200048]  el0t_64_sync_handler+0x13c/0x158
[ 2911.200621]  el0t_64_sync+0x1a8/0x1b0
[ 2911.201115] ---[ end trace 0000000000000000 ]---

The problem appears to be caused by CPU reordering of writes issued from
__tracing_map_insert().

The check for the presence of an element with a given key in this
function is:

 val = READ_ONCE(entry->val);
 if (val && keys_match(key, val->key, map->key_size)) ...

The write of a new entry is:

 elt = get_free_elt(map);
 memcpy(elt->key, key, map->key_size);
 entry->val = elt;

The "memcpy(elt->key, key, map->key_size);" and "entry->val = elt;"
stores may become visible in the reversed order on another CPU. This
second CPU might then incorrectly determine that a new key doesn't match
an already present val->key and subsequently insert a new element,
resulting in a duplicate.

Fix the problem by adding a write barrier between
"memcpy(elt->key, key, map->key_size);" and "entry->val = elt;", and for
good measure, also use WRITE_ONCE(entry->val, elt) for publishing the
element. The sequence pairs with the mentioned "READ_ONCE(entry->val);"
and the "val->key" check which has an address dependency.

The barrier is placed on a path executed when adding an element for
a new key. Subsequent updates targeting the same key remain unaffected.

From the user's perspective, the issue was introduced by commit
c193707dde ("tracing: Remove code which merges duplicates"), which
followed commit cbf4100efb ("tracing: Add support to detect and avoid
duplicates"). The previous code operated differently; it inherently
expected potential races which result in duplicates but merged them
later when they occurred.

Link: https://lore.kernel.org/linux-trace-kernel/20240122150928.27725-1-petr.pavlu@suse.com

Fixes: c193707dde ("tracing: Remove code which merges duplicates")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Acked-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-23 08:41:56 +01:00
Greg Kroah-Hartman
7e6944b050 This is the 5.10.209 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWy4soACgkQONu9yGCS
 aT5VxA/8DwcU5ST4AJ4EOaaWHUU/HHMV2/bSOLDhVTEl4gEnaj3LeOz2bIrfzNgb
 9bHBYCtl3PFl+hZxY3wvC55o80SeIjskpU9rHvzQ36y8dd+uIfXjhLHPBHV7AO4m
 Yu6+dEoaJqFpVgyBKn+YFg6x0w8m1sWX5tcrQRkcMt/REak91bqdf8l0JDz1Jd2d
 uiCh3ssy9yNl7UTdPovzgK9IZ4zv0Kk13F9lXcsMEmjmB3awyaQlglBlCG0NEUKj
 wRWzT4uKHHcW4sHg/UyEfVUnKQGZvf7/eOAXK2kEsBFSzcl+QLwZxWSmRDL81dzl
 1jjivPCQKtEPZqIZnDQuNvtijw5NNT/yJ5yRlJ7qmuCuBA/2VYqecEAVERhd6dYj
 le6oMu3340G5Dyq43XhOtPf+Fm1HkuMtQ49oyK8k/nEZSFGDWlrJ//cuOWYjUbpo
 d/fgCaLCxAm60KPiCnGdC7GQcIDJBbgjC3XDvxYGLA0ee+31XqhHDTlOkeHv+7oP
 3PwSssT/M4Ppwzb0Imna/qaCO7lKUbS4oQSLahbfGg+fyAKfM7N3No7raF+L4VIE
 RACbvKrSfv2WuTncQBdd/kQ2kvhuGMD4L1WjXNFi2VQzI2JbEcYZcJWYXF5tvCNj
 aotDJumjF0WtGWcEdKg8Cr2AArMm6dHmRS5VVIG+taWpiWIl5lc=
 =iU8L
 -----END PGP SIGNATURE-----

Merge 5.10.209 into android12-5.10-lts

Changes in 5.10.209
	f2fs: explicitly null-terminate the xattr list
	pinctrl: lochnagar: Don't build on MIPS
	ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
	mptcp: fix uninit-value in mptcp_incoming_options
	debugfs: fix automount d_fsdata usage
	drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer
	nvme-core: check for too small lba shift
	ASoC: wm8974: Correct boost mixer inputs
	ASoC: Intel: Skylake: Fix mem leak in few functions
	ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
	ASoC: Intel: Skylake: mem leak in skl register function
	ASoC: cs43130: Fix the position of const qualifier
	ASoC: cs43130: Fix incorrect frame delay configuration
	ASoC: rt5650: add mutex to avoid the jack detection failure
	nouveau/tu102: flush all pdbs on vmm flush
	net/tg3: fix race condition in tg3_reset_task()
	ASoC: da7219: Support low DC impedance headset
	nvme: introduce helper function to get ctrl state
	drm/exynos: fix a potential error pointer dereference
	drm/exynos: fix a wrong error checking
	clk: rockchip: rk3128: Fix HCLK_OTG gate register
	jbd2: correct the printing of write_flags in jbd2_write_superblock()
	drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
	neighbour: Don't let neigh_forced_gc() disable preemption for long
	jbd2: fix soft lockup in journal_finish_inode_data_buffers()
	tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
	tracing: Add size check when printing trace_marker output
	ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
	reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
	Input: atkbd - skip ATKBD_CMD_GETID in translated mode
	Input: i8042 - add nomux quirk for Acer P459-G2-M
	s390/scm: fix virtual vs physical address confusion
	ARC: fix spare error
	Input: xpad - add Razer Wolverine V2 support
	i2c: rk3x: fix potential spinlock recursion on poll
	ida: Fix crash in ida_free when the bitmap is empty
	net: qrtr: ns: Return 0 if server port is not present
	ARM: sun9i: smp: fix return code check of of_property_match_string
	drm/crtc: fix uninitialized variable use
	ACPI: resource: Add another DMI match for the TongFang GMxXGxx
	binder: use EPOLLERR from eventpoll.h
	binder: fix trivial typo of binder_free_buf_locked()
	binder: fix comment on binder_alloc_new_buf() return value
	uio: Fix use-after-free in uio_open
	parport: parport_serial: Add Brainboxes BAR details
	parport: parport_serial: Add Brainboxes device IDs and geometry
	PCI: Add ACS quirk for more Zhaoxin Root Ports
	coresight: etm4x: Fix width of CCITMIN field
	x86/lib: Fix overflow when counting digits
	EDAC/thunderx: Fix possible out-of-bounds string access
	powerpc: add crtsavres.o to always-y instead of extra-y
	powerpc: Remove in_kernel_text()
	powerpc/44x: select I2C for CURRITUCK
	powerpc/pseries/memhotplug: Quieten some DLPAR operations
	powerpc/pseries/memhp: Fix access beyond end of drmem array
	selftests/powerpc: Fix error handling in FPU/VMX preemption tests
	powerpc/powernv: Add a null pointer check to scom_debug_init_one()
	powerpc/powernv: Add a null pointer check in opal_event_init()
	powerpc/powernv: Add a null pointer check in opal_powercap_init()
	powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
	spi: spi-zynqmp-gqspi: fix driver kconfig dependencies
	mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
	ACPI: video: check for error while searching for backlight device parent
	ACPI: LPIT: Avoid u32 multiplication overflow
	of: property: define of_property_read_u{8,16,32,64}_array() unconditionally
	of: Add of_property_present() helper
	cpufreq: Use of_property_present() for testing DT property presence
	cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
	net: netlabel: Fix kerneldoc warnings
	netlabel: remove unused parameter in netlbl_netlink_auditinfo()
	calipso: fix memory leak in netlbl_calipso_add_pass()
	efivarfs: force RO when remounting if SetVariable is not supported
	spi: sh-msiof: Enforce fixed DTDL for R-Car H3
	ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
	mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
	selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
	virtio_crypto: Introduce VIRTIO_CRYPTO_NOSPC
	virtio-crypto: introduce akcipher service
	virtio-crypto: implement RSA algorithm
	virtio-crypto: change code style
	virtio-crypto: use private buffer for control request
	virtio-crypto: wait ctrl queue instead of busy polling
	crypto: virtio - Handle dataq logic with tasklet
	crypto: sa2ul - Return crypto_aead_setkey to transfer the error
	crypto: ccp - fix memleak in ccp_init_dm_workarea
	crypto: af_alg - Disallow multiple in-flight AIO requests
	crypto: sahara - remove FLAGS_NEW_KEY logic
	crypto: sahara - fix cbc selftest failure
	crypto: sahara - fix ahash selftest failure
	crypto: sahara - fix processing requests with cryptlen < sg->length
	crypto: sahara - fix error handling in sahara_hw_descriptor_create()
	pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
	fs: indicate request originates from old mount API
	Revert "gfs2: Don't reject a supposedly full bitmap if we have blocks reserved"
	gfs2: Also reflect single-block allocations in rgd->rd_extfail_pt
	gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
	crypto: virtio - Wait for tasklet to complete on device remove
	crypto: sahara - avoid skcipher fallback code duplication
	crypto: sahara - handle zero-length aes requests
	crypto: sahara - fix ahash reqsize
	crypto: sahara - fix wait_for_completion_timeout() error handling
	crypto: sahara - improve error handling in sahara_sha_process()
	crypto: sahara - fix processing hash requests with req->nbytes < sg->length
	crypto: sahara - do not resize req->src when doing hash operations
	crypto: scomp - fix req->dst buffer overflow
	blocklayoutdriver: Fix reference leak of pnfs_device_node
	NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
	wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
	bpf, lpm: Fix check prefixlen before walking trie
	bpf: Add crosstask check to __bpf_get_stack
	wifi: ath11k: Defer on rproc_get failure
	wifi: libertas: stop selecting wext
	ARM: dts: qcom: apq8064: correct XOADC register address
	ncsi: internal.h: Fix a spello
	net/ncsi: Fix netlink major/minor version numbers
	firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
	firmware: meson_sm: populate platform devices from sm device tree data
	wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
	arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
	bpf: fix check for attempt to corrupt spilled pointer
	scsi: fnic: Return error if vmalloc() failed
	arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
	arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
	bpf: Fix verification of indirect var-off stack access
	scsi: hisi_sas: Replace with standard error code return value
	selftests/net: fix grep checking for fib_nexthop_multiprefix
	virtio/vsock: fix logic which reduces credit update messages
	dma-mapping: Add dma_release_coherent_memory to DMA API
	dma-mapping: clear dev->dma_mem to NULL after freeing it
	wifi: rtlwifi: add calculate_bit_shift()
	wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
	rtlwifi: rtl8192de: make arrays static const, makes object smaller
	wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
	wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
	netfilter: nf_tables: mark newset as dead on transaction abort
	Bluetooth: Fix bogus check for re-auth no supported with non-ssp
	Bluetooth: btmtkuart: fix recv_buf() return value
	ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
	ARM: davinci: always select CONFIG_CPU_ARM926T
	RDMA/usnic: Silence uninitialized symbol smatch warnings
	drm/panel-elida-kd35t133: hold panel in reset for unprepare
	rcu: Create an unrcu_pointer() to remove __rcu from a pointer
	drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer
	drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
	media: pvrusb2: fix use after free on context disconnection
	drm/bridge: Fix typo in post_disable() description
	f2fs: fix to avoid dirent corruption
	drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
	drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
	drm/radeon: check return value of radeon_ring_lock()
	ASoC: cs35l33: Fix GPIO name and drop legacy include
	ASoC: cs35l34: Fix GPIO name and drop legacy include
	drm/msm/mdp4: flush vblank event on disable
	drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
	drm/drv: propagate errors from drm_modeset_register_all()
	drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
	drm/radeon/dpm: fix a memleak in sumo_parse_power_table
	drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
	drm/bridge: tc358767: Fix return value on error case
	media: cx231xx: fix a memleak in cx231xx_init_isoc
	clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
	media: rkisp1: Disable runtime PM in probe error path
	f2fs: fix to check compress file in f2fs_move_file_range()
	f2fs: fix to update iostat correctly in f2fs_filemap_fault()
	media: dvbdev: drop refcount on error path in dvb_device_open()
	media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
	drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
	drm/amd/pm: fix a double-free in si_dpm_init
	drivers/amd/pm: fix a use-after-free in kv_parse_power_table
	gpu/drm/radeon: fix two memleaks in radeon_vm_init
	dt-bindings: clock: Update the videocc resets for sm8150
	clk: qcom: videocc-sm8150: Update the videocc resets
	clk: qcom: videocc-sm8150: Add missing PLL config property
	drivers: clk: zynqmp: calculate closest mux rate
	clk: zynqmp: make bestdiv unsigned
	clk: zynqmp: Add a check for NULL pointer
	drivers: clk: zynqmp: update divider round rate logic
	watchdog: set cdev owner before adding
	watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
	watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
	watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused
	clk: si5341: fix an error code problem in si5341_output_clk_set_rate
	clk: fixed-rate: add devm_clk_hw_register_fixed_rate
	clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw
	pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
	pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
	pwm: stm32: Fix enable count for clk in .probe()
	mmc: sdhci_am654: Fix TI SoC dependencies
	mmc: sdhci_omap: Fix TI SoC dependencies
	IB/iser: Prevent invalidating wrong MR
	of: Fix double free in of_parse_phandle_with_args_map
	of: unittest: Fix of_count_phandle_with_args() expected value message
	keys, dns: Fix size check of V1 server-list header
	binder: fix async space check for 0-sized buffers
	binder: fix unused alloc->free_async_space
	binder: fix use-after-free in shinker's callback
	Input: atkbd - use ab83 as id when skipping the getid command
	dma-mapping: Fix build error unused-value
	virtio-crypto: fix memory-leak
	virtio-crypto: fix memory leak in virtio_crypto_alg_skcipher_close_session()
	Revert "ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek"
	kprobes: Fix to handle forcibly unoptimized kprobes on freeing_list
	net: ethernet: mtk_eth_soc: remove duplicate if statements
	xen-netback: don't produce zero-size SKB frags
	binder: fix race between mmput() and do_exit()
	tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
	usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
	usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
	Revert "usb: dwc3: Soft reset phy on probe for host"
	Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
	usb: chipidea: wait controller resume finished for wakeup irq
	Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
	usb: typec: class: fix typec_altmode_put_partner to put plugs
	usb: mon: Fix atomicity violation in mon_bin_vma_fault
	serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
	ALSA: oxygen: Fix right channel of capture volume mixer
	ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
	fbdev: flush deferred work in fb_deferred_io_fsync()
	pwm: jz4740: Don't use dev_err_probe() in .request()
	io_uring/rw: ensure io->bytes_done is always initialized
	rootfs: Fix support for rootfstype= when root= is given
	Bluetooth: Fix atomicity violation in {min,max}_key_size_set
	iommu/arm-smmu-qcom: Add missing GMU entry to match table
	wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
	wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
	wifi: mwifiex: configure BSSID consistently when starting AP
	x86/kvm: Do not try to disable kvmclock if it was not enabled
	KVM: arm64: vgic-v4: Restore pending state on host userspace write
	KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
	iio: adc: ad7091r: Pass iio_dev to event handler
	HID: wacom: Correct behavior when processing some confidence == false touches
	mfd: syscon: Fix null pointer dereference in of_syscon_register()
	leds: aw2013: Select missing dependency REGMAP_I2C
	mips: dmi: Fix early remap on MIPS32
	mips: Fix incorrect max_low_pfn adjustment
	MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
	MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
	power: supply: cw2015: correct time_to_empty units in sysfs
	serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
	libapi: Add missing linux/types.h header to get the __u64 type on io.h
	acpi: property: Let args be NULL in __acpi_node_get_property_reference
	software node: Let args be NULL in software_node_get_reference_args
	serial: imx: fix tx statemachine deadlock
	iio: adc: ad9467: Benefit from devm_clk_get_enabled() to simplify
	iio: adc: ad9467: fix reset gpio handling
	iio: adc: ad9467: don't ignore error codes
	iio: adc: ad9467: fix scale setting
	perf genelf: Set ELF program header addresses properly
	tty: change tty_write_lock()'s ndelay parameter to bool
	tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
	tty: don't check for signal_pending() in send_break()
	tty: use 'if' in send_break() instead of 'goto'
	usb: cdc-acm: return correct error code on unsupported break
	nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
	nvmet-tcp: fix a crash in nvmet_req_complete()
	perf env: Avoid recursively taking env->bpf_progs.lock
	apparmor: avoid crash when parsed profile name is empty
	serial: imx: Correct clock error message in function probe()
	nvmet-tcp: Fix the H2C expected PDU len calculation
	PCI: keystone: Fix race condition when initializing PHYs
	s390/pci: fix max size calculation in zpci_memcpy_toio()
	net: qualcomm: rmnet: fix global oob in rmnet_policy
	net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames
	net: phy: micrel: populate .soft_reset for KSZ9131
	net: ravb: Fix dma_addr_t truncation in error case
	net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
	netfilter: nf_tables: do not allow mismatch field size and set key length
	netfilter: nf_tables: skip dead set elements in netlink dump
	netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description
	ipvs: avoid stat macros calls from preemptible context
	kdb: Fix a potential buffer overflow in kdb_local()
	ethtool: netlink: Add missing ethnl_ops_begin/complete
	mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
	mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
	mlxsw: spectrum_acl_tcam: Add missing mutex_destroy()
	mlxsw: spectrum_acl_tcam: Make fini symmetric to init
	mlxsw: spectrum_acl_tcam: Reorder functions to avoid forward declarations
	mlxsw: spectrum_acl_tcam: Fix stack corruption
	selftests: mlxsw: qos_pfc: Convert to iproute2 dcb
	selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
	i2c: s3c24xx: fix read transfers in polling mode
	i2c: s3c24xx: fix transferring more than one message in polling mode
	arm64: dts: armada-3720-turris-mox: set irq type for RTC
	Linux 5.10.209

Change-Id: I86438e299a811ccb08c5a27b2259c33cd482ff00
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-27 03:00:58 +00:00
Steven Rostedt (Google)
8d6913d050 ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
[ Upstream commit 712292308af2265cd9b126aedfa987f10f452a33 ]

As the ring buffer recording requires cmpxchg() to work, if the
architecture does not support cmpxchg in NMI, then do not do any recording
within an NMI.

Link: https://lore.kernel.org/linux-trace-kernel/20231213175403.6fc18540@gandalf.local.home

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:37:37 -08:00
Steven Rostedt (Google)
439f3bbf75 tracing: Add size check when printing trace_marker output
[ Upstream commit 60be76eeabb3d83858cc6577fc65c7d0f36ffd42 ]

If for some reason the trace_marker write does not have a nul byte for the
string, it will overflow the print:

  trace_seq_printf(s, ": %s", field->buf);

The field->buf could be missing the nul byte. To prevent overflow, add the
max size that the buf can be by using the event size and the field
location.

  int max = iter->ent_size - offsetof(struct print_entry, buf);

  trace_seq_printf(s, ": %*.s", max, field->buf);

Link: https://lore.kernel.org/linux-trace-kernel/20231212084444.4619b8ce@gandalf.local.home

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:37:37 -08:00
Steven Rostedt (Google)
bc6619c9aa tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
[ Upstream commit b55b0a0d7c4aa2dac3579aa7e6802d1f57445096 ]

If a large event was added to the ring buffer that is larger than what the
trace_seq can handle, it just drops the output:

 ~# cat /sys/kernel/tracing/trace
 # tracer: nop
 #
 # entries-in-buffer/entries-written: 2/2   #P:8
 #
 #                                _-----=> irqs-off/BH-disabled
 #                               / _----=> need-resched
 #                              | / _---=> hardirq/softirq
 #                              || / _--=> preempt-depth
 #                              ||| / _-=> migrate-disable
 #                              |||| /     delay
 #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
 #              | |         |   |||||     |         |
            <...>-859     [001] .....   141.118951: tracing_mark_write           <...>-859     [001] .....   141.148201: tracing_mark_write: 78901234

Instead, catch this case and add some context:

 ~# cat /sys/kernel/tracing/trace
 # tracer: nop
 #
 # entries-in-buffer/entries-written: 2/2   #P:8
 #
 #                                _-----=> irqs-off/BH-disabled
 #                               / _----=> need-resched
 #                              | / _---=> hardirq/softirq
 #                              || / _--=> preempt-depth
 #                              ||| / _-=> migrate-disable
 #                              |||| /     delay
 #           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
 #              | |         |   |||||     |         |
            <...>-852     [001] .....   121.550551: tracing_mark_write[LINE TOO BIG]
            <...>-852     [001] .....   121.550581: tracing_mark_write: 78901234

This now emulates the same output as trace_pipe.

Link: https://lore.kernel.org/linux-trace-kernel/20231209171058.78c1a026@gandalf.local.home

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:37:37 -08:00
Greg Kroah-Hartman
8a9d593fd6 This is the 5.10.206 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWYDlYACgkQONu9yGCS
 aT5i8A//V/cQxM4ABg2SGkOLg9TFEmUC/TsrvbmSjwTTpOgi1XuncuxBxoLz6eb4
 G8nCmFjuh2E8YL2WMXn5Gs891J6enlc+Pg8Iz54NVXKff4RJZy2zP2KEVmHwYS5R
 Bm2uUsfqQFXZ4V6tRUBiUTtk/aLyNKbiJEV/eg/1NL27xoNTfWFICnq8Jr7liCxt
 kedPiN6MAVzHCJ00IPRSFFuVHgofI1lPhCg6qbU0KEmfU/3sXZ3hP4ewBI/QbAIF
 MO3XLXTpWU8QnKqr50cnW30pxhm+Lc/n/TokgRC0Ng1YtDms6zFyLxCX5CDH1FHf
 Y3QhS5HVZmR2x7Ga5wd8gLwoXun/HU7y+GCVD1ToiWch/zF/vUgYK80Hkxsc/0Wf
 UUs8erxkGKpidpOrqNOgHxeTtpLbTVYGi/F8XMoohUW7qmlLvyiezU/wHapJ6EZA
 T93QS/WhY993b2Hz7apu3o7Jm9ZpiVIpoRiniWRkcoLltZM7RdZTqnIHr/0PAZbD
 qtOzQrCDCT5EMZz9rjI45K9K5pOA8cVhjehnQaG93DSiVp0wu+uP/Ib15oZiVA/q
 k+uW5YgT03HZQ8QTcW4d87mLqkl5PqzpWRRBQZw9aN22YQ9wyUEPpjliZgDpjjXE
 lKtr4S2Sudfpt5kiH72MYZbMqsgn8TT56lumL6ZplEvlPH/J76Y=
 =Xj2r
 -----END PGP SIGNATURE-----

Merge 5.10.206 into android12-5.10-lts

Changes in 5.10.206
	ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
	smb: client: fix OOB in smb2_query_reparse_point()
	ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
	reset: Fix crash when freeing non-existent optional resets
	s390/vx: fix save/restore of fpu kernel context
	wifi: mac80211: mesh_plink: fix matches_local logic
	Revert "net/mlx5e: fix double free of encap_header"
	net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
	net/mlx5: Fix fw tracer first block check
	net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors
	net: sched: ife: fix potential use-after-free
	ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
	net/rose: fix races in rose_kill_by_device()
	net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
	afs: Fix the dynamic root's d_delete to always delete unused dentries
	afs: Fix dynamic root lookup DNS check
	net: warn if gso_type isn't set for a GSO SKB
	net: check dev->gso_max_size in gso_features_check()
	keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
	afs: Fix overwriting of result of DNS query
	i2c: aspeed: Handle the coalesced stop conditions with the start conditions.
	pinctrl: at91-pio4: use dedicated lock class for IRQ
	ALSA: hda/hdmi: Add quirk to force pin connectivity on NUC10
	ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
	smb: client: fix NULL deref in asn1_ber_decoder()
	btrfs: do not allow non subvolume root targets for snapshot
	interconnect: Treat xlate() returning NULL node as an error
	iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
	Input: ipaq-micro-keys - add error handling for devm_kmemdup
	scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
	iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
	iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
	wifi: cfg80211: Add my certificate
	wifi: cfg80211: fix certs build to not depend on file order
	USB: serial: ftdi_sio: update Actisense PIDs constant names
	USB: serial: option: add Quectel EG912Y module support
	USB: serial: option: add Foxconn T99W265 with new baseline
	USB: serial: option: add Quectel RM500Q R13 firmware support
	Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
	Bluetooth: L2CAP: Send reject on command corrupted request
	Input: soc_button_array - add mapping for airplane mode button
	net: 9p: avoid freeing uninit memory in p9pdu_vreadf
	net: rfkill: gpio: set GPIO direction
	net: ks8851: Fix TX stall caused by TX buffer overrun
	dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp
	tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
	bus: ti-sysc: Flush posted write only after srst_udelay
	lib/vsprintf: Fix %pfwf when current node refcount == 0
	x86/alternatives: Sync core before enabling interrupts
	9p/net: fix possible memory leak in p9_check_errors()
	ARM: dts: Fix occasional boot hang for am3 usb
	Bluetooth: SMP: Convert BT_ERR/BT_DBG to bt_dev_err/bt_dev_dbg
	Bluetooth: use inclusive language in SMP
	Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE
	usb: fotg210-hcd: delete an incorrect bounds test
	smb: client: fix OOB in SMB2_query_info_init()
	smb: client: fix OOB in smbCalcSize()
	Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
	spi: atmel: Switch to transfer_one transfer method
	spi: atmel: Fix CS and initialization bug
	scsi: core: Add scsi_prot_ref_tag() helper
	scsi: core: Introduce scsi_get_sector()
	scsi: core: Make scsi_get_lba() return the LBA
	scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
	scsi: core: Use a structure member to track the SCSI command submitter
	scsi: core: Always send batch on reset or error handling command
	ring-buffer: Fix wake ups when buffer_percent is set to 100
	tracing: Fix blocked reader of snapshot buffer
	netfilter: nf_tables: skip set commit for deleted/destroyed sets
	dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
	Revert "MIPS: Loongson64: Enable DMA noncoherent support"
	Bluetooth: SMP: Fix crash when receiving new connection when debug is enabled
	spi: atmel: Fix PDC transfer setup bug
	Linux 5.10.206

Change-Id: Ifc248e166849f9102cb1d3e32c33080236de2332
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-01-08 18:41:26 +00:00
Steven Rostedt (Google)
8bf79dec73 tracing: Fix blocked reader of snapshot buffer
commit 39a7dc23a1ed0fe81141792a09449d124c5953bd upstream.

If an application blocks on the snapshot or snapshot_raw files, expecting
to be woken up when a snapshot occurs, it will not happen. Or it may
happen with an unexpected result.

That result is that the application will be reading the main buffer
instead of the snapshot buffer. That is because when the snapshot occurs,
the main and snapshot buffers are swapped. But the reader has a descriptor
still pointing to the buffer that it originally connected to.

This is fine for the main buffer readers, as they may be blocked waiting
for a watermark to be hit, and when a snapshot occurs, the data that the
main readers want is now on the snapshot buffer.

But for waiters of the snapshot buffer, they are waiting for an event to
occur that will trigger the snapshot and they can then consume it quickly
to save the snapshot before the next snapshot occurs. But to do this, they
need to read the new snapshot buffer, not the old one that is now
receiving new data.

Also, it does not make sense to have a watermark "buffer_percent" on the
snapshot buffer, as the snapshot buffer is static and does not receive new
data except all at once.

Link: https://lore.kernel.org/linux-trace-kernel/20231228095149.77f5b45d@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Fixes: debdd57f51 ("tracing: Make a snapshot feature available from userspace")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-05 15:12:31 +01:00
Steven Rostedt (Google)
0afe420228 ring-buffer: Fix wake ups when buffer_percent is set to 100
commit 623b1f896fa8a669a277ee5a258307a16c7377a3 upstream.

The tracefs file "buffer_percent" is to allow user space to set a
water-mark on how much of the tracing ring buffer needs to be filled in
order to wake up a blocked reader.

 0 - is to wait until any data is in the buffer
 1 - is to wait for 1% of the sub buffers to be filled
 50 - would be half of the sub buffers are filled with data
 100 - is not to wake the waiter until the ring buffer is completely full

Unfortunately the test for being full was:

	dirty = ring_buffer_nr_dirty_pages(buffer, cpu);
	return (dirty * 100) > (full * nr_pages);

Where "full" is the value for "buffer_percent".

There is two issues with the above when full == 100.

1. dirty * 100 > 100 * nr_pages will never be true
   That is, the above is basically saying that if the user sets
   buffer_percent to 100, more pages need to be dirty than exist in the
   ring buffer!

2. The page that the writer is on is never considered dirty, as dirty
   pages are only those that are full. When the writer goes to a new
   sub-buffer, it clears the contents of that sub-buffer.

That is, even if the check was ">=" it would still not be equal as the
most pages that can be considered "dirty" is nr_pages - 1.

To fix this, add one to dirty and use ">=" in the compare.

Link: https://lore.kernel.org/linux-trace-kernel/20231226125902.4a057f1d@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Fixes: 03329f9939 ("tracing: Add tracefs file buffer_percentage")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-05 15:12:31 +01:00
Steven Rostedt (Google)
e50cfb5447 tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
commit 88b30c7f5d27e1594d70dc2bd7199b18f2b57fa9 upstream.

The synth_event_gen_test module can be built in, if someone wants to run
the tests at boot up and not have to load them.

The synth_event_gen_test_init() function creates and enables the synthetic
events and runs its tests.

The synth_event_gen_test_exit() disables the events it created and
destroys the events.

If the module is builtin, the events are never disabled. The issue is, the
events should be disable after the tests are run. This could be an issue
if the rest of the boot up tests are enabled, as they expect the events to
be in a known state before testing. That known state happens to be
disabled.

When CONFIG_SYNTH_EVENT_GEN_TEST=y and CONFIG_EVENT_TRACE_STARTUP_TEST=y
a warning will trigger:

 Running tests on trace events:
 Testing event create_synth_test:
 Enabled event during self test!
 ------------[ cut here ]------------
 WARNING: CPU: 2 PID: 1 at kernel/trace/trace_events.c:4150 event_trace_self_tests+0x1c2/0x480
 Modules linked in:
 CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc2-test-00031-gb803d7c664d5-dirty #276
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
 RIP: 0010:event_trace_self_tests+0x1c2/0x480
 Code: bb e8 a2 ab 5d fc 48 8d 7b 48 e8 f9 3d 99 fc 48 8b 73 48 40 f6 c6 01 0f 84 d6 fe ff ff 48 c7 c7 20 b6 ad bb e8 7f ab 5d fc 90 <0f> 0b 90 48 89 df e8 d3 3d 99 fc 48 8b 1b 4c 39 f3 0f 85 2c ff ff
 RSP: 0000:ffffc9000001fdc0 EFLAGS: 00010246
 RAX: 0000000000000029 RBX: ffff88810399ca80 RCX: 0000000000000000
 RDX: 0000000000000000 RSI: ffffffffb9f19478 RDI: ffff88823c734e64
 RBP: ffff88810399f300 R08: 0000000000000000 R09: fffffbfff79eb32a
 R10: ffffffffbcf59957 R11: 0000000000000001 R12: ffff888104068090
 R13: ffffffffbc89f0a0 R14: ffffffffbc8a0f08 R15: 0000000000000078
 FS:  0000000000000000(0000) GS:ffff88823c700000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 0000000000000000 CR3: 00000001f6282001 CR4: 0000000000170ef0
 Call Trace:
  <TASK>
  ? __warn+0xa5/0x200
  ? event_trace_self_tests+0x1c2/0x480
  ? report_bug+0x1f6/0x220
  ? handle_bug+0x6f/0x90
  ? exc_invalid_op+0x17/0x50
  ? asm_exc_invalid_op+0x1a/0x20
  ? tracer_preempt_on+0x78/0x1c0
  ? event_trace_self_tests+0x1c2/0x480
  ? __pfx_event_trace_self_tests_init+0x10/0x10
  event_trace_self_tests_init+0x27/0xe0
  do_one_initcall+0xd6/0x3c0
  ? __pfx_do_one_initcall+0x10/0x10
  ? kasan_set_track+0x25/0x30
  ? rcu_is_watching+0x38/0x60
  kernel_init_freeable+0x324/0x450
  ? __pfx_kernel_init+0x10/0x10
  kernel_init+0x1f/0x1e0
  ? _raw_spin_unlock_irq+0x33/0x50
  ret_from_fork+0x34/0x60
  ? __pfx_kernel_init+0x10/0x10
  ret_from_fork_asm+0x1b/0x30
  </TASK>

This is because the synth_event_gen_test_init() left the synthetic events
that it created enabled. By having it disable them after testing, the
other selftests will run fine.

Link: https://lore.kernel.org/linux-trace-kernel/20231220111525.2f0f49b0@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Tom Zanussi <zanussi@kernel.org>
Fixes: 9fe41efaca ("tracing: Add synth event generation test module")
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Reported-by: Alexander Graf <graf@amazon.com>
Tested-by: Alexander Graf <graf@amazon.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-01-05 15:12:28 +01:00
Greg Kroah-Hartman
b7733bafef This is the 5.10.205 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmWC/gkACgkQONu9yGCS
 aT5O2hAA1RcHox8KatosKeBihzJnxqdMyfDIGpWQXQb4U3vjvVe8hboapJJHYidd
 yJgN29rgQUJNxa0hX/kE86QiH6UuellRrz9kkQawDcCt9wKS/8frusjwJPCvK+EC
 2rp08JAl3ZNr7vczO5t/H/uHBsCiP84m8USP7/e/7JX8I3OmSfgRfrMHc/ay0Brk
 JGpMITCGHuy5xFI8Tl8snG5aQ1KY06YcuSC4vutYzpEgCjCWJPhQAMb/t1vpQKRD
 Qt1F6zRTslZjlcabztjrQ71S7iBTW9Lx0wLSCN0VrkgishDl567ttHVO/knT6OLU
 VYsnr2z7i2nwvrooQ+pH7uJTyInEkf9CGNw69me0KrjZtcIWLliEOpCQlBN+fOl5
 zig4VzLQHlSo5mLo2WmLpnDQUXk1/nEb1DjSjYnKalV0tKpDm1HxgzNIAGCmEidD
 81+Q92eMot3rlWxgqL+ytapF1dfgGpt92H31fhQJP6uI/a7SRAUhUJqmP51r9mOJ
 F1LM2kd9lPCTYiJWpRj+6SKvNX5mmZAxV5hZ4JzmH4uIDWsV8DQEJve7TnI5KOm9
 KUuGhRGjQ7mNvtlNZUeS00uqijKBXg61xPKyXJb3Ph1GheLHPyXiVRlgGdItrbme
 TJUBa2b6zGAMqTPA2UMebTtnNtnejkH9CU7ojGoIG8AFvnPyhd0=
 =mybH
 -----END PGP SIGNATURE-----

Merge 5.10.205 into android12-5.10-lts

Changes in 5.10.205
	netfilter: nf_tables: fix 'exist' matching on bigendian arches
	afs: Fix refcount underflow from error handling race
	HID: lenovo: Restrict detection of patched firmware only to USB cptkbd
	net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX
	qca_debug: Prevent crash on TX ring changes
	qca_debug: Fix ethtool -G iface tx behavior
	qca_spi: Fix reset behavior
	atm: solos-pci: Fix potential deadlock on &cli_queue_lock
	atm: solos-pci: Fix potential deadlock on &tx_queue_lock
	net: vlan: introduce skb_vlan_eth_hdr()
	net: fec: correct queue selection
	atm: Fix Use-After-Free in do_vcc_ioctl
	net/rose: Fix Use-After-Free in rose_ioctl
	qed: Fix a potential use-after-free in qed_cxt_tables_alloc
	net: Remove acked SYN flag from packet in the transmit queue correctly
	net: ena: Destroy correct number of xdp queues upon failure
	net: ena: Fix XDP redirection error
	sign-file: Fix incorrect return values check
	vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
	net: stmmac: use dev_err_probe() for reporting mdio bus registration failure
	net: stmmac: Handle disabled MDIO busses from devicetree
	appletalk: Fix Use-After-Free in atalk_ioctl
	net: atlantic: fix double free in ring reinit logic
	cred: switch to using atomic_long_t
	fuse: dax: set fc->dax to NULL in fuse_dax_conn_free()
	ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants
	ALSA: hda/realtek: Apply mute LED quirk for HP15-db
	Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
	PCI: loongson: Limit MRRS to 256
	drm/mediatek: Add spinlock for setting vblank event in atomic_begin
	usb: aqc111: check packet for fixup for true limit
	blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
	bcache: avoid oversize memory allocation by small stripe_size
	bcache: remove redundant assignment to variable cur_idx
	bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
	bcache: avoid NULL checking to c->root in run_cache_set()
	platform/x86: intel_telemetry: Fix kernel doc descriptions
	HID: glorious: fix Glorious Model I HID report
	HID: add ALWAYS_POLL quirk for Apple kb
	HID: hid-asus: reset the backlight brightness level on resume
	HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
	asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
	net: usb: qmi_wwan: claim interface 4 for ZTE MF290
	HID: hid-asus: add const to read-only outgoing usb buffer
	perf: Fix perf_event_validate_size() lockdep splat
	soundwire: stream: fix NULL pointer dereference for multi_link
	ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
	arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
	team: Fix use-after-free when an option instance allocation fails
	ring-buffer: Fix memory leak of free page
	tracing: Update snapshot buffer on resize if it is allocated
	ring-buffer: Have saved event hold the entire event
	ring-buffer: Fix writing to the buffer with max_data_size
	ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
	USB: gadget: core: adjust uevent timing on gadget unbind
	tty: n_gsm: fix tty registration before control channel open
	tty: n_gsm, remove duplicates of parameters
	tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf()
	powerpc/ftrace: Create a dummy stackframe to fix stack unwind
	powerpc/ftrace: Fix stack teardown in ftrace_no_trace
	Linux 5.10.205

Change-Id: I2471e112e6ed8bd85f0bf2812cb0a5bff2ac1bdd
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-12-21 12:24:50 +00:00
Steven Rostedt (Google)
20c2cb79a3 ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
commit fff88fa0fbc7067ba46dde570912d63da42c59a9 upstream.

Mathieu Desnoyers pointed out an issue in the rb_time_cmpxchg() for 32 bit
architectures. That is:

 static bool rb_time_cmpxchg(rb_time_t *t, u64 expect, u64 set)
 {
	unsigned long cnt, top, bottom, msb;
	unsigned long cnt2, top2, bottom2, msb2;
	u64 val;

	/* The cmpxchg always fails if it interrupted an update */
	 if (!__rb_time_read(t, &val, &cnt2))
		 return false;

	 if (val != expect)
		 return false;

<<<< interrupted here!

	 cnt = local_read(&t->cnt);

The problem is that the synchronization counter in the rb_time_t is read
*after* the value of the timestamp is read. That means if an interrupt
were to come in between the value being read and the counter being read,
it can change the value and the counter and the interrupted process would
be clueless about it!

The counter needs to be read first and then the value. That way it is easy
to tell if the value is stale or not. If the counter hasn't been updated,
then the value is still good.

Link: https://lore.kernel.org/linux-trace-kernel/20231211201324.652870-1-mathieu.desnoyers@efficios.com/
Link: https://lore.kernel.org/linux-trace-kernel/20231212115301.7a9c9a64@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Fixes: 10464b4aa6 ("ring-buffer: Add rb_time_t 64 bit operations for speeding up 32 bit")
Reported-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-20 15:44:39 +01:00
Steven Rostedt (Google)
9f5bf009f7 ring-buffer: Fix writing to the buffer with max_data_size
commit b3ae7b67b87fed771fa5bf95389df06b0433603e upstream.

The maximum ring buffer data size is the maximum size of data that can be
recorded on the ring buffer. Events must be smaller than the sub buffer
data size minus any meta data. This size is checked before trying to
allocate from the ring buffer because the allocation assumes that the size
will fit on the sub buffer.

The maximum size was calculated as the size of a sub buffer page (which is
currently PAGE_SIZE minus the sub buffer header) minus the size of the
meta data of an individual event. But it missed the possible adding of a
time stamp for events that are added long enough apart that the event meta
data can't hold the time delta.

When an event is added that is greater than the current BUF_MAX_DATA_SIZE
minus the size of a time stamp, but still less than or equal to
BUF_MAX_DATA_SIZE, the ring buffer would go into an infinite loop, looking
for a page that can hold the event. Luckily, there's a check for this loop
and after 1000 iterations and a warning is emitted and the ring buffer is
disabled. But this should never happen.

This can happen when a large event is added first, or after a long period
where an absolute timestamp is prefixed to the event, increasing its size
by 8 bytes. This passes the check and then goes into the algorithm that
causes the infinite loop.

For events that are the first event on the sub-buffer, it does not need to
add a timestamp, because the sub-buffer itself contains an absolute
timestamp, and adding one is redundant.

The fix is to check if the event is to be the first event on the
sub-buffer, and if it is, then do not add a timestamp.

This also fixes 32 bit adding a timestamp when a read of before_stamp or
write_stamp is interrupted. There's still no need to add that timestamp if
the event is going to be the first event on the sub buffer.

Also, if the buffer has "time_stamp_abs" set, then also check if the
length plus the timestamp is greater than the BUF_MAX_DATA_SIZE.

Link: https://lore.kernel.org/all/20231212104549.58863438@gandalf.local.home/
Link: https://lore.kernel.org/linux-trace-kernel/20231212071837.5fdd6c13@gandalf.local.home
Link: https://lore.kernel.org/linux-trace-kernel/20231212111617.39e02849@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: a4543a2fa9 ("ring-buffer: Get timestamp after event is allocated")
Fixes: 58fbc3c632 ("ring-buffer: Consolidate add_timestamp to remove some branches")
Reported-by: Kent Overstreet <kent.overstreet@linux.dev> # (on IRC)
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-20 15:44:39 +01:00
Steven Rostedt (Google)
3e8055fc3b ring-buffer: Have saved event hold the entire event
commit b049525855fdd0024881c9b14b8fbec61c3f53d3 upstream.

For the ring buffer iterator (non-consuming read), the event needs to be
copied into the iterator buffer to make sure that a writer does not
overwrite it while the user is reading it. If a write happens during the
copy, the buffer is simply discarded.

But the temp buffer itself was not big enough. The allocation of the
buffer was only BUF_MAX_DATA_SIZE, which is the maximum data size that can
be passed into the ring buffer and saved. But the temp buffer needs to
hold the meta data as well. That would be BUF_PAGE_SIZE and not
BUF_MAX_DATA_SIZE.

Link: https://lore.kernel.org/linux-trace-kernel/20231212072558.61f76493@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 785888c544 ("ring-buffer: Have rb_iter_head_event() handle concurrent writer")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-20 15:44:38 +01:00
Steven Rostedt (Google)
d7a2939814 tracing: Update snapshot buffer on resize if it is allocated
commit d06aff1cb13d2a0d52b48e605462518149c98c81 upstream.

The snapshot buffer is to mimic the main buffer so that when a snapshot is
needed, the snapshot and main buffer are swapped. When the snapshot buffer
is allocated, it is set to the minimal size that the ring buffer may be at
and still functional. When it is allocated it becomes the same size as the
main ring buffer, and when the main ring buffer changes in size, it should
do.

Currently, the resize only updates the snapshot buffer if it's used by the
current tracer (ie. the preemptirqsoff tracer). But it needs to be updated
anytime it is allocated.

When changing the size of the main buffer, instead of looking to see if
the current tracer is utilizing the snapshot buffer, just check if it is
allocated to know if it should be updated or not.

Also fix typo in comment just above the code change.

Link: https://lore.kernel.org/linux-trace-kernel/20231210225447.48476a6a@rorschach.local.home

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: ad909e21bb ("tracing: Add internal tracing_snapshot() functions")
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-20 15:44:38 +01:00
Steven Rostedt (Google)
a3580b2bfe ring-buffer: Fix memory leak of free page
commit 17d801758157bec93f26faaf5ff1a8b9a552d67a upstream.

Reading the ring buffer does a swap of a sub-buffer within the ring buffer
with a empty sub-buffer. This allows the reader to have full access to the
content of the sub-buffer that was swapped out without having to worry
about contention with the writer.

The readers call ring_buffer_alloc_read_page() to allocate a page that
will be used to swap with the ring buffer. When the code is finished with
the reader page, it calls ring_buffer_free_read_page(). Instead of freeing
the page, it stores it as a spare. Then next call to
ring_buffer_alloc_read_page() will return this spare instead of calling
into the memory management system to allocate a new page.

Unfortunately, on freeing of the ring buffer, this spare page is not
freed, and causes a memory leak.

Link: https://lore.kernel.org/linux-trace-kernel/20231210221250.7b9cc83c@rorschach.local.home

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 73a757e631 ("ring-buffer: Return reader page back into existing ring buffer")
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-20 15:44:38 +01:00
Greg Kroah-Hartman
001d2105f6 This is the 5.10.204 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmV56W4ACgkQONu9yGCS
 aT7epxAAz6RM0Id+xXS3pb8CcyYncjrWlVRwLJn2zdJit1oWBHePonCQURaOiwMA
 2IvUUjqeTL/lr1h8L2gRled7EVDMrSv0z4IBDOl4BdF2Z0TfwLhRKiT04RmyHQrG
 k08SnS51IFsKmsUYUMf/SYBu1uvK5rXggjLjXvLsObRQJUOZbQwMdKIXge4+N1js
 zvoU5DNF+FhWoCQO7uExG7rFv9Hv5ftdCQz5u3Aon0+B7wJMFzDie38TCkPMzptU
 ydKILRFAlf3096OcHtS6JBEsPetViOoytyv2pgFzaWMfHJnbnI4d8kRoI9r1GZwA
 6S9Yfli0ZKPur/1FVsMsYs8PHABiBwKw2tRmT15oOtE3+xg08F408jcUccL+vi/v
 qXOqhX6wpesw6+MTgOXTjJhSxRHBzKMey1iSBWB5E8g7wuB6DRm0KDl5FaUHbdTf
 GLXFtgpHZdbCPKyolcTTESjxnNBzc+wUY8YTekEdmppy4uWS7B9Vml44nP1ej0+Z
 P1Q2iNMkABYjoRW3hVXgSdfoHX/dJSu/+tmeNba1Ay8Tj0PWVqRZ99cagG+F53Sg
 iCNJhrfwK+uznwo9/4bcKXZXTKhUROtzoxcPNdRONyCiqlFSq1WtkjADzVBV75od
 9EbLTJqh5GtfBoA4W6rzyt9tjNevZHHChOsT4e8uEnnCFZJeK7Q=
 =qOMN
 -----END PGP SIGNATURE-----

Merge 5.10.204 into android12-5.10-lts

Changes in 5.10.204
	hrtimers: Push pending hrtimers away from outgoing CPU earlier
	i2c: designware: Fix corrupted memory seen in the ISR
	netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
	tg3: Move the [rt]x_dropped counters to tg3_napi
	tg3: Increment tx_dropped in tg3_tso_bug()
	kconfig: fix memory leak from range properties
	drm/amdgpu: correct chunk_ptr to a pointer to chunk.
	platform/x86: asus-wmi: Add support for SW_TABLET_MODE on UX360
	platform/x86: asus-nb-wmi: Allow configuring SW_TABLET_MODE method with a module option
	platform/x86: asus-nb-wmi: Add tablet_mode_sw=lid-flip quirk for the TP200s
	asus-wmi: Add dgpu disable method
	platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum
	platform/x86: asus-wmi: Add support for ROG X13 tablet mode
	platform/x86: asus-wmi: Simplify tablet-mode-switch probing
	platform/x86: asus-wmi: Simplify tablet-mode-switch handling
	platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code
	of: base: Fix some formatting issues and provide missing descriptions
	of: Fix kerneldoc output formatting
	of: Add missing 'Return' section in kerneldoc comments
	of: dynamic: Fix of_reconfig_get_state_change() return value documentation
	ipv6: fix potential NULL deref in fib6_add()
	octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
	hv_netvsc: rndis_filter needs to select NLS
	mlxbf-bootctl: correctly identify secure boot with development keys
	net: arcnet: com20020 fix error handling
	arcnet: restoring support for multiple Sohard Arcnet cards
	i40e: Fix unexpected MFS warning message
	net: bnxt: fix a potential use-after-free in bnxt_init_tc
	ionic: fix snprintf format length warning
	ionic: Fix dim work handling in split interrupt mode
	ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit()
	net: hns: fix fake link up on xge port
	netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
	tcp: do not accept ACK of bytes we never sent
	bpf: sockmap, updating the sg structure should also update curr
	tee: optee: Fix supplicant based device enumeration
	arm64: dts: rockchip: Expand reg size of vdec node for RK3399
	RDMA/rtrs-clt: Remove the warnings for req in_use check
	RDMA/bnxt_re: Correct module description string
	hwmon: (acpi_power_meter) Fix 4.29 MW bug
	ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate
	tracing: Fix a warning when allocating buffered events fails
	scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
	ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
	ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
	riscv: fix misaligned access handling of C.SWSP and C.SDSP
	ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
	ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
	nilfs2: fix missing error check for sb_set_blocksize call
	nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
	checkstack: fix printed address
	tracing: Always update snapshot buffer size
	tracing: Disable snapshot buffer when stopping instance tracers
	tracing: Fix incomplete locking when disabling buffered events
	tracing: Fix a possible race when disabling buffered events
	packet: Move reference count in packet_sock to atomic_long_t
	arm64: dts: mediatek: mt7622: fix memory node warning check
	arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
	arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory
	misc: mei: client.c: return negative error code in mei_cl_write
	misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write
	ring-buffer: Force absolute timestamp on discard of event
	tracing: Set actual size after ring buffer resize
	tracing: Stop current tracer when resizing buffer
	perf/core: Add a new read format to get a number of lost samples
	perf: Fix perf_event_validate_size()
	gpiolib: sysfs: Fix error handling on failed export
	drm/amdgpu: correct the amdgpu runtime dereference usage count
	usb: gadget: f_hid: fix report descriptor allocation
	parport: Add support for Brainboxes IX/UC/PX parallel cards
	Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1"
	usb: typec: class: fix typec_altmode_put_partner to put plugs
	ARM: PL011: Fix DMA support
	serial: sc16is7xx: address RX timeout interrupt errata
	serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit
	serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt
	serial: 8250_omap: Add earlycon support for the AM654 UART controller
	x86/CPU/AMD: Check vendor in the AMD microcode callback
	KVM: s390/mm: Properly reset no-dat
	MIPS: Loongson64: Reserve vgabios memory on boot
	MIPS: Loongson64: Enable DMA noncoherent support
	io_uring/af_unix: disable sending io_uring over sockets
	netlink: don't call ->netlink_bind with table lock held
	genetlink: add CAP_NET_ADMIN test for multicast bind
	psample: Require 'CAP_NET_ADMIN' when joining "packets" group
	drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
	netfilter: nft_set_pipapo: skip inactive elements during set walk
	platform/x86: asus-wmi: Fix kbd_dock_devid tablet-switch reporting
	tools headers UAPI: Sync linux/perf_event.h with the kernel sources
	platform/x86: asus-wmi: Document the dgpu_disable sysfs attribute
	mmc: block: Be sure to wait while busy in CQE error recovery
	Revert "btrfs: add dmesg output for first mount and last unmount of a filesystem"
	cifs: Fix non-availability of dedup breaking generic/304
	smb: client: fix potential NULL deref in parse_dfs_referrals()
	devcoredump : Serialize devcd_del work
	devcoredump: Send uevent once devcd is ready
	r8169: fix rtl8125b PAUSE frames blasting when suspended
	Linux 5.10.204

Change-Id: Ic65cbf2bdbf57c9cea815a17fcec35c0b72168a2
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-12-14 15:59:58 +00:00
Steven Rostedt (Google)
f460ff26bd tracing: Stop current tracer when resizing buffer
[ Upstream commit d78ab792705c7be1b91243b2544d1a79406a2ad7 ]

When the ring buffer is being resized, it can cause side effects to the
running tracer. For instance, there's a race with irqsoff tracer that
swaps individual per cpu buffers between the main buffer and the snapshot
buffer. The resize operation modifies the main buffer and then the
snapshot buffer. If a swap happens in between those two operations it will
break the tracer.

Simply stop the running tracer before resizing the buffers and enable it
again when finished.

Link: https://lkml.kernel.org/r/20231205220010.748996423@goodmis.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Fixes: 3928a8a2d9 ("ftrace: make work with new ring buffer")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 18:27:04 +01:00
Zheng Yejian
21beb0d86f tracing: Set actual size after ring buffer resize
[ Upstream commit 6d98a0f2ac3c021d21be66fa34e992137cd25bcb ]

Currently we can resize trace ringbuffer by writing a value into file
'buffer_size_kb', then by reading the file, we get the value that is
usually what we wrote. However, this value may be not actual size of
trace ring buffer because of the round up when doing resize in kernel,
and the actual size would be more useful.

Link: https://lore.kernel.org/linux-trace-kernel/20230705002705.576633-1-zhengyejian1@huawei.com

Cc: <mhiramat@kernel.org>
Signed-off-by: Zheng Yejian <zhengyejian1@huawei.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Stable-dep-of: d78ab792705c ("tracing: Stop current tracer when resizing buffer")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 18:27:03 +01:00
Steven Rostedt (Google)
7123b54c8b ring-buffer: Force absolute timestamp on discard of event
[ Upstream commit b2dd797543cfa6580eac8408dd67fa02164d9e56 ]

There's a race where if an event is discarded from the ring buffer and an
interrupt were to happen at that time and insert an event, the time stamp
is still used from the discarded event as an offset. This can screw up the
timings.

If the event is going to be discarded, set the "before_stamp" to zero.
When a new event comes in, it compares the "before_stamp" with the
"write_stamp" and if they are not equal, it will insert an absolute
timestamp. This will prevent the timings from getting out of sync due to
the discarded event.

Link: https://lore.kernel.org/linux-trace-kernel/20231206100244.5130f9b3@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fixes: 6f6be606e763f ("ring-buffer: Force before_stamp and write_stamp to be different on discard")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 18:27:03 +01:00
Petr Pavlu
0d0564cfb7 tracing: Fix a possible race when disabling buffered events
commit c0591b1cccf708a47bc465c62436d669a4213323 upstream.

Function trace_buffered_event_disable() is responsible for freeing pages
backing buffered events and this process can run concurrently with
trace_event_buffer_lock_reserve().

The following race is currently possible:

* Function trace_buffered_event_disable() is called on CPU 0. It
  increments trace_buffered_event_cnt on each CPU and waits via
  synchronize_rcu() for each user of trace_buffered_event to complete.

* After synchronize_rcu() is finished, function
  trace_buffered_event_disable() has the exclusive access to
  trace_buffered_event. All counters trace_buffered_event_cnt are at 1
  and all pointers trace_buffered_event are still valid.

* At this point, on a different CPU 1, the execution reaches
  trace_event_buffer_lock_reserve(). The function calls
  preempt_disable_notrace() and only now enters an RCU read-side
  critical section. The function proceeds and reads a still valid
  pointer from trace_buffered_event[CPU1] into the local variable
  "entry". However, it doesn't yet read trace_buffered_event_cnt[CPU1]
  which happens later.

* Function trace_buffered_event_disable() continues. It frees
  trace_buffered_event[CPU1] and decrements
  trace_buffered_event_cnt[CPU1] back to 0.

* Function trace_event_buffer_lock_reserve() continues. It reads and
  increments trace_buffered_event_cnt[CPU1] from 0 to 1. This makes it
  believe that it can use the "entry" that it already obtained but the
  pointer is now invalid and any access results in a use-after-free.

Fix the problem by making a second synchronize_rcu() call after all
trace_buffered_event values are set to NULL. This waits on all potential
users in trace_event_buffer_lock_reserve() that still read a previous
pointer from trace_buffered_event.

Link: https://lore.kernel.org/all/20231127151248.7232-2-petr.pavlu@suse.com/
Link: https://lkml.kernel.org/r/20231205161736.19663-4-petr.pavlu@suse.com

Cc: stable@vger.kernel.org
Fixes: 0fc1b09ff1 ("tracing: Use temp buffer when filtering events")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-13 18:27:03 +01:00
Petr Pavlu
85e86d6989 tracing: Fix incomplete locking when disabling buffered events
commit 7fed14f7ac9cf5e38c693836fe4a874720141845 upstream.

The following warning appears when using buffered events:

[  203.556451] WARNING: CPU: 53 PID: 10220 at kernel/trace/ring_buffer.c:3912 ring_buffer_discard_commit+0x2eb/0x420
[...]
[  203.670690] CPU: 53 PID: 10220 Comm: stress-ng-sysin Tainted: G            E      6.7.0-rc2-default #4 56e6d0fcf5581e6e51eaaecbdaec2a2338c80f3a
[  203.670704] Hardware name: Intel Corp. GROVEPORT/GROVEPORT, BIOS GVPRCRB1.86B.0016.D04.1705030402 05/03/2017
[  203.670709] RIP: 0010:ring_buffer_discard_commit+0x2eb/0x420
[  203.735721] Code: 4c 8b 4a 50 48 8b 42 48 49 39 c1 0f 84 b3 00 00 00 49 83 e8 01 75 b1 48 8b 42 10 f0 ff 40 08 0f 0b e9 fc fe ff ff f0 ff 47 08 <0f> 0b e9 77 fd ff ff 48 8b 42 10 f0 ff 40 08 0f 0b e9 f5 fe ff ff
[  203.735734] RSP: 0018:ffffb4ae4f7b7d80 EFLAGS: 00010202
[  203.735745] RAX: 0000000000000000 RBX: ffffb4ae4f7b7de0 RCX: ffff8ac10662c000
[  203.735754] RDX: ffff8ac0c750be00 RSI: ffff8ac10662c000 RDI: ffff8ac0c004d400
[  203.781832] RBP: ffff8ac0c039cea0 R08: 0000000000000000 R09: 0000000000000000
[  203.781839] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[  203.781842] R13: ffff8ac10662c000 R14: ffff8ac0c004d400 R15: ffff8ac10662c008
[  203.781846] FS:  00007f4cd8a67740(0000) GS:ffff8ad798880000(0000) knlGS:0000000000000000
[  203.781851] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  203.781855] CR2: 0000559766a74028 CR3: 00000001804c4000 CR4: 00000000001506f0
[  203.781862] Call Trace:
[  203.781870]  <TASK>
[  203.851949]  trace_event_buffer_commit+0x1ea/0x250
[  203.851967]  trace_event_raw_event_sys_enter+0x83/0xe0
[  203.851983]  syscall_trace_enter.isra.0+0x182/0x1a0
[  203.851990]  do_syscall_64+0x3a/0xe0
[  203.852075]  entry_SYSCALL_64_after_hwframe+0x6e/0x76
[  203.852090] RIP: 0033:0x7f4cd870fa77
[  203.982920] Code: 00 b8 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 b8 89 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e9 43 0e 00 f7 d8 64 89 01 48
[  203.982932] RSP: 002b:00007fff99717dd8 EFLAGS: 00000246 ORIG_RAX: 0000000000000089
[  203.982942] RAX: ffffffffffffffda RBX: 0000558ea1d7b6f0 RCX: 00007f4cd870fa77
[  203.982948] RDX: 0000000000000000 RSI: 00007fff99717de0 RDI: 0000558ea1d7b6f0
[  203.982957] RBP: 00007fff99717de0 R08: 00007fff997180e0 R09: 00007fff997180e0
[  203.982962] R10: 00007fff997180e0 R11: 0000000000000246 R12: 00007fff99717f40
[  204.049239] R13: 00007fff99718590 R14: 0000558e9f2127a8 R15: 00007fff997180b0
[  204.049256]  </TASK>

For instance, it can be triggered by running these two commands in
parallel:

 $ while true; do
    echo hist:key=id.syscall:val=hitcount > \
      /sys/kernel/debug/tracing/events/raw_syscalls/sys_enter/trigger;
  done
 $ stress-ng --sysinfo $(nproc)

The warning indicates that the current ring_buffer_per_cpu is not in the
committing state. It happens because the active ring_buffer_event
doesn't actually come from the ring_buffer_per_cpu but is allocated from
trace_buffered_event.

The bug is in function trace_buffered_event_disable() where the
following normally happens:

* The code invokes disable_trace_buffered_event() via
  smp_call_function_many() and follows it by synchronize_rcu(). This
  increments the per-CPU variable trace_buffered_event_cnt on each
  target CPU and grants trace_buffered_event_disable() the exclusive
  access to the per-CPU variable trace_buffered_event.

* Maintenance is performed on trace_buffered_event, all per-CPU event
  buffers get freed.

* The code invokes enable_trace_buffered_event() via
  smp_call_function_many(). This decrements trace_buffered_event_cnt and
  releases the access to trace_buffered_event.

A problem is that smp_call_function_many() runs a given function on all
target CPUs except on the current one. The following can then occur:

* Task X executing trace_buffered_event_disable() runs on CPU 0.

* The control reaches synchronize_rcu() and the task gets rescheduled on
  another CPU 1.

* The RCU synchronization finishes. At this point,
  trace_buffered_event_disable() has the exclusive access to all
  trace_buffered_event variables except trace_buffered_event[CPU0]
  because trace_buffered_event_cnt[CPU0] is never incremented and if the
  buffer is currently unused, remains set to 0.

* A different task Y is scheduled on CPU 0 and hits a trace event. The
  code in trace_event_buffer_lock_reserve() sees that
  trace_buffered_event_cnt[CPU0] is set to 0 and decides the use the
  buffer provided by trace_buffered_event[CPU0].

* Task X continues its execution in trace_buffered_event_disable(). The
  code incorrectly frees the event buffer pointed by
  trace_buffered_event[CPU0] and resets the variable to NULL.

* Task Y writes event data to the now freed buffer and later detects the
  created inconsistency.

The issue is observable since commit dea499781a11 ("tracing: Fix warning
in trace_buffered_event_disable()") which moved the call of
trace_buffered_event_disable() in __ftrace_event_enable_disable()
earlier, prior to invoking call->class->reg(.. TRACE_REG_UNREGISTER ..).
The underlying problem in trace_buffered_event_disable() is however
present since the original implementation in commit 0fc1b09ff1
("tracing: Use temp buffer when filtering events").

Fix the problem by replacing the two smp_call_function_many() calls with
on_each_cpu_mask() which invokes a given callback on all CPUs.

Link: https://lore.kernel.org/all/20231127151248.7232-2-petr.pavlu@suse.com/
Link: https://lkml.kernel.org/r/20231205161736.19663-2-petr.pavlu@suse.com

Cc: stable@vger.kernel.org
Fixes: 0fc1b09ff1 ("tracing: Use temp buffer when filtering events")
Fixes: dea499781a11 ("tracing: Fix warning in trace_buffered_event_disable()")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-13 18:27:03 +01:00
Steven Rostedt (Google)
ad9efb0b27 tracing: Disable snapshot buffer when stopping instance tracers
commit b538bf7d0ec11ca49f536dfda742a5f6db90a798 upstream.

It use to be that only the top level instance had a snapshot buffer (for
latency tracers like wakeup and irqsoff). When stopping a tracer in an
instance would not disable the snapshot buffer. This could have some
unintended consequences if the irqsoff tracer is enabled.

Consolidate the tracing_start/stop() with tracing_start/stop_tr() so that
all instances behave the same. The tracing_start/stop() functions will
just call their respective tracing_start/stop_tr() with the global_array
passed in.

Link: https://lkml.kernel.org/r/20231205220011.041220035@goodmis.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Fixes: 6d9b3fa5e7 ("tracing: Move tracing_max_latency into trace_array")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-13 18:27:02 +01:00