Commit Graph

1000974 Commits

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

Change-Id: I5e7327f58dd6abd26ac2b1e328a81c1010d1147c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-04-10 07:10:03 +00:00
Greg Kroah-Hartman
bb4ccced84 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
Bring the LTS branch up to sync with the non-LTS branch.  This contains
the following commits:

* 36e3dadee0 FROMLIST: binder: check offset alignment in binder_get_object()
* 750e8cd3eb ANDROID: enable CONFIG_USB_XHCI_PCI_RENESAS in gki_defconfig
* 17d3242550 Merge tag 'android12-5.10.209_r00' into android12-5.10
* 42ae2a9c8c UPSTREAM: usb: dwc3: core: set force_gen1 bit in USB31 devices if max speed is SS
* a0b6273ec3 ANDROID: userfaultfd: abort uffdio ops if mmap_lock is contended
* e3aabbf867 ANDROID: userfaultfd: add MMAP_TRYLOCK mode for COPY/ZEROPAGE
* 0ebc4699bd UPSTREAM: coresight: etm4x: Remove bogous __exit annotation for some functions
* 40173a1428 UPSTREAM: ASoC: hdmi-codec: register hpd callback on component probe
* 438106d0e1 UPSTREAM: usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
* 4955298720 UPSTREAM: mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions()
* 5d0d2934a6 UPSTREAM: task_work: add kerneldoc annotation for 'data' argument
* b4c0e45118 UPSTREAM: x86/purgatory: Remove LTO flags
* 78254cf9c0 UPSTREAM: tcpm: Avoid soft reset when partner does not support get_status
* f91d081f60 UPSTREAM: block/mq-deadline: use correct way to throttling write requests
* d60601c3dd UPSTREAM: usb: typec: tcpm: Fix response to vsafe0V event
* ce364c0d34 UPSTREAM: clk: Fix memory leak in devm_clk_notifier_register()
* eebfedfd22 UPSTREAM: selftests: damon: add config file
* d93f79522f ANDROID: abi_gki_aarch64_qcom: Export trace_android_vh_try_fixup_sea
* f211036cf3 ANDROID: arm64: Call fixup_exception() within do_sea()
* a905086c85 ANDROID: userfaultfd: allow SPF for UFFD_FEATURE_SIGBUS on private+anon
* 9171439117 UPSTREAM: usb: dwc3: gadget: Handle EP0 request dequeuing properly
* 5e21de099e UPSTREAM: usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API
* f6c4f779c6 ANDROID: GKI: Update symbols to symbol list
* 94b9d8e513 ANDROID: add hooks into blk-mq-sched.c for customized I/O scheduler
* 6912e0c8e9 ANDROID: add hooks into blk-ma-tag.c for customized I/O scheduler
* f76294a655 ANDROID: add hooks into blk-flush.c for customized I/O scheduler
* d269992366 ANDROID: add hooks into blk-core.c for customized I/O scheduler
* ccbc7f8808 ANDROID: add hooks into blk-mq.c for customized I/O scheduler.
* 34338029ab ANDROID: add hooks into bio.c for customized I/O scheduler
* b2e58fe5d7 ANDROID: ABI: Update oplus symbol list
* 517fdcc1f8 ANDROID: binder: Add vendor hook to fix priority restore
* 0b886c607a ANDROID: GKI: Update symbol list
* ca7dabaf67 ANDROID: Add vendor hook for task exiting routine
* 0415c5ccfe UPSTREAM: netfilter: nft_set_rbtree: skip end interval element from gc
* 92d263f290 ANDROID: GKI: Update oplus symbol list
* 2a717853b3 UPSTREAM: usb: gadget: uvc: set v4l2_dev->dev in f_uvc
* 44817294cf ANDROID: mm: Fix VMA ref count after fast-mremap

Change-Id: I2b2128e5e94585032ec538c4c551213933a1472e
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-04-05 14:14:45 +00:00
Carlos Llamas
36e3dadee0 FROMLIST: binder: check offset alignment in binder_get_object()
Commit 6d98eb95b450 ("binder: avoid potential data leakage when copying
txn") introduced changes to how binder objects are copied. In doing so,
it unintentionally removed an offset alignment check done through calls
to binder_alloc_copy_from_buffer() -> check_buffer().

These calls were replaced in binder_get_object() with copy_from_user(),
so now an explicit offset alignment check is needed here. This avoids
later complications when unwinding the objects gets harder.

It is worth noting this check existed prior to commit 7a67a39320
("binder: add function to copy binder object from buffer"), likely
removed due to redundancy at the time.

Fixes: 6d98eb95b450 ("binder: avoid potential data leakage when copying txn")
Cc:  <stable@vger.kernel.org>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>

Bug: 320661088
Link: https://lore.kernel.org/all/20240330190115.1877819-1-cmllamas@google.com/
Change-Id: Iaddabaa28de7ba7b7d35dbb639d38ca79dbc5077
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2024-04-01 16:07:18 +00:00
Greg Kroah-Hartman
750e8cd3eb ANDROID: enable CONFIG_USB_XHCI_PCI_RENESAS in gki_defconfig
More platforms are using the Renesas XHCI controller, so enable it in
the configuration so that we do not have to export a bunch of internal
xhci controller functions that should not be part of any stable api.

Bug: 331902817
Change-Id: I9d8aa6a1783f0bb3bf0d794c7101d1762dd96b3d
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Signed-off-by: Akash Kumar <quic_akakum@quicinc.com>
(cherry picked from commit 4da8c1036ef4ad1c534d566bab07fc2e6a918660)
2024-03-29 17:07:15 +05:30
Greg Kroah-Hartman
17d3242550 Merge tag 'android12-5.10.209_r00' into android12-5.10
This merges up to the 5.10.209 LTS release into the android12-5.10
branch.  included in here are the following commits:

* f5f23fd864 ANDROID: GKI: db845c: Update symbols list and ABI
*   717f23122d Merge "Merge branch 'android12-5.10' into branch 'android12-5.10-lts'" into android12-5.10-lts
|\
| * 10896fff34 Merge branch 'android12-5.10' into branch 'android12-5.10-lts'
* | 6f5d6d6de5 UPSTREAM: drm/msm/dsi: Enable runtime PM
* | 5a2e61dcbd UPSTREAM: PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
* | cb06375abb UPSTREAM: PM: runtime: add devm_pm_runtime_enable helper
|/
* 7edcfba384 Revert "clk: fixed-rate: add devm_clk_hw_register_fixed_rate"
* a8a9ceb11a Revert "clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw"
*   7e6944b050 Merge 5.10.209 into android12-5.10-lts
|\
| * 16ad71c250 Linux 5.10.209
| * 66e4f4a847 arm64: dts: armada-3720-turris-mox: set irq type for RTC
| * 2e23761beb i2c: s3c24xx: fix transferring more than one message in polling mode
| * da60686bab i2c: s3c24xx: fix read transfers in polling mode
| * 8ba74e9016 selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
| * 3e1ca80659 selftests: mlxsw: qos_pfc: Convert to iproute2 dcb
| * 56750ea5d1 mlxsw: spectrum_acl_tcam: Fix stack corruption
| * a9b233b287 mlxsw: spectrum_acl_tcam: Reorder functions to avoid forward declarations
| * d3669ebc4c mlxsw: spectrum_acl_tcam: Make fini symmetric to init
| * a557dbda64 mlxsw: spectrum_acl_tcam: Add missing mutex_destroy()
| * 936d06d699 mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
| * e8bfdf6301 mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
| * f90b1cebc4 ethtool: netlink: Add missing ethnl_ops_begin/complete
| * b44e1aec80 kdb: Fix a potential buffer overflow in kdb_local()
| * 977c2cf563 ipvs: avoid stat macros calls from preemptible context
| * 00a86f81c8 netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description
| * 9a4d25267d netfilter: nf_tables: skip dead set elements in netlink dump
| * 2d4c0798a1 netfilter: nf_tables: do not allow mismatch field size and set key length
| * b099b495e1 net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
| * 6c8a5bbca6 net: ravb: Fix dma_addr_t truncation in error case
| * ba77c8b4e1 net: phy: micrel: populate .soft_reset for KSZ9131
| * 1658d7a7a2 net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames
| * 2295c22348 net: qualcomm: rmnet: fix global oob in rmnet_policy
| * b55808b96e s390/pci: fix max size calculation in zpci_memcpy_toio()
| * 178b437344 PCI: keystone: Fix race condition when initializing PHYs
| * 0de2e62067 nvmet-tcp: Fix the H2C expected PDU len calculation
| * 172276460a serial: imx: Correct clock error message in function probe()
| * 5ff00408e5 apparmor: avoid crash when parsed profile name is empty
| * 866d32bff0 perf env: Avoid recursively taking env->bpf_progs.lock
| * 39669fae69 nvmet-tcp: fix a crash in nvmet_req_complete()
| * f775f2621c nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
| * 1550b870ae usb: cdc-acm: return correct error code on unsupported break
| * d7c74b010a tty: use 'if' in send_break() instead of 'goto'
| * 3483ca0390 tty: don't check for signal_pending() in send_break()
| * 2cf81d3440 tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
| * 4e76dbd7c3 tty: change tty_write_lock()'s ndelay parameter to bool
| * abcc25a237 perf genelf: Set ELF program header addresses properly
| * 1e17feb4ad iio: adc: ad9467: fix scale setting
| * a3167e5ab5 iio: adc: ad9467: don't ignore error codes
| * 00e916d998 iio: adc: ad9467: fix reset gpio handling
| * 8083d68401 iio: adc: ad9467: Benefit from devm_clk_get_enabled() to simplify
| * 6e04a9d305 serial: imx: fix tx statemachine deadlock
| * 6746f3e893 software node: Let args be NULL in software_node_get_reference_args
| * 381bea33a8 acpi: property: Let args be NULL in __acpi_node_get_property_reference
| * 7166e8e913 libapi: Add missing linux/types.h header to get the __u64 type on io.h
| * bc57f3ef8a serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
| * 89b97e6b19 power: supply: cw2015: correct time_to_empty units in sysfs
| * 5e3995ec39 MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
| * c3ed63f6a1 MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
| * 9995dee8b9 mips: Fix incorrect max_low_pfn adjustment
| * 5cdda6239c mips: dmi: Fix early remap on MIPS32
| * b152868773 leds: aw2013: Select missing dependency REGMAP_I2C
| * 927626a207 mfd: syscon: Fix null pointer dereference in of_syscon_register()
| * c964a0597b HID: wacom: Correct behavior when processing some confidence == false touches
| * c7883c9f83 iio: adc: ad7091r: Pass iio_dev to event handler
| * ba7be66674 KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
| * 9b5a278594 KVM: arm64: vgic-v4: Restore pending state on host userspace write
| * 7521ea8f62 x86/kvm: Do not try to disable kvmclock if it was not enabled
| * 322c5fe40f wifi: mwifiex: configure BSSID consistently when starting AP
| * ba8a4fba62 wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
| * 3dc3122b0b wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
| * 5e9142b6a2 iommu/arm-smmu-qcom: Add missing GMU entry to match table
| * 394c6c0b6d Bluetooth: Fix atomicity violation in {min,max}_key_size_set
| * 3b8d7a1b85 rootfs: Fix support for rootfstype= when root= is given
| * 8c0b563e9b io_uring/rw: ensure io->bytes_done is always initialized
| * daa61bacd3 pwm: jz4740: Don't use dev_err_probe() in .request()
| * a7d4ec5672 fbdev: flush deferred work in fb_deferred_io_fsync()
| * ff2d54d9cc ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
| * b5c2a32621 ALSA: oxygen: Fix right channel of capture volume mixer
| * 57f34589e9 serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
| * b7747ca58e usb: mon: Fix atomicity violation in mon_bin_vma_fault
| * 5e5ab50eff usb: typec: class: fix typec_altmode_put_partner to put plugs
| * baaa6d8e3f Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
| * f5c09e1d6e usb: chipidea: wait controller resume finished for wakeup irq
| * 084de4c659 Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
| * 1af0423587 Revert "usb: dwc3: Soft reset phy on probe for host"
| * 3253888660 usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
| * e70b17282a usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
| * d65cade544 tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
| * 7e7a0d8654 binder: fix race between mmput() and do_exit()
| * cce8ba6fa4 xen-netback: don't produce zero-size SKB frags
| * d1e68ad279 net: ethernet: mtk_eth_soc: remove duplicate if statements
| * 8a29463915 kprobes: Fix to handle forcibly unoptimized kprobes on freeing_list
| * c02cdc2c5e Revert "ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek"
| * 79026a2d0a virtio-crypto: fix memory leak in virtio_crypto_alg_skcipher_close_session()
| * dfdb686d1b virtio-crypto: fix memory-leak
| * c3b3389ad0 dma-mapping: Fix build error unused-value
| * 0dfe57f1f2 Input: atkbd - use ab83 as id when skipping the getid command
| * c8c1158ffb binder: fix use-after-free in shinker's callback
| * abbb909287 binder: fix unused alloc->free_async_space
| * fa62c9050e binder: fix async space check for 0-sized buffers
| * 4533e7623e keys, dns: Fix size check of V1 server-list header
| * 9e8a31c1aa of: unittest: Fix of_count_phandle_with_args() expected value message
| * d5f490343c of: Fix double free in of_parse_phandle_with_args_map
| * c9ee325bae IB/iser: Prevent invalidating wrong MR
| * bedecbb5a5 mmc: sdhci_omap: Fix TI SoC dependencies
| * 613af7d576 mmc: sdhci_am654: Fix TI SoC dependencies
| * 8da3a51f74 pwm: stm32: Fix enable count for clk in .probe()
| * e33e1bdbe6 pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
| * 5af4ce2a54 pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
| * bed5ec2a59 clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw
| * 764b78b927 clk: fixed-rate: add devm_clk_hw_register_fixed_rate
| * e5236e58cc clk: si5341: fix an error code problem in si5341_output_clk_set_rate
| * 428381fbcb watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused
| * d83662bb90 watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
| * 6c93290da9 watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
| * cbc15095d1 watchdog: set cdev owner before adding
| * e4f4a2cb74 drivers: clk: zynqmp: update divider round rate logic
| * af0b86199b clk: zynqmp: Add a check for NULL pointer
| * 45b4ea38c9 clk: zynqmp: make bestdiv unsigned
| * 7fdcd873c0 drivers: clk: zynqmp: calculate closest mux rate
| * 6cccbfafc0 clk: qcom: videocc-sm8150: Add missing PLL config property
| * 84ee04572f clk: qcom: videocc-sm8150: Update the videocc resets
| * 74bbdacf1b dt-bindings: clock: Update the videocc resets for sm8150
| * 0c8ba6937a gpu/drm/radeon: fix two memleaks in radeon_vm_init
| * 520e213a0b drivers/amd/pm: fix a use-after-free in kv_parse_power_table
| * aeed2b4e4a drm/amd/pm: fix a double-free in si_dpm_init
| * d53fee9e34 drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
| * 56a79c68b5 media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
| * b5ebb9b4c1 media: dvbdev: drop refcount on error path in dvb_device_open()
| * 9284f409e4 f2fs: fix to update iostat correctly in f2fs_filemap_fault()
| * 40d36882c7 f2fs: fix to check compress file in f2fs_move_file_range()
| * b864287581 media: rkisp1: Disable runtime PM in probe error path
| * 962b35733b clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
| * 21a30b5969 media: cx231xx: fix a memleak in cx231xx_init_isoc
| * abd50cebf9 drm/bridge: tc358767: Fix return value on error case
| * 3f6932b5ba drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
| * e646308eda drm/radeon/dpm: fix a memleak in sumo_parse_power_table
| * 57ca798480 drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
| * c20a6aa0a3 drm/drv: propagate errors from drm_modeset_register_all()
| * da5e0feb12 drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
| * b704eabe87 drm/msm/mdp4: flush vblank event on disable
| * 96f5856867 ASoC: cs35l34: Fix GPIO name and drop legacy include
| * defe0327f5 ASoC: cs35l33: Fix GPIO name and drop legacy include
| * 1421b06618 drm/radeon: check return value of radeon_ring_lock()
| * 9924469212 drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
| * ca267f79a5 drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
| * 6f866885e1 f2fs: fix to avoid dirent corruption
| * 13ea8af957 drm/bridge: Fix typo in post_disable() description
| * 3233d8bf78 media: pvrusb2: fix use after free on context disconnection
| * 53926e2a39 drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
| * 1eb7ceae48 drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer
| * b1a07165be rcu: Create an unrcu_pointer() to remove __rcu from a pointer
| * 1d1d5b90ea drm/panel-elida-kd35t133: hold panel in reset for unprepare
| * 7794c14812 RDMA/usnic: Silence uninitialized symbol smatch warnings
| * d807f4ef22 ARM: davinci: always select CONFIG_CPU_ARM926T
| * da23bd709b ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
| * 4e09df9b24 Bluetooth: btmtkuart: fix recv_buf() return value
| * fd54d16613 Bluetooth: Fix bogus check for re-auth no supported with non-ssp
| * 15be96e1a6 netfilter: nf_tables: mark newset as dead on transaction abort
| * 6f39bea662 wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
| * c713826653 wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
| * 99f56c3f7c wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
| * b75b68dde5 rtlwifi: rtl8192de: make arrays static const, makes object smaller
| * df14e43219 wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
| * 016781c16e wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
| * bf277a76d3 wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
| * 483c975e40 wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
| * 31b651a7a1 wifi: rtlwifi: add calculate_bit_shift()
| * 64299791d0 dma-mapping: clear dev->dma_mem to NULL after freeing it
| * a6dd109564 dma-mapping: Add dma_release_coherent_memory to DMA API
| * ad43344ab4 virtio/vsock: fix logic which reduces credit update messages
| * 30ae0c6631 selftests/net: fix grep checking for fib_nexthop_multiprefix
| * 7a0f8295e7 scsi: hisi_sas: Replace with standard error code return value
| * afea95d319 bpf: Fix verification of indirect var-off stack access
| * 419ab8f74a arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
| * 812cebdc5f arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
| * ba31bb08c1 scsi: fnic: Return error if vmalloc() failed
| * 2757f17972 bpf: fix check for attempt to corrupt spilled pointer
| * 7e98bbeb07 arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
| * d49863ed28 wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
| * 2799324d92 firmware: meson_sm: populate platform devices from sm device tree data
| * 3959dbb375 firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
| * 01f9feb5ed net/ncsi: Fix netlink major/minor version numbers
| * 7bcddd12a9 ncsi: internal.h: Fix a spello
| * ae98b7f7bb ARM: dts: qcom: apq8064: correct XOADC register address
| * 4675cacd6b wifi: libertas: stop selecting wext
| * 24d8aef5d9 wifi: ath11k: Defer on rproc_get failure
| * 91f3111558 bpf: Add crosstask check to __bpf_get_stack
| * d5d181df8d bpf, lpm: Fix check prefixlen before walking trie
| * eb0eac5736 wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
| * d8caf15ab1 NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
| * 722c700dd8 blocklayoutdriver: Fix reference leak of pnfs_device_node
| * 4518dc468c crypto: scomp - fix req->dst buffer overflow
| * 1798c8fd00 crypto: sahara - do not resize req->src when doing hash operations
| * 67ae336f3b crypto: sahara - fix processing hash requests with req->nbytes < sg->length
| * b3287c8a7e crypto: sahara - improve error handling in sahara_sha_process()
| * 98985edab6 crypto: sahara - fix wait_for_completion_timeout() error handling
| * 69451bf97c crypto: sahara - fix ahash reqsize
| * d8d9580831 crypto: sahara - handle zero-length aes requests
| * b839648d05 crypto: sahara - avoid skcipher fallback code duplication
| * 14f57a013a crypto: virtio - Wait for tasklet to complete on device remove
| * 5c28478af3 gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
| * 57c7b331f0 gfs2: Also reflect single-block allocations in rgd->rd_extfail_pt
| * 22f63f9bc8 Revert "gfs2: Don't reject a supposedly full bitmap if we have blocks reserved"
| * cd48d2a8e6 fs: indicate request originates from old mount API
| * acd413da3e pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
| * c60fd7a663 crypto: sahara - fix error handling in sahara_hw_descriptor_create()
| * 25b7ca747b crypto: sahara - fix processing requests with cryptlen < sg->length
| * fc91d32c7d crypto: sahara - fix ahash selftest failure
| * 4f4786b818 crypto: sahara - fix cbc selftest failure
| * ccdb86c339 crypto: sahara - remove FLAGS_NEW_KEY logic
| * 7f807dc073 crypto: af_alg - Disallow multiple in-flight AIO requests
| * 97f9d0455b crypto: ccp - fix memleak in ccp_init_dm_workarea
| * 95586bb74b crypto: sa2ul - Return crypto_aead_setkey to transfer the error
| * 0eb69890e8 crypto: virtio - Handle dataq logic with tasklet
| * 0dee72f9b7 virtio-crypto: wait ctrl queue instead of busy polling
| * 4ee475e76b virtio-crypto: use private buffer for control request
| * 7d386768ef virtio-crypto: change code style
| * 1ff5742889 virtio-crypto: implement RSA algorithm
| * f32dfee5a6 virtio-crypto: introduce akcipher service
| * b2092cdcda virtio_crypto: Introduce VIRTIO_CRYPTO_NOSPC
| * 1bc7a682ed selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
| * 001a3f59d8 mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
| * 1d7b39c842 ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
| * 46e3dc02a4 spi: sh-msiof: Enforce fixed DTDL for R-Car H3
| * 94c742324e efivarfs: force RO when remounting if SetVariable is not supported
| * 44a88650ba calipso: fix memory leak in netlbl_calipso_add_pass()
| * 5ac84b01a0 netlabel: remove unused parameter in netlbl_netlink_auditinfo()
| * 47210a5754 net: netlabel: Fix kerneldoc warnings
| * d5ce66bdf6 cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
| * fda1309205 cpufreq: Use of_property_present() for testing DT property presence
| * ba7c7e3530 of: Add of_property_present() helper
| * ded221bf4c of: property: define of_property_read_u{8,16,32,64}_array() unconditionally
| * f39c3d578c ACPI: LPIT: Avoid u32 multiplication overflow
| * c4e1a0ef0b ACPI: video: check for error while searching for backlight device parent
| * 11ac297aba mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
| * f8df7c9886 spi: spi-zynqmp-gqspi: fix driver kconfig dependencies
| * 5a669f3511 powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
| * a67a04ad05 powerpc/powernv: Add a null pointer check in opal_powercap_init()
| * e6ad05e3ae powerpc/powernv: Add a null pointer check in opal_event_init()
| * 1eefa93faf powerpc/powernv: Add a null pointer check to scom_debug_init_one()
| * 428ab6a9dd selftests/powerpc: Fix error handling in FPU/VMX preemption tests
| * b582aa1f66 powerpc/pseries/memhp: Fix access beyond end of drmem array
| * f2ec41874b powerpc/pseries/memhotplug: Quieten some DLPAR operations
| * 81dce186f1 powerpc/44x: select I2C for CURRITUCK
| * d67339e9c8 powerpc: Remove in_kernel_text()
| * ecbbd90e70 powerpc: add crtsavres.o to always-y instead of extra-y
| * 6aa7865ba7 EDAC/thunderx: Fix possible out-of-bounds string access
| * 36dbbfff28 x86/lib: Fix overflow when counting digits
| * 83da4fc5aa coresight: etm4x: Fix width of CCITMIN field
| * 67d3d17e31 PCI: Add ACS quirk for more Zhaoxin Root Ports
| * e5457b54ad parport: parport_serial: Add Brainboxes device IDs and geometry
| * 937293ff64 parport: parport_serial: Add Brainboxes BAR details
| * 5e0be1229a uio: Fix use-after-free in uio_open
| * 214aac202d binder: fix comment on binder_alloc_new_buf() return value
| * 689f13128f binder: fix trivial typo of binder_free_buf_locked()
| * e18d60757b binder: use EPOLLERR from eventpoll.h
| * 19d949b37e ACPI: resource: Add another DMI match for the TongFang GMxXGxx
| * f138fb6e64 drm/crtc: fix uninitialized variable use
| * 7ba78e0823 ARM: sun9i: smp: fix return code check of of_property_match_string
| * 01d8918415 net: qrtr: ns: Return 0 if server port is not present
| * dbf8b0d938 ida: Fix crash in ida_free when the bitmap is empty
| * d8a07ba130 i2c: rk3x: fix potential spinlock recursion on poll
| * a57c59c85c Input: xpad - add Razer Wolverine V2 support
| * 86e4e2eea4 ARC: fix spare error
| * 9700ff5a4f s390/scm: fix virtual vs physical address confusion
| * 6e17155869 Input: i8042 - add nomux quirk for Acer P459-G2-M
| * b0e82ef611 Input: atkbd - skip ATKBD_CMD_GETID in translated mode
| * 6f1614080f reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
| * 8d6913d050 ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
| * 439f3bbf75 tracing: Add size check when printing trace_marker output
| * bc6619c9aa tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
| * c0f1db7380 jbd2: fix soft lockup in journal_finish_inode_data_buffers()
| * cd94f81f77 neighbour: Don't let neigh_forced_gc() disable preemption for long
| * 3887ba7198 drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
| * 956b740f3e jbd2: correct the printing of write_flags in jbd2_write_superblock()
| * 656d684109 clk: rockchip: rk3128: Fix HCLK_OTG gate register
| * 05644e6365 drm/exynos: fix a wrong error checking
| * 0fc35b0d9f drm/exynos: fix a potential error pointer dereference
| * fb2f34d939 nvme: introduce helper function to get ctrl state
| * a8b1ddeeac ASoC: da7219: Support low DC impedance headset
| * 1059aa41c5 net/tg3: fix race condition in tg3_reset_task()
| * 44ad1b9eb3 nouveau/tu102: flush all pdbs on vmm flush
| * ffe13302b8 ASoC: rt5650: add mutex to avoid the jack detection failure
| * 8b50b177bf ASoC: cs43130: Fix incorrect frame delay configuration
| * 921ff9f2b1 ASoC: cs43130: Fix the position of const qualifier
| * 304529d564 ASoC: Intel: Skylake: mem leak in skl register function
| * 1e31b47b2e ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
| * 9c89777c7d ASoC: Intel: Skylake: Fix mem leak in few functions
| * c78083013b ASoC: wm8974: Correct boost mixer inputs
| * 06a33eec1d nvme-core: check for too small lba shift
| * 974f127fcf drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer
| * 52a33dbeac debugfs: fix automount d_fsdata usage
| * 65bde47aad mptcp: fix uninit-value in mptcp_incoming_options
| * 6b00598b64 ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
| * 94e192054f pinctrl: lochnagar: Don't build on MIPS
| * 3e47740091 f2fs: explicitly null-terminate the xattr list
* | 62f62d810d Revert "ipv6: remove max_size check inline with ipv4"
* |   08731a14db Merge "Merge 5.10.208 into android12-5.10-lts" into android12-5.10-lts
|\ \
| * | 680475ab46 Merge 5.10.208 into android12-5.10-lts
| |\|
| | * 3fee45ee55 Linux 5.10.208
| | * 929ba86476 Revert "nvme: use command_id instead of req->tag in trace_nvme_complete_rq()"
| | * 8a10841c1a PCI: Disable ATS for specific Intel IPU E2000 devices
| | * b74a0c4ddf PCI: Extract ATS disabling to a helper function
| | * 25d1e7be85 netfilter: nf_tables: Reject tables of unsupported family
| | * 03585b18b7 drm/qxl: fix UAF on handle creation
| | * dd56c5790d ipv6: remove max_size check inline with ipv4
| | * c6b2a6b827 net: tls, update curr on splice as well
| | * d36b6b152f powerpc: update ppc_save_regs to save current r1 in pt_regs
| | * ae64985e0e mmc: sdhci-sprd: Fix eMMC init failure after hw reset
| | * f7796d76bd mmc: core: Cancel delayed work before releasing host
| | * c29da60e1f mmc: rpmb: fixes pause retune on all RPMB partitions.
| | * c82efcaad2 mmc: meson-mx-sdhc: Fix initialization frozen issue
| | * 73704c6b35 mm: fix unmap_mapping_range high bits shift bug
| | * 4aca0af447 i2c: core: Fix atomic xfer check for non-preempt config
| | * 0ba8c7ef19 x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
| | * 23c006a760 firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
| | * 70168fdc74 mm/memory-failure: check the mapcount of the precise page
| | * 18203c4484 net: Implement missing SO_TIMESTAMPING_NEW cmsg support
| | * 701b03fc14 bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
| | * cfbf618e9a asix: Add check for usbnet_get_endpoints
| | * 0fc5fe6e41 net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
| | * c492f9c7d3 net/qla3xxx: switch from 'pci_' to 'dma_' API
| | * 53e92564c5 i40e: Restore VF MSI-X state during PCI reset
| | * 6d3465c3dd ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
| | * e08399e812 ASoC: meson: g12a-toacodec: Fix event generation
| | * 51e88b2cef ASoC: meson: g12a-tohdmitx: Validate written enum values
| | * 85f8d007de ASoC: meson: g12a-toacodec: Validate written enum values
| | * 21ecce2456 i40e: fix use-after-free in i40e_aqc_add_filters()
| | * f8c03fd826 net: Save and restore msg_namelen in sock_sendmsg
| | * 06ce3b8ec4 netfilter: nft_immediate: drop chain reference counter on error
| | * cf3c516dec netfilter: nftables: add loop check helper function
| | * 4366b7e1f5 net: bcmgenet: Fix FCS generation for fragmented skbuffs
| | * d1eb795385 sfc: fix a double-free bug in efx_probe_filters
| | * cb69cad457 ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init
| | * 8abb7ab7cf net: sched: em_text: fix possible memory leak in em_text_destroy()
| | * ecdfb0970c i40e: Fix filter input checks to prevent config with invalid values
| | * 8d4ae760c7 drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern
| | * 3ff482518b octeontx2-af: Fix marking couple of structure as __packed
| | * 6adeb15cb6 nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local
| | * 74c9135d16 ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6
| | * 132ba71b4e block: Don't invalidate pagecache for invalid falloc modes
| | * ef1d1d7c10 keys, dns: Fix missing size check of V1 server-list header
* | | 274aa12c42 ANDROID: db845c: Enable device tree overlay support
|/ /
* | c925f18af7 Merge 5.10.207 into android12-5.10-lts
|\|
| * 03a0e87f70 Linux 5.10.207
| * a7fd5c7ba4 scsi: core: Always send batch on reset or error handling command
| * e30419672e Revert "scsi: core: Add scsi_prot_ref_tag() helper"
| * f60f60e1de Revert "scsi: core: Introduce scsi_get_sector()"
| * a5edb40702 Revert "scsi: core: Make scsi_get_lba() return the LBA"
| * 2129297760 Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request"
| * cea19678bf Revert "scsi: core: Use a structure member to track the SCSI command submitter"
| * 6963d049a4 Revert "scsi: core: Always send batch on reset or error handling command"
* | 3d0828af52 Revert "ANDROID: GKI: Fix abi break in struct scsi_cmd"
* | ffc061ba7d ANDROID: GKI: Fix abi break in struct scsi_cmd
* | 8a9d593fd6 Merge 5.10.206 into android12-5.10-lts
|/
* cf13ba74e8 Linux 5.10.206
* 2df1e1887c spi: atmel: Fix PDC transfer setup bug
* 2a0a658ed6 Bluetooth: SMP: Fix crash when receiving new connection when debug is enabled
* ecd50f820d Revert "MIPS: Loongson64: Enable DMA noncoherent support"
* 9175341bd8 dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
* 73117ea033 netfilter: nf_tables: skip set commit for deleted/destroyed sets
* 8bf79dec73 tracing: Fix blocked reader of snapshot buffer
* 0afe420228 ring-buffer: Fix wake ups when buffer_percent is set to 100
* 9db5239d75 scsi: core: Always send batch on reset or error handling command
* f2d30198c0 scsi: core: Use a structure member to track the SCSI command submitter
* df83ca8e98 scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
* d054858a9c scsi: core: Make scsi_get_lba() return the LBA
* f230e6d424 scsi: core: Introduce scsi_get_sector()
* 294d66c35a scsi: core: Add scsi_prot_ref_tag() helper
* 929f475eba spi: atmel: Fix CS and initialization bug
* 23d9267c54 spi: atmel: Switch to transfer_one transfer method
* db1b14eec8 Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
* 0c54b79d1d smb: client: fix OOB in smbCalcSize()
* 203a412e52 smb: client: fix OOB in SMB2_query_info_init()
* 79e158ddc3 usb: fotg210-hcd: delete an incorrect bounds test
* da448f145f Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE
* 4bc912140b Bluetooth: use inclusive language in SMP
* e219c3110a Bluetooth: SMP: Convert BT_ERR/BT_DBG to bt_dev_err/bt_dev_dbg
* cdbc4a1115 ARM: dts: Fix occasional boot hang for am3 usb
* 1e2db0124c 9p/net: fix possible memory leak in p9_check_errors()
* c4a22227f7 x86/alternatives: Sync core before enabling interrupts
* 7d407ef183 lib/vsprintf: Fix %pfwf when current node refcount == 0
* 565fadc3ea bus: ti-sysc: Flush posted write only after srst_udelay
* e50cfb5447 tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
* cd6e41593e dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp
* 786788bb13 net: ks8851: Fix TX stall caused by TX buffer overrun
* 391c1019a0 net: rfkill: gpio: set GPIO direction
* 6d7b8e5a6d net: 9p: avoid freeing uninit memory in p9pdu_vreadf
* 45b63f09ba Input: soc_button_array - add mapping for airplane mode button
* 2aa744ad0e Bluetooth: L2CAP: Send reject on command corrupted request
* 25a6fdd26d Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
* 71e1c76540 USB: serial: option: add Quectel RM500Q R13 firmware support
* d521896bcc USB: serial: option: add Foxconn T99W265 with new baseline
* d0cf8a4bee USB: serial: option: add Quectel EG912Y module support
* f41f44cea9 USB: serial: ftdi_sio: update Actisense PIDs constant names
* 20d84a1946 wifi: cfg80211: fix certs build to not depend on file order
* 7a0a5cbfea wifi: cfg80211: Add my certificate
* 9dcf50da59 iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
* abbebddb19 iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
* c40db29812 scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
* e3749f85fd Input: ipaq-micro-keys - add error handling for devm_kmemdup
* b5f67cea27 iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
* 505df1c0ab interconnect: Treat xlate() returning NULL node as an error
* cc5eec86a4 btrfs: do not allow non subvolume root targets for snapshot
* bd267af18f smb: client: fix NULL deref in asn1_ber_decoder()
* 41350e813a ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
* a4692c38cd ALSA: hda/hdmi: Add quirk to force pin connectivity on NUC10
* e032ddb0e3 pinctrl: at91-pio4: use dedicated lock class for IRQ
* 0b85149a9d i2c: aspeed: Handle the coalesced stop conditions with the start conditions.
* 3dce7a52b2 afs: Fix overwriting of result of DNS query
* 97be1e865e keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
* 9e0d18f946 net: check dev->gso_max_size in gso_features_check()
* 59dc16ce09 net: warn if gso_type isn't set for a GSO SKB
* 63ad66d484 afs: Fix dynamic root lookup DNS check
* 65d2c287fc afs: Fix the dynamic root's d_delete to always delete unused dentries
* a3218319ee net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
* 12e5a4719c net/rose: fix races in rose_kill_by_device()
* be0988c9b0 ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
* 8b6f8bfe3a net: sched: ife: fix potential use-after-free
* f245312e9f net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors
* e8ba688a64 net/mlx5: Fix fw tracer first block check
* fc4c53f8e9 net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
* 50aa92e699 Revert "net/mlx5e: fix double free of encap_header"
* b851889e91 wifi: mac80211: mesh_plink: fix matches_local logic
* 717f08fb51 s390/vx: fix save/restore of fpu kernel context
* c48219fad1 reset: Fix crash when freeing non-existent optional resets
* c999682ce8 ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
* dbc8edb80f smb: client: fix OOB in smb2_query_reparse_point()
* bc3c57493b ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE

Updates the .xml file to track the new symbol that is required:

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

1 Added function:

  [A] 'function int devm_pm_runtime_enable(device*)'

Change-Id: I68d1c499f716926e1e84a98895170b9d192019e8
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2024-03-28 10:29:56 +00:00
Krishna Kurapati
42ae2a9c8c UPSTREAM: usb: dwc3: core: set force_gen1 bit in USB31 devices if max speed is SS
Currently for dwc3_usb31 controller, if maximum_speed is limited to
super-speed in DT, then device mode is limited to SS, but host mode
still works in SSP.

The documentation for max-speed property is as follows:

"Tells USB controllers we want to work up to a certain speed.
Incase  this isn't passed via DT, USB controllers should default to
their maximum HW capability."

It doesn't specify that the property is only for device mode.
There are cases where we need to limit the host's maximum speed to
SuperSpeed only. Use this property for host mode to contrain host's
speed to SuperSpeed.

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

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

Bug: 329199528
Change-Id: Ic36953592a899ae263f900ee885c09033a11d910
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
2024-03-19 18:03:20 +00:00
Lokesh Gidra
a0b6273ec3 ANDROID: userfaultfd: abort uffdio ops if mmap_lock is contended
Check if the mmap_lock is contended when looping over the pages that
are requested to be filled. When it is observed, we rely on the already
existing mechanism to return bytes copied/filled and -EAGAIN as error.

This helps by avoiding contention of mmap_lock for long running
userfaultfd operations. The userspace can perform other tasks before
retrying the operation for the remaining pages.

Bug: 320478828
Change-Id: I6d485fd03c96a826956ee3962e58058be3cf81c1
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
2024-03-15 19:49:14 +00:00
Lokesh Gidra
e3aabbf867 ANDROID: userfaultfd: add MMAP_TRYLOCK mode for COPY/ZEROPAGE
In case mmap_lock is contended, it is possible that userspace can spend
time performing other tasks rather than waiting in uninterruptible-sleep
state for the lock to become available. Even if no other task is
available, it is better to yield or sleep rather than adding contention
to already contended lock.

We introduce MMAP_TRYLOCK mode so that when possible, userspace can
request to use mmap_read_trylock(), returning -EAGAIN if and when it
fails.

Bug: 320478828
Change-Id: I2d196fd317e054af03dbd35ac1b0c7634cb370dc
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
2024-03-15 19:49:14 +00:00
Uwe Kleine-König
0ebc4699bd UPSTREAM: coresight: etm4x: Remove bogous __exit annotation for some functions
etm4_platform_driver (which lives in ".data" contains a reference to
etm4_remove_platform_dev(). So the latter must not be marked with __exit
which results in the function being discarded for a build with
CONFIG_CORESIGHT_SOURCE_ETM4X=y which in turn makes the remove pointer
contain invalid data.

etm4x_amba_driver referencing etm4_remove_amba() has the same issue.

Drop the __exit annotations for the two affected functions and a third
one that is called by the other two.

For reasons I don't understand this isn't catched by building with
CONFIG_DEBUG_SECTION_MISMATCH=y.

Bug: 254441685
Fixes: c23bc382ef0e ("coresight: etm4x: Refactor probing routine")
Fixes: 5214b563588e ("coresight: etm4x: Add support for sysreg only devices")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: James Clark <james.clark@arm.com>
Link: https://lore.kernel.org/all/20230929081540.yija47lsj35xtj4v@pengutronix.de/
Link: https://lore.kernel.org/r/20230929081637.2377335-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
(cherry picked from commit 348ddab81f7b0983d9fb158df910254f08d3f887)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I2c80ed9d7025978239a18099cd07ce9d51ab9c69
2024-03-13 13:35:32 +00:00
Jerome Brunet
40173a1428 UPSTREAM: ASoC: hdmi-codec: register hpd callback on component probe
The HDMI hotplug callback to the hdmi-codec is currently registered when
jack is set.

The hotplug not only serves to report the ASoC jack state but also to get
the ELD. It should be registered when the component probes instead, so it
does not depend on the card driver registering a jack for the HDMI to
properly report the ELD.

Bug: 254441685
Fixes: 25ce4f2b3593 ("ASoC: hdmi-codec: Get ELD in before reporting plugged event")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20231106104013.704356-1-jbrunet@baylibre.com
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 15be353d55f9e12e34f9a819f51eb41fdef5eda8)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I4df1e28c9a178d7cfcafa7a42bfee50229bc3424
2024-03-13 13:35:32 +00:00
Jimmy Hu
438106d0e1 UPSTREAM: usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
It is possible that typec_register_partner() returns ERR_PTR on failure.
When port->partner is an error, a NULL pointer dereference may occur as
shown below.

[91222.095236][  T319] typec port0: failed to register partner (-17)
...
[91225.061491][  T319] Unable to handle kernel NULL pointer dereference
at virtual address 000000000000039f
[91225.274642][  T319] pc : tcpm_pd_data_request+0x310/0x13fc
[91225.274646][  T319] lr : tcpm_pd_data_request+0x298/0x13fc
[91225.308067][  T319] Call trace:
[91225.308070][  T319]  tcpm_pd_data_request+0x310/0x13fc
[91225.308073][  T319]  tcpm_pd_rx_handler+0x100/0x9e8
[91225.355900][  T319]  kthread_worker_fn+0x178/0x58c
[91225.355902][  T319]  kthread+0x150/0x200
[91225.355905][  T319]  ret_from_fork+0x10/0x30

Add a check for port->partner to avoid dereferencing a NULL pointer.

Bug: 254441685
Fixes: 5e1d4c49fbc8 ("usb: typec: tcpm: Determine common SVDM Version")
Cc: stable@vger.kernel.org
Signed-off-by: Jimmy Hu <hhhuuu@google.com>
Link: https://lore.kernel.org/r/20231020012132.100960-1-hhhuuu@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 4987daf86c152ff882d51572d154ad12e4ff3a4b)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I45629f82fc1686684c4726f9c5d9f21c176ba470
2024-03-13 13:35:31 +00:00
Jinjie Ruan
4955298720 UPSTREAM: mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions()
When CONFIG_DAMON_VADDR_KUNIT_TEST=y and making CONFIG_DEBUG_KMEMLEAK=y
and CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y, the below memory leak is detected.

Since commit 9f86d624292c ("mm/damon/vaddr-test: remove unnecessary
variables"), the damon_destroy_ctx() is removed, but still call
damon_new_target() and damon_new_region(), the damon_region which is
allocated by kmem_cache_alloc() in damon_new_region() and the damon_target
which is allocated by kmalloc in damon_new_target() are not freed.  And
the damon_region which is allocated in damon_new_region() in
damon_set_regions() is also not freed.

So use damon_destroy_target to free all the damon_regions and damon_target.

    unreferenced object 0xffff888107c9a940 (size 64):
      comm "kunit_try_catch", pid 1069, jiffies 4294670592 (age 732.761s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 06 00 00 00 6b 6b 6b 6b  ............kkkk
        60 c7 9c 07 81 88 ff ff f8 cb 9c 07 81 88 ff ff  `...............
      backtrace:
        [<ffffffff817e0167>] kmalloc_trace+0x27/0xa0
        [<ffffffff819c11cf>] damon_new_target+0x3f/0x1b0
        [<ffffffff819c7d55>] damon_do_test_apply_three_regions.constprop.0+0x95/0x3e0
        [<ffffffff819c82be>] damon_test_apply_three_regions1+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff8881079cc740 (size 56):
      comm "kunit_try_catch", pid 1069, jiffies 4294670592 (age 732.761s)
      hex dump (first 32 bytes):
        05 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00  ................
        6b 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 6b 6b 6b 6b  kkkkkkkk....kkkk
      backtrace:
        [<ffffffff819bc492>] damon_new_region+0x22/0x1c0
        [<ffffffff819c7d91>] damon_do_test_apply_three_regions.constprop.0+0xd1/0x3e0
        [<ffffffff819c82be>] damon_test_apply_three_regions1+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff888107c9ac40 (size 64):
      comm "kunit_try_catch", pid 1071, jiffies 4294670595 (age 732.843s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 06 00 00 00 6b 6b 6b 6b  ............kkkk
        a0 cc 9c 07 81 88 ff ff 78 a1 76 07 81 88 ff ff  ........x.v.....
      backtrace:
        [<ffffffff817e0167>] kmalloc_trace+0x27/0xa0
        [<ffffffff819c11cf>] damon_new_target+0x3f/0x1b0
        [<ffffffff819c7d55>] damon_do_test_apply_three_regions.constprop.0+0x95/0x3e0
        [<ffffffff819c851e>] damon_test_apply_three_regions2+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff8881079ccc80 (size 56):
      comm "kunit_try_catch", pid 1071, jiffies 4294670595 (age 732.843s)
      hex dump (first 32 bytes):
        05 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00  ................
        6b 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 6b 6b 6b 6b  kkkkkkkk....kkkk
      backtrace:
        [<ffffffff819bc492>] damon_new_region+0x22/0x1c0
        [<ffffffff819c7d91>] damon_do_test_apply_three_regions.constprop.0+0xd1/0x3e0
        [<ffffffff819c851e>] damon_test_apply_three_regions2+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff888107c9af40 (size 64):
      comm "kunit_try_catch", pid 1073, jiffies 4294670597 (age 733.011s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 06 00 00 00 6b 6b 6b 6b  ............kkkk
        20 a2 76 07 81 88 ff ff b8 a6 76 07 81 88 ff ff   .v.......v.....
      backtrace:
        [<ffffffff817e0167>] kmalloc_trace+0x27/0xa0
        [<ffffffff819c11cf>] damon_new_target+0x3f/0x1b0
        [<ffffffff819c7d55>] damon_do_test_apply_three_regions.constprop.0+0x95/0x3e0
        [<ffffffff819c877e>] damon_test_apply_three_regions3+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff88810776a200 (size 56):
      comm "kunit_try_catch", pid 1073, jiffies 4294670597 (age 733.011s)
      hex dump (first 32 bytes):
        05 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00  ................
        6b 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 6b 6b 6b 6b  kkkkkkkk....kkkk
      backtrace:
        [<ffffffff819bc492>] damon_new_region+0x22/0x1c0
        [<ffffffff819c7d91>] damon_do_test_apply_three_regions.constprop.0+0xd1/0x3e0
        [<ffffffff819c877e>] damon_test_apply_three_regions3+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff88810776a740 (size 56):
      comm "kunit_try_catch", pid 1073, jiffies 4294670597 (age 733.025s)
      hex dump (first 32 bytes):
        3d 00 00 00 00 00 00 00 3f 00 00 00 00 00 00 00  =.......?.......
        6b 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 6b 6b 6b 6b  kkkkkkkk....kkkk
      backtrace:
        [<ffffffff819bc492>] damon_new_region+0x22/0x1c0
        [<ffffffff819bfcc2>] damon_set_regions+0x4c2/0x8e0
        [<ffffffff819c7dbb>] damon_do_test_apply_three_regions.constprop.0+0xfb/0x3e0
        [<ffffffff819c877e>] damon_test_apply_three_regions3+0x21e/0x260
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff888108038240 (size 64):
      comm "kunit_try_catch", pid 1075, jiffies 4294670600 (age 733.022s)
      hex dump (first 32 bytes):
        00 00 00 00 00 00 00 00 03 00 00 00 6b 6b 6b 6b  ............kkkk
        48 ad 76 07 81 88 ff ff 98 ae 76 07 81 88 ff ff  H.v.......v.....
      backtrace:
        [<ffffffff817e0167>] kmalloc_trace+0x27/0xa0
        [<ffffffff819c11cf>] damon_new_target+0x3f/0x1b0
        [<ffffffff819c7d55>] damon_do_test_apply_three_regions.constprop.0+0x95/0x3e0
        [<ffffffff819c898d>] damon_test_apply_three_regions4+0x1cd/0x210
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20
    unreferenced object 0xffff88810776ad28 (size 56):
      comm "kunit_try_catch", pid 1075, jiffies 4294670600 (age 733.022s)
      hex dump (first 32 bytes):
        05 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00  ................
        6b 6b 6b 6b 6b 6b 6b 6b 00 00 00 00 6b 6b 6b 6b  kkkkkkkk....kkkk
      backtrace:
        [<ffffffff819bc492>] damon_new_region+0x22/0x1c0
        [<ffffffff819bfcc2>] damon_set_regions+0x4c2/0x8e0
        [<ffffffff819c7dbb>] damon_do_test_apply_three_regions.constprop.0+0xfb/0x3e0
        [<ffffffff819c898d>] damon_test_apply_three_regions4+0x1cd/0x210
        [<ffffffff829fce6a>] kunit_generic_run_threadfn_adapter+0x4a/0x90
        [<ffffffff81237cf6>] kthread+0x2b6/0x380
        [<ffffffff81097add>] ret_from_fork+0x2d/0x70
        [<ffffffff81003791>] ret_from_fork_asm+0x11/0x20

Bug: 254441685
Link: https://lkml.kernel.org/r/20230925072100.3725620-1-ruanjinjie@huawei.com
Fixes: 9f86d624292c ("mm/damon/vaddr-test: remove unnecessary variables")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: SeongJae Park <sj@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 45120b15743fa7c0aa53d5db6dfb4c8f87be4abd)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Iaf32fde644a1ce95a5f3f1261009feb30764f780
2024-03-13 13:35:31 +00:00
Jens Axboe
5d0d2934a6 UPSTREAM: task_work: add kerneldoc annotation for 'data' argument
A previous commit changed the arguments to task_work_cancel_match(), but
didn't document all of them.

Bug: 254441685
Link: https://lkml.kernel.org/r/93938bff-baa3-4091-85f5-784aae297a07@kernel.dk
Fixes: c7aab1a7c52b ("task_work: add helper for more targeted task_work canceling")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202309120307.zis3yQGe-lkp@intel.com/
Acked-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 4653e5dd04cb869526477a76b87d0aa1a5c65101)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ic85484d66e03f94307f6d1ea5ab32c9a182428c5
2024-03-13 13:35:31 +00:00
Song Liu
b4c0e45118 UPSTREAM: x86/purgatory: Remove LTO flags
-flto* implies -ffunction-sections. With LTO enabled, ld.lld generates
multiple .text sections for purgatory.ro:

  $ readelf -S purgatory.ro  | grep " .text"
    [ 1] .text             PROGBITS         0000000000000000  00000040
    [ 7] .text.purgatory   PROGBITS         0000000000000000  000020e0
    [ 9] .text.warn        PROGBITS         0000000000000000  000021c0
    [13] .text.sha256_upda PROGBITS         0000000000000000  000022f0
    [15] .text.sha224_upda PROGBITS         0000000000000000  00002be0
    [17] .text.sha256_fina PROGBITS         0000000000000000  00002bf0
    [19] .text.sha224_fina PROGBITS         0000000000000000  00002cc0

This causes WARNING from kexec_purgatory_setup_sechdrs():

  WARNING: CPU: 26 PID: 110894 at kernel/kexec_file.c:919
  kexec_load_purgatory+0x37f/0x390

Fix this by disabling LTO for purgatory.

[ AFAICT, x86 is the only arch that supports LTO and purgatory. ]

We could also fix this with an explicit linker script to rejoin .text.*
sections back into .text. However, given the benefit of LTOing purgatory
is small, simply disable the production of more .text.* sections for now.

Bug: 254441685
Fixes: b33fff07e3e3 ("x86, build: allow LTO to be selected")
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Link: https://lore.kernel.org/r/20230914170138.995606-1-song@kernel.org
(cherry picked from commit 75b2f7e4c9e0fd750a5a27ca9736d1daa7a3762a)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ia97a12ef553e557bc269652a7c5cdc70e8256f85
2024-03-13 13:35:31 +00:00
Badhri Jagan Sridharan
78254cf9c0 UPSTREAM: tcpm: Avoid soft reset when partner does not support get_status
When partner does not support get_status message, tcpm right now
responds with soft reset message. This causes PD renegotiation to
happen and resets PPS link. Avoid soft resetting the link when
partner does not support get_status message to mitigate PPS resets.

[  208.926752] Setting voltage/current limit 9500 mV 2450 mA
[  208.930407] set_auto_vbus_discharge_threshold mode:3 pps_active:y vbus:9500 ret:0
[  208.930418] state change SNK_TRANSITION_SINK -> SNK_READY [rev3 POWER_NEGOTIATION]
[  208.930455] AMS POWER_NEGOTIATION finished

// ALERT message from the Source
[  213.948442] PD RX, header: 0x19a6 [1]
[  213.948451] state change SNK_READY -> GET_STATUS_SEND [rev3 GETTING_SOURCE_SINK_STATUS]
[  213.948457] PD TX, header: 0x492
[  213.950402] PD TX complete, status: 0
[  213.950427] pending state change GET_STATUS_SEND -> GET_STATUS_SEND_TIMEOUT @ 60 ms [rev3 GETTING_SOURCE_SINK_STATUS]

// NOT_SUPPORTED from the Source
[  213.959954] PD RX, header: 0xbb0 [1]

// sink sends SOFT_RESET
[  213.959958] state change GET_STATUS_SEND -> SNK_SOFT_RESET [rev3 GETTING_SOURCE_SINK_STATUS]
[  213.959962] AMS GETTING_SOURCE_SINK_STATUS finished
[  213.959964] AMS SOFT_RESET_AMS start
[  213.959966] state change SNK_SOFT_RESET -> AMS_START [rev3 SOFT_RESET_AMS]
[  213.959969] state change AMS_START -> SOFT_RESET_SEND [rev3 SOFT_RESET_AMS]

Bug: 254441685
Cc: stable@vger.kernel.org
Fixes: 8dea75e11380 ("usb: typec: tcpm: Protocol Error handling")
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20230820044449.1005889-1-badhri@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 78e0ea4277546debf7e96797ac3b768539cc44f6)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I2e16d3de30c34e77f08289c6babe6ca787d456c5
2024-03-13 13:35:31 +00:00
Zhiguo Niu
f91d081f60 UPSTREAM: block/mq-deadline: use correct way to throttling write requests
The original formula was inaccurate:
dd->async_depth = max(1UL, 3 * q->nr_requests / 4);

For write requests, when we assign a tags from sched_tags,
data->shallow_depth will be passed to sbitmap_find_bit,
see the following code:

nr = sbitmap_find_bit_in_word(&sb->map[index],
			min_t (unsigned int,
			__map_depth(sb, index),
			depth),
			alloc_hint, wrap);

The smaller of data->shallow_depth and __map_depth(sb, index)
will be used as the maximum range when allocating bits.

For a mmc device (one hw queue, deadline I/O scheduler):
q->nr_requests = sched_tags = 128, so according to the previous
calculation method, dd->async_depth = data->shallow_depth = 96,
and the platform is 64bits with 8 cpus, sched_tags.bitmap_tags.sb.shift=5,
sb.maps[]=32/32/32/32, 32 is smaller than 96, whether it is a read or
a write I/O, tags can be allocated to the maximum range each time,
which has not throttling effect.

In addition, refer to the methods of bfg/kyber I/O scheduler,
limit ratiois are calculated base on sched_tags.bitmap_tags.sb.shift.

This patch can throttle write requests really.

Fixes: 07757588e507 ("block/mq-deadline: Reserve 25% of scheduler tags for synchronous requests")

Bug: 254441685
Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/1691061162-22898-1-git-send-email-zhiguo.niu@unisoc.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(cherry picked from commit d47f9717e5cfd0dd8c0ba2ecfa47c38d140f1bb6)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ifa79a1b22f7b5c87675525aac81841abd62840a6
2024-03-13 13:35:31 +00:00
Badhri Jagan Sridharan
d60601c3dd UPSTREAM: usb: typec: tcpm: Fix response to vsafe0V event
Do not transition to SNK_UNATTACHED state when receiving vsafe0v event
while in SNK_HARD_RESET_WAIT_VBUS. Ignore VBUS off events as well as
in some platforms VBUS off can be signalled more than once.

[143515.364753] Requesting mux state 1, usb-role 2, orientation 2
[143515.365520] pending state change SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_SINK_ON @ 650 ms [rev3 HARD_RESET]
[143515.632281] CC1: 0 -> 0, CC2: 3 -> 0 [state SNK_HARD_RESET_SINK_OFF, polarity 1, disconnected]
[143515.637214] VBUS on
[143515.664985] VBUS off
[143515.664992] state change SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_WAIT_VBUS [rev3 HARD_RESET]
[143515.665564] VBUS VSAFE0V
[143515.665566] state change SNK_HARD_RESET_WAIT_VBUS -> SNK_UNATTACHED [rev3 HARD_RESET]

Bug: 254441685
Fixes: 28b43d3d746b ("usb: typec: tcpm: Introduce vsafe0v for vbus")
Cc: <stable@vger.kernel.org>
Signed-off-by: Badhri Jagan Sridharan <badhri@google.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20230712085722.1414743-1-badhri@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 4270d2b4845e820b274702bfc2a7140f69e4d19d)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I9899c27323b7beffa10bb69d02f408f0b7137b85
2024-03-13 13:35:31 +00:00
Fei Shao
ce364c0d34 UPSTREAM: clk: Fix memory leak in devm_clk_notifier_register()
devm_clk_notifier_register() allocates a devres resource for clk
notifier but didn't register that to the device, so the notifier didn't
get unregistered on device detach and the allocated resource was leaked.

Fix the issue by registering the resource through devres_add().

This issue was found with kmemleak on a Chromebook.

Bug: 254441685
Fixes: 6d30d50d037d ("clk: add devm variant of clk_notifier_register")
Signed-off-by: Fei Shao <fshao@chromium.org>
Link: https://lore.kernel.org/r/20230619112253.v2.1.I13f060c10549ef181603e921291bdea95f83033c@changeid
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
(cherry picked from commit 7fb933e56f77a57ef7cfc59fc34cbbf1b1fa31ff)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I5f9b23708576bd2344e5ac79546d5a1ca5dc943d
2024-03-13 13:35:31 +00:00
Anders Roxell
eebfedfd22 UPSTREAM: selftests: damon: add config file
Building and running the subsuite 'damon' of kselftest, shows the
following issues:
 selftests: damon: debugfs_attrs.sh
  /sys/kernel/debug/damon not found

By creating a config file enabling DAMON fragments in the
selftests/damon/ directory the tests pass.

Bug: 254441685
Link: https://lkml.kernel.org/r/20230412092854.3306197-1-anders.roxell@linaro.org
Fixes: b348eb7abd09 ("mm/damon: add user space selftests")
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reviewed-by: SeongJae Park <sj@kernel.org>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 7b1798ec9836670d221dcc162dc18f8b64e959e5)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ida37a30004d449526dad637092407e0ab57d6ddd
2024-03-13 13:35:31 +00:00
Chris Goldsworthy
d93f79522f ANDROID: abi_gki_aarch64_qcom: Export trace_android_vh_try_fixup_sea
Add the underlying symbols for trace_android_vh_try_fixup_sea.

Bug: 320358381
Change-Id: I0fa34513d1cd503159abfef0eb6fe50284f21316
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
2024-03-12 04:21:19 +00:00
Chris Goldsworthy
f211036cf3 ANDROID: arm64: Call fixup_exception() within do_sea()
path_lookupat() is capable of safely reading unampped VAs. If an
unmapped VA is read whilst the function is being called, the resulting
page fault will get re-directed to __do_page_fault(), which will call
fixup_exception() to handle the aforementioned unmapped VA read.

Now, for an OS running in a VM, let's say that memory was still mapped
at S1 but lent to another VM (i.e. unmapped at S2 for the given VM).
The reading of an unmapped VA in path_lookupat() still needs to be
handled. For hypervisors that inject an abort leading to a do_sea()
call, call fixup_exception() from do_sea() if
trace_android_vh_try_fixup_sea() indicates that we can do so.

Bug: 320358381
Change-Id: I0aedcd954f08e3011b27524f9a7b038debbb246d
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
2024-03-11 17:55:08 +00:00
Lokesh Gidra
a905086c85 ANDROID: userfaultfd: allow SPF for UFFD_FEATURE_SIGBUS on private+anon
Currently we bail out of speculative page fault when we detect that the
fault address is in a userfaultfd registered vma. However, if userfaultfd
is being used with UFFD_FEATURE_SIGBUS feature, then handle_userfault()
doesn't do much and is easiest to handle with SPF. This patch lets
MISSING userfaultfs on private anonymous mappings be allowed with SPF if
UFFD_FEATURE_SIGBUS is used.

With this patch we get >99% success rate for userfaults caused during
userfaultfd GC's compaction phase. This translates into eliminating
uninterruptible sleep time in do_page_fault() due to userfaults.

Bug: 320478828
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
Change-Id: Ic7fde0fde03602b35179bc0cf891ddbbc434190f
(cherry picked from commit 582c6d188ec138d8ed9c6ef235bf5698d80d7d6b)
2024-03-05 19:08:29 +00:00
Wesley Cheng
9171439117 UPSTREAM: usb: dwc3: gadget: Handle EP0 request dequeuing properly
Current EP0 dequeue path will share the same as other EPs.  However, there
are some special considerations that need to be made for EP0 transfers:

  - EP0 transfers never transition into the started_list
  - EP0 only has one active request at a time

In case there is a vendor specific control message for a function over USB
FFS, then there is no guarantee on the timeline which the DATA/STATUS stage
is responded to.  While this occurs, any attempt to end transfers on
non-control EPs will end up having the DWC3_EP_DELAY_STOP flag set, and
defer issuing of the end transfer command.  If the USB FFS application
decides to timeout the control transfer, or if USB FFS AIO path exits, the
USB FFS driver will issue a call to usb_ep_dequeue() for the ep0 request.

In case of the AIO exit path, the AIO FS blocks until all pending USB
requests utilizing the AIO path is completed.  However, since the dequeue
of ep0 req does not happen properly, all non-control EPs with the
DWC3_EP_DELAY_STOP flag set will not be handled, and the AIO exit path will
be stuck waiting for the USB FFS data endpoints to receive a completion
callback.

Fix is to utilize dwc3_ep0_reset_state() in the dequeue API to ensure EP0
is brought back to the SETUP state, and ensures that any deferred end
transfer commands are handled.  This also will end any active transfers
on EP0, compared to the previous implementation which directly called
giveback only.

Fixes: fcd2def663 ("usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue")
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>

Bug: 327520570
Change-Id: Ic00684db4b502f1aab128f7e49f22510dda24f60
(cherry picked from commit 730e12fbec53ab59dd807d981a204258a4cfb29a)
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
2024-02-29 19:52:11 +00:00
Wesley Cheng
5e21de099e UPSTREAM: usb: dwc3: gadget: Refactor EP0 forced stall/restart into a separate API
Several sequences utilize the same routine for forcing the control endpoint
back into the SETUP phase.  This is required, because those operations need
to ensure that EP0 is back in the default state.

Fixes: c96683798e27 ("usb: dwc3: ep0: Don't prepare beyond Setup stage")
Cc: stable@vger.kernel.org
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Wesley Cheng <quic_wcheng@quicinc.com>
Link: https://lore.kernel.org/r/20230420212759.29429-2-quic_wcheng@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 327520570
Change-Id: I9b468a021b04e765b074d9b48f46c6e828022705
(cherry picked from commit 8f40fc0808137c157dd408d2632e63bfca2aecdb)
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
2024-02-29 19:51:31 +00:00
hao lv
f6c4f779c6 ANDROID: GKI: Update symbols to symbol list
Leaf changes summary: 38 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 19 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 19 Added variables

19 Added functions:

  [A] 'function int __traceiter_android_rvh_blk_allocated_queue_init(void*, bool*, request_queue*)'
  [A] 'function int __traceiter_android_rvh_blk_flush_plug_list(void*, blk_plug*, bool)'
  [A] 'function int __traceiter_android_rvh_blk_mq_alloc_rq_map(void*, bool*, blk_mq_tags**, blk_mq_tag_set*, int, unsigned int)'
  [A] 'function int __traceiter_android_rvh_blk_mq_delay_run_hw_queue(void*, bool*, blk_mq_hw_ctx*, bool)'
  [A] 'function int __traceiter_android_rvh_blk_mq_init_allocated_queue(void*, request_queue*)'
  [A] 'function int __traceiter_android_rvh_internal_blk_mq_alloc_request(void*, bool*, int*, blk_mq_alloc_data*)'
  [A] 'function int __traceiter_android_vh_bio_free(void*, bio*)'
  [A] 'function int __traceiter_android_vh_blk_alloc_flush_queue(void*, bool*, int, int, int, blk_flush_queue*)'
  [A] 'function int __traceiter_android_vh_blk_mq_add_to_requeue_list(void*, bool*, request*, bool)'
  [A] 'function int __traceiter_android_vh_blk_mq_all_tag_iter(void*, bool*, blk_mq_tags*, busy_tag_iter_fn*, void*)'
  [A] 'function int __traceiter_android_vh_blk_mq_alloc_tag_set(void*, blk_mq_tag_set*)'
  [A] 'function int __traceiter_android_vh_blk_mq_complete_request(void*, bool*, request*)'
  [A] 'function int __traceiter_android_vh_blk_mq_exit_queue(void*, request_queue*)'
  [A] 'function int __traceiter_android_vh_blk_mq_free_tags(void*, bool*, blk_mq_tags*)'
  [A] 'function int __traceiter_android_vh_blk_mq_insert_request(void*, bool*, blk_mq_hw_ctx*, request*)'
  [A] 'function int __traceiter_android_vh_blk_mq_queue_tag_busy_iter(void*, bool*, blk_mq_hw_ctx*, busy_iter_fn*, void*)'
  [A] 'function int __traceiter_android_vh_blk_mq_run_hw_queue(void*, bool*, blk_mq_hw_ctx*)'
  [A] 'function int __traceiter_android_vh_blk_mq_sched_insert_request(void*, bool*, request*)'
  [A] 'function int __traceiter_android_vh_internal_blk_mq_free_request(void*, bool*, request*, blk_mq_hw_ctx*)'

19 Added variables:

  [A] 'tracepoint __tracepoint_android_rvh_blk_allocated_queue_init'
  [A] 'tracepoint __tracepoint_android_rvh_blk_flush_plug_list'
  [A] 'tracepoint __tracepoint_android_rvh_blk_mq_alloc_rq_map'
  [A] 'tracepoint __tracepoint_android_rvh_blk_mq_delay_run_hw_queue'
  [A] 'tracepoint __tracepoint_android_rvh_blk_mq_init_allocated_queue'
  [A] 'tracepoint __tracepoint_android_rvh_internal_blk_mq_alloc_request'
  [A] 'tracepoint __tracepoint_android_vh_bio_free'
  [A] 'tracepoint __tracepoint_android_vh_blk_alloc_flush_queue'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_add_to_requeue_list'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_all_tag_iter'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_alloc_tag_set'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_complete_request'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_exit_queue'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_free_tags'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_insert_request'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_queue_tag_busy_iter'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_run_hw_queue'
  [A] 'tracepoint __tracepoint_android_vh_blk_mq_sched_insert_request'
  [A] 'tracepoint __tracepoint_android_vh_internal_blk_mq_free_request'

Bug: 319582497

Change-Id: I35d4708c6fa74041783784299a5182b68eb762b2
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 09:18:41 +08:00
hao lv
94b9d8e513 ANDROID: add hooks into blk-mq-sched.c for customized I/O scheduler
android_vh_blk_mq_sched_insert_request: Add judgment on rq. If it is a
customized rq, it needs to be added to the corresponding customized
queue

Bug: 319582497

Change-Id: I2bf8fee37273b3495d60c64bb53e43debceb5614
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:43:13 +08:00
hao lv
6912e0c8e9 ANDROID: add hooks into blk-ma-tag.c for customized I/O scheduler
android_vh_blk_mq_all_tag_iter: The customized solution adds a new tag
type, so need to use the customized solution for traversal

android_vh_blk_mq_queue_tag_busy_iter: The customized solution adds a
new tag type, so need to use the customized solution for traversal

android_vh_blk_mq_free_tags: Release the customized tag

Bug: 319582497

Change-Id: I648a9a31c11c284a75653405b8f8521d9da34d20
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:43:05 +08:00
hao lv
f76294a655 ANDROID: add hooks into blk-flush.c for customized I/O scheduler
android_vh_blk_alloc_flush_queue: Expand the flush request size to carry
more customized information

Bug: 319582497

Change-Id: I728852bd29ff7f851545c52fbdeafa7cd3a4addf
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:42:57 +08:00
hao lv
d269992366 ANDROID: add hooks into blk-core.c for customized I/O scheduler
android_rvh_blk_allocated_queue_init: Allocate specific request_queue
information and save the pointer address in the ANDROID_OEM_DATA field.
The allocation process may be scheduled, so a restricted hook function
is used

android_rvh_blk_flush_plug_list: Flush the customized plug list. During
this process, the scheduled queue_rq will be called to process the
request, so a restricted hook function is used

Bug: 319582497

Change-Id: I0af3915de899b678ffd4f207cac2e35a744936b8
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:42:49 +08:00
hao lv
ccbc7f8808 ANDROID: add hooks into blk-mq.c for customized I/O scheduler.
Our scheduler uses the ANDROID_OEM_DATA field in the request_queue
structure to customize a set of ops operations for the request queue
applied by the ufs/emmc driver. Adopt fine-grained IO scheduling
strategies based on specific request types and user scenarios

android_rvh_internal_blk_mq_alloc_request: Obtain a new tag.
This process may be scheduled because the tag cannot be allocated
quickly, so a restricted hook is required.

android_vh_internal_blk_mq_free_request: Release individually allocated
tags

android_vh_blk_mq_complete_request: Record the time when the request was
completed

android_vh_blk_mq_add_to_requeue_list: Add requests to a separate
distribution queue

android_rvh_blk_mq_delay_run_hw_queue: The process of calling queue_rq
to handle the request may be scheduled, so restricted hooks need to be
used

android_vh_blk_mq_run_hw_queue: Set need_run to true

android_vh_blk_mq_insert_request: Insert the request into a customized
queue

android_rvh_blk_mq_alloc_rq_map: The process of assigning customized
tags may be scheduled, so restricted hooks need to be used

android_rvh_blk_mq_init_allocated_queue: The customized scheduler is
initialized and needs to allocate some resources. This process may be
scheduled, so restricted hooks need to be used

android_vh_blk_mq_exit_queue: Release resources allocated by the
customized scheduler

android_vh_blk_mq_alloc_tag_set: Get tagset information

Bug: 319582497

Change-Id: I2b16d69a1e7085a4f5f82660b75188c517b01894
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:42:35 +08:00
hao lv
34338029ab ANDROID: add hooks into bio.c for customized I/O scheduler
android_vh_bio_free: We have added some additional information to
each bio, which needs to be freed simultaneously when the bio is free

Bug: 319582497

Change-Id: I532f98fa0569f2eb8da66cff746349c828e0912c
Signed-off-by: hao lv <hao.lv5@transsion.com>
2024-02-29 08:42:22 +08:00
lfc
b2e58fe5d7 ANDROID: ABI: Update oplus symbol list
1 Added function:
  [A] 'function int __traceiter_android_vh_binder_buffer_release(void*, binder_proc*, binder_thread*, binder_buffer*, bool)'

1 Added variable:
  [A] 'tracepoint __tracepoint_android_vh_binder_buffer_release'

Bug: 327307900

Change-Id: I6bca73bc3edb2d1deadc38daec96baa486f15929
Signed-off-by: Fuchun Liao <lfc@oppo.com>
2024-02-28 17:37:39 +00:00
Fuchun Liao
517fdcc1f8 ANDROID: binder: Add vendor hook to fix priority restore
When cpu loading is high, the task maybe preempted after restoring the
sched priority in trace_android_vh_binder_free_buf(). This means that
node->has_async_transaction can't be cleared immediately and the work
isn't added to the proc->todo queue as soon as possible.

To fix this we add a new hook trace_android_vh_binder_buffer_release()
to restore the priority after node->has_async_transaction has been
updated and the node->work has been added to the proc->todo queue.

Note: the old trace_android_vh_binder_free_buf() hook is kept to avoid
breaking KMI but is not extrictly needed.

Bug: 327307900
Fixes: 0eb66ec39ca8 ("ANDROID: vendor_hooks: Add hooks for binder")
Change-Id: I8126c79c9c68faa3ce0cd87ce83e2591bd61d5dd
Signed-off-by: Fuchun Liao <lfc@oppo.com>
[cmllamas: fix-up commit log and variable naming]
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2024-02-28 17:37:39 +00:00
qiwu.chen
0b886c607a ANDROID: GKI: Update symbol list
Update symbols to symbol list externed by transsion to add restricted hooks.

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

1 Added function:

  [A] 'function int __traceiter_android_vh_exit_check(void*, task_struct*, long int, int)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_exit_check'

Bug: 324013972
Change-Id: I6059a9a4e31a3c7e3dbd366a40cdf445ad82a6d4
Signed-off-by: qiwu.chen <qiwu.chen@transsion.com>
2024-02-28 15:56:36 +00:00
qiwu.chen
ca7dabaf67 ANDROID: Add vendor hook for task exiting routine
Currently, there are various global init exit issues encountered
on Andriod/linux system. It's hard to debug these issues on product
environment without a usable coredump.

For example, it's hard to get the root cause why global init task exited from the below kmsg:
[ 4.696032][T400001] e2fsck: /dev/block/by-name/metadata: clean, 35/8192 files, 2083/8192 blocks
[ 4.696783][T500326] [bq27z561] fg_debug_dump_regs: slave_dump:Reg[0x0073] = 0x05C5
[ 4.700583][T400001] EXT4-fs (sdc17): mounted filesystem with ordered data mode. Opts: discard
[ 4.706445][T400001] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f0000
[ 4.706459][T400001] CPU: 4 PID: 1 Comm: init Tainted: G S W 5.10.136-android12-9-00005-gf9a66cbe7091-ab9177899 #1
[ 4.706464][T400001] Hardware name: MT6983Z/TCZA (DT)
[ 4.706469][T400001] Call trace:
[ 4.706482][T400001] dump_backtrace.cfi_jt+0x0/0x8
[ 4.706493][T400001] dump_stack_lvl+0xc4/0x140
[ 4.706504][T400001] panic+0x178/0x464
[ 4.706511][T400001] do_exit+0xb30/0xf9c
[ 4.706517][T400001] do_group_exit+0x130/0x1c8
[ 4.706523][T400001] do_group_exit+0x0/0x1c8
[ 4.706529][T400001] __do_sys_exit_group+0x0/0x18
[ 4.706535][T400001] __se_sys_exit_group+0x0/0x14
[ 4.706543][T400001] el0_svc_common+0xd4/0x270
[ 4.706551][T400001] el0_svc+0x28/0x88
[ 4.706559][T400001] el0_sync_handler+0x8c/0xf0
[ 4.706567][T400001] el0_sync+0x1b4/0x1c0

Add hook for task exiting routine, while will be helpful for OEMs to
get the reason of any exiting task to be noticed such as dump last
exit thread executable sections and registers info.

Bug: 324013972
Link: https://lore.kernel.org/lkml/20231110032043.34516-1-qiwu.chen@transsion.com/T/
Change-Id: Ibb7c9012af18b99a1bb458d236f166e6450241c3
Signed-off-by: qiwu.chen <qiwu.chen@transsion.com>
2024-02-28 15:56:33 +00:00
Pablo Neira Ayuso
0415c5ccfe UPSTREAM: netfilter: nft_set_rbtree: skip end interval element from gc
commit 60c0c230c6f046da536d3df8b39a20b9a9fd6af0 upstream.

rbtree lazy gc on insert might collect an end interval element that has
been just added in this transactions, skip end interval elements that
are not yet active.

Bug: 325477234
Fixes: f718863aca46 ("netfilter: nft_set_rbtree: fix overlap expiration walk")
Cc: stable@vger.kernel.org
Reported-by: lonial con <kongln9170@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 1296c110c5a0b45a8fcf58e7d18bc5da61a565cb)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I42f7bca418d47948292b15ace9f371b81ccd7fe8
2024-02-27 16:35:38 +00:00
Wei Liu
92d263f290 ANDROID: GKI: Update oplus symbol list
2 function symbol(s) added
  'int xt_register_match(struct xt_match*)'
  'void xt_unregister_match(struct xt_match*)'

Bug: 323695727

Change-Id: I2a9e68cbfc672bb0f8610cdabf7df99e75efeb43
Signed-off-by: Wei Liu <liuwei.a@oppo.com>
2024-02-26 20:47:57 +00:00
Greg Kroah-Hartman
aa6ca808a4 Linux 5.10.210
Link: https://lore.kernel.org/r/20240221125954.917878865@linuxfoundation.org
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Tested-by: kernelci.org bot <bot@kernelci.org>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:33 +01:00
Dan Carpenter
cf5a69e355 PCI: dwc: Fix a 64bit bug in dw_pcie_ep_raise_msix_irq()
commit b5d1b4b46f856da1473c7ba9a5cdfcb55c9b2478 upstream.

The "msg_addr" variable is u64.  However, the "aligned_offset" is an
unsigned int.  This means that when the code does:

  msg_addr &= ~aligned_offset;

it will unintentionally zero out the high 32 bits.  Use ALIGN_DOWN() to do
the alignment instead.

Fixes: 2217fffcd63f ("PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support")
Link: https://lore.kernel.org/r/af59c7ad-ab93-40f7-ad4a-7ac0b14d37f5@moroto.mountain
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:33 +01:00
Florian Fainelli
9f53d24852 net: bcmgenet: Fix EEE implementation
commit a9f31047baca57d47440c879cf259b86f900260c upstream.

We had a number of short comings:

- EEE must be re-evaluated whenever the state machine detects a link
  change as wight be switching from a link partner with EEE
  enabled/disabled

- tx_lpi_enabled controls whether EEE should be enabled/disabled for the
  transmit path, which applies to the TBUF block

- We do not need to forcibly enable EEE upon system resume, as the PHY
  state machine will trigger a link event that will do that, too

Fixes: 6ef398ea60 ("net: bcmgenet: add EEE support")
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/20230606214348.2408018-1-florian.fainelli@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:33 +01:00
Dan Carpenter
9a865a11d6 netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
commit c301f0981fdd3fd1ffac6836b423c4d7a8e0eb63 upstream.

The problem is in nft_byteorder_eval() where we are iterating through a
loop and writing to dst[0], dst[1], dst[2] and so on...  On each
iteration we are writing 8 bytes.  But dst[] is an array of u32 so each
element only has space for 4 bytes.  That means that every iteration
overwrites part of the previous element.

I spotted this bug while reviewing commit caf3ef7468f7 ("netfilter:
nf_tables: prevent OOB access in nft_byteorder_eval") which is a related
issue.  I think that the reason we have not detected this bug in testing
is that most of time we only write one element.

Fixes: ce1e7989d9 ("netfilter: nft_byteorder: provide 64bit le/be conversion")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
[Ajay: Modified to apply on v5.10.y]
Signed-off-by: Ajay Kaher <ajay.kaher@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:32 +01:00
Konrad Dybcio
67f386f756 drm/msm/dsi: Enable runtime PM
[ Upstream commit 6ab502bc1cf3147ea1d8540d04b83a7a4cb6d1f1 ]

Some devices power the DSI PHY/PLL through a power rail that we model
as a GENPD. Enable runtime PM to make it suspendable.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/543352/
Link: https://lore.kernel.org/r/20230620-topic-dsiphy_rpm-v2-2-a11a751f34f0@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:32 +01:00
Douglas Anderson
21b38d85f6 PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend()
[ Upstream commit b4060db9251f919506e4d672737c6b8ab9a84701 ]

The PM Runtime docs say:

  Drivers in ->remove() callback should undo the runtime PM changes done
  in ->probe(). Usually this means calling pm_runtime_disable(),
  pm_runtime_dont_use_autosuspend() etc.

>From grepping code, it's clear that many people aren't aware of the
need to call pm_runtime_dont_use_autosuspend().

When brainstorming solutions, one idea that came up was to leverage
the new-ish devm_pm_runtime_enable() function. The idea here is that:

 * When the devm action is called we know that the driver is being
   removed. It's the perfect time to undo the use_autosuspend.

 * The code of pm_runtime_dont_use_autosuspend() already handles the
   case of being called when autosuspend wasn't enabled.

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:32 +01:00
Dmitry Baryshkov
ede393e118 PM: runtime: add devm_pm_runtime_enable helper
[ Upstream commit b3636a3a2c51715736d3ec45f635ed03191962ce ]

A typical code pattern for pm_runtime_enable() call is to call it in the
_probe function and to call pm_runtime_disable() both from _probe error
path and from _remove function. For some drivers the whole remove
function would consist of the call to pm_remove_disable().

Add helper function to replace this bolierplate piece of code. Calling
devm_pm_runtime_enable() removes the need for calling
pm_runtime_disable() both in the probe()'s error path and in the
remove() function.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20210731195034.979084-2-dmitry.baryshkov@linaro.org
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Stable-dep-of: 3d07a411b4fa ("drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks")
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-02-23 08:42:32 +01:00