Re: [PATCH 3/5] SLUB: Replace __builtin_return_address(0) with _RET_IP_.

From: Pekka Enberg
Date: Tue Aug 19 2008 - 15:02:58 EST


Christoph Lameter wrote:
Eduard - Gabriel Munteanu wrote:
On Tue, Aug 19, 2008 at 01:14:01PM -0500, Christoph Lameter wrote:
Eduard - Gabriel Munteanu wrote:

void *kmem_cache_alloc(struct kmem_cache *s, gfp_t gfpflags)
{
- return slab_alloc(s, gfpflags, -1, __builtin_return_address(0));
+ return slab_alloc(s, gfpflags, -1, (void *) _RET_IP_);
}
Could you get rid of the casts by changing the type of parameter of slab_alloc()?
I just looked at it and it isn't a trivial change. slab_alloc() calls
other functions which expect a void ptr. Even if slab_alloc() were to
take an unsigned long and then cast it to a void ptr, other functions do
call slab_alloc() with void ptr arguments (so the casts would move
there).

I'd rather have this merged as it is and change things later, so that
kmemtrace gets some testing from Pekka and others.


Well maybe this patch will do it then:

Subject: slub: Use _RET_IP and use "unsigned long" for kernel text addresses

Use _RET_IP_ instead of buildint_return_address() and make slub use unsigned long
instead of void * for addresses.

Signed-off-by: Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx>

Heh, heh. I'm happy to take your patch or alternatively you can ACK mine (which is slightly different):

http://lkml.org/lkml/2008/8/19/336

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/