Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1223238

[PATCH 3.14 14/18] regmap: regcache-rbtree: Clean new present bits on present bitmap resize

From Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Newsgroups linux.kernel
Subject [PATCH 3.14 14/18] regmap: regcache-rbtree: Clean new present bits on present bitmap resize
Date 2015-09-12 01:20 +0200
Message-ID <q7FLQ-7Un-27@gated-at.bofh.it> (permalink)
References <q7FiN-75P-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


3.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Guenter Roeck <linux@roeck-us.net>

commit 8ef9724bf9718af81cfc5132253372f79c71b7e2 upstream.

When inserting a new register into a block, the present bit map size is
increased using krealloc. krealloc does not clear the additionally
allocated memory, leaving it filled with random values. Result is that
some registers are considered cached even though this is not the case.

Fix the problem by clearing the additionally allocated memory. Also, if
the bitmap size does not increase, do not reallocate the bitmap at all
to reduce overhead.

Fixes: 3f4ff561bc88 ("regmap: rbtree: Make cache_present bitmap per node")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/base/regmap/regcache-rbtree.c |   19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

--- a/drivers/base/regmap/regcache-rbtree.c
+++ b/drivers/base/regmap/regcache-rbtree.c
@@ -302,11 +302,20 @@ static int regcache_rbtree_insert_to_blo
 	if (!blk)
 		return -ENOMEM;
 
-	present = krealloc(rbnode->cache_present,
-		    BITS_TO_LONGS(blklen) * sizeof(*present), GFP_KERNEL);
-	if (!present) {
-		kfree(blk);
-		return -ENOMEM;
+	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);
+			return -ENOMEM;
+		}
+
+		memset(present + BITS_TO_LONGS(rbnode->blklen), 0,
+		       (BITS_TO_LONGS(blklen) - BITS_TO_LONGS(rbnode->blklen))
+		       * sizeof(*present));
+	} else {
+		present = rbnode->cache_present;
 	}
 
 	/* insert the register value in the correct place in the rbnode block */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 3.14 00/18] 3.14.52-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 18/18] arm64: KVM: Fix host crash when injecting a fault into a 32bit guest Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 14/18] regmap: regcache-rbtree: Clean new present bits on present bitmap resize Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 06/18] perf: Fix PERF_EVENT_IOC_PERIOD migration race Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 16/18] arm64/mm: Remove hack in mmap randomize layout Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 05/18] perf: Fix fasync handling on inherited events Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 03/18] mm/hwpoison: fix page refcount of unknown non LRU page Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  [PATCH 3.14 07/18] dm thin metadata: delete btrees when releasing metadata snapshot Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 01:20 +0200
  Re: [PATCH 3.14 00/18] 3.14.52-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2015-09-12 03:10 +0200
  Re: [PATCH 3.14 00/18] 3.14.52-stable review Guenter Roeck <linux@roeck-us.net> - 2015-09-12 06:30 +0200
  Re: [PATCH 3.14 00/18] 3.14.52-stable review Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-12 13:10 +0200
    Re: [PATCH 3.14 00/18] 3.14.52-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-12 18:00 +0200
      [PATCH] tty/vt: don't set font mappings on vc not supporting this Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-13 08:10 +0200
        Re: [PATCH] tty/vt: don't set font mappings on vc not supporting this Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-21 06:50 +0200
          Re: [PATCH] tty/vt: don't set font mappings on vc not supporting this Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-21 07:00 +0200

csiph-web