[PATCH] powerpc: change rheap functions to use long integers instead of pointers

Kumar Gala galak at kernel.crashing.org
Thu Apr 5 02:42:17 EST 2007


On Apr 3, 2007, at 11:02 AM, Timur Tabi wrote:

> (This patch is currently for review only.  It is based on Paul's  
> for-2.6.22
> branch.  Please note that the code in this branch is missing many  
> fixes for
> 2.6.21, and so some code will not compile.  Specifially, ARCH=ppc  
> is very
> broken.)
>
> The rheap allocation functions are coded to return a pointer, but  
> the actual
> value returned is an offset into a buffer.  Callers of rheap_alloc 
> () typically
> cast the return value to an integer.  Similarly, rheap_free() took  
> a pointer
> as a parameter, when it should be an unsigned long.
>
> This patch changes all of the relevant rheap functions to use an  
> unsigned long
> instead of a pointer.  The allocation functions return a signed  
> long, where a
> negative number indicates error.
>
> All code which calls the rheap functions is updated accordingly.   
> Macros
> IS_MURAM_ERR() and IS_DPERR() have been deleted.
>
> Signed-off-by: Timur Tabi <timur at freescale.com>

I'm concerned the error handling isn't correctly.  What happens if  
the rheap I'm managing has addresses at 0xf0000000.  When I compare  
offset to 0, its going to report as an error, even if the offset  
returned is valid.

- k





More information about the Linuxppc-dev mailing list