From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932466AbWCWQZg (ORCPT ); Thu, 23 Mar 2006 11:25:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932471AbWCWQZg (ORCPT ); Thu, 23 Mar 2006 11:25:36 -0500 Received: from e5.ny.us.ibm.com ([32.97.182.145]:47537 "EHLO e5.ny.us.ibm.com") by vger.kernel.org with ESMTP id S932466AbWCWQZf (ORCPT ); Thu, 23 Mar 2006 11:25:35 -0500 Subject: [PATCH] unify PFN_* macros To: akpm@osdl.org Cc: linux-kernel@vger.kernel.org, Dave Hansen From: Dave Hansen Date: Thu, 23 Mar 2006 08:24:59 -0800 Message-Id: <20060323162459.6D45D1CE@localhost.localdomain> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Just about every architecture defines some macros to do operations on pfns. They're all virtually identical. This patch consolidates all of them. One minor glitch is that at least i386 uses them in a very skeletal header file. To keep away from #include dependency hell, I stuck the new definitions in a new, isolated header. Of all of the implementations, sh64 is the only one that varied by a bit. It used some masks to ensure that any sign-extension got ripped away before the arithmetic is done. This has been posted to that sh64 maintainers and the development list. Compiles on x86, x86_64, ia64 and ppc64. Signed-off-by: Dave Hansen --- work-dave/arch/alpha/kernel/setup.c | 9 +-------- work-dave/arch/alpha/mm/numa.c | 4 +--- work-dave/arch/arm26/mm/init.c | 7 +------ work-dave/arch/cris/kernel/setup.c | 5 +---- work-dave/arch/i386/kernel/setup.c | 1 + work-dave/arch/i386/mm/discontig.c | 1 + work-dave/arch/m32r/kernel/setup.c | 1 + work-dave/arch/m32r/mm/discontig.c | 1 + work-dave/arch/m32r/mm/init.c | 1 + work-dave/arch/mips/ite-boards/ivr/init.c | 3 --- work-dave/arch/mips/ite-boards/qed-4n-s01b/init.c | 3 --- work-dave/arch/mips/kernel/setup.c | 9 +-------- work-dave/arch/mips/mips-boards/generic/memory.c | 7 ++----- work-dave/arch/mips/mips-boards/sim/sim_mem.c | 7 ++----- work-dave/arch/mips/mm/init.c | 4 +--- work-dave/arch/mips/sgi-ip27/ip27-memory.c | 3 +-- work-dave/arch/sh/kernel/setup.c | 5 +---- work-dave/arch/sh64/kernel/setup.c | 1 + work-dave/arch/um/kernel/physmem.c | 3 +-- work-dave/include/asm-i386/setup.h | 4 +--- work-dave/include/asm-m32r/setup.h | 4 ---- work-dave/include/asm-sh64/platform.h | 5 ----- work-dave/include/linux/pfn.h | 9 +++++++++ 23 files changed, 29 insertions(+), 68 deletions(-) diff -puN arch/alpha/kernel/setup.c~unify_PFN_macros arch/alpha/kernel/setup.c --- work/arch/alpha/kernel/setup.c~unify_PFN_macros 2006-03-23 08:23:35.000000000 -0800 +++ work-dave/arch/alpha/kernel/setup.c 2006-03-23 08:23:35.000000000 -0800 @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef CONFIG_MAGIC_SYSRQ #include #include @@ -242,9 +243,6 @@ reserve_std_resources(void) request_resource(io, standard_io_resources+i); } -#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) -#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -#define PFN_PHYS(x) ((x) << PAGE_SHIFT) #define PFN_MAX PFN_DOWN(0x80000000) #define for_each_mem_cluster(memdesc, cluster, i) \ for ((cluster) = (memdesc)->cluster, (i) = 0; \ @@ -473,11 +471,6 @@ page_is_ram(unsigned long pfn) return 0; } -#undef PFN_UP -#undef PFN_DOWN -#undef PFN_PHYS -#undef PFN_MAX - void __init setup_arch(char **cmdline_p) { diff -puN arch/alpha/mm/numa.c~unify_PFN_macros arch/alpha/mm/numa.c --- work/arch/alpha/mm/numa.c~unify_PFN_macros 2006-03-23 08:23:35.000000000 -0800 +++ work-dave/arch/alpha/mm/numa.c 2006-03-23 08:23:35.000000000 -0800 @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -27,9 +28,6 @@ bootmem_data_t node_bdata[MAX_NUMNODES]; #define DBGDCONT(args...) #endif -#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) -#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -#define PFN_PHYS(x) ((x) << PAGE_SHIFT) #define for_each_mem_cluster(memdesc, cluster, i) \ for ((cluster) = (memdesc)->cluster, (i) = 0; \ (i) < (memdesc)->numclusters; (i)++, (cluster)++) diff -puN arch/arm26/mm/init.c~unify_PFN_macros arch/arm26/mm/init.c --- work/arch/arm26/mm/init.c~unify_PFN_macros 2006-03-23 08:23:35.000000000 -0800 +++ work-dave/arch/arm26/mm/init.c 2006-03-23 08:23:35.000000000 -0800 @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -101,12 +102,6 @@ struct node_info { int bootmap_pages; }; -#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -#define PFN_UP(x) (PAGE_ALIGN(x) >> PAGE_SHIFT) -#define PFN_SIZE(x) ((x) >> PAGE_SHIFT) -#define PFN_RANGE(s,e) PFN_SIZE(PAGE_ALIGN((unsigned long)(e)) - \ - (((unsigned long)(s)) & PAGE_MASK)) - /* * FIXME: We really want to avoid allocating the bootmap bitmap * over the top of the initrd. Hopefully, this is located towards diff -puN arch/cris/kernel/setup.c~unify_PFN_macros arch/cris/kernel/setup.c --- work/arch/cris/kernel/setup.c~unify_PFN_macros 2006-03-23 08:23:35.000000000 -0800 +++ work-dave/arch/cris/kernel/setup.c 2006-03-23 08:23:35.000000000 -0800 @@ -18,6 +18,7 @@ #include #include #include +#include #include @@ -88,10 +89,6 @@ setup_arch(char **cmdline_p) init_mm.end_data = (unsigned long) &_edata; init_mm.brk = (unsigned long) &_end; -#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) -#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -#define PFN_PHYS(x) ((x) << PAGE_SHIFT) - /* min_low_pfn points to the start of DRAM, start_pfn points * to the first DRAM pages after the kernel, and max_low_pfn * to the end of DRAM. diff -puN arch/i386/kernel/setup.c~unify_PFN_macros arch/i386/kernel/setup.c --- work/arch/i386/kernel/setup.c~unify_PFN_macros 2006-03-23 08:23:35.000000000 -0800 +++ work-dave/arch/i386/kernel/setup.c 2006-03-23 08:23:35.000000000 -0800 @@ -47,6 +47,7 @@ #include #include #include +#include #include