Messages in this thread | | | Date | Wed, 27 Jan 2010 08:30:29 +0200 | From | Pekka Enberg <> | Subject | Re: [PATCH] kmemleak: Do not enable KMEMCHECK_PARTIAL_OK if DEBUG_KMEMLEAK |
| |
Hi Catalin,
Catalin Marinas kirjoitti: > This is a fix for bug #14845 (bugzilla.kernel.org). The > update_checksum() function in mm/kmemleak.c calls > kmemcheck_is_obj_initialised() before scanning an object. When > KMEMCHECK_PARTIAL_OK is enabled, this function returns true. However, > the crc32_le() reads smaller intervals (32-bit) for which > kmemleak_is_obj_initialised() is may be false leading to a kmemcheck > warning. > > Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Christian Casteyde <casteyde.christian@free.fr> > Cc: Pekka Enberg <penberg@cs.helsinki.fi> > --- > lib/Kconfig.kmemcheck | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/lib/Kconfig.kmemcheck b/lib/Kconfig.kmemcheck > index 846e039..80660e9 100644 > --- a/lib/Kconfig.kmemcheck > +++ b/lib/Kconfig.kmemcheck > @@ -75,7 +75,7 @@ config KMEMCHECK_SHADOW_COPY_SHIFT > config KMEMCHECK_PARTIAL_OK > bool "kmemcheck: allow partially uninitialized memory" > depends on KMEMCHECK > - default y > + default y if !DEBUG_KMEMLEAK > help > This option works around certain GCC optimizations that produce > 32-bit reads from 16-bit variables where the upper 16 bits are >
Disabling KMEMCHECK_PARTIAL_OK can cause other false positives so maybe we should add a new function to kmemcheck for kmemleak that only reads full intervals?
| |