Message ID | 20210702085332.10035-1-yee.lee@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kasan: solve redzone overwritten issue at debug | expand |
On Fri, 2 Jul 2021 at 10:54, <yee.lee@mediatek.com> wrote: > > From: Marco Elver <elver@google.com> > > Introduce a helper to check slub_debug_enabled, so that we can confine > the use of #ifdef to the definition of the slub_debug_enabled_unlikely() > helper. > > --- ^^ this '---' is wrong. It needs to be removed, because anything after the first '---' will be discarded if it is turned into a commit by the maintainer. > Signed-off-by: Marco Elver <elver@google.com> > Signed-off-by: Yee Lee <yee.lee@mediatek.com> > > --- > mm/slab.h | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/mm/slab.h b/mm/slab.h > index 7b60ef2f32c3..a11126afe24c 100644 > --- a/mm/slab.h > +++ b/mm/slab.h > @@ -216,10 +216,18 @@ DECLARE_STATIC_KEY_FALSE(slub_debug_enabled); > #endif > extern void print_tracking(struct kmem_cache *s, void *object); > long validate_slab_cache(struct kmem_cache *s); > +static inline bool slub_debug_enabled_unlikely(void) > +{ > + return static_branch_unlikely(&slub_debug_enabled); > +} > #else > static inline void print_tracking(struct kmem_cache *s, void *object) > { > } > +static inline bool slub_debug_enabled_unlikely(void) > +{ > + return false; > +} > #endif > > /* > @@ -229,11 +237,10 @@ static inline void print_tracking(struct kmem_cache *s, void *object) > */ > static inline bool kmem_cache_debug_flags(struct kmem_cache *s, slab_flags_t flags) > { > -#ifdef CONFIG_SLUB_DEBUG > - VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS)); > - if (static_branch_unlikely(&slub_debug_enabled)) > + if (IS_ENABLED(CONFIG_SLUB_DEBUG)) > + VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS)); > + if (slub_debug_enabled_unlikely()) > return s->flags & flags; > -#endif > return false; > } > > -- > 2.18.0
diff --git a/mm/slab.h b/mm/slab.h index 7b60ef2f32c3..a11126afe24c 100644 --- a/mm/slab.h +++ b/mm/slab.h @@ -216,10 +216,18 @@ DECLARE_STATIC_KEY_FALSE(slub_debug_enabled); #endif extern void print_tracking(struct kmem_cache *s, void *object); long validate_slab_cache(struct kmem_cache *s); +static inline bool slub_debug_enabled_unlikely(void) +{ + return static_branch_unlikely(&slub_debug_enabled); +} #else static inline void print_tracking(struct kmem_cache *s, void *object) { } +static inline bool slub_debug_enabled_unlikely(void) +{ + return false; +} #endif /* @@ -229,11 +237,10 @@ static inline void print_tracking(struct kmem_cache *s, void *object) */ static inline bool kmem_cache_debug_flags(struct kmem_cache *s, slab_flags_t flags) { -#ifdef CONFIG_SLUB_DEBUG - VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS)); - if (static_branch_unlikely(&slub_debug_enabled)) + if (IS_ENABLED(CONFIG_SLUB_DEBUG)) + VM_WARN_ON_ONCE(!(flags & SLAB_DEBUG_FLAGS)); + if (slub_debug_enabled_unlikely()) return s->flags & flags; -#endif return false; }