From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755828Ab0AFMlg (ORCPT ); Wed, 6 Jan 2010 07:41:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754819Ab0AFMlg (ORCPT ); Wed, 6 Jan 2010 07:41:36 -0500 Received: from cn.fujitsu.com ([222.73.24.84]:50527 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1752500Ab0AFMlf (ORCPT ); Wed, 6 Jan 2010 07:41:35 -0500 Message-ID: <4B448499.6080609@cn.fujitsu.com> Date: Wed, 06 Jan 2010 20:39:53 +0800 From: Lai Jiangshan User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: Frederic Weisbecker CC: Steven Rostedt , Ingo Molnar , LKML Subject: [PATCH] trace_syscalls: cleanup for syscalls_metadata Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org NR_syscalls is compile-time constant. so we allocates memory for syscalls_metadata at compile-time. Signed-off-by: Lai Jiangshan --- diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index f694f66..c7db995 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c @@ -17,7 +17,7 @@ static DECLARE_BITMAP(enabled_exit_syscalls, NR_syscalls); extern unsigned long __start_syscalls_metadata[]; extern unsigned long __stop_syscalls_metadata[]; -static struct syscall_metadata **syscalls_metadata; +static struct syscall_metadata *syscalls_metadata[NR_syscalls]; static struct syscall_metadata *find_syscall_meta(unsigned long syscall) { @@ -45,7 +45,7 @@ static struct syscall_metadata *find_syscall_meta(unsigned long syscall) static struct syscall_metadata *syscall_nr_to_meta(int nr) { - if (!syscalls_metadata || nr >= NR_syscalls || nr < 0) + if (nr >= NR_syscalls || nr < 0) return NULL; return syscalls_metadata[nr]; @@ -400,13 +400,6 @@ int __init init_ftrace_syscalls(void) unsigned long addr; int i; - syscalls_metadata = kzalloc(sizeof(*syscalls_metadata) * - NR_syscalls, GFP_KERNEL); - if (!syscalls_metadata) { - WARN_ON(1); - return -ENOMEM; - } - for (i = 0; i < NR_syscalls; i++) { addr = arch_syscall_addr(i); meta = find_syscall_meta(addr);