Commit Graph

1001816 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
be9f128eaf Revert "block: introduce zone_write_granularity limit"
This reverts commit 6b4bb49e34 which is
commit a805a4fa4fa376bbc145762bb8b09caa2fa8af48 upstream.

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

Bug: 161946584
Change-Id: Ib32d4f828dc1ebceb03c73906e7867eaffbdee2f
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
767bb1b3ae Revert "block: Clear zone limits for a non-zoned stacked queue"
This reverts commit 96661f8c3d which is
commit c8f6f88d25929ad2f290b428efcae3b526f3eab0 upstream.

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

Bug: 161946584
Change-Id: I4de870534a51a42360da6558ea0164c0f66ee7a0
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
213d8963dc Revert "scsi: sd: Fix wrong zone_write_granularity value during revalidate"
This reverts commit 85d11ded2d which is
commit 288b3271d920c9ba949c3bab0f749f4cecc70e09 upstream.

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

Bug: 161946584
Change-Id: Id190242059387a475ff9d0606360136a610ecf4f
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
eaaff97d11 Revert "PCI/ERR: Cache RCEC EA Capability offset in pci_init_capabilities()"
This reverts commit 1f5ea9e3ae which is
commit 90655631988f8f501529e6de5f13614389717ead upstream.

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

Bug: 161946584
Change-Id: I4faab84df428d32f281041094a26404304b6091f
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
60f9b585da Revert "PCI: Cache PCIe Device Capabilities register"
This reverts commit 619013d797 which is
commit 69139244806537f9d51364f37fe146bb2ee88a05 upstream.

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

Bug: 161946584
Change-Id: Ic2bd4ea9575eb5c79e0a77f0f65a88f0245c3b4a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
54292b6722 Revert "PCI: Work around Intel I210 ROM BAR overlap defect"
This reverts commit 81d9ca1597 which is
commit 500b55b05d0a21c4adddf4c3b29ee6f32b502046 upstream.

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

Bug: 161946584
Change-Id: Ic1e9a60c069b0b5f13c42641cd7dc33ad3694fa6
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
a4a9cf2ab5 Revert "PCI/ASPM: Make Intel DG2 L1 acceptable latency unlimited"
This reverts commit 51411a4d0a which is
commit 03038d84ace72678a9944524508f218a00377dc0 upstream.

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

Bug: 161946584
Change-Id: I2455138307a910f40d4fa24f8a570232c5bf6a64
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:36 +00:00
Greg Kroah-Hartman
49a81ed542 Revert "PCI/DPC: Quirk PIO log size for certain Intel Root Ports"
This reverts commit a654d0a186 which is
commit 5459c0b7046752e519a646e1c2404852bb628459 upstream.

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

Bug: 161946584
Change-Id: I17f98a38a673caa105d9e57cee1832b0784af782
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:35 +00:00
Greg Kroah-Hartman
478632cd90 Revert "PCI/DPC: Quirk PIO log size for Intel Ice Lake Root Ports"
This reverts commit f49642661f which is
commit 3b8803494a0612acdeee714cb72aa142b1e05ce5 upstream.

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

Bug: 161946584
Change-Id: I1b31dae73e1bf46585213d2e08bb584f7502aff5
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:35 +00:00
Greg Kroah-Hartman
58574fb618 Revert "PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports"
This reverts commit be7f399e3f which is
commit 627c6db20703b5d18d928464f411d0d4ec327508 upstream.

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

Bug: 161946584
Change-Id: I7434b6b6dafd61ee9ee5f908087a2bedaa24b2c2
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:35 +00:00
Greg Kroah-Hartman
3f602a77d6 Revert "timers: Rename del_timer_sync() to timer_delete_sync()"
This reverts commit d8166e8adb which is
commit 9b13df3fb64ee95e2397585404e442afee2c7d4f upstream.

It breaks the Android kernel abi by turning del_timer_sync() into an
inline function, which breaks the abi.  Fix this by putting it back as
needed AND fix up the only use of this new function in
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c which is
what caused this commit to be backported to 5.4.274 in the first place.

Bug: 161946584
Change-Id: Icd26c7c81e6172f36eeeb69827989bfab1d32afe
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:04:35 +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
Greg Kroah-Hartman
e9b3e47f65 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
Catch up with the latest android12-5.10 changes into android12-5.10-lts.
Included in here are the following commits:

* e265882155 ANDROID: Add __nocfi return for swsusp_arch_resume
* 028de5c48b BACKPORT: arm64: mm: Make hibernation aware of KFENCE
* d615d2d800 Merge tag 'android12-5.10.210_r00' into branch android12-5.10
* 178bf27b97 UPSTREAM: selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior
* 9f5f2481c9 ANDROID: kbuild: Search external devicetree path when running clean target
* 50b4a2a7e1 ANDROID: kbuild: add support for compiling external device trees
* fe033e0b34 ANDROID: usb: gadget: ncm: Introduce vendor opts to deal with ABI breakage
* 19eb358ded UPSTREAM: usb: gadget: ncm: Fix endianness of wMaxSegmentSize variable in ecm_desc
* 38958820bd UPSTREAM: usb: gadget: ncm: Add support to update wMaxSegmentSize via configfs
* 43bb9f846d ANDROID: usb: Optimize the problem of slow transfer rate in USB accessory mode
* b2c2d74cae ANDROID: ABI: Update honor symbol list
* 33c78af45a ANDROID: add vendor hook in do_read_fault to tune fault_around_bytes
* 7fc588d60f FROMGIT: usb: dwc3: Wait unconditionally after issuing EndXfer command
* 923b677c93 ANDROID: irq: put irq_resolve_mapping under protection of __irq_enter_raw
* 602a22e77a ANDROID: abi_gki_aarch64_qcom: Add clk_restore_context and clk_save_context
* b493b35d3a UPSTREAM: usb: gadget: ncm: Fix handling of zero block length packets
* c344c3ebe3 UPSTREAM: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
* 626e5dce00 ANDROID: 16K: Fix show maps CFI failure
* 09da1d141d ANDROID: 16K: Handle pad VMA splits and merges
* 162de86e24 ANDROID: 16K: madvise_vma_pad_pages: Remove filemap_fault check
* 000bbad86c ANDROID: 16K: Only madvise padding from dynamic linker context
* ebf0750ad2 ANDROID: 16K: Separate padding from ELF LOAD segment mappings
* abbc0d53ee ANDROID: 16K: Exclude ELF padding for fault around range
* 778abad3ac ANDROID: 16K: Use MADV_DONTNEED to save VMA padding pages.
* 37d6ffe5ca ANDROID: 16K: Introduce ELF padding representation for VMAs
* 38c464b4a4 ANDROID: 16K: Introduce /sys/kernel/mm/pgsize_miration/enabled
* 280193753c ANDROID: GKI: Update symbols to symbol list
* 1016230309 UPSTREAM: netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path
* 582e001b25 UPSTREAM: netfilter: nf_tables: release batch on table validation from abort path
* cd2fc5a605 UPSTREAM: netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout
* 5fa7520118 UPSTREAM: netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
* ecd8068fb4 BACKPORT: mm: update mark_victim tracepoints fields
* 4571e647cc Revert "FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields"
* beecd97e3a UPSTREAM: usb: gadget: uvc: decrease the interrupt load to a quarter
* ad31e24641 UPSTREAM: netfilter: nft_set_pipapo: release elements in clone only from destroy path

Change-Id: I0f7cad212c9425224ade80ed88ef8f0b8046827a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-06-01 11:00:17 +00:00
Auditya Bhattaram
e265882155 ANDROID: Add __nocfi return for swsusp_arch_resume
Resolve the CFI failure problem encountered
during the restoration of the hibernation snapshot image.

Bug: 340049585
Change-Id: I1f8f2c38e9d02a177c0cadb066419bf7edd66085
Signed-off-by: Mukesh Pilaniya <quic_mpilaniy@quicinc.com>
Signed-off-by: Auditya Bhattaram <quic_audityab@quicinc.com>
Signed-off-by: Kamati Srinivas <quic_kamasrin@quicinc.com>
2024-06-01 08:07:22 +00:00
Nikhil V
028de5c48b BACKPORT: arm64: mm: Make hibernation aware of KFENCE
In the restore path, swsusp_arch_suspend_exit uses copy_page() to
over-write memory. However, with features like KFENCE enabled, there could
be situations where it may have marked some pages as not valid, due to
which it could be reported as invalid accesses.

Consider a situation where page 'P' was part of the hibernation image.
Now, when the resume kernel tries to restore the pages, the same page 'P'
is already in use in the resume kernel and is kfence protected, due to
which its mapping is removed from linear map. Since restoring pages happens
with the resume kernel page tables, we would end up accessing 'P' during
copy and results in kernel pagefault.

The proposed fix tries to solve this issue by marking PTE as valid for such
kfence protected pages.

Co-developed-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
Signed-off-by: Nikhil V <quic_nprakash@quicinc.com>
Link: https://lore.kernel.org/r/20230713070757.4093-1-quic_nprakash@quicinc.com
Signed-off-by: Will Deacon <will@kernel.org>

Bug: 340049585
Change-Id: I476b3bdcd13ebf66ae26c67a1ff61221e01d41e1
(cherry picked from commit a8bd38dbc57c2fe074df2c9e549b9c2ad3183c83)
[Srinivas: Resolved minor conflict to apply changes in arch/arm64/kernel/hibernate.c]
Signed-off-by: Kamati Srinivas <quic_kamasrin@quicinc.com>
2024-06-01 08:07:22 +00:00
Greg Kroah-Hartman
d615d2d800 Merge tag 'android12-5.10.210_r00' into branch android12-5.10
This merges the 5.10.210 LTS releases into the android12-5.10 branch.
Included in here are the following commits:

