Re: + mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2.patch added to -mm tree

Joonsoo Kim
2014-09-05T00:44:08Z

On Wed, Sep 03, 2014 at 12:40:52PM -0700, akpm@linux-foundation.org wrote:
>
> The patch titled
> Subject: mm: fix kmemcheck.c build errors
> has been added to the -mm tree. Its filename is
> mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2.patch
>
> This patch should soon appear at
> http://ozlabs.org/~akpm/mmots/broken-out/mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2.patch
> and later at
> http://ozlabs.org/~akpm/mmotm/broken-out/mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2.patch
>
> Before you just go and hit "reply", please:
> a) Consider who else should be cc'ed
> b) Prefer to cc a suitable mailing list as well
> c) Ideally: find the original patch on the mailing list and do a
> reply-to-all to that, adding suitable additional cc's
>
> *** Remember to use Documentation/SubmitChecklist when testing your code ***
>
> The -mm tree is included into linux-next and is updated
> there every 3-4 working days
>
> ------------------------------------------------------
> From: Randy Dunlap <rdunlap@infradead.org>
> Subject: mm: fix kmemcheck.c build errors
>
> Add header files to fix kmemcheck.c build errors:
>
> ../mm/kmemcheck.c:70:7: error: dereferencing pointer to incomplete type
> ../mm/kmemcheck.c:83:15: error: dereferencing pointer to incomplete type
> ../mm/kmemcheck.c:95:8: error: dereferencing pointer to incomplete type
> ../mm/kmemcheck.c:95:21: error: dereferencing pointer to incomplete type
>
> ../mm/slab.h: In function 'cache_from_obj':
> ../mm/slab.h:283:2: error: implicit declaration of function 'memcg_kmem_enabled' [-Werror=implicit-function-declaration]
>
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> mm/kmemcheck.c | 1 +
> mm/slab.h | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff -puN mm/kmemcheck.c~mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2 mm/kmemcheck.c
> --- a/mm/kmemcheck.c~mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2
> +++ a/mm/kmemcheck.c
> @@ -2,6 +2,7 @@
> #include <linux/mm_types.h>
> #include <linux/mm.h>
> #include <linux/slab.h>
> +#include "slab.h"
> #include <linux/kmemcheck.h>
>
> void kmemcheck_alloc_shadow(struct page *page, int order, gfp_t flags, int node)
> diff -puN mm/slab.h~mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2 mm/slab.h
> --- a/mm/slab.h~mm-slab_common-move-kmem_cache-definition-to-internal-header-fix-2
> +++ a/mm/slab.h
> @@ -268,6 +268,8 @@ static inline void memcg_uncharge_slab(s
> }
> #endif
>
> +#include <linux/memcontrol.h>
> +
> static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
> {
> struct kmem_cache *cachep;

Hello, Andrew.

Could you take another fix instead of this?
This also make build failure if CONFIG_MEMCG_KMEM=y.
Please see following patch I sent.

https://lkml.org/lkml/2014/8/31/148

The only difference is position of memcontrol.h header.

Thanks.