Patch from Dave Hansen <haveblue@us.ibm.com>

__pgd_offset() and pgd_offset() are completely different functions.
__pgd_offset() is really just a helper to figure out which entry in a
pgd an address would fall into.   pgd_offset() does all the leg work and
actually fetches the real pgd entry.

pgd_index() is a much saner name for what __pgd_offset() does.  In fact,
we do this:
#define __pgd_offset(address) pgd_index(address)

The attached patch removes all instances of __pgd_offset and just
replaces them with pgd_index.

Compiles with and without PAE on x86.



 /dev/null                           |    0 
 25-akpm/arch/alpha/mm/fault.c       |    6 +++---
 25-akpm/arch/arm/mm/fault-common.c  |    8 ++++----
 25-akpm/arch/i386/mm/fault.c        |    6 +++---
 25-akpm/arch/i386/mm/init.c         |   18 +++++++++---------
 25-akpm/arch/i386/mm/pgtable.c      |    4 ++--
 25-akpm/arch/um/kernel/mem.c        |    4 ++--
 25-akpm/include/asm-alpha/pgtable.h |    1 -
 25-akpm/include/asm-arm/pgtable.h   |    1 -
 25-akpm/include/asm-i386/pgtable.h  |    2 --
 25-akpm/include/asm-sh/pgtable.h    |    1 -
 25-akpm/include/asm-um/pgtable.h    |    1 -
 12 files changed, 23 insertions(+), 29 deletions(-)