* 47e789159e Revert "hrtimer: Report offline hrtimer enqueue"
* c5fa21f10b Revert "scsi: core: Introduce enum scsi_disposition"
* 7c333b5976 Revert "scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler"
* d32a2a4b7b Revert "scsi: core: Move scsi_host_busy() out of host lock if it is for per-command"
* b2600e62c4 Revert "bpf: Add map and need_defer parameters to .map_fd_put_ptr()"
* 379ac05cc3 Revert "drm/mipi-dsi: Fix detach call without attach"
* 0412bcfd88 Revert "serial: Add rs485_supported to uart_port"
* 8e1cc643b1 Revert "serial: 8250_exar: Fill in rs485_supported"
* e18733695d Revert "serial: 8250_exar: Set missing rs485_supported flag"
* 8755d58540 Revert "ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()"
*   66e91da883 Merge 5.10.210 into android12-5.10-lts
|\
| * aa6ca808a4 Linux 5.10.210
| * cf5a69e355 PCI: dwc: Fix a 64bit bug in dw_pcie_ep_raise_msix_irq()
| * 9f53d24852 net: bcmgenet: Fix EEE implementation
| * 9a865a11d6 netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
| * 67f386f756 drm/msm/dsi: Enable runtime PM
| * 21b38d85f6 PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
| * ede393e118 PM: runtime: add devm_pm_runtime_enable helper
| * a891a0621e dm: limit the number of targets and parameter size area
| * c90746c03b nilfs2: replace WARN_ONs for invalid DAT metadata block requests
| * f3e4963566 nilfs2: fix potential bug in end_buffer_async_write
| * db896bbe4a sched/membarrier: reduce the ability to hammer on sys_membarrier
| * 8f8f185643 net: prevent mss overflow in skb_segment()
| * f7e0231eea Revert "arm64: Stash shadow stack pointer in the task struct on interrupt"
| * 70ca0dbae4 hrtimer: Ignore slack time for RT tasks in schedule_hrtimeout_range()
| * c80ddc1092 netfilter: ipset: Missing gc cancellations fixed
| * a24d5f2ac8 netfilter: ipset: fix performance regression in swap operation
| * 583a6c76b9 scripts/decode_stacktrace.sh: optionally use LLVM utilities
| * 0f906882eb scripts: decode_stacktrace: demangle Rust symbols
| * a3d71b6ae9 scripts/decode_stacktrace.sh: support old bash version
| * ae992f14b1 scripts/decode_stacktrace.sh: silence stderr messages from addr2line/nm
| * 00f09825e1 serial: 8250_exar: Set missing rs485_supported flag
| * 84bf7b8759 serial: 8250_exar: Fill in rs485_supported
| * dfd8b9d26b serial: Add rs485_supported to uart_port
| * 0c36878222 crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init
| * e0d2eeec88 mips: Fix max_mapnr being uninitialized on early stages
| * 41a4bd51d8 PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
| * ff67f77fb0 bus: moxtet: Add spi device table
| * 88ec9bbcd3 Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
| * 6a42eb0d21 tracing: Inform kmemleak of saved_cmdlines allocation
| * 3a6e27dbe2 pmdomain: core: Move the unused cleanup to a _sync initcall
| * 978e50ef8c can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER)
| * e4a6d3acad of: property: fix typo in io-channels
| * 8180d0c27b ceph: prevent use-after-free in encode_cap_msg()
| * 2e9506c9e0 s390/qeth: Fix potential loss of L3-IP@ in case of network issues
| * 888679afbf irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update
| * 2809645d8a irqchip/irq-brcmstb-l2: Add write memory barrier before exit
| * 45a3657c3f wifi: mac80211: reload info pointer in ieee80211_tx_dequeue()
| * c7fa9590a9 nfp: flower: prevent re-adding mac index for bonded port
| * 962091c408 nfp: use correct macro for LengthSelect in BAR config
| * 58054faf3b crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked
| * 98a4026b22 nilfs2: fix hang in nilfs_lookup_dirty_data_buffers()
| * 364a66be2a nilfs2: fix data corruption in dsync block recovery for small block sizes
| * a643d8d179 ALSA: hda/conexant: Add quirk for SWS JS201D
| * ca0533fe66 mmc: slot-gpio: Allow non-sleeping GPIO ro
| * bdc29f9ca3 x86/mm/ident_map: Use gbpages only where full GB page should be mapped.
| * 09f21bee5b x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
| * 1a8a72ee17 serial: max310x: improve crystal stable clock detection
| * 6f248ee7aa serial: max310x: set default value when reading clock ready bit
| * 92a0a5d613 ring-buffer: Clean ring_buffer_poll_wait() error return
| * 9ec807e7b6 hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove
| * 93d8109bf1 media: rc: bpf attach/detach requires write permission
| * a98ccbcddb iio: accel: bma400: Fix a compilation problem
| * 36a49290d7 iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC
| * fa5884dd5b staging: iio: ad5933: fix type mismatch regression
| * 8a744f925d tracing: Fix wasted memory in saved_cmdlines logic
| * d033a555d9 ext4: fix double-free of blocks due to wrong extents moved_len
| * f86e12415b misc: fastrpc: Mark all sessions as invalid in cb_remove
| * a423042052 binder: signal epoll threads of self-work
| * 6d11240dd1 ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
| * cdaddb457d xen-netback: properly sync TX responses
| * 0d8011a878 net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame()
| * 2f6d16f052 nfc: nci: free rx_data_reassembly skb on NCI device cleanup
| * 5abf3e8af2 kbuild: Fix changing ELF file type for output of gen_btf for big endian
| * 6717c593c7 firewire: core: correct documentation of fw_csr_string() kernel API
| * 2dc1d93b2c lsm: fix the logic in security_inode_getsecctx()
| * 7d4e19f7ff scsi: Revert "scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock"
| * ca188f2512 modpost: trim leading spaces when processing source files list
| * 7a14b8a477 i2c: i801: Fix block process call transactions
| * 5e8a6140d4 i2c: i801: Remove i801_set_block_buffer_mode
| * 230e89b5ad powerpc/kasan: Fix addr error caused by page alignment
| * 486a4176bc media: ir_toy: fix a memleak in irtoy_tx
| * b8da59ad91 usb: f_mass_storage: forbid async queue when shutdown happen
| * 9a8ccbc6ec USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
| * 9d07bdbfa4 usb: ucsi_acpi: Fix command completion handling
| * f304eb4833 HID: wacom: Do not register input devices until after hid_hw_start
| * 4f7927310e HID: wacom: generic: Avoid reporting a serial of '0' to userspace
| * d51fc41e15 ALSA: hda/realtek: Enable Mute LED on HP Laptop 14-fq0xxx
| * 8da18c51ce ALSA: hda/realtek: Fix the external mic not being recognised for Acer Swift 1 SF114-32
| * 81e7d2530d mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again
| * 56cfbe6071 tracing/trigger: Fix to return error if failed to alloc snapshot
| * 6d05659b60 i40e: Fix waiting for queues of all VSIs to be disabled
| * f026f23849 MIPS: Add 'memory' clobber to csum_ipv6_magic() inline assembler
| * ed8c87ac8a net: sysfs: Fix /sys/class/net/<iface> path for statistics
| * 4a98bc739d ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
| * f8cd86c67d spi: ppc4xx: Drop write-only variable
| * 55cfccb658 net: openvswitch: limit the number of recursions from action sets
| * 3f9b9585b7 of: unittest: Fix compile in the non-dynamic case
| * dc8bce9c71 btrfs: send: return EOPNOTSUPP on unknown flags
| * 22965e4fee btrfs: forbid deleting live subvol qgroup
| * 3f5d47eb16 btrfs: do not ASSERT() if the newly created subvolume already got read
| * d7247ce32a btrfs: forbid creating subvol qgroups
| * 4cee42fcf5 netfilter: nft_set_rbtree: skip end interval element from gc
| * feace3c240 net: stmmac: xgmac: fix a typo of register name in DPP safety handling
| * 78115a3473 net: stmmac: xgmac: use #define for string constants
| * 8868106251 clocksource: Skip watchdog check for large watchdog intervals
| * cda4ca038c vhost: use kzalloc() instead of kmalloc() followed by memset()
| * 63d97c3aba Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
| * 9a564a9a07 Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
| * b1f576be92 hrtimer: Report offline hrtimer enqueue
| * b87060b3e8 usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK
| * 34fd6f444b USB: serial: cp210x: add ID for IMST iM871A-USB
| * 53479fcfd0 USB: serial: option: add Fibocom FM101-GL variant
| * c537b88b39 USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
| * e800ef36d1 net/af_iucv: clean up a try_then_request_module()
| * 9f56f38331 blk-iocost: Fix an UBSAN shift-out-of-bounds warning
| * 9878c660d1 scsi: core: Move scsi_host_busy() out of host lock if it is for per-command
| * 1dd947c21d netfilter: nft_set_pipapo: remove scratch_aligned pointer
| * d6fcad0da2 netfilter: nft_set_pipapo: add helper to release pcpu scratch area
| * 1771e8347f netfilter: nft_set_pipapo: store index in scratch maps
| * d1ec65c49e netfilter: nft_ct: reject direction for ct id
| * 730fce47e5 netfilter: nft_compat: restrict match/target protocol to u16
| * 78909916a2 netfilter: nft_compat: reject unused compat flag
| * b06e067e93 ppp_async: limit MRU to 64K
| * 19d7314f2f tipc: Check the bearer type before calling tipc_udp_nl_bearer_add()
| * 09e91f3e7e rxrpc: Fix response to PING RESPONSE ACKs to a dead call
| * 88081ba415 inet: read sk->sk_family once in inet_recv_error()
| * 7e42379d29 hwmon: (coretemp) Fix bogus core_id to attr name mapping
| * f0da068c75 hwmon: (coretemp) Fix out-of-bounds memory access
| * 9551de5caa hwmon: (aspeed-pwm-tacho) mutex for tach reading
| * edfd328fe7 atm: idt77252: fix a memleak in open_card_ubr0
| * e77bf828f1 tunnels: fix out of bounds access when building IPv6 PMTU error
| * fd473100bf selftests: net: avoid just another constant wait
| * 2fc45a4631 net: stmmac: xgmac: fix handling of DPP safety error for DMA channels
| * 66c8243e61 drm/msm/dp: return correct Colorimetry for DP_TEST_DYNAMIC_RANGE_CEA case
| * be3b82e487 phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
| * 784d315482 dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
| * 68459d2b0c phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
| * ae6769ba51 dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
| * fbe1c5c6a8 dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
| * 3496a1da71 dmaengine: ti: k3-udma: Report short packet errors
| * b7dbf4115b dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
| * 6db18971f7 PM: sleep: Fix error handling in dpm_prepare()
| * 6388d0e320 uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++
| * 2563e7c687 bonding: remove print in bond_verify_device_path
| * d1a9900e64 HID: apple: Add 2021 magic keyboard FN key mapping
| * b1e3ea7c48 HID: apple: Add support for the 2021 Magic Keyboard
| * e5eca7954a net: sysfs: Fix /sys/class/net/<iface> path
| * f199018dc7 af_unix: fix lockdep positive in sk_diag_dump_icons()
| * 9c9cab01c7 net: ipv4: fix a memleak in ip_setup_cork
| * 65ee90efc9 netfilter: nft_ct: sanitize layer 3 and 4 protocol number in custom expectations
| * 32fa7abb18 netfilter: nf_log: replace BUG_ON by WARN_ON_ONCE when putting logger
| * d0b5b1f124 llc: call sock_orphan() at release time
| * e34c91e7e8 ipv6: Ensure natural alignment of const ipv6 loopback and router addresses
| * b45fae96bd ixgbe: Fix an error handling path in ixgbe_read_iosf_sb_reg_x550()
| * f8bccfa175 ixgbe: Refactor overtemp event handling
| * e16c254f60 ixgbe: Refactor returning internal error codes
| * 2499c0661b ixgbe: Remove non-inclusive language
| * f48bf9a83b tcp: add sanity checks to rx zerocopy
| * 14690e419b net-zerocopy: Refactor frag-is-remappable test.
| * a9bc32879a ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv()
| * a57b114a84 ip6_tunnel: use dev_sw_netstats_rx_add()
| * f5944853f7 scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler
| * 7efadce40a scsi: core: Introduce enum scsi_disposition
| * dca11bfa01 scsi: isci: Fix an error code problem in isci_io_request_build()
| * 948090f66a drm: using mul_u32_u32() requires linux/math64.h
| * 02161f622d wifi: cfg80211: fix RCU dereference in __cfg80211_bss_update
| * b54eecdc08 perf: Fix the nr_addr_filters fix
| * 73eda26931 drm/amdgpu: Release 'adev->pm.fw' before return in 'amdgpu_device_need_post()'
| * feacc80040 drm/amd/powerplay: Fix kzalloc parameter 'ATOM_Tonga_PPM_Table' in 'get_platform_power_management_table()'
| * e016e35846 ceph: fix deadlock or deadcode of misusing dget()
| * 7610ba1319 blk-mq: fix IO hang from sbitmap wakeup race
| * 27ae156e63 virtio_net: Fix "‘%d’ directive writing between 1 and 11 bytes into a region of size 10" warnings
| * 0079078f5e libsubcmd: Fix memory leak in uniq()
| * 32a8243788 PCI/AER: Decode Requester ID when no error info found
| * feaf0752b3 fs/kernfs/dir: obey S_ISGID
| * 6f921430b0 tty: allow TIOCSLCKTRMIOS with CAP_CHECKPOINT_RESTORE
| * e962b59d37 usb: hub: Replace hardcoded quirk value with BIT() macro
| * 4a5d0528cf PCI: switchtec: Fix stdev_release() crash after surprise hot remove
| * 385e49a40f PCI: Only override AMD USB controller if required
| * bb59b30a5c mfd: ti_am335x_tscadc: Fix TI SoC dependencies
| * e4fdf3b176 xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import
| * 89bdf3a9f9 i3c: master: cdns: Update maximum prescaler value for i2c clock
| * b345f330ae um: net: Fix return type of uml_net_start_xmit()
| * ef21984653 um: Don't use vfprintf() for os_info()
| * e4cc555388 um: Fix naming clash between UML and scheduler
| * d47f5d41d8 leds: trigger: panic: Don't register panic notifier if creating the trigger failed
| * 8342ac4a55 drm/amdgpu: Drop 'fence' check in 'to_amdgpu_amdkfd_fence()'
| * 48bb06f8e3 drm/amdgpu: Let KFD sync with VM fences
| * e90c8f9785 watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786
| * 6f59516a36 clk: mmp: pxa168: Fix memory leak in pxa168_clk_init()
| * 2cb6059468 clk: hi3620: Fix memory leak in hi3620_mmc_clk_init()
| * 5fd28ab1c8 drm/msm/dpu: Ratelimit framedone timeout msgs
| * 179fe24bd6 media: ddbridge: fix an error code problem in ddb_probe
| * ac2630fd3c IB/ipoib: Fix mcast list locking
| * 9503ce5f87 drm/exynos: Call drm_atomic_helper_shutdown() at shutdown/unbind time
| * 1eeca000f2 ALSA: hda: intel-dspcfg: add filters for ARL-S and ARL
| * 3841b8a64e ALSA: hda: Intel: add HDA_ARL PCI ID support
| * 56d717aa7b PCI: add INTEL_HDA_ARL to pci_ids.h
| * b68e373dc0 media: rockchip: rga: fix swizzling for RGB formats
| * 32c5e3f808 media: stk1160: Fixed high volume of stk1160_dbg messages
| * 425a441c5c drm/mipi-dsi: Fix detach call without attach
| * 0ec29a0f03 drm/framebuffer: Fix use of uninitialized variable
| * d7b81afa11 drm/drm_file: fix use of uninitialized variable
| * 9a572fc1f6 f2fs: fix write pointers on zoned device after roll forward
| * 7fb8c13273 drm/amd/display: Fix tiled display misalignment
| * 3a1da8abd7 RDMA/IPoIB: Fix error code return in ipoib_mcast_join
| * 13d20b2c20 fast_dput(): handle underflows gracefully
| * 706fb30da0 ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
| * 354785abdf ALSA: hda: Refer to correct stream index at loops
| * 80c69f576f f2fs: fix to check return value of f2fs_reserve_new_block()
| * e474e7a7d6 i40e: Fix VF disable behavior to block all traffic
| * ed6de41473 Bluetooth: L2CAP: Fix possible multiple reject send
| * e1bcd9a42e Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066
| * 27575c2f1f wifi: cfg80211: free beacon_ies when overridden from hidden BSS
| * 40bcbf7d90 wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift()
| * 1632481a99 wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices
| * 2131606a5f arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
| * 4668f3e6ac arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
| * 82f6e7e68e md: Whenassemble the array, consult the superblock of the freshest device
| * 1746cd95a5 block: prevent an integer overflow in bvec_try_merge_hw_page
| * 1335310a6a net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path
| * 9c51d26ff9 ARM: dts: imx23/28: Fix the DMA controller node name
| * 6c22388d96 ARM: dts: imx23-sansa: Use preferred i2c-gpios properties
| * fb9bdf84b6 ARM: dts: imx27-apf27dev: Fix LED name
| * 1dd3a37909 ARM: dts: imx25/27: Pass timing0
| * 3c2bce8976 ARM: dts: imx25: Fix the iim compatible string
| * 95bc866c11 block/rnbd-srv: Check for unlikely string overflow
| * 03ca1d3d8f ionic: pass opcode to devcmd_wait
| * ba108f3db9 ARM: dts: imx1: Fix sram node
| * 2f22ce556e ARM: dts: imx27: Fix sram node
| * e6c0ea054c ARM: dts: imx: Use flash@0,0 pattern
| * bfbaf1551b ARM: dts: imx25/27-eukrea: Fix RTC node name
| * 24bb6b2647 ARM: dts: rockchip: fix rk3036 hdmi ports node
| * 11c1fc73bf bpf: Set uattr->batch.count as zero before batched update or deletion
| * 2e7f8d05ec scsi: libfc: Fix up timeout error in fc_fcp_rec_error()
| * a72670f465 scsi: libfc: Don't schedule abort twice
| * 80700978cb bpf: Add map and need_defer parameters to .map_fd_put_ptr()
| * 84770a996a wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus()
| * c390b6a2c3 ARM: dts: imx7s: Fix nand-controller #size-cells
| * d7cb295b53 ARM: dts: imx7s: Fix lcdif compatible
| * 73ead7a37a ARM: dts: imx7d: Fix coresight funnel ports
| * 86781b3a8e scsi: arcmsr: Support new PCI device IDs 1883 and 1886
| * db516f6030 bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk
| * 4f87b8d932 PCI: Add no PM reset quirk for NVIDIA Spectrum devices
| * 9bc7617a0d scsi: lpfc: Fix possible file string name overflow when updating firmware
| * 9b9bbba16b selftests/bpf: Fix pyperf180 compilation failure with clang18
| * 747838941f selftests/bpf: satisfy compiler by having explicit return in btf test
| * 69e905beca wifi: rt2x00: restart beacon queue when hardware reset
| * cfbbb3199e ext4: avoid online resizing failures due to oversized flex bg
| * e7b9fa6c29 ext4: remove unnecessary check from alloc_flex_gd()
| * b960192422 ext4: unify the type of flexbg_size to unsigned int
| * 64448275f8 ext4: fix inconsistent between segment fstrim and full fstrim
| * 5183595c0b ecryptfs: Reject casefold directory inodes
| * c430e6bb43 SUNRPC: Fix a suspicious RCU usage warning
| * 150a3a3871 KVM: s390: fix setting of fpc register
| * 856caf2730 s390/ptrace: handle setting of fpc register correctly
| * e2b77d107b jfs: fix array-index-out-of-bounds in diNewExt
| * 5f1f459520 rxrpc_find_service_conn_rcu: fix the usage of read_seqbegin_or_lock()
| * ae53c54ed7 afs: fix the usage of read_seqbegin_or_lock() in afs_find_server*()
| * a02356d996 afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu()
| * 108c4db057 crypto: stm32/crc32 - fix parsing list of devices
| * a63e48cd83 pstore/ram: Fix crash when setting number of cpus to an odd number
| * bc6ef64dbe jfs: fix uaf in jfs_evict_inode
| * 2037cb9d95 jfs: fix array-index-out-of-bounds in dbAdjTree
| * 1c40ca3d39 jfs: fix slab-out-of-bounds Read in dtSearch
| * 7aa3385447 UBSAN: array-index-out-of-bounds in dtSplitRoot
| * de34de6e57 FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree
| * 95c864c811 ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events
| * 3399cc7013 PM / devfreq: Synchronize devfreq_monitor_[start/stop]
| * b17a71435e ACPI: extlog: fix NULL pointer dereference check
| * c261594853 PNP: ACPI: fix fortify warning
| * 3a13ed6298 ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop
| * c74b2af2cc audit: Send netlink ACK before setting connection in auditd_set
| * 37e00ed71e regulator: core: Only increment use_count when enable_count changes
| * 19c7132270 debugobjects: Stop accessing objects after releasing hash bucket lock
| * c57cb397fe perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
| * 5224b9db24 x86/mce: Mark fatal MCE's page as poison to avoid panic in the kdump kernel
| * beee482cc4 powerpc/lib: Validate size for vector operations
| * 24a58abcff powerpc: pmd_move_must_withdraw() is only needed for CONFIG_TRANSPARENT_HUGEPAGE
| * 02e5b2ff47 x86/boot: Ignore NMIs during very early boot
| * 9d06c199d8 powerpc/mm: Fix build failures due to arch_reserved_kernel_pages()
| * 3928c06363 powerpc: Fix build error due to is_valid_bugaddr()
| * 353496cb35 drivers/perf: pmuv3: don't expose SW_INCR event in sysfs
| * aa28eecb43 powerpc/mm: Fix null-pointer dereference in pgtable_cache_add
| * 4e806600eb x86/entry/ia32: Ensure s32 is sign extended to s64
| * cdc01845df tick/sched: Preserve number of idle sleeps across CPU hotplug events
| * 3736a7832b mips: Call lose_fpu(0) before initializing fcr31 in mips_set_personality_nan
| * 95a8a5193e spi: bcm-qspi: fix SFDP BFPT read by usig mspi read
| * f1ba5bf9e0 gpio: eic-sprd: Clear interrupt after set the interrupt type
| * 0924bcd2fd drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
| * b6abe30de3 drm/exynos: fix accidental on-stack copy of exynos_drm_plane
| * 4e56c5a9b9 drm: panel-simple: add missing bus flags for Tianma tm070jvhg[30/33]
| * e1c50b0c62 btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted
| * d073f4608b btrfs: remove err variable from btrfs_delete_subvolume
| * 90ad17575d mm/sparsemem: fix race in accessing memory_section->usage
| * 74a80f8dda mm: use __pfn_to_section() instead of open coding it
| * 43872f44ee media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
| * 9087d0c2ba arm64: dts: qcom: sc7180: fix USB wakeup interrupt types
| * 3de807b140 arm64: dts: qcom: sc7180: Use pdc interrupts for USB instead of GIC interrupts
| * 8b2c7bb605 ARM: dts: samsung: exynos4210-i9100: Unconditionally enable LDO12
| * 162ae0e78b pipe: wakeup wr_wait after setting max_usage
| * b6f27626f5 fs/pipe: move check to pipe_has_watch_queue()
| * f46eb83238 PM: sleep: Fix possible deadlocks in core system-wide PM code
| * 8b604883d4 PM: core: Remove unnecessary (void *) conversions
| * 57df40f800 PM: sleep: Avoid calling put_device() under dpm_list_mtx
| * 2245a84985 PM: sleep: Use dev_printk() when possible
| * 8a6a51b80b drm/bridge: nxp-ptn3460: simplify some error checking
| * bedbbdf056 drm/tidss: Fix atomic_flush check
| * ea19252691 drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking
| * f55261469b drm: Don't unref the same fb many times by mistake due to deadlock handling
| * bb575bc3e7 gpiolib: acpi: Ignore touchpad wakeup on GPD G1619-04
| * 55a60251fa netfilter: nf_tables: reject QUEUE/DROP verdict parameters
| * 9489e214ea netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain
| * 05dd9facfb wifi: iwlwifi: fix a memory corruption
| * c0760a5c3e exec: Fix error handling in begin_new_exec()
| * 30f38928b6 rbd: don't move requests to the running list on errors
| * 2bdf872bcf btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
| * 5d3687baa9 btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
| * f27937426b btrfs: don't warn if discard range is not aligned to sector
| * f8a7a51a6c btrfs: tree-checker: fix inline ref size in error messages
| * be90e25880 btrfs: ref-verify: free ref cache before clearing mount opt
| * 7c3a572e15 net: fec: fix the unhandled context fault from smmu
| * a52b2faf60 fjes: fix memleaks in fjes_hw_setup
| * e1bf3ec97a selftests: netdevsim: fix the udp_tunnel_nic test
| * 83f99138bf net: mvpp2: clear BM pool before initialization
| * 6a2e2d9890 netfilter: nf_tables: validate NFPROTO_* family
| * 4fbdc3a18f netfilter: nf_tables: restrict anonymous set and map names to 16 bytes
| * cf116d9c3c net/mlx5e: fix a double-free in arfs_create_groups
| * 1123661a08 net/mlx5: DR, Use the right GVMI number for drop action
| * a3eba5989f ipv6: init the accept_queue's spinlocks in inet6_create
| * be8d1f619e netlink: fix potential sleeping issue in mqueue_flush_file
| * 69ca75e063 tcp: Add memory barrier to tcp_push()
| * 8499e2f121 afs: Hide silly-rename files from userspace
| * ef70dfa0b1 tracing: Ensure visibility when inserting an element into tracing_map
| * 5ae8d50044 net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv
| * 9ccdef19cf llc: Drop support for ETH_P_TR_802_2.
| * 04f2a74b56 llc: make llc_ui_sendmsg() more robust against bonding changes
| * ea4c3cb7fd vlan: skip nested type that is not IFLA_VLAN_QOS_MAPPING
| * fc74f86a33 bnxt_en: Wait for FLR to complete during probe
| * bc99dcedd2 tcp: make sure init the accept_queue's spinlocks once
| * 5fed92ca32 net/smc: fix illegal rmb_desc access in SMC-D connection dump
| * c71e1c1a08 KVM: use __vcalloc for very large allocations
| * 95670878a6 mm: vmalloc: introduce array allocation functions
| * 02f629bb46 smb3: Replace smb2pdu 1-element arrays with flex-arrays
| * 443b16ee3d stddef: Introduce DECLARE_FLEX_ARRAY() helper
| * bfc0647791 block: Remove special-casing of compound pages
| * ff4332f1ec rename(): fix the locking of subdirectories
| * d132010e6d ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
| * c6e6640784 nouveau/vmm: don't set addr on the fail path to avoid warning
| * 83217f1bcb rtc: Adjust failure return code for cmos_set_alarm()
| * b51578bd86 mmc: mmc_spi: remove custom DMA mapped buffers
| * 59020bf099 mmc: core: Use mrq.sbc in close-ended ffu
| * 625cb3f3bc scripts/get_abi: fix source path leak
| * 311dc5afad lsm: new security_file_ioctl_compat() hook
| * f726690397 arm64: dts: qcom: sdm845: fix USB DP/DM HS PHY interrupts
| * dfc2c685f3 arm64: dts: qcom: sdm845: fix USB wakeup interrupt types
| * ac4dcccbe9 async: Introduce async_schedule_dev_nocall()
| * 9ef68b58fd async: Split async_schedule_node_domain()
| * 1dd8449e20 parisc/firmware: Fix F-extend for PDC addresses
| * 20a6dea2d1 bus: mhi: host: Drop chan lock before queuing buffers
| * 69ca89d80f rpmsg: virtio: Free driver_override when rpmsg_remove()
| * cd51e26a3b crypto: s390/aes - Fix buffer overread in CTR mode
| * c6a8111aac hwrng: core - Fix page fault dead lock on mmap-ed hwrng
| * 981a31b754 PM: hibernate: Enforce ordering during image compression/decompression
| * 462c383e73 crypto: api - Disallow identical driver names
| * fa94912241 ext4: allow for the last group to be marked as trimmed
| * d173ef1255 iio:adc:ad7091r: Move exports into IIO_AD7091R namespace.
| * 9de69732dd dmaengine: fix NULL pointer in channel unregistration function
| * 653d289060 iio: adc: ad7091r: Enable internal vref if external vref is not supplied
| * 1eba6f7ffa iio: adc: ad7091r: Allow users to configure device events
| * 9ec7498a25 iio: adc: ad7091r: Set alert bit in config register
| * be5d6a297d serial: sc16is7xx: add check for unsupported SPI modes during probe
| * 8df2aec94b spi: introduce SPI_MODE_X_MASK macro
| * 6ec08ce3bf serial: sc16is7xx: set safe default SPI clock frequency
| * e83f114994 units: add the HZ macros
| * 762217e973 units: change from 'L' to 'UL'
| * f37f4a0c53 PCI: mediatek: Clear interrupt status before dispatching handler
| * 490eaca842 usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled
| * bf70321419 usb: cdns3: fix iso transfer error when mult is not zero
| * 6aec2f089d usb: cdns3: fix incorrect calculation of ep_buf_size when more than one config
| * 2fdc98b05c usb: cdns3: fix uvc failure work since sg support enabled
| * 67d3c71cf8 usb: cdns3: Fixes for sparse warnings
* bb4ccced84 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'

