Re: linux-next: build failure after merge of the driver-core tree

Peter Zijlstra
2011-12-14T09:25:51Z

On Wed, 2011-12-14 at 15:48 +1100, Stephen Rothwell wrote:
> Hi Greg,
>
> After merging the driver-core tree, today's linux-next build
> (powerpc_ppc64_defconfig) failed like this:
>
> In file included from include/linux/slab.h:185:0,
> from include/linux/kref.h:19,
> from include/linux/kobject.h:24,
> from include/linux/sysdev.h:24,
> from include/linux/node.h:17,
> from include/linux/swap.h:10,
> from include/linux/suspend.h:4,
> from arch/powerpc/kernel/asm-offsets.c:24:
> include/linux/slub_def.h:100:17: error: field 'kobj' has incomplete type
>
> Caused by commit 4af679cd7cbb ("kref: Inline all functions") ... we now
> have kref.h -> slab.h -> slub_def.h -> kobject.h -> kref.h when
> CONFIG_SLUB is set.

Egads, that's nasty..

The nicest thing I can come up with is something like the below, but its
not all that nice at all :/

---
--- a/include/linux/kref.h
+++ b/include/linux/kref.h
@@ -16,7 +16,8 @@
#define _KREF_H_

#include <linux/types.h>
-#include <linux/slab.h>
+
+extern void kfree(const void *);

struct kref {
atomic_t refcount;