1
linux/include
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 (104b8deaa5);

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
..
acpi Intel IOMMU: DMAR detection and parsing logic 2007-10-22 08:13:18 -07:00
asm-alpha Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-arm arm: sg fallout 2007-10-23 12:37:59 +02:00
asm-arm26
asm-avr32 AVR32: Fix sg_page breakage 2007-10-24 10:16:02 +02:00
asm-blackfin blackfin: remove sg_address() 2007-10-23 12:42:44 +02:00
asm-cris Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-frv SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
asm-generic Linux Kernel Markers 2007-10-19 11:53:54 -07:00
asm-h8300 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-ia64 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m32r Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68k Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68knommu m68knommu: remove unused machdep variable definitions 2007-10-23 20:45:44 -07:00
asm-mips [MIPS] time: Replace plat_timer_setup with modern APIs. 2007-10-29 19:35:36 +00:00
asm-parisc parisc: fix sg_page() fallout 2007-10-23 09:49:31 +02:00
asm-powerpc powerpc: Fix fallout from sg_page() changes 2007-10-23 09:13:14 +02:00
asm-ppc ppc: fix AT_VECTOR_SIZE on arch/ppc 2007-10-22 19:18:54 -07:00
asm-s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2007-10-22 19:23:34 -07:00
asm-sh sh: Correct pte_page() breakage. 2007-10-30 08:44:13 +09:00
asm-sh64 sh/sh64: fixup dma-mapping for new sg layout 2007-10-23 12:52:48 +02:00
asm-sparc [SPARC32]: __inline__ --> inline 2007-10-27 00:17:01 -07:00
asm-sparc64 [SPARC64]: Fix BACKOFF_SPIN on non-SMP. 2007-10-27 00:23:22 -07:00
asm-um x86 merge fallout: uml 2007-10-29 07:41:32 -07:00
asm-v850 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-x86 Revert "i386: export i386 smp_call_function_mask() to modules" 2007-10-27 20:57:43 +02:00
asm-xtensa xtensa: dma-mapping.h is using linux/scatterlist.h functions, so include it 2007-10-24 13:28:40 +02:00
crypto
keys
linux Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched 2007-10-29 14:06:19 -07:00
math-emu
media [PATCH] Fix breakage after SG cleanups 2007-10-23 12:02:39 -07:00
mtd
net SCTP endianness annotations regression 2007-10-29 07:41:32 -07:00
pcmcia
rdma
rxrpc
scsi
sound [ALSA] version 1.0.15 2007-10-23 08:09:20 +02:00
video Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
xen
Kbuild