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: linkBe 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.