diff options
author | Denys Drozdov <denys.drozdov@toradex.com> | 2022-01-10 14:20:03 +0200 |
---|---|---|
committer | Denys Drozdov <denys.drozdov@toradex.com> | 2022-01-10 14:20:03 +0200 |
commit | 4bb86062b45ca43f536131c4f3d02ecd9ad66eca (patch) | |
tree | 40ad320a8e600e1ee74ee3723ea2c6b0890ad5a2 /drivers/base | |
parent | c1d2a6fa7e3635a0ac4e2a7cbe7ccbc2059b6968 (diff) | |
parent | e6de9a8b5b30ebbc4d96df447ddee3202f1b4daf (diff) |
Merge tag 'v5.4.157' into HEAD
This is the 5.4.157 stable release
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/regmap/regcache-rbtree.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/base/regmap/regcache-rbtree.c b/drivers/base/regmap/regcache-rbtree.c index cfa29dc89bbf..fabf87058d80 100644 --- a/drivers/base/regmap/regcache-rbtree.c +++ b/drivers/base/regmap/regcache-rbtree.c @@ -281,14 +281,14 @@ static int regcache_rbtree_insert_to_block(struct regmap *map, if (!blk) return -ENOMEM; + rbnode->block = blk; + if (BITS_TO_LONGS(blklen) > BITS_TO_LONGS(rbnode->blklen)) { present = krealloc(rbnode->cache_present, BITS_TO_LONGS(blklen) * sizeof(*present), GFP_KERNEL); - if (!present) { - kfree(blk); + if (!present) return -ENOMEM; - } memset(present + BITS_TO_LONGS(rbnode->blklen), 0, (BITS_TO_LONGS(blklen) - BITS_TO_LONGS(rbnode->blklen)) @@ -305,7 +305,6 @@ static int regcache_rbtree_insert_to_block(struct regmap *map, } /* update the rbnode block, its size and the base register */ - rbnode->block = blk; rbnode->blklen = blklen; rbnode->base_reg = base_reg; rbnode->cache_present = present; |