All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: geert@linux-m68k.org, zippel@linux-m68k.org, ralf@linux-mips.org,
	linux-mm@kvack.org, Dave Hansen <haveblue@us.ibm.com>
Subject: [patch] [RFC] make WANT_PAGE_VIRTUAL a config option
Date: Thu, 16 Dec 2004 13:56:02 -0800	[thread overview]
Message-ID: <E1Cf3bP-0002el-00@kernel.beaverton.ibm.com> (raw)


I'm working on breaking out the struct page definition into its
own file.  There seem to be a ton of header dependencies that
crop up around struct page, and I'd like to start getting rid
of thise.

In order to reduce those dependencies that a structpage.h has on 
other include files, make the #define WANT_PAGE_VIRTUAL a Kconfig
option.  This keeps the number of things that structpage.h will
include to a bare minimum.

I don't have a MIPS or m68k system to test this on, but it's
pretty simple.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---

 apw2-dave/arch/m68k/Kconfig       |    5 +++++
 apw2-dave/arch/mips/Kconfig       |    5 +++++
 apw2-dave/include/asm-frv/page.h  |    4 ----
 apw2-dave/include/asm-m68k/page.h |    1 -
 apw2-dave/include/asm-mips/page.h |    4 ----
 apw2-dave/include/linux/mm.h      |   12 ++++++------
 apw2-dave/mm/highmem.c            |    2 +-
 apw2-dave/mm/page_alloc.c         |    2 +-
 arch/frv/Kconfig                  |    0 
 9 files changed, 18 insertions(+), 17 deletions(-)

