Re: [PATCH 2.6.17-rc4 4/6] Add kmemleak support for i386

Catalin Marinas
2006-05-14T07:28:08Z

Jan Engelhardt wrote:
>>[snip]
>>
>>>+static inline unsigned long arch_call_address(void *frame)
>>>+{
>>>+ return *(unsigned long *) (frame + 4);
>>
>> return *(unsigned long *)(frame + 4);
>
>
> I would like to point out that a __bulitin_return_address(immediate int)
> and __builtin_frame_address(immediate int) exist (but they can
> unfortunately not be used with variables even though that would not pose
> much of a problem on x86).

The code already uses __builtin_frame_address(0) and
__builtin_return_address(0) (the latter only if CONFIG_FRAME_POINTER is
not defined) but using these with a variable doesn't work on all
architectures (ARM being one of them, where I did the initial development).

Catalin