Skip to content

Commit cdcb5d1

Browse files
committed
Merge tag 'regmap-fix-v6.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
Pull regmap fix from Mark Brown: "A fix for a long standing issue where when we create a new node in an rbtree register cache we were failing to convert the register address of the new register into a bitmask correctly and marking the wrong register as being present in the newly created node. This would only have affected devices with a register stride other than 1 but would corrupt data on those devices" * tag 'regmap-fix-v6.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: rbtree: Fix wrong register marked as in-cache when creating new node
2 parents 5e62ed3 + 7a795ac commit cdcb5d1

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/base/regmap/regcache-rbtree.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,8 @@ static int regcache_rbtree_write(struct regmap *map, unsigned int reg,
453453
if (!rbnode)
454454
return -ENOMEM;
455455
regcache_rbtree_set_register(map, rbnode,
456-
reg - rbnode->base_reg, value);
456+
(reg - rbnode->base_reg) / map->reg_stride,
457+
value);
457458
regcache_rbtree_insert(map, &rbtree_ctx->root, rbnode);
458459
rbtree_ctx->cached_rbnode = rbnode;
459460
}

0 commit comments

Comments
 (0)