Re: [RFC] Circular include dependencies

From: Yasunori Goto
Date: Mon May 26 2008 - 09:10:51 EST


> On Fri, 23 May 2008 14:20:34 +0100 Russell King <rmk+lkml@xxxxxxxxxxxxxxxx> wrote:
>
> > Hi,
> >
> > Having discovered some circular include dependencies in the ARM header
> > files which were causing build issues, I created a script to walk ARM
> > includes and report any similar issues found - which includes traversing
> > any referenced linux/ includes.
> >
> > It identified the following two in include/linux/:
> >
> > linux/mmzone.h <- linux/memory_hotplug.h <- linux/mmzone.h
> > linux/mmzone.h <- linux/topology.h <- linux/mmzone.h
> >
> > Checking them by hand reveals that these are real. Whether they're
> > capable of causing a problem or not, I'm not going to comment on.
> > However, they're not a good idea and someone should probably look at
> > resolving the loops.
>
> (cc's added).
>
> Thanks.
>
> I'm not sure who we could tap for the topology.h one.
>
> A suitable (and often good) way of solving this is to identify the
> things which a.h needs from b.h and hoist them out into a new c.h and
> include that from both a.h and b.h.

Kame-san and I reviewed memory_hotplug.h.
We found its including was not necessary certainly.

This is the patch to fix it. I tested on IA64, and checked cross-compile
on powerpc. Kame-san tested this on x86-64.

Thanks for your report.

Bye.

----
Fix no need including of mmzone.h in memory_hotplug.h

Signed-off-by: Yasunori Goto <y-goto@xxxxxxxxxxxxxx>

---
include/linux/memory_hotplug.h | 1 -
1 file changed, 1 deletion(-)

Index: dptest/include/linux/memory_hotplug.h
===================================================================
--- dptest.orig/include/linux/memory_hotplug.h 2008-05-21 10:56:00.000000000 +0900
+++ dptest/include/linux/memory_hotplug.h 2008-05-26 20:32:06.000000000 +0900
@@ -1,7 +1,6 @@
#ifndef __LINUX_MEMORY_HOTPLUG_H
#define __LINUX_MEMORY_HOTPLUG_H

-#include <linux/mmzone.h>
#include <linux/spinlock.h>
#include <linux/notifier.h>

--
Yasunori Goto


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/