Change-Id: I426dde9c00dda717bda1273bfda50890d07f6610
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-30 15:24:20 +00:00
John Stultz
178bf27b97 UPSTREAM: selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior
[ Upstream commit 076361362122a6d8a4c45f172ced5576b2d4a50d ]

The struct adjtimex freq field takes a signed value who's units are in
shifted (<<16) parts-per-million.

Unfortunately for negative adjustments, the straightforward use of:

  freq = ppm << 16 trips undefined behavior warnings with clang:

valid-adjtimex.c:66:6: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
        -499<<16,
        ~~~~^
valid-adjtimex.c:67:6: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
        -450<<16,
        ~~~~^
..

Fix it by using a multiply by (1 << 16) instead of shifting negative values
in the valid-adjtimex test case. Align the values for better readability.

Bug: 339526723
Reported-by: Lee Jones <joneslee@google.com>
Reported-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Change-Id: Ied611c13a802acf9c7a2427f0a61eb358b571a3d
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Link: https://lore.kernel.org/r/20240409202222.2830476-1-jstultz@google.com
Link: https://lore.kernel.org/lkml/0c6d4f0d-2064-4444-986b-1d1ed782135f@collabora.com/
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 1f3484dec916a3c4f43c4c44bad398bc24373110)
Signed-off-by: Edward Liaw <edliaw@google.com>
2024-05-24 00:16:59 +00:00
Isaac J. Manjarres
9f5f2481c9 ANDROID: kbuild: Search external devicetree path when running clean target
When running the clean target, kbuild is supposed to remove dtbs and
dtbos. However, kbuild only searches for those devicetree build
artifacts in the directory that the kernel binaries or kernel modules
are output to. This is not sufficient in cases where an external
devicetree is used, so include the external devicetree path when
searching for dtb and dtbo build artifacts.

