Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965102Ab3CSI5o (ORCPT ); Tue, 19 Mar 2013 04:57:44 -0400 Received: from LGEMRELSE7Q.lge.com ([156.147.1.151]:61599 "EHLO LGEMRELSE7Q.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757771Ab3CSIxw (ORCPT ); Tue, 19 Mar 2013 04:53:52 -0400 X-AuditID: 9c930197-b7cc2ae000000eb7-8e-5148279c5c39 From: Namhyung Kim To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra , Paul Mackerras , Ingo Molnar , Namhyung Kim , LKML , Steven Rostedt , Frederic Weisbecker Subject: [PATCH 4/9] perf util: Get rid of die() calls from trace-event-info.c Date: Tue, 19 Mar 2013 17:53:39 +0900 Message-Id: <1363683224-28804-5-git-send-email-namhyung@kernel.org> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1363683224-28804-1-git-send-email-namhyung@kernel.org> References: <1363683224-28804-1-git-send-email-namhyung@kernel.org> X-Brightmail-Tracker: AAAAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5878 Lines: 234 From: Namhyung Kim Now remove all remaining die() calls and convert them to check return value and propagate it. Cc: Steven Rostedt Cc: Frederic Weisbecker Signed-off-by: Namhyung Kim --- tools/perf/util/trace-event-info.c | 114 +++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 42 deletions(-) diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c index 05cf94ef57e4..f006529d2284 100644 --- a/tools/perf/util/trace-event-info.c +++ b/tools/perf/util/trace-event-info.c @@ -43,7 +43,6 @@ #define VERSION "0.5" -static const char *output_file = "trace.info"; static int output_fd; @@ -125,8 +124,10 @@ static int record_file(const char *file, ssize_t hdr_sz) int err = -EIO; fd = open(file, O_RDONLY); - if (fd < 0) - die("Can't read '%s'", file); + if (fd < 0) { + pr_debug("Can't read '%s'", file); + return -errno; + } /* put in zeros for file size, then fill true size later */ if (hdr_sz) { @@ -148,8 +149,10 @@ static int record_file(const char *file, ssize_t hdr_sz) if (bigendian()) sizep += sizeof(u64) - hdr_sz; - if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) - die("writing to %s", output_file); + if (hdr_sz && pwrite(output_fd, sizep, hdr_sz, hdr_pos) < 0) { + pr_debug("writing file size failed\n"); + goto out; + } err = 0; out: @@ -164,11 +167,15 @@ static int read_header_files(void) int err = -EIO; path = get_tracing_file("events/header_page"); - if (!path) - die("can't get tracing/events/header_page"); + if (!path) { + pr_err("can't get tracing/events/header_page"); + return -ENOMEM; + } - if (stat(path, &st) < 0) - die("can't read '%s'", path); + if (stat(path, &st) < 0) { + pr_err("can't read '%s'", path); + goto out; + } if (write(output_fd, "header_page", 12) != 12) { pr_err("can't write header_page\n"); @@ -183,11 +190,16 @@ static int read_header_files(void) put_tracing_file(path); path = get_tracing_file("events/header_event"); - if (!path) - die("can't get tracing/events/header_event"); + if (!path) { + pr_err("can't get tracing/events/header_event"); + err = -ENOMEM; + goto out; + } - if (stat(path, &st) < 0) - die("can't read '%s'", path); + if (stat(path, &st) < 0) { + pr_err("can't read '%s'", path); + goto out; + } if (write(output_fd, "header_event", 13) != 13) { pr_err("can't write header_event\n"); @@ -227,8 +239,10 @@ static int copy_event_system(const char *sys, struct tracepoint_path *tps) int err; dir = opendir(sys); - if (!dir) - die("can't read directory '%s'", sys); + if (!dir) { + pr_err("can't read directory '%s'", sys); + return -errno; + } while ((dent = readdir(dir))) { if (dent->d_type != DT_DIR || @@ -291,8 +305,10 @@ static int read_ftrace_files(struct tracepoint_path *tps) int ret; path = get_tracing_file("events/ftrace"); - if (!path) - die("can't get tracing/events/ftrace"); + if (!path) { + pr_err("can't get tracing/events/ftrace"); + return -ENOMEM; + } ret = copy_event_system(path, tps); @@ -324,12 +340,17 @@ static int read_event_files(struct tracepoint_path *tps) int err; path = get_tracing_file("events"); - if (!path) - die("can't get tracing/events"); + if (!path) { + pr_err("can't get tracing/events"); + return -ENOMEM; + } dir = opendir(path); - if (!dir) - die("can't read directory '%s'", path); + if (!dir) { + err = -errno; + pr_err("can't read directory '%s'", path); + goto out; + } while ((dent = readdir(dir))) { if (dent->d_type != DT_DIR || @@ -408,8 +429,10 @@ static int read_ftrace_printk(void) int ret, err = 0; path = get_tracing_file("printk_formats"); - if (!path) - die("can't get tracing/printk_formats"); + if (!path) { + pr_err("can't get tracing/printk_formats"); + return -ENOMEM; + } ret = stat(path, &st); if (ret < 0) { @@ -426,6 +449,19 @@ out: return err; } +static void +put_tracepoints_path(struct tracepoint_path *tps) +{ + while (tps) { + struct tracepoint_path *t = tps; + + tps = tps->next; + free(t->name); + free(t->system); + free(t); + } +} + static struct tracepoint_path * get_tracepoints_path(struct list_head *pattrs) { @@ -438,27 +474,17 @@ get_tracepoints_path(struct list_head *pattrs) continue; ++nr_tracepoints; ppath->next = tracepoint_id_to_path(pos->attr.config); - if (!ppath->next) - die("%s\n", "No memory to alloc tracepoints list"); + if (!ppath->next) { + pr_err("No memory to alloc tracepoints list\n"); + put_tracepoints_path(&path); + return NULL; + } ppath = ppath->next; } return nr_tracepoints > 0 ? path.next : NULL; } -static void -put_tracepoints_path(struct tracepoint_path *tps) -{ - while (tps) { - struct tracepoint_path *t = tps; - - tps = tps->next; - free(t->name); - free(t->system); - free(t); - } -} - bool have_tracepoints(struct list_head *pattrs) { struct perf_evsel *pos; @@ -536,12 +562,16 @@ struct tracing_data *tracing_data_get(struct list_head *pattrs, snprintf(tdata->temp_file, sizeof(tdata->temp_file), "/tmp/perf-XXXXXX"); - if (!mkstemp(tdata->temp_file)) - die("Can't make temp file"); + if (!mkstemp(tdata->temp_file)) { + pr_err("Can't make temp file"); + return NULL; + } temp_fd = open(tdata->temp_file, O_RDWR); - if (temp_fd < 0) - die("Can't read '%s'", tdata->temp_file); + if (temp_fd < 0) { + pr_err("Can't read '%s'", tdata->temp_file); + return NULL; + } /* * Set the temp file the default output, so all the -- 1.7.11.7 -- 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/