diff -puN include/asm-mips/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-mips/page.h
--- apw2/include/asm-mips/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-mips/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -144,10 +144,6 @@ static __inline__ int get_order(unsigned
 
 #endif /* defined (__KERNEL__) */
 
-#ifdef CONFIG_LIMITED_DMA
-#define WANT_PAGE_VIRTUAL
-#endif
-
 #define devmem_is_allowed(x) 1
 
 #endif /* _ASM_PAGE_H */
diff -puN include/asm-m68k/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-m68k/page.h
--- apw2/include/asm-m68k/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-m68k/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -131,7 +131,6 @@ static inline int get_order(unsigned lon
 
 #ifndef CONFIG_SUN3
 
-#define WANT_PAGE_VIRTUAL
 #ifdef CONFIG_SINGLE_MEMORY_CHUNK
 extern unsigned long m68k_memoffset;
 
diff -puN include/linux/mm.h~000-CONFIG_WANT_PAGE_VIRTUAL include/linux/mm.h
--- apw2/include/linux/mm.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/linux/mm.h	2004-12-16 13:50:53.000000000 -0800
@@ -262,12 +262,12 @@ struct page {
 	 * Note that this field could be 16 bits on x86 ... ;)
 	 *
 	 * Architectures with slow multiplication can define
-	 * WANT_PAGE_VIRTUAL in asm/page.h
+	 * WANT_PAGE_VIRTUAL in their architecture's Kconfig
 	 */
-#if defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_WANT_PAGE_VIRTUAL)
 	void *virtual;			/* Kernel virtual address (NULL if
 					   not kmapped, ie. highmem) */
-#endif /* WANT_PAGE_VIRTUAL */
+#endif /* CONFIG_WANT_PAGE_VIRTUAL */
 };
 
 /*
@@ -445,11 +445,11 @@ static inline void *lowmem_page_address(
 	return __va(page_to_pfn(page) << PAGE_SHIFT);
 }
 
-#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_HIGHMEM) && !defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define HASHED_PAGE_VIRTUAL
 #endif
 
-#if defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define page_address(page) ((page)->virtual)
 #define set_page_address(page, address)			\
 	do {						\
@@ -464,7 +464,7 @@ void set_page_address(struct page *page,
 void page_address_init(void);
 #endif
 
-#if !defined(HASHED_PAGE_VIRTUAL) && !defined(WANT_PAGE_VIRTUAL)
+#if !defined(HASHED_PAGE_VIRTUAL) && !defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define page_address(page) lowmem_page_address(page)
 #define set_page_address(page, address)  do { } while(0)
 #define page_address_init()  do { } while(0)
diff -puN include/asm-frv/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-frv/page.h
--- apw2/include/asm-frv/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-frv/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -97,8 +97,4 @@ extern unsigned long max_pfn;
 
 #endif /* __KERNEL__ */
 
-#ifdef CONFIG_CONTIGUOUS_PAGE_ALLOC
-#define WANT_PAGE_VIRTUAL	1
-#endif
-
 #endif /* _ASM_PAGE_H */
diff -puN mm/page_alloc.c~000-CONFIG_WANT_PAGE_VIRTUAL mm/page_alloc.c
--- apw2/mm/page_alloc.c~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/mm/page_alloc.c	2004-12-16 13:50:53.000000000 -0800
@@ -1597,7 +1597,7 @@ void __init memmap_init_zone(unsigned lo
 		reset_page_mapcount(page);
 		SetPageReserved(page);
 		INIT_LIST_HEAD(&page->lru);
-#ifdef WANT_PAGE_VIRTUAL
+#ifdef CONFIG_WANT_PAGE_VIRTUAL
 		/* The shift won't overflow because ZONE_NORMAL is below 4G. */
 		if (!is_highmem_idx(zone))
 			set_page_address(page, __va(start_pfn << PAGE_SHIFT));
diff -puN mm/highmem.c~000-CONFIG_WANT_PAGE_VIRTUAL mm/highmem.c
--- apw2/mm/highmem.c~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/mm/highmem.c	2004-12-16 13:50:53.000000000 -0800
@@ -602,4 +602,4 @@ void __init page_address_init(void)
 	spin_lock_init(&pool_lock);
 }
 
-#endif	/* defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL) */
+#endif	/* defined(CONFIG_HIGHMEM) && !defined(CONFIG_WANT_PAGE_VIRTUAL) */
diff -puN arch/mips/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/mips/Kconfig
--- apw2/arch/mips/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/arch/mips/Kconfig	2004-12-16 13:50:53.000000000 -0800
@@ -896,6 +896,11 @@ config LIMITED_DMA
 	bool
 	select HIGHMEM
 
+config WANT_PAGE_VIRTUAL
+	bool
+	depends on LIMITED_DMA
+	default y
+
 config MIPS_BONITO64
 	bool
 	depends on MIPS_ATLAS || MIPS_MALTA
diff -puN arch/m68k/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/m68k/Kconfig
--- apw2/arch/m68k/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/arch/m68k/Kconfig	2004-12-16 13:50:53.000000000 -0800
@@ -230,6 +230,11 @@ config Q40
 	  Q60. Select your CPU below.  For 68LC060 don't forget to enable FPU
 	  emulation.
 
+config WANT_PAGE_VIRTUAL
+	bool
+	depends on !SUN3
+	default y
+
 comment "Processor type"
 
 config M68020
diff -puN arch/frv/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/frv/Kconfig
_

WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <haveblue@us.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: geert@linux-m68k.org, zippel@linux-m68k.org, ralf@linux-mips.org,
	linux-mm@kvack.org, Dave Hansen <haveblue@us.ibm.com>
Subject: [patch] [RFC] make WANT_PAGE_VIRTUAL a config option
Date: Thu, 16 Dec 2004 13:56:02 -0800	[thread overview]
Message-ID: <E1Cf3bP-0002el-00@kernel.beaverton.ibm.com> (raw)

I'm working on breaking out the struct page definition into its
own file.  There seem to be a ton of header dependencies that
crop up around struct page, and I'd like to start getting rid
of thise.

In order to reduce those dependencies that a structpage.h has on 
other include files, make the #define WANT_PAGE_VIRTUAL a Kconfig
option.  This keeps the number of things that structpage.h will
include to a bare minimum.

I don't have a MIPS or m68k system to test this on, but it's
pretty simple.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---

 apw2-dave/arch/m68k/Kconfig       |    5 +++++
 apw2-dave/arch/mips/Kconfig       |    5 +++++
 apw2-dave/include/asm-frv/page.h  |    4 ----
 apw2-dave/include/asm-m68k/page.h |    1 -
 apw2-dave/include/asm-mips/page.h |    4 ----
 apw2-dave/include/linux/mm.h      |   12 ++++++------
 apw2-dave/mm/highmem.c            |    2 +-
 apw2-dave/mm/page_alloc.c         |    2 +-
 arch/frv/Kconfig                  |    0 
 9 files changed, 18 insertions(+), 17 deletions(-)

diff -puN include/asm-mips/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-mips/page.h
--- apw2/include/asm-mips/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-mips/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -144,10 +144,6 @@ static __inline__ int get_order(unsigned
 
 #endif /* defined (__KERNEL__) */
 
-#ifdef CONFIG_LIMITED_DMA
-#define WANT_PAGE_VIRTUAL
-#endif
-
 #define devmem_is_allowed(x) 1
 
 #endif /* _ASM_PAGE_H */
diff -puN include/asm-m68k/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-m68k/page.h
--- apw2/include/asm-m68k/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-m68k/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -131,7 +131,6 @@ static inline int get_order(unsigned lon
 
 #ifndef CONFIG_SUN3
 
-#define WANT_PAGE_VIRTUAL
 #ifdef CONFIG_SINGLE_MEMORY_CHUNK
 extern unsigned long m68k_memoffset;
 
diff -puN include/linux/mm.h~000-CONFIG_WANT_PAGE_VIRTUAL include/linux/mm.h
--- apw2/include/linux/mm.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/linux/mm.h	2004-12-16 13:50:53.000000000 -0800
@@ -262,12 +262,12 @@ struct page {
 	 * Note that this field could be 16 bits on x86 ... ;)
 	 *
 	 * Architectures with slow multiplication can define
-	 * WANT_PAGE_VIRTUAL in asm/page.h
+	 * WANT_PAGE_VIRTUAL in their architecture's Kconfig
 	 */
-#if defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_WANT_PAGE_VIRTUAL)
 	void *virtual;			/* Kernel virtual address (NULL if
 					   not kmapped, ie. highmem) */
-#endif /* WANT_PAGE_VIRTUAL */
+#endif /* CONFIG_WANT_PAGE_VIRTUAL */
 };
 
 /*
@@ -445,11 +445,11 @@ static inline void *lowmem_page_address(
 	return __va(page_to_pfn(page) << PAGE_SHIFT);
 }
 
-#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_HIGHMEM) && !defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define HASHED_PAGE_VIRTUAL
 #endif
 
-#if defined(WANT_PAGE_VIRTUAL)
+#if defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define page_address(page) ((page)->virtual)
 #define set_page_address(page, address)			\
 	do {						\
@@ -464,7 +464,7 @@ void set_page_address(struct page *page,
 void page_address_init(void);
 #endif
 
-#if !defined(HASHED_PAGE_VIRTUAL) && !defined(WANT_PAGE_VIRTUAL)
+#if !defined(HASHED_PAGE_VIRTUAL) && !defined(CONFIG_WANT_PAGE_VIRTUAL)
 #define page_address(page) lowmem_page_address(page)
 #define set_page_address(page, address)  do { } while(0)
 #define page_address_init()  do { } while(0)
diff -puN include/asm-frv/page.h~000-CONFIG_WANT_PAGE_VIRTUAL include/asm-frv/page.h
--- apw2/include/asm-frv/page.h~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/include/asm-frv/page.h	2004-12-16 13:50:53.000000000 -0800
@@ -97,8 +97,4 @@ extern unsigned long max_pfn;
 
 #endif /* __KERNEL__ */
 
-#ifdef CONFIG_CONTIGUOUS_PAGE_ALLOC
-#define WANT_PAGE_VIRTUAL	1
-#endif
-
 #endif /* _ASM_PAGE_H */
diff -puN mm/page_alloc.c~000-CONFIG_WANT_PAGE_VIRTUAL mm/page_alloc.c
--- apw2/mm/page_alloc.c~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/mm/page_alloc.c	2004-12-16 13:50:53.000000000 -0800
@@ -1597,7 +1597,7 @@ void __init memmap_init_zone(unsigned lo
 		reset_page_mapcount(page);
 		SetPageReserved(page);
 		INIT_LIST_HEAD(&page->lru);
-#ifdef WANT_PAGE_VIRTUAL
+#ifdef CONFIG_WANT_PAGE_VIRTUAL
 		/* The shift won't overflow because ZONE_NORMAL is below 4G. */
 		if (!is_highmem_idx(zone))
 			set_page_address(page, __va(start_pfn << PAGE_SHIFT));
diff -puN mm/highmem.c~000-CONFIG_WANT_PAGE_VIRTUAL mm/highmem.c
--- apw2/mm/highmem.c~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/mm/highmem.c	2004-12-16 13:50:53.000000000 -0800
@@ -602,4 +602,4 @@ void __init page_address_init(void)
 	spin_lock_init(&pool_lock);
 }
 
-#endif	/* defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL) */
+#endif	/* defined(CONFIG_HIGHMEM) && !defined(CONFIG_WANT_PAGE_VIRTUAL) */
diff -puN arch/mips/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/mips/Kconfig
--- apw2/arch/mips/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/arch/mips/Kconfig	2004-12-16 13:50:53.000000000 -0800
@@ -896,6 +896,11 @@ config LIMITED_DMA
 	bool
 	select HIGHMEM
 
+config WANT_PAGE_VIRTUAL
+	bool
+	depends on LIMITED_DMA
+	default y
+
 config MIPS_BONITO64
 	bool
 	depends on MIPS_ATLAS || MIPS_MALTA
diff -puN arch/m68k/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/m68k/Kconfig
--- apw2/arch/m68k/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL	2004-12-16 13:50:53.000000000 -0800
+++ apw2-dave/arch/m68k/Kconfig	2004-12-16 13:50:53.000000000 -0800
@@ -230,6 +230,11 @@ config Q40
 	  Q60. Select your CPU below.  For 68LC060 don't forget to enable FPU
 	  emulation.
 
+config WANT_PAGE_VIRTUAL
+	bool
+	depends on !SUN3
+	default y
+
 comment "Processor type"
 
 config M68020
diff -puN arch/frv/Kconfig~000-CONFIG_WANT_PAGE_VIRTUAL arch/frv/Kconfig
_
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>

             reply	other threads:[~2004-12-16 21:56 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-16 21:56 Dave Hansen [this message]
2004-12-16 21:56 ` [patch] [RFC] make WANT_PAGE_VIRTUAL a config option Dave Hansen
2004-12-17  0:36 ` Roman Zippel
2004-12-17  0:36   ` Roman Zippel
2004-12-17  0:42   ` Dave Hansen
2004-12-17  0:42     ` Dave Hansen
2004-12-17  0:51     ` Roman Zippel
2004-12-17  0:51       ` Roman Zippel
2004-12-17  1:14       ` Dave Hansen
2004-12-17  1:14         ` Dave Hansen
2004-12-17  2:50         ` Roman Zippel
2004-12-17  2:50           ` Roman Zippel
2004-12-17  4:24           ` Dave Hansen
2004-12-17  4:24             ` Dave Hansen
2004-12-17 13:26             ` Roman Zippel
2004-12-17 13:26               ` Roman Zippel
2004-12-17 15:59               ` Dave Hansen
2004-12-17 15:59                 ` Dave Hansen
2004-12-17 20:27                 ` Roman Zippel
2004-12-17 20:27                   ` Roman Zippel
2004-12-17 21:48                   ` Dave Hansen
2004-12-17 21:48                     ` Dave Hansen
2004-12-18  0:52                     ` Roman Zippel
2004-12-18  0:52                       ` Roman Zippel
2004-12-20 14:49                       ` Dave Hansen
2004-12-20 14:49                         ` Dave Hansen
2004-12-20 20:45                         ` Roman Zippel
2004-12-20 20:45                           ` Roman Zippel
2004-12-17  2:01       ` Dave Hansen
2004-12-17  2:01         ` Dave Hansen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1Cf3bP-0002el-00@kernel.beaverton.ibm.com \
    --to=haveblue@us.ibm.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ralf@linux-mips.org \
    --cc=zippel@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.