Bug: 264602319
Fixes: 3d42cc9e75a3 ("ANDROID: kbuild: add support for compiling external device trees")
Change-Id: I45fdfdef09c3d57401d98e5db731273147d7d265
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
2024-05-20 17:08:55 -07:00
Will McVicker
50b4a2a7e1 ANDROID: kbuild: add support for compiling external device trees
Similar to external modules, the device tree should also be allowed to
be compiled using out-of-tree source. This would allow one to further
separate the core kernel from the vendor-specific device trees. To do
this, we just need to allow the user to set the "dtstree" and
"DTC_INCLUDE" build properties in the build environment.

To setup the external device tree, you can follow these steps:

1) Move the device tree to your out-of-tree project.
2) Move the dt-bindings to your out-of-tree project.
3) Configure your build environment to set the following variables:

  dtstree=/path/to/device/tree
  DTC_INCLUDE=/path/to/device/tree/dtc/include-prefixes

If you are using build.sh, then you can use DTS_EXT_DIR to define the
dtstree.

Bug: 210036798
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Ibf05544ee8250a68b882328817a267518ae478b5
2024-05-20 17:05:00 -07:00
Greg Kroah-Hartman
ca0eb54113 ANDROID: cpufreq: brcmstb-avs-cpufreq: fix build error
In commit 9127599c07 ("cpufreq: brcmstb-avs-cpufreq: add check for
cpufreq_cpu_get's return value"), a check is made in a way that causes a
build warning, which in Android systems, breaks the build.  Fix this up
by moving the definition of the variable above the check to remove the
warning.

Fixes: 9127599c07 ("cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value")
Change-Id: I8477905e3447eb4eabf3aa0899534c06a0cca125
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 11:29:35 +00:00
Greg Kroah-Hartman
8215d23ef6 Revert "remoteproc: Add new get_loaded_rsc_table() to rproc_ops"
This reverts commit 7b95472049 which is
commit 1a631382be1d22ddab0582dae3498b3d28e2e44a upstream.

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

Bug: 161946584
Change-Id: I6b803ae688ecf0106b12c244b953c3fd1605d6de
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:48:48 +00:00
Greg Kroah-Hartman
453106487d Revert "remoteproc: stm32: Move resource table setup to rproc_ops"
This reverts commit 9d057eacf8 which is
commit 8a471396d21ca499d89d4071b2b670258f009ffa upstream.

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

Bug: 161946584
Change-Id: I87e3536f7f26a145917a54da94324b4c8f442ba2
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:48:23 +00:00
Greg Kroah-Hartman
14fe873d43 Revert "remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef"
This reverts commit 40260d0649 which is
commit c77b35ce66af25bdd6fde60b62e35b9b316ea5c2 upstream.

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

Bug: 161946584
Change-Id: Ib0d934b5b267257be3e925c7e3cd6e88c2623a00
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:47:52 +00:00
Greg Kroah-Hartman
7cb2a3c384 Revert "remoteproc: stm32: fix phys_addr_t format string"
This reverts commit 5148026b65 which is
commit 3e25e407a1c93b53a87a7743ea0cd4703d3985b7 upstream.

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

Bug: 161946584
Change-Id: I3f103fd05d2a7aeb35665162aa2f10d021d01cc0
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:47:14 +00:00
Greg Kroah-Hartman
a626900b07 Revert "remoteproc: stm32: use correct format strings on 64-bit"
This reverts commit f0b0a4de78 which is
commit 03bd158e1535e68bcd2b1e095b0ebcad7c84bd20 upstream.

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

Bug: 161946584
Change-Id: I8f629e3f572a8af3ab30cc2bb8c98ac3eadd97e7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:46:00 +00:00
Greg Kroah-Hartman
b05356dd8a Revert "remoteproc: stm32: Fix incorrect type in assignment for va"
This reverts commit 0dd5b63ae2 which is
commit 32381bbccba4c21145c571701f8f7fb1d9b3a92e upstream.

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

Bug: 161946584
Change-Id: Ic7512dc88e8c32c3adc7fec73f4cc0c89fd58c80
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:45:36 +00:00
Greg Kroah-Hartman
f21d21f05e Revert "block: add a new set_read_only method"
This reverts commit 2a0f8202f7 which is
commit e00adcadf3af7a8335026d71ab9f0e0a922191ac upstream.

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

Bug: 161946584
Change-Id: I20342421827a743bfb159577aa151698b101d17d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:43:46 +00:00
Greg Kroah-Hartman
560f181cad Revert "md: implement ->set_read_only to hook into BLKROSET processing"
This reverts commit ab25f7cd49 which is
commit 118cf084adb3964d06e1667cf7d702e56e5cd2c5 upstream.

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

Bug: 161946584
Change-Id: I6f11869ebbf73fed88b101bc13ddd029ff6d185d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:43:25 +00:00
Greg Kroah-Hartman
2c7d369ecc Revert "md: Don't clear MD_CLOSING when the raid is about to stop"
This reverts commit bb567cb5cd which is
commit 9674f54e41fffaf06f6a60202e1fa4cc13de3cf5 upstream.

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

Bug: 161946584
Change-Id: I4c121821592a6813e9125c7946fc43240c1304e1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-20 10:42:50 +00:00
Krishna Kurapati
fe033e0b34 ANDROID: usb: gadget: ncm: Introduce vendor opts to deal with ABI breakage
Adding commit [1] to NCM driver essentially breaks the ABI as
it modifies ncm_opts structure by adding max_segment_size variable
to it. Fix this bymoving the newly added variable to a vendor opts
structure.

[1]: https://lore.kernel.org/all/20231221153216.18657-1-quic_kriskura@quicinc.com/

Bug: 341015322
Change-Id: Id1a05847ebc914cbe416b6eeb3aede3b3683bf88
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-05-17 15:21:18 +00:00
Krishna Kurapati
19eb358ded UPSTREAM: usb: gadget: ncm: Fix endianness of wMaxSegmentSize variable in ecm_desc
Recent commit [1] added support for changing max segment size of the NCM
interface via configfs. But the value of segment size value stored in
ncm_opts need to be converted to little endian before saving it in
ecm_desc. Also while initialising the value of segment size in opts during
instance allocation, the value ETH_FRAME_LEN needs to be assigned directly
without any conversion as ETH_FRAME_LEN and the variable max_segment_size
are native endian. The current implementaion modifies it into little endian
thus breaking things for big endian targets.

Fix endianness while assigning these variables.
While at it, fix up some stray spaces in comments added in code.

[1]: https://lore.kernel.org/all/20231221153216.18657-1-quic_kriskura@quicinc.com/

Fixes: 1900daeefd3e ("usb: gadget: ncm: Add support to update wMaxSegmentSize via configfs")
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Reviewed-by: Maciej Żenczykowski <maze@google.com>
Link: https://lore.kernel.org/r/20240118154910.8765-1-quic_kriskura@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit 9dc292413c56a2d01e34787d3fc4a76635e4a498
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)

