staging: tidspbridge: Fix atoi to support hexadecimal numbers correctly
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Sun, 12 Dec 2010 13:39:37 +0000 (13:39 +0000)
committerOmar Ramirez Luna <omar.ramirez@ti.com>
Sat, 5 Feb 2011 02:11:51 +0000 (20:11 -0600)
For some strange reason, the DSP base image node/object properties
description string stores hexadecimal numbers with a 'h' or 'H' suffix
instead of a '0x' prefix. This causes parsing issue because the
dspbridge atoi() implementation relies on strict_strtoul(), which will
return an error because of the trailing 'h' character.

As the atoi() return value is never checked for an error anyway, replace
strict_strtoul() with simple_strtoul() to ignore the suffix.

This fix gets rid of the following assertion failed messages that were
printed when running the dsp-dummy test application.

drivers/staging/tidspbridge/rmgr/nldr.c, line 1691:
Assertion (segid == MEMINTERNALID || segid == MEMEXTERNALID) failed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com>
drivers/staging/tidspbridge/rmgr/dbdcd.c

index 3581a55ed4dda6e552638ef8d79d3b0f9025696f..b76f26caeab2913f3164fd59b0e1bdbac67ee729 100644 (file)
@@ -1020,8 +1020,6 @@ static s32 atoi(char *psz_buf)
 {
        char *pch = psz_buf;
        s32 base = 0;
-       unsigned long res;
-       int ret_val;
 
        while (isspace(*pch))
                pch++;
@@ -1033,9 +1031,7 @@ static s32 atoi(char *psz_buf)
                base = 16;
        }
 
-       ret_val = strict_strtoul(pch, base, &res);
-
-       return ret_val ? : res;
+       return simple_strtoul(pch, NULL, base);
 }
 
 /*