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>
next 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.