diff -puN arch/alpha/mm/fault.c~remove-__pgd_offset arch/alpha/mm/fault.c
--- 25/arch/alpha/mm/fault.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/alpha/mm/fault.c	Tue Mar  4 15:02:32 2003
@@ -232,11 +232,11 @@ do_page_fault(unsigned long address, uns
 	else {
 		/* Synchronize this task's top level page-table
 		   with the "reference" page table from init.  */
-		long offset = __pgd_offset(address);
+		long index = pgd_index(address);
 		pgd_t *pgd, *pgd_k;
 
-		pgd = current->active_mm->pgd + offset;
-		pgd_k = swapper_pg_dir + offset;
+		pgd = current->active_mm->pgd + index;
+		pgd_k = swapper_pg_dir + index;
 		if (!pgd_present(*pgd) && pgd_present(*pgd_k)) {
 			pgd_val(*pgd) = pgd_val(*pgd_k);
 			return;
diff -puN arch/arm/mm/fault-common.c~remove-__pgd_offset arch/arm/mm/fault-common.c
--- 25/arch/arm/mm/fault-common.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/arm/mm/fault-common.c	Tue Mar  4 15:02:32 2003
@@ -342,20 +342,20 @@ int do_translation_fault(unsigned long a
 			 struct pt_regs *regs)
 {
 	struct task_struct *tsk;
-	unsigned int offset;
+	unsigned int index;
 	pgd_t *pgd, *pgd_k;
 	pmd_t *pmd, *pmd_k;
 
 	if (addr < TASK_SIZE)
 		return do_page_fault(addr, fsr, regs);
 
-	offset = __pgd_offset(addr);
+	index = pgd_index(addr);
 
 	/*
 	 * FIXME: CP15 C1 is write only on ARMv3 architectures.
 	 */
-	pgd = cpu_get_pgd() + offset;
-	pgd_k = init_mm.pgd + offset;
+	pgd = cpu_get_pgd() + index;
+	pgd_k = init_mm.pgd + index;
 
 	if (pgd_none(*pgd_k))
 		goto bad_area;
diff -puN arch/i386/mm/fault.c~remove-__pgd_offset arch/i386/mm/fault.c
--- 25/arch/i386/mm/fault.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/i386/mm/fault.c	Tue Mar  4 15:02:32 2003
@@ -424,14 +424,14 @@ vmalloc_fault:
 		 * Do _not_ use "tsk" here. We might be inside
 		 * an interrupt in the middle of a task switch..
 		 */
-		int offset = __pgd_offset(address);
+		int index = pgd_index(address);
 		pgd_t *pgd, *pgd_k;
 		pmd_t *pmd, *pmd_k;
 		pte_t *pte_k;
 
 		asm("movl %%cr3,%0":"=r" (pgd));
-		pgd = offset + (pgd_t *)__va(pgd);
-		pgd_k = init_mm.pgd + offset;
+		pgd = index + (pgd_t *)__va(pgd);
+		pgd_k = init_mm.pgd + index;
 
 		if (!pgd_present(*pgd_k))
 			goto no_context;
diff -puN arch/i386/mm/init.c~remove-__pgd_offset arch/i386/mm/init.c
--- 25/arch/i386/mm/init.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/i386/mm/init.c	Tue Mar  4 15:02:32 2003
@@ -98,15 +98,15 @@ static void __init page_table_range_init
 {
 	pgd_t *pgd;
 	pmd_t *pmd;
-	int pgd_ofs, pmd_ofs;
+	int pgd_idx, pmd_ofs;
 	unsigned long vaddr;
 
 	vaddr = start;
-	pgd_ofs = __pgd_offset(vaddr);
+	pgd_idx = pgd_index(vaddr);
 	pmd_ofs = __pmd_offset(vaddr);
-	pgd = pgd_base + pgd_ofs;
+	pgd = pgd_base + pgd_idx;
 
-	for ( ; (pgd_ofs < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_ofs++) {
+	for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
 		if (pgd_none(*pgd)) 
 			one_md_table_init(pgd);
 
@@ -132,13 +132,13 @@ static void __init kernel_physical_mappi
 	pgd_t *pgd;
 	pmd_t *pmd;
 	pte_t *pte;
-	int pgd_ofs, pmd_ofs, pte_ofs;
+	int pgd_idx, pmd_ofs, pte_ofs;
 
-	pgd_ofs = __pgd_offset(PAGE_OFFSET);
-	pgd = pgd_base + pgd_ofs;
+	pgd_idx = pgd_index(PAGE_OFFSET);
+	pgd = pgd_base + pgd_idx;
 	pfn = 0;
 
-	for (; pgd_ofs < PTRS_PER_PGD; pgd++, pgd_ofs++) {
+	for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
 		pmd = one_md_table_init(pgd);
 		if (pfn >= max_low_pfn)
 			continue;
@@ -214,7 +214,7 @@ void __init permanent_kmaps_init(pgd_t *
 	vaddr = PKMAP_BASE;
 	page_table_range_init(vaddr, vaddr + PAGE_SIZE*LAST_PKMAP, pgd_base);
 
-	pgd = swapper_pg_dir + __pgd_offset(vaddr);
+	pgd = swapper_pg_dir + pgd_index(vaddr);
 	pmd = pmd_offset(pgd, vaddr);
 	pte = pte_offset_kernel(pmd, vaddr);
 	pkmap_page_table = pte;	
diff -puN arch/i386/mm/pgtable.c~remove-__pgd_offset arch/i386/mm/pgtable.c
--- 25/arch/i386/mm/pgtable.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/i386/mm/pgtable.c	Tue Mar  4 15:02:32 2003
@@ -64,7 +64,7 @@ static void set_pte_pfn(unsigned long va
 	pmd_t *pmd;
 	pte_t *pte;
 
-	pgd = swapper_pg_dir + __pgd_offset(vaddr);
+	pgd = swapper_pg_dir + pgd_index(vaddr);
 	if (pgd_none(*pgd)) {
 		BUG();
 		return;
@@ -104,7 +104,7 @@ void set_pmd_pfn(unsigned long vaddr, un
 		printk ("set_pmd_pfn: pfn misaligned\n");
 		return; /* BUG(); */
 	}
-	pgd = swapper_pg_dir + __pgd_offset(vaddr);
+	pgd = swapper_pg_dir + pgd_index(vaddr);
 	if (pgd_none(*pgd)) {
 		printk ("set_pmd_pfn: pgd_none\n");
 		return; /* BUG(); */
diff -puN arch/um/kernel/mem.c~remove-__pgd_offset arch/um/kernel/mem.c
--- 25/arch/um/kernel/mem.c~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/arch/um/kernel/mem.c	Tue Mar  4 15:02:32 2003
@@ -154,7 +154,7 @@ static void __init fixrange_init(unsigne
 	unsigned long vaddr;
 
 	vaddr = start;
-	i = __pgd_offset(vaddr);
+	i = pgd_index(vaddr);
 	j = __pmd_offset(vaddr);
 	pgd = pgd_base + i;
 
@@ -257,7 +257,7 @@ static void init_highmem(void)
 	vaddr = PKMAP_BASE;
 	fixrange_init(vaddr, vaddr + PAGE_SIZE*LAST_PKMAP, swapper_pg_dir);
 
-	pgd = swapper_pg_dir + __pgd_offset(vaddr);
+	pgd = swapper_pg_dir + pgd_index(vaddr);
 	pmd = pmd_offset(pgd, vaddr);
 	pte = pte_offset_kernel(pmd, vaddr);
 	pkmap_page_table = pte;
diff -puN include/asm-alpha/pgtable.h~remove-__pgd_offset include/asm-alpha/pgtable.h
--- 25/include/asm-alpha/pgtable.h~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/include/asm-alpha/pgtable.h	Tue Mar  4 15:02:32 2003
@@ -273,7 +273,6 @@ extern inline pte_t pte_mkyoung(pte_t pt
 
 /* to find an entry in a page-table-directory. */
 #define pgd_index(address)	((address >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))
-#define __pgd_offset(address)	pgd_index(address)
 #define pgd_offset(mm, address)	((mm)->pgd+pgd_index(address))
 
 /* Find an entry in the second-level page table.. */
diff -puN include/asm-arm/pgtable.h~remove-__pgd_offset include/asm-arm/pgtable.h
--- 25/include/asm-arm/pgtable.h~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/include/asm-arm/pgtable.h	Tue Mar  4 15:02:32 2003
@@ -116,7 +116,6 @@ extern struct page *empty_zero_page;
 
 /* to find an entry in a page-table-directory */
 #define pgd_index(addr)		((addr) >> PGDIR_SHIFT)
-#define __pgd_offset(addr)	pgd_index(addr)
 
 #define pgd_offset(mm, addr)	((mm)->pgd+pgd_index(addr))
 
diff -puN include/asm-i386/pgtable.h~remove-__pgd_offset include/asm-i386/pgtable.h
--- 25/include/asm-i386/pgtable.h~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/include/asm-i386/pgtable.h	Tue Mar  4 15:02:32 2003
@@ -238,8 +238,6 @@ static inline pte_t pte_modify(pte_t pte
 /* to find an entry in a page-table-directory. */
 #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
 
-#define __pgd_offset(address) pgd_index(address)
-
 #define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address))
 
 /* to find an entry in a kernel page-table-directory */
diff -puN include/asm-sh/pgtable.h~remove-__pgd_offset include/asm-sh/pgtable.h
--- 25/include/asm-sh/pgtable.h~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/include/asm-sh/pgtable.h	Tue Mar  4 15:02:32 2003
@@ -274,7 +274,6 @@ static inline pte_t pte_modify(pte_t pte
 
 /* to find an entry in a page-table-directory. */
 #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
-#define __pgd_offset(address) pgd_index(address)
 #define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address))
 
 /* to find an entry in a kernel page-table-directory */
diff -puN include/asm-um/pgtable.h~remove-__pgd_offset include/asm-um/pgtable.h
--- 25/include/asm-um/pgtable.h~remove-__pgd_offset	Tue Mar  4 15:02:32 2003
+++ 25-akpm/include/asm-um/pgtable.h	Tue Mar  4 15:02:32 2003
@@ -357,7 +357,6 @@ static inline pte_t pte_modify(pte_t pte
 
 /* to find an entry in a page-table-directory. */
 #define pgd_index(address) ((address >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
-#define __pgd_offset(address) pgd_index(address)
 
 /* to find an entry in a page-table-directory */
 #define pgd_offset(mm, address) \
diff -puN -L linux-2.5.63-clean/arch/alpha/mm/fault.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/arch/arm/mm/fault-common.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/arch/i386/mm/fault.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/arch/i386/mm/init.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/arch/i386/mm/pgtable.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/arch/um/kernel/mem.c /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/include/asm-alpha/pgtable.h /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/include/asm-arm/pgtable.h /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/include/asm-i386/pgtable.h /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/include/asm-sh/pgtable.h /dev/null /dev/null
diff -puN -L linux-2.5.63-clean/include/asm-um/pgtable.h /dev/null /dev/null

_