Patchwork powerpc/cell/oprofile: vma_map: fix test on overlay_tbl_offset

login
register
mail settings
Submitter Arnd Bergmann
Date Oct. 7, 2008, 8:38 a.m.
Message ID <200810071038.34085.arnd@arndb.de>
Download mbox | patch
Permalink /patch/3129/
State Accepted
Commit 99c840668c23fa81ac642598c792926021329747
Headers show

Comments

Arnd Bergmann - Oct. 7, 2008, 8:38 a.m.
From: Roel Kluin <12o3l@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@tiscali.nl>
Acked-by: Maynard Johnson <maynardj@us.ibm.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: oprofile-list@lists.sf.net
Cc: Carl Love <cel@us.ibm.com>
Robert Richter - Oct. 13, 2008, 3:21 p.m.
On 07.10.08 10:38:33, Arnd Bergmann wrote:
> From: Roel Kluin <12o3l@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@tiscali.nl>
> Acked-by: Maynard Johnson <maynardj@us.ibm.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: oprofile-list@lists.sf.net
> Cc: Carl Love <cel@us.ibm.com>

The patch has been applied to the powerpc-for-paul branch of
git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git

Thanks Roel and Arnd,

-Robert
Benjamin Herrenschmidt - Oct. 13, 2008, 8:51 p.m.
On Mon, 2008-10-13 at 17:21 +0200, Robert Richter wrote:
> On 07.10.08 10:38:33, Arnd Bergmann wrote:
> > From: Roel Kluin <12o3l@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@tiscali.nl>
> > Acked-by: Maynard Johnson <maynardj@us.ibm.com>
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > Cc: oprofile-list@lists.sf.net
> > Cc: Carl Love <cel@us.ibm.com>
> 
> The patch has been applied to the powerpc-for-paul branch of
> git://git.kernel.org/pub/scm/linux/kernel/git/rric/oprofile.git

I think I already put it in the powerpc next branch.

Cheers,
Ben.

Patch

--- 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__);