[PATCH] powerpc/cell/oprofile: vma_map: fix test on overlay_tbl_offset

Arnd Bergmann arnd at arndb.de
Tue Oct 7 19:38:33 EST 2008


From: Roel Kluin <12o3l at tiscali.nl>

Offset is unsigned and when an address isn't found in the vma map
vma_map_lookup() returns the vma physical address + 0x10000000.

vma_map_lookup used to return 0xffffffff on a failed lookup, but
a change was made to return the vma physical address + 0x10000000
There are two callers of vam_map_lookup: one of them correctly 
deals with this new return value, but the other (below) did not.  

Signed-off-by: Roel Kluin <12o3l at tiscali.nl>
Acked-by: Maynard Johnson <maynardj at us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
Cc: oprofile-list at lists.sf.net
Cc: Carl Love <cel at us.ibm.com>

--- a/arch/powerpc/oprofile/cell/vma_map.c
+++ b/arch/powerpc/oprofile/cell/vma_map.c
@@ -229,7 +229,7 @@ struct vma_to_fileoffset_map *create_vma_map(const struct spu *aSpu,
 	 */
 	overlay_tbl_offset = vma_map_lookup(map, ovly_table_sym,
 					    aSpu, &grd_val);
-	if (overlay_tbl_offset < 0) {
+	if (overlay_tbl_offset > 0x10000000) {
 		printk(KERN_ERR "SPU_PROF: "
 		       "%s, line %d: Error finding SPU overlay table\n",
 		       __func__, __LINE__);



More information about the Linuxppc-dev mailing list