Bug: 341015322
Change-Id: I21e15f72069bfe42ed88ef1bde2066a095e3fa7d
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-05-17 15:21:18 +00:00
Krishna Kurapati
38958820bd UPSTREAM: usb: gadget: ncm: Add support to update wMaxSegmentSize via configfs
The max segment size is currently limited to the ethernet frame length of
the kernel which happens to be 1514 at this point in time. However the NCM
specification limits it to 64K for sixtenn bit NTB's. For peer to peer
connections, increasing the segment size gives better throughput.

Add support to configure this value before configfs symlink is created.
Also since the NTB Out/In buffer sizes are fixed at 16384 bytes, limit the
segment size to an upper cap of 8000 to allow at least a minimum of 2 MTU
sized datagrams to be aggregated.

Set the default MTU size for the ncm interface during function bind before
network interface is registered allowing MTU to be set in parity with
wMaxSegmentSize.

Update gadget documentation describing the new configfs property.

Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Link: https://lore.kernel.org/r/20231221153216.18657-1-quic_kriskura@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit 1900daeefd3ebde61199649143085a2dfdebf55c
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)

Bug: 341015322
Change-Id: I34f317e9c1926d886035be069a8e3a73ffd9261c
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-05-17 15:21:18 +00:00
hulianqin
43bb9f846d ANDROID: usb: Optimize the problem of slow transfer rate in USB accessory mode
The data transfer rate using Google Restore in USB3.2 mode is slower,
only about 140MB/s at 5Gbps.

The bMaxBurst is not set, and num_fifos in
dwc3_gadget_resize_tx_fifosis 1, which results
in only 131btye of dwc3 ram space being allocated to ep.

Modify bMaxBurst to 6.
The 5Gbps rate increases from 140MB/s to 350MB/s.
The 10Gbps rate is increased from 220MB/s to 500MB/s.

Bug: 340049583
BUG: 341178033

Change-Id: I5710af32c72d0b57afaecc00c4f0909af4b9a299
Signed-off-by: Lianqin Hu <hulianqin@vivo.corp-partner.google.com>
Signed-off-by: Lianqin Hu <hulianqin@vivo.com>
(cherry picked from commit 23f2a9f5f13426263f557ff67ce8f4e3f7965d12)
Signed-off-by: Lianqin Hu <hulianqin@vivo.com>
2024-05-17 02:31:52 +00:00
Dezhi Huang
b2c2d74cae ANDROID: ABI: Update honor symbol list
1 function symbol(s) added
  'int __traceiter_android_vh_tune_fault_around_bytes(unsigned long *)'

