Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964792AbWIFWkR (ORCPT ); Wed, 6 Sep 2006 18:40:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S964769AbWIFWh1 (ORCPT ); Wed, 6 Sep 2006 18:37:27 -0400 Received: from mtaout03-winn.ispmail.ntl.com ([81.103.221.49]:36242 "EHLO mtaout03-winn.ispmail.ntl.com") by vger.kernel.org with ESMTP id S964778AbWIFWhQ (ORCPT ); Wed, 6 Sep 2006 18:37:16 -0400 From: Catalin Marinas Subject: [PATCH 2.6.18-rc6 06/10] Add kmemleak support for ARM Date: Wed, 06 Sep 2006 23:37:12 +0100 To: linux-kernel@vger.kernel.org Message-Id: <20060906223711.21550.48239.stgit@localhost.localdomain> In-Reply-To: <20060906223536.21550.55411.stgit@localhost.localdomain> References: <20060906223536.21550.55411.stgit@localhost.localdomain> Content-Type: text/plain; charset=utf-8; format=fixed Content-Transfer-Encoding: 8bit User-Agent: StGIT/0.10 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1935 Lines: 72 From: Catalin Marinas This patch modifies the vmlinux.lds.S script and adds the backtrace support for ARM to be used with kmemleak. Signed-off-by: Catalin Marinas --- arch/arm/kernel/vmlinux.lds.S | 7 +++++++ include/asm-arm/processor.h | 12 ++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 3ca574e..59976b8 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S @@ -67,6 +67,11 @@ #endif __per_cpu_start = .; *(.data.percpu) __per_cpu_end = .; +#ifdef CONFIG_DEBUG_MEMLEAK + __memleak_offsets_start = .; + *(.init.memleak_offsets) + __memleak_offsets_end = .; +#endif #ifndef CONFIG_XIP_KERNEL __init_begin = _stext; *(.init.data) @@ -115,6 +120,7 @@ #endif .data : AT(__data_loc) { __data_start = .; /* address in memory */ + _sdata = .; /* * first, the init task union, aligned @@ -165,6 +171,7 @@ #endif __bss_start = .; /* BSS */ *(.bss) *(COMMON) + __bss_stop = .; _end = .; } /* Stabs debugging sections. */ diff --git a/include/asm-arm/processor.h b/include/asm-arm/processor.h index 04f4d34..34a3bb3 100644 --- a/include/asm-arm/processor.h +++ b/include/asm-arm/processor.h @@ -121,6 +121,18 @@ #define spin_lock_prefetch(x) do { } whi #endif +#ifdef CONFIG_FRAME_POINTER +static inline unsigned long arch_call_address(void *frame) +{ + return *(unsigned long *)(frame - 4) - 4; +} + +static inline void *arch_prev_frame(void *frame) +{ + return *(void **)(frame - 12); +} +#endif + #endif #endif /* __ASM_ARM_PROCESSOR_H */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/