2.6.12-rc3-mm2: ppc pte_offset_map()

6 messages, 5 authors, 2005-05-03 · open the first message on its own page

2.6.12-rc3-mm2: ppc pte_offset_map()

From: Sean Neakums <hidden>
Date: 2005-05-01 15:09:53

On my Mackertosh (PowerBook5.4), build fails with the following:

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:177: warning: implicit declaration of function `kmap_atomic'
  fs/proc/task_mmu.c:177: error: `KM_PTE0' undeclared (first use in this function)
  fs/proc/task_mmu.c:177: error: (Each undeclared identifier is reported only once
  fs/proc/task_mmu.c:177: error: for each function it appears in.)
  fs/proc/task_mmu.c:207: warning: implicit declaration of function `kunmap_atomic'

With the naive patch below, it builds with this warning and everything works.

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:208: warning: passing arg 1 of `kunmap_atomic' makes pointer from integer without a cast

I tried including linux/highmem.h in asm-ppc/pgtable.h
(smaps_pte_range() -> pte_offset_map() -> kmap_atomic()), but that
doesn't work.

--- S12-rc3-mm2/fs/proc/task_mmu.c~	2005-05-01 15:52:55.000000000 +0100
+++ S12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 15:23:22.000000000 +0100
@@ -1,4 +1,5 @@
 #include <linux/mm.h>
+#include <linux/highmem.h>
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>

-- 
Dag vijandelijk luchtschip de huismeester is dood

Re: 2.6.12-rc3-mm2: ppc pte_offset_map()

From: Jesper Juhl <hidden>
Date: 2005-05-01 16:09:53

On Sun, 1 May 2005, Sean Neakums wrote:
On my Mackertosh (PowerBook5.4), build fails with the following:

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:177: warning: implicit declaration of function `kmap_atomic'
  fs/proc/task_mmu.c:177: error: `KM_PTE0' undeclared (first use in this function)
  fs/proc/task_mmu.c:177: error: (Each undeclared identifier is reported only once
  fs/proc/task_mmu.c:177: error: for each function it appears in.)
  fs/proc/task_mmu.c:207: warning: implicit declaration of function `kunmap_atomic'

With the naive patch below, it builds with this warning and everything works.

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:208: warning: passing arg 1 of `kunmap_atomic' makes pointer from integer without a cast
Try this patch :

Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 17:49:14.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap((void *)pte);
 }
 
 static void smaps_pmd_range(pud_t *pud,

Re: 2.6.12-rc3-mm2: ppc pte_offset_map()

From: Andrew Morton <hidden>
Date: 2005-05-01 22:47:50

Jesper Juhl [off-list ref] wrote:
quoted hunk
On Sun, 1 May 2005, Sean Neakums wrote:
quoted
On my Mackertosh (PowerBook5.4), build fails with the following:

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:177: warning: implicit declaration of function `kmap_atomic'
  fs/proc/task_mmu.c:177: error: `KM_PTE0' undeclared (first use in this function)
  fs/proc/task_mmu.c:177: error: (Each undeclared identifier is reported only once
  fs/proc/task_mmu.c:177: error: for each function it appears in.)
  fs/proc/task_mmu.c:207: warning: implicit declaration of function `kunmap_atomic'

With the naive patch below, it builds with this warning and everything works.

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:208: warning: passing arg 1 of `kunmap_atomic' makes pointer from integer without a cast
Try this patch :

Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 17:49:14.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap((void *)pte);
 }
Should be

	pte_unmap(ptep);

Re: 2.6.12-rc3-mm2: ppc pte_offset_map()

From: Jesper Juhl <hidden>
Date: 2005-05-01 22:58:16

On Sun, 1 May 2005, Andrew Morton wrote:
Jesper Juhl [off-list ref] wrote:
quoted
On Sun, 1 May 2005, Sean Neakums wrote:
quoted
On my Mackertosh (PowerBook5.4), build fails with the following:

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:177: warning: implicit declaration of function `kmap_atomic'
  fs/proc/task_mmu.c:177: error: `KM_PTE0' undeclared (first use in this function)
  fs/proc/task_mmu.c:177: error: (Each undeclared identifier is reported only once
  fs/proc/task_mmu.c:177: error: for each function it appears in.)
  fs/proc/task_mmu.c:207: warning: implicit declaration of function `kunmap_atomic'

With the naive patch below, it builds with this warning and everything works.

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:208: warning: passing arg 1 of `kunmap_atomic' makes pointer from integer without a cast
Try this patch :

Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 17:49:14.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap((void *)pte);
 }
Should be

	pte_unmap(ptep);
Of course, stupid me. I should have seen the 
	[...]
        ptep = pte_offset_map(pmd, address);
	[...]
            pte = *ptep;
            address += PAGE_SIZE;
            ptep++;
	[...]
bit a few lines above. Guess I should have spend more than 2min creating 
the patch.

Thanks.

Here's an updated patch.

Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-02 00:59:11.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap(ptep);
 }
 
 static void smaps_pmd_range(pud_t *pud,

Re: 2.6.12-rc3-mm2: ppc pte_offset_map()

From: Hugh Dickins <hidden>
Date: 2005-05-02 10:15:12

On Sun, 1 May 2005, Andrew Morton wrote:
Jesper Juhl [off-list ref] wrote:
quoted
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 17:49:14.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap((void *)pte);
 }
Should be

	pte_unmap(ptep);
Almost.  Should be

	pte_unmap(ptep - 1);

Re: 2.6.12-rc3-mm2: ppc pte_offset_map()

From: cliff white <hidden>
Date: 2005-05-03 22:05:32

On Mon, 2 May 2005 01:01:11 +0200 (CEST)
Jesper Juhl [off-list ref] wrote:
On Sun, 1 May 2005, Andrew Morton wrote:
quoted
Jesper Juhl [off-list ref] wrote:
quoted
On Sun, 1 May 2005, Sean Neakums wrote:
quoted
On my Mackertosh (PowerBook5.4), build fails with the following:

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:177: warning: implicit declaration of function `kmap_atomic'
  fs/proc/task_mmu.c:177: error: `KM_PTE0' undeclared (first use in this function)
  fs/proc/task_mmu.c:177: error: (Each undeclared identifier is reported only once
  fs/proc/task_mmu.c:177: error: for each function it appears in.)
  fs/proc/task_mmu.c:207: warning: implicit declaration of function `kunmap_atomic'

With the naive patch below, it builds with this warning and everything works.

  fs/proc/task_mmu.c: In function `smaps_pte_range':
  fs/proc/task_mmu.c:208: warning: passing arg 1 of `kunmap_atomic' makes pointer from integer without a cast
Try this patch :

Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-01 17:49:14.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap((void *)pte);
 }
Should be

	pte_unmap(ptep);
Of course, stupid me. I should have seen the 
	[...]
        ptep = pte_offset_map(pmd, address);
	[...]
            pte = *ptep;
            address += PAGE_SIZE;
            ptep++;
	[...]
bit a few lines above. Guess I should have spend more than 2min creating 
the patch.

Thanks.

Here's an updated patch.
Works for me on iBook, G4. Compiles fine and boots. No performance info yet.
Thanks bunches 
cliffw
quoted hunk
Signed-off-by: Jesper Juhl <redacted>
--- linux-2.6.12-rc3-mm2-orig/fs/proc/task_mmu.c	2005-05-01 04:04:25.000000000 +0200
+++ linux-2.6.12-rc3-mm2/fs/proc/task_mmu.c	2005-05-02 00:59:11.000000000 +0200
@@ -2,6 +2,7 @@
 #include <linux/hugetlb.h>
 #include <linux/mount.h>
 #include <linux/seq_file.h>
+#include <linux/highmem.h>
 
 #include <asm/elf.h>
 #include <asm/uaccess.h>
@@ -204,7 +205,7 @@ static void smaps_pte_range(pmd_t *pmd,
 			}
 		}
 	} while (address < end);
-	pte_unmap(pte);
+	pte_unmap(ptep);
 }
 
 static void smaps_pmd_range(pud_t *pud,


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

-- 
"Ive always gone through periods where I bolt upright at four in the morning; 
now at least theres a reason." -Michael Feldman
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help