1 variable symbol(s) added
  'struct tracepoint __tracepoint_android_vh_tune_fault_around_bytes'

with this vendor_hook, oem can dynamically adjust fault_around_bytes to
balance memory usage and performance

Bug: 340744332
Change-Id: I8929113eca128b3bf4e2c0bbe12761e6b5fd9264
Signed-off-by: Dezhi Huang <huangdezhi@hihonor.com>
2024-05-16 16:19:54 +00:00
Dezhi Huang
33c78af45a ANDROID: add vendor hook in do_read_fault to tune fault_around_bytes
with this vendor_hook, oem can dynamically adjust fault_around_bytes to
balance memory usage and performance

Bug: 340744332
Change-Id: I24414c7ba7e77ae06ce5e8cf52377c3485185cfe
Signed-off-by: Dezhi Huang <huangdezhi@hihonor.com>
2024-05-16 16:19:54 +00:00
Prashanth K
7fc588d60f FROMGIT: usb: dwc3: Wait unconditionally after issuing EndXfer command
Currently all controller IP/revisions except DWC3_usb3 >= 310a
wait 1ms unconditionally for ENDXFER completion when IOC is not
set. This is because DWC_usb3 controller revisions >= 3.10a
supports GUCTL2[14: Rst_actbitlater] bit which allows polling
CMDACT bit to know whether ENDXFER command is completed.

Consider a case where an IN request was queued, and parallelly
soft_disconnect was called (due to ffs_epfile_release). This
eventually calls stop_active_transfer with IOC cleared, hence
send_gadget_ep_cmd() skips waiting for CMDACT cleared during
EndXfer. For DWC3 controllers with revisions >= 310a, we don't
forcefully wait for 1ms either, and we proceed by unmapping the
requests. If ENDXFER didn't complete by this time, it leads to
SMMU faults since the controller would still be accessing those
requests.

Fix this by ensuring ENDXFER completion by adding 1ms delay in
__dwc3_stop_active_transfer() unconditionally.

Cc: stable@vger.kernel.org
Fixes: b353eb6dc285 ("usb: dwc3: gadget: Skip waiting for CMDACT cleared during endxfer")
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/20240502044103.1066350-1-quic_prashk@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 340415457
(cherry picked from commit 1d26ba0944d398f88aaf997bda3544646cf21945
https: //git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ usb-next)
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
Change-Id: I0d3792d620ecd380f2a0a80ae5137c25d1adac4d
2024-05-16 13:41:30 +00:00
Greg Kroah-Hartman
e2ddf25269 Revert "bpf: Defer the free of inner map when necessary"
This reverts commit 90c445799f which is
commit 876673364161da50eed6b472d746ef88242b2368 upstream.

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

Bug: 161946584
Change-Id: I8c7820bcca06e847cdc7c894005d383a2ac828a0
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-16 13:14:16 +00:00
Greg Kroah-Hartman
38a24db1c2 Revert "net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()"
This reverts commit 77fd5294ea which is
commit b0ec2abf98267f14d032102551581c833b0659d3 upstream.

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

Bug: 161946584
Change-Id: I481b44d90e063818b1b6ed83ec319862c705531d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-16 09:39:57 +00:00
Greg Kroah-Hartman
dd27b89022 Merge 5.10.214 into android12-5.10-lts
Changes in 5.10.214
	io_uring/unix: drop usage of io_uring socket
	io_uring: drop any code related to SCM_RIGHTS
	rcu-tasks: Provide rcu_trace_implies_rcu_gp()
	bpf: Defer the free of inner map when necessary
	selftests: tls: use exact comparison in recv_partial
	ASoC: rt5645: Make LattePanda board DMI match more precise
	x86/xen: Add some null pointer checking to smp.c
	MIPS: Clear Cause.BD in instruction_pointer_set
	HID: multitouch: Add required quirk for Synaptics 0xcddc device
	gen_compile_commands: fix invalid escape sequence warning
	RDMA/mlx5: Fix fortify source warning while accessing Eth segment
	RDMA/mlx5: Relax DEVX access upon modify commands
	x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h
	x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()
	net/iucv: fix the allocation size of iucv_path_table array
	parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check
	block: sed-opal: handle empty atoms when parsing response
	dm-verity, dm-crypt: align "struct bvec_iter" correctly
	scsi: mpt3sas: Prevent sending diag_reset when the controller is ready
	Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security
	firewire: core: use long bus reset on gap count error
	ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet
	Input: gpio_keys_polled - suppress deferred probe error for gpio
	ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC
	ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode
	ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll
	x86/paravirt: Fix build due to __text_gen_insn() backport
	do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
	nbd: null check for nla_nest_start
	fs/select: rework stack allocation hack for clang
	block: add a new set_read_only method
	md: implement ->set_read_only to hook into BLKROSET processing
	md: Don't clear MD_CLOSING when the raid is about to stop
	aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts
	timekeeping: Fix cross-timestamp interpolation on counter wrap
	timekeeping: Fix cross-timestamp interpolation corner case decision
	timekeeping: Fix cross-timestamp interpolation for non-x86
	wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()
	wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
	wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
	wifi: b43: Stop correct queue in DMA worker when QoS is disabled
	wifi: b43: Disable QoS for bcm4331
	wifi: wilc1000: fix declarations ordering
	wifi: wilc1000: fix RCU usage in connect path
	wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work
	wifi: wilc1000: fix multi-vif management when deleting a vif
	wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()
	cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value
	sock_diag: annotate data-races around sock_diag_handlers[family]
	inet_diag: annotate data-races around inet_diag_table[]
	bpftool: Silence build warning about calloc()
	af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().
	wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete
	wifi: iwlwifi: dbg-tlv: ensure NUL termination
	wifi: iwlwifi: fix EWRD table validity check
	net: blackhole_dev: fix build warning for ethh set but not used
	wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()
	arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes
	bpf: Factor out bpf_spin_lock into helpers.
	bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly
	wireless: Remove redundant 'flush_workqueue()' calls
	wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces
	ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()
	bus: tegra-aconnect: Update dependency to ARCH_TEGRA
	iommu/amd: Mark interrupt as managed
	wifi: brcmsmac: avoid function pointer casts
	net: ena: Remove ena_select_queue
	ARM: dts: arm: realview: Fix development chip ROM compatible value
	ARM: dts: imx6dl-yapp4: Move phy reset into switch node
	ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address
	ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node
	arm64: dts: marvell: reorder crypto interrupts on Armada SoCs
	ACPI: scan: Fix device check notification handling
	x86, relocs: Ignore relocations in .notes section
	SUNRPC: fix some memleaks in gssx_dec_option_array
	mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function
	wifi: rtw88: 8821c: Fix false alarm count
	PCI: Make pci_dev_is_disconnected() helper public for other drivers
	iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected
	igb: move PEROUT and EXTTS isr logic to separate functions
	igb: Fix missing time sync events
	Bluetooth: Remove superfluous call to hci_conn_check_pending()
	Bluetooth: hci_core: Fix possible buffer overflow
	sr9800: Add check for usbnet_get_endpoints
	bpf: Eliminate rlimit-based memory accounting for devmap maps
	bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
	bpf: Fix hashtab overflow check on 32-bit arches
	bpf: Fix stackmap overflow check on 32-bit arches
	ipv6: fib6_rules: flush route cache when rule is changed
	net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
	net: phy: fix phy_get_internal_delay accessing an empty array
	net: hns3: fix port duplex configure error in IMP reset
	net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii
	net: phy: dp83822: Fix RGMII TX delay configuration
	OPP: debugfs: Fix warning around icc_get_name()
	tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
	net/ipv4: Replace one-element array with flexible-array member
	net/ipv4: Revert use of struct_size() helper
	net/ipv4/ipv6: Replace one-element arraya with flexible-array members
	bpf: net: Change do_ip_getsockopt() to take the sockptr_t argument
	ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function
	l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
	udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
	net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function
	net/x25: fix incorrect parameter validation in the x25_getsockopt() function
	nfp: flower: handle acti_netdevs allocation failure
	dm raid: fix false positive for requeue needed during reshape
	dm: call the resume method on internal suspend
	drm/tegra: dsi: Add missing check for of_find_device_by_node
	drm/tegra: dsi: Make use of the helper function dev_err_probe()
	drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
	drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe()
	drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe()
	drm/rockchip: inno_hdmi: Fix video timing
	drm: Don't treat 0 as -1 in drm_fixp2int_ceil
	drm/rockchip: lvds: do not overwrite error code
	drm/rockchip: lvds: do not print scary message when probing defer
	drm/lima: fix a memleak in lima_heap_alloc
	dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA
	media: tc358743: register v4l2 async device only after successful setup
	PCI/DPC: Print all TLP Prefixes, not just the first
	perf record: Fix possible incorrect free in record__switch_output()
	HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd
	drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()'
	drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()'
	perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample()
	media: em28xx: annotate unchecked call to media_device_register()
	media: v4l2-tpg: fix some memleaks in tpg_alloc
	media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
	media: edia: dvbdev: fix a use-after-free
	pinctrl: mediatek: Drop bogus slew rate register range for MT8192
	clk: qcom: reset: Commonize the de/assert functions
	clk: qcom: reset: Ensure write completion on reset de/assertion
	quota: simplify drop_dquot_ref()
	quota: Fix potential NULL pointer dereference
	quota: Fix rcu annotations of inode dquot pointers
	PCI: switchtec: Fix an error handling path in switchtec_pci_probe()
	crypto: xilinx - call finalize with bh disabled
	perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()
	drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
	ALSA: seq: fix function cast warnings
	perf stat: Avoid metric-only segv
	ASoC: meson: Use dev_err_probe() helper
	ASoC: meson: aiu: fix function pointer type mismatch
	ASoC: meson: t9015: fix function pointer type mismatch
	media: sun8i-di: Fix coefficient writes
	media: sun8i-di: Fix power on/off sequences
	media: sun8i-di: Fix chroma difference threshold
	media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak
	media: go7007: add check of return value of go7007_read_addr()
	media: pvrusb2: remove redundant NULL check
	media: pvrusb2: fix pvr2_stream_callback casts
	clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times
	drm/mediatek: dsi: Fix DSI RGB666 formats and definitions
	PCI: Mark 3ware-9650SE Root Port Extended Tags as broken
	clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()
	drm/tegra: put drm_gem_object ref on error in tegra_fb_create
	mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
	mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref
	crypto: arm/sha - fix function cast warnings
	drm/tidss: Fix initial plane zpos values
	mtd: maps: physmap-core: fix flash size larger than 32-bit
	mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
	ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs
	ASoC: meson: axg-tdm-interface: add frame rate constraint
	drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()
	media: pvrusb2: fix uaf in pvr2_context_set_notify
	media: dvb-frontends: avoid stack overflow warnings with clang
	media: go7007: fix a memleak in go7007_load_encoder
	media: ttpci: fix two memleaks in budget_av_attach
	media: mediatek: vcodec: avoid -Wcast-function-type-strict warning
	drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
	powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks
	drm/msm/dpu: add division of drm_display_mode's hskew parameter
	powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.
	leds: aw2013: Unlock mutex before destroying it
	leds: sgm3140: Add missing timer cleanup and flash gpio control
	backlight: lm3630a: Initialize backlight_properties on init
	backlight: lm3630a: Don't set bl->props.brightness in get_brightness
	backlight: da9052: Fully initialize backlight_properties during probe
	backlight: lm3639: Fully initialize backlight_properties during probe
	backlight: lp8788: Fully initialize backlight_properties during probe
	sparc32: Fix section mismatch in leon_pci_grpci
	clk: Fix clk_core_get NULL dereference
	ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops
	ALSA: usb-audio: Stop parsing channels bits when all channels are found.
	RDMA/srpt: Do not register event handler until srpt device is fully setup
	f2fs: compress: fix to check unreleased compressed cluster
	scsi: csiostor: Avoid function pointer casts
	RDMA/device: Fix a race between mad_client and cm_client init
	scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn
	net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()
	NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102
	NFSv4.2: fix listxattr maximum XDR buffer size
	watchdog: stm32_iwdg: initialize default timeout
	NFS: Fix an off by one in root_nfs_cat()
	afs: Revert "afs: Hide silly-rename files from userspace"
	remoteproc: stm32: Constify st_rproc_ops
	remoteproc: Add new get_loaded_rsc_table() to rproc_ops
	remoteproc: stm32: Move resource table setup to rproc_ops
	remoteproc: stm32: use correct format strings on 64-bit
	remoteproc: stm32: Fix incorrect type in assignment for va
	remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef
	tty: vt: fix 20 vs 0x20 typo in EScsiignore
	serial: max310x: fix syntax error in IRQ error message
	tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT
	kconfig: fix infinite loop when expanding a macro at the end of file
	rtc: mt6397: select IRQ_DOMAIN instead of depending on it
	serial: 8250_exar: Don't remove GPIO device on suspend
	staging: greybus: fix get_channel_from_mode() failure path
	usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin
	io_uring: don't save/restore iowait state
	octeontx2-af: Use matching wake_up API variant in CGX command interface
	s390/vtime: fix average steal time calculation
	soc: fsl: dpio: fix kcalloc() argument order
	hsr: Fix uninit-value access in hsr_get_node()
	packet: annotate data-races around ignore_outgoing
	net: dsa: mt7530: prevent possible incorrect XTAL frequency selection
	wireguard: receive: annotate data-race around receiving_counter.counter
	rds: introduce acquire/release ordering in acquire/release_in_xmit()
	hsr: Handle failures in module init
	net/bnx2x: Prevent access to a freed page in page_pool
	octeontx2-af: Use separate handlers for interrupts
	netfilter: nft_set_pipapo: release elements in clone only from destroy path
	scsi: fc: Update formal FPIN descriptor definitions
	ARM: dts: sun8i-h2-plus-bananapi-m2-zero: add regulator nodes vcc-dram and vcc1v2
	netfilter: nf_tables: do not compare internal table flags on updates
	rcu: add a helper to report consolidated flavor QS
	bpf: report RCU QS in cpumap kthread
	spi: spi-mt65xx: Fix NULL pointer access in interrupt handler
	regmap: Add missing map->bus check
	remoteproc: stm32: fix phys_addr_t format string
	Linux 5.10.214

Change-Id: Iad0cc6acbf53bac96c0409ce61dc6836d83ed7bc
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-05-15 16:03:24 +00:00
lei.zhang8
923b677c93 ANDROID: irq: put irq_resolve_mapping under protection of __irq_enter_raw
With commit 3f9d45d802
 ("ANDROID: genirq: Allow an interrupt to be marked
as 'raw'"), irq_find_mapping was moved out of scope between
irq_enter() and irq_exit(). This result in
el1_irq->__handle_domain_irq->
irq_find_mapping->rcu_read_unlock->rcu_read_unlock_special->
irq_work_queue_on->el1_irq because ir_irq() return false.

Now one RCU stall issue was observed due to IPI_IRQ_WORK irq storm.
IPI_IRQ_WORK irq was triggered from handle_domain_irq->...->
rcu_read_unlock_special->irq_work_queue_on again and again unexpectedly
 due to in_irq() return false even it is in IRQ context.

This patch fix its side effect without reverting commit
3f9d45d802.
During call path "handle_domain_irq->irq_find_mapping->...->
rcu_read_unlock_special()" with use_softirq is true.
1)before this patch, in_irq() is false
  This will result in IPI_IRQ_WORK irq storm due to next IPI_IRQ_WORK
irq
will be triggered under IRQ context again and again.
2)after this patch,in_irq() will be true
  RCU_SOFTIRQ will be raised(but not next IPI_IRQ_WORK irq) under IRQ
