Paul Mundt afca035745 sh: Correct pte_page() breakage.
As noted by David:

pte_page() is a macro defined as follows;

    include/asm-sh/pgtable.h
    #define pte_page(x)    phys_to_page(pte_val(x)&PTE_PHYS_MASK)

    include/asm-sh/page.h
    #define phys_to_page(phys)    (pfn_to_page(phys >> PAGE_SHIFT))

So as you can see the phys_to_page() macro doesn't wrap the 'phys'
parameter in parentheses so we end up with;

    pte_val(x)&PTE_PHYS_MASK >> PAGE_SHIFT

Which is not what we wanted as '>>' has a higher precedence than bitwise
AND. I dug into the git repository and I believe this bug was added with
this commit (104b8deaa5c0144cccfc7d914413ff80c7176af1);

2006-03-27 KAMEZAWA Hiroyuki [PATCH] unify pfn_to_page: sh pfn_to_page

-#define phys_to_page(phys)     (mem_map + (((phys)-__MEMORY_START) >>
PAGE_SHIFT))
-#define page_to_phys(page)     (((page - mem_map) << PAGE_SHIFT) +
__MEMORY_START)
+#define phys_to_page(phys)     (pfn_to_page(phys >> PAGE_SHIFT))
+#define page_to_phys(page)     (page_to_pfn(page) << PAGE_SHIFT)

Reported-by: David ADDISON <david.addison@st.com>
Reported-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-30 08:44:13 +09:00
..
2007-06-08 11:55:28 +09:00
2007-10-08 05:19:36 +09:00
2007-05-14 09:18:35 +09:00
2006-10-03 13:16:15 +09:00
2006-12-12 08:42:08 +09:00
2006-09-27 18:33:49 +09:00
2007-10-19 11:53:41 -07:00
2007-09-21 11:57:53 +09:00
2007-05-09 17:36:15 +09:00
2007-05-09 08:58:16 +02:00
2007-07-17 10:23:11 -07:00
2006-01-16 23:15:28 -08:00
2007-06-18 13:58:32 +09:00
2007-06-18 13:58:32 +09:00
2007-09-21 11:57:51 +09:00
2007-03-28 19:45:59 +09:00
2007-09-21 18:16:42 +09:00
2007-09-21 11:57:48 +09:00
2006-01-10 08:01:34 -08:00
2007-06-15 18:56:19 +09:00
2007-05-07 02:11:55 +00:00
2007-06-08 02:43:39 +00:00
2006-02-15 15:32:22 -08:00
2007-02-13 10:54:45 +09:00
2007-06-08 02:43:49 +00:00
2007-10-30 08:44:13 +09:00
2007-05-07 02:11:56 +00:00
2007-07-11 16:02:11 -07:00
2007-10-30 08:44:13 +09:00
2006-09-27 16:20:22 +09:00
2007-05-11 08:29:34 -07:00
2006-09-21 08:36:50 +01:00
2006-12-06 10:45:37 +09:00
2007-10-17 08:42:47 -07:00
2007-02-15 18:20:52 +09:00
2007-06-08 02:43:37 +00:00
2006-10-19 17:31:22 +09:00
2007-06-08 02:43:43 +00:00
2007-05-07 02:11:55 +00:00
2007-10-19 11:53:34 -07:00
2007-06-08 02:43:49 +00:00
2007-07-20 12:27:09 +09:00
2007-09-21 11:57:48 +09:00
2006-09-27 12:31:01 +09:00