android_kernel_motorola_sm6375/drivers/base
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Richard Fitzgerald 442e50393a regmap: rbtree: Fix wrong register marked as in-cache when creating new node
[ Upstream commit 7a795ac8d49e2433e1b97caf5e99129daf8e1b08 ]

When regcache_rbtree_write() creates a new rbtree_node it was passing the
wrong bit number to regcache_rbtree_set_register(). The bit number is the
offset __in number of registers__, but in the case of creating a new block
regcache_rbtree_write() was not dividing by the address stride to get the
number of registers.

Fix this by dividing by map->reg_stride.
Compare with regcache_rbtree_read() where the bit is checked.

This bug meant that the wrong register was marked as present. The register
that was written to the cache could not be read from the cache because it
was not marked as cached. But a nearby register could be marked as having
a cached value even if it was never written to the cache.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 3f4ff561bc ("regmap: rbtree: Make cache_present bitmap per node")
Link: https://lore.kernel.org/r/20230922153711.28103-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-10-10 21:46:43 +02:00
..
firmware_loader firmware_loader: use kernel credentials when reading firmware 2022-05-25 09:14:38 +02:00
power PM: runtime: Add pm_runtime_get_if_active() 2023-08-30 16:27:12 +02:00
regmap regmap: rbtree: Fix wrong register marked as in-cache when creating new node 2023-10-10 21:46:43 +02:00
test driver core: test_async: fix an error code 2023-09-23 10:59:50 +02:00
arch_topology.c arm64: topology: move store_cpu_topology() to shared code 2022-10-29 10:20:36 +02:00
attribute_container.c
base.h
bus.c driver: base: fix UAF when driver_attach failed 2022-06-14 18:11:54 +02:00
cacheinfo.c drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions 2022-01-16 09:15:38 +01:00
class.c class: fix possible memory leak in __class_register() 2023-01-18 11:41:21 +01:00
component.c
container.c
core.c drivers: core: fix kernel-doc markup for dev_err_probe() 2023-08-11 11:54:02 +02:00
cpu.c x86/speculation: Add Gather Data Sampling mitigation 2023-08-08 19:56:35 +02:00
dd.c driver core: Fix bus_type.match() error handling in __driver_attach() 2023-01-18 11:42:00 +01:00
devcon.c
devcoredump.c
devres.c
devtmpfs.c devtmpfs regression fix: reconfigure on each mount 2022-01-20 09:19:17 +01:00
driver.c
firmware.c
hypervisor.c
init.c
isa.c
Kconfig
Makefile
map.c
memory.c drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions 2022-01-16 09:15:38 +01:00
module.c
node.c drivers/base/node.c: fix compaction sysfs file leak 2022-06-14 18:11:41 +02:00
pinctrl.c
platform-msi.c
platform.c drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions 2022-01-16 09:15:38 +01:00
property.c
soc.c drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions 2022-01-16 09:15:38 +01:00
swnode.c
syscore.c
topology.c
transport_class.c