context.

Bug: 339061905
Fixes: 3f9d45d802 ("FROMLIST: genirq: Allow an interrupt to be marked as 'raw'")
Change-Id: I27caeaf6817e42b3c15effe8b750cb83af90aeb3
Signed-off-by: lei.zhang8 <lei.zhang8@transsion.com>
2024-05-15 00:41:11 +00:00
Kalpak Kawadkar
602a22e77a ANDROID: abi_gki_aarch64_qcom: Add clk_restore_context and clk_save_context
Export clk_restore_context and clk_save_context so that other modules
can use. There is a qcom clock driver which uses the clock restore and
save context for the hibernation use case. The PLLs, always enabled
clocks are saved and restored during this use case.

Leaf changes summary: 2 artifact changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 2 Added
functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added
variable

2 Added functions:

  [A] 'function void clk_restore_context()'
  [A] 'function void clk_save_context()'

Bug: 339747317
Change-Id: I0f9f0853f9593239dedb7d84941002d346038843
Signed-off-by: Kalpak Kawadkar <quic_kkawadka@quicinc.com>
2024-05-10 18:48:41 +00:00
Krishna Kurapati
b493b35d3a UPSTREAM: usb: gadget: ncm: Fix handling of zero block length packets
While connecting to a Linux host with CDC_NCM_NTB_DEF_SIZE_TX
set to 65536, it has been observed that we receive short packets,
which come at interval of 5-10 seconds sometimes and have block
length zero but still contain 1-2 valid datagrams present.

According to the NCM spec:

"If wBlockLength = 0x0000, the block is terminated by a
short packet. In this case, the USB transfer must still
be shorter than dwNtbInMaxSize or dwNtbOutMaxSize. If
exactly dwNtbInMaxSize or dwNtbOutMaxSize bytes are sent,
and the size is a multiple of wMaxPacketSize for the
given pipe, then no ZLP shall be sent.

wBlockLength= 0x0000 must be used with extreme care, because
of the possibility that the host and device may get out of
sync, and because of test issues.

wBlockLength = 0x0000 allows the sender to reduce latency by
starting to send a very large NTB, and then shortening it when
the sender discovers that there’s not sufficient data to justify
sending a large NTB"

However, there is a potential issue with the current implementation,
as it checks for the occurrence of multiple NTBs in a single
giveback by verifying if the leftover bytes to be processed is zero
or not. If the block length reads zero, we would process the same
NTB infintely because the leftover bytes is never zero and it leads
to a crash. Fix this by bailing out if block length reads zero.

Cc: stable@vger.kernel.org
Fixes: 427694cfaafa ("usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call")
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Reviewed-by: Maciej Żenczykowski <maze@google.com>
Link: https://lore.kernel.org/r/20240228115441.2105585-1-quic_kriskura@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit f90ce1e04cbcc76639d6cba0fdbd820cd80b3c70
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)

Bug: 320608613
Change-Id: I4b60d855f5539e66261e71dc2a29c7d22712e382
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-05-08 13:43:28 +05:30
Krishna Kurapati
c344c3ebe3 UPSTREAM: usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs
It is observed sometimes when tethering is used over NCM with Windows 11
as host, at some instances, the gadget_giveback has one byte appended at
the end of a proper NTB. When the NTB is parsed, unwrap call looks for
any leftover bytes in SKB provided by u_ether and if there are any pending
bytes, it treats them as a separate NTB and parses it. But in case the
second NTB (as per unwrap call) is faulty/corrupt, all the datagrams that
were parsed properly in the first NTB and saved in rx_list are dropped.

Adding a few custom traces showed the following:
[002] d..1  7828.532866: dwc3_gadget_giveback: ep1out:
req 000000003868811a length 1025/16384 zsI ==> 0
[002] d..1  7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb toprocess: 1025
[002] d..1  7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342
[002] d..1  7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb seq: 0xce67
[002] d..1  7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x400
[002] d..1  7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb ndp_len: 0x10
[002] d..1  7828.532869: ncm_unwrap_ntb: K: Parsed NTB with 1 frames

In this case, the giveback is of 1025 bytes and block length is 1024.
The rest 1 byte (which is 0x00) won't be parsed resulting in drop of
all datagrams in rx_list.

Same is case with packets of size 2048:
[002] d..1  7828.557948: dwc3_gadget_giveback: ep1out:
req 0000000011dfd96e length 2049/16384 zsI ==> 0
[002] d..1  7828.557949: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342
[002] d..1  7828.557950: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x800

Lecroy shows one byte coming in extra confirming that the byte is coming
in from PC:

 Transfer 2959 - Bytes Transferred(1025)  Timestamp((18.524 843 590)
 - Transaction 8391 - Data(1025 bytes) Timestamp(18.524 843 590)
 --- Packet 4063861
       Data(1024 bytes)
       Duration(2.117us) Idle(14.700ns) Timestamp(18.524 843 590)
 --- Packet 4063863
       Data(1 byte)
       Duration(66.160ns) Time(282.000ns) Timestamp(18.524 845 722)

According to Windows driver, no ZLP is needed if wBlockLength is non-zero,
because the non-zero wBlockLength has already told the function side the
size of transfer to be expected. However, there are in-market NCM devices
that rely on ZLP as long as the wBlockLength is multiple of wMaxPacketSize.
To deal with such devices, it pads an extra 0 at end so the transfer is no
longer multiple of wMaxPacketSize.

Cc: <stable@vger.kernel.org>
Fixes: 9f6ce4240a ("usb: gadget: f_ncm.c added")
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
Reviewed-by: Maciej Żenczykowski <maze@google.com>
Link: https://lore.kernel.org/r/20240205074650.200304-1-quic_kriskura@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit 76c51146820c5dac629f21deafab0a7039bc3ccd
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)

Bug: 320608613
Change-Id: Iee598bcbede12582235fca38a0c9f50f3b7375c5
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-05-08 13:41:03 +05:30
Kalesh Singh
626e5dce00 ANDROID: 16K: Fix show maps CFI failure
If the kernel is built CONFIG_CFI_CLANG=y, reading smaps
may cause a panic. This is due to a failed CFI check; which
is triggered becuase the signature of the function pointer for
printing smaps padding VMAs does not match exactly with that
for show_smap().

Fix this by casting the function pointer to the expected type
based on whether printing maps or smaps padding.

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: I65564a547dacbc4131f8557344c8c96e51f90cd5
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
09da1d141d ANDROID: 16K: Handle pad VMA splits and merges
In some cases a VMA with padding representation may be split, and
therefore the padding flags must be updated accordingly.

There are 3 cases to handle:

Given:
    | DDDDPPPP |

where:
    - D represents 1 page of data;
    - P represents 1 page of padding;
    - | represents the boundaries (start/end) of the VMA

1) Split exactly at the padding boundary

    | DDDDPPPP | --> | DDDD | PPPP |

    - Remove padding flags from the first VMA.
    - The second VMA is all padding

2) Split within the padding area

    | DDDDPPPP | --> | DDDDPP | PP |

    - Subtract the length of the second VMA from the first VMA's
      padding.
    - The second VMA is all padding, adjust its padding length (flags)

3) Split within the data area

    | DDDDPPPP | --> | DD | DDPPPP |

    - Remove padding flags from the first VMA.
    - The second VMA is has the same padding as from before the split.

To simplify the semantics merging of padding VMAs is not allowed.

If a split produces a VMA that is entirely padding, show_[s]maps()
only outputs the padding VMA entry (as the data entry is of length 0).

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: Ie2628ced5512e2c7f8af25fabae1f38730c8bb1a
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
162de86e24 ANDROID: 16K: madvise_vma_pad_pages: Remove filemap_fault check
Some file systems like F2FS use a custom filemap_fault ops. Remove this
check, as checking vm_file is sufficient.

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: Id6a584d934f06650c0a95afd1823669fc77ba2c2
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
000bbad86c ANDROID: 16K: Only madvise padding from dynamic linker context
Only preform padding advise from the execution context on bionic's
dynamic linker. This ensures that madvise() doesn't have unwanted
side effects.

Also rearrange the order of fail checks in madvise_vma_pad_pages()
in order of ascending cost.

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: I3e05b8780c6eda78007f86b613f8c11dd18ac28f
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
ebf0750ad2 ANDROID: 16K: Separate padding from ELF LOAD segment mappings
In has been found that some in-field apps depend on the output of
/proc/*/maps to determine the address ranges of other operations.

With the extension of LOAD segments VMAs to be contiguous in memory,
the apps may perform operations on an area that is not backed by the
underlying file, which results in a SIGBUS. Other apps have crashed
with yet unindentified reasons.

To avoid breaking in-field apps, maintain the output of /proc/*/[s]maps
with PROT_NONE VMAs for the padding pages of LOAD segmetns instead of
showing the segment extensions.

NOTE: This does not allocate actual backing VMAs for the shown
      PROT_NONE mappings.

This approach maintains 2 possible assumptions that userspace (apps)
could be depending on:
   1) That LOAD segment mappings are "contiguous" (not speparated by
      unrelated mappings) in memory.
   2) That no virtual address space is available between mappings of
      consecutive LOAD segments for the same ELF.

For example the output of /proc/*/[s]maps before and after this change
is shown below. Segments maintain PROT_NONE gaps ("[page size compat]")
for app compatiblity but these are not backed by actual slab VMA memory.

Maps Before:

7fb03604d000-7fb036051000 r--p 00000000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fb036051000-7fb036055000 r-xp 00004000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fb036055000-7fb036059000 r--p 00008000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fb036059000-7fb03605a000 rw-p 0000c000 fe:09 21935719                   /system/lib64/libnetd_client.so

Maps After:

7fc707390000-7fc707393000 r--p 00000000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fc707393000-7fc707394000 ---p 00000000 00:00 0                          [page size compat]
7fc707394000-7fc707398000 r-xp 00004000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fc707398000-7fc707399000 r--p 00008000 fe:09 21935719                   /system/lib64/libnetd_client.so
7fc707399000-7fc70739c000 ---p 00000000 00:00 0                          [page size compat]
7fc70739c000-7fc70739d000 rw-p 0000c000 fe:09 21935719                   /system/lib64/libnetd_client.so

Smaps Before:

7fb03604d000-7fb036051000 r--p 00000000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                 16 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                  16 kB
Pss:                   0 kB
Pss_Dirty:             0 kB
Shared_Clean:         16 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:           16 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd mr mw me
7fb036051000-7fb036055000 r-xp 00004000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                 16 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                  16 kB
Pss:                   0 kB
Pss_Dirty:             0 kB
Shared_Clean:         16 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:           16 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd ex mr mw me
7fb036055000-7fb036059000 r--p 00008000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                 16 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   4 kB
Pss:                   4 kB
Pss_Dirty:             4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Anonymous:             4 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd mr mw me ac
7fb036059000-7fb03605a000 rw-p 0000c000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                  4 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   4 kB
Pss:                   4 kB
Pss_Dirty:             4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Anonymous:             4 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd wr mr mw me ac

Smaps After:

7fc707390000-7fc707393000 r--p 00000000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                 12 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                  12 kB
Pss:                   0 kB
Shared_Clean:         12 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:           12 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd mr mw me ??
7fc707393000-7fc707394000 ---p 00000000 00:00 0                          [page size compat]
Size:                  4 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: mr mw me
7fc707394000-7fc707398000 r-xp 00004000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                 16 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                  16 kB
Pss:                   0 kB
Shared_Clean:         16 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:           16 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd ex mr mw me
7fc707398000-7fc707399000 r--p 00008000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                  4 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   4 kB
Pss:                   4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Anonymous:             4 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd mr mw me ac ?? ??
7fc707399000-7fc70739c000 ---p 00000000 00:00 0                          [page size compat]
Size:                 12 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: mr mw me ac
7fc70739c000-7fc70739d000 rw-p 0000c000 fe:09 21935719                   /system/lib64/libnetd_client.so
Size:                  4 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Rss:                   4 kB
Pss:                   4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Anonymous:             4 kB
LazyFree:              0 kB
AnonHugePages:         0 kB
ShmemPmdMapped:        0 kB
FilePmdMapped:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
Locked:                0 kB
THPeligible:    0
VmFlags: rd wr mr mw me ac

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: I12bf2c106fafc74a500d79155b81dde5db42661e
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
abbc0d53ee ANDROID: 16K: Exclude ELF padding for fault around range
Userspace apps often analyze memory consumption by the use of mm
rss_stat counters -- via the kmem/rss_stat trace event or from
/proc/<pid>/statm.

rss_stat counters are only updated when the PTEs are updated. What this
means is that pages can be present in the page cache from readahead but
not visible to userspace (not attributed to the app) as there is no
corresponding VMA (PTEs) for the respective page cache pages.

A side effect of the loader now extending ELF LOAD segments to be
contiguously mapped in the virtual address space, means that the VMA is
extended to cover the padding pages.

When filesystems, such as f2fs and ext4, that implement
vm_ops->map_pages() attempt to perform a do_fault_around() the extent of
the fault around is restricted by the area of the enclosing VMA. Since
the loader extends LOAD segment VMAs to be contiguously mapped, the extent
of the fault around is also increased. The result of which, is that the
PTEs corresponding to the padding pages are updated and reflected in the
rss_stat counters.

It is not common that userspace application developers be aware of this
nuance in the kernel's memory accounting. To avoid apparent regressions
in memory usage to userspace, restrict the fault around range to only
valid data pages (i.e. exclude the padding pages at the end of the VMA).

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: I2c7a39ec1b040be2b9fb47801f95042f5dbf869d
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00
Kalesh Singh
778abad3ac ANDROID: 16K: Use MADV_DONTNEED to save VMA padding pages.
When performing LOAD segment extension, the dynamic linker knows what
portion of the VMA is padding. In order for the kernel to implement
mitigations that ensure app compatibility, the extent of the padding
must be made available to the kernel.

To achieve this, reuse MADV_DONTNEED on single VMAs to hint the padding
range to the kernel. This information is then stored in vm_flag bits.
This allows userspace (dynamic linker) to set the padding pages on the
VMA without a need for new out-of-tree UAPI.

Bug: 330117029
Bug: 327600007
Bug: 330767927
Bug: 328266487
Bug: 329803029
Change-Id: I3421de32ab38ad3cb0fbce73ecbd8f7314287cde
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2024-05-02 15:06:14 -07:00