On Mon, May 20, 2019 at 10:54:24AM -0400, Waiman Long wrote: > On 5/14/19 8:06 PM, Shakeel Butt wrote: > > diff --git a/mm/slab_common.c b/mm/slab_common.c > > index 4e5b4292a763..1ee967b4805e 100644 > > --- a/mm/slab_common.c > > +++ b/mm/slab_common.c > > @@ -45,6 +45,8 @@ static void slab_caches_to_rcu_destroy_workfn(struct work_struct *work); > > static DECLARE_WORK(slab_caches_to_rcu_destroy_work, > > slab_caches_to_rcu_destroy_workfn); > > > > +static void kmemcg_queue_cache_shutdown(struct percpu_ref *percpu_ref); > > + > > kmemcg_queue_cache_shutdown is only defined if CONFIG_MEMCG_KMEM is > defined. If it is not defined, a compilation warning can be produced. > Maybe putting the declaration inside a CONFIG_MEMCG_KMEM block: Hi Waiman! Yes, that makes total sense to me. Thank you for letting me know! How about this one? -- >From 0fa19369adc240cc93281911a59713822a4f3e07 Mon Sep 17 00:00:00 2001 From: Roman Gushchin <guro@xxxxxx> Date: Mon, 20 May 2019 10:52:07 -0700 Subject: [PATCH] mm: guard kmemcg_queue_cache_shutdown() with CONFIG_MEMCG_KMEM Currently kmemcg_queue_cache_shutdown() is defined only if CONFIG_MEMCG_KMEM is set, however the declaration is not guarded with corresponding ifdefs. So a compilation warning might be produced. Let's move the declaration to the section of slab_common.c, where all kmemcg-specific stuff is defined. Reported-by: Waiman Long <longman9394@xxxxxxxxx> Signed-off-by: Roman Gushchin <guro@xxxxxx> --- mm/slab_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/slab_common.c b/mm/slab_common.c index 9d2a3d6245dc..e818609c8209 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -45,8 +45,6 @@ static void slab_caches_to_rcu_destroy_workfn(struct work_struct *work); static DECLARE_WORK(slab_caches_to_rcu_destroy_work, slab_caches_to_rcu_destroy_workfn); -static void kmemcg_queue_cache_shutdown(struct percpu_ref *percpu_ref); - /* * Set of flags that will prevent slab merging */ @@ -134,6 +132,8 @@ int __kmem_cache_alloc_bulk(struct kmem_cache *s, gfp_t flags, size_t nr, LIST_HEAD(slab_root_caches); static DEFINE_SPINLOCK(memcg_kmem_wq_lock); +static void kmemcg_queue_cache_shutdown(struct percpu_ref *percpu_ref); + void slab_init_memcg_params(struct kmem_cache *s) { s->memcg_params.root_cache = NULL; -- 2.20.1