From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935623AbdGTJEb (ORCPT ); Thu, 20 Jul 2017 05:04:31 -0400 Received: from terminus.zytor.com ([65.50.211.136]:49769 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935457AbdGTJEZ (ORCPT ); Thu, 20 Jul 2017 05:04:25 -0400 Date: Thu, 20 Jul 2017 01:59:47 -0700 From: tip-bot for David Carrillo-Cisneros Message-ID: Cc: wangnan0@huawei.com, acme@redhat.com, eranian@google.com, hpa@zytor.com, pjt@google.com, mhiramat@kernel.org, tglx@linutronix.de, sque@chromium.org, peterz@infradead.org, dsahern@gmail.com, davidcc@google.com, mingo@kernel.org, jolsa@kernel.org, alexander.shishkin@linux.intel.com, linux-kernel@vger.kernel.org, namhyung@kernel.org, hekuang@huawei.com, ak@linux.intel.com Reply-To: linux-kernel@vger.kernel.org, alexander.shishkin@linux.intel.com, hekuang@huawei.com, ak@linux.intel.com, namhyung@kernel.org, eranian@google.com, hpa@zytor.com, wangnan0@huawei.com, acme@redhat.com, jolsa@kernel.org, mingo@kernel.org, tglx@linutronix.de, dsahern@gmail.com, davidcc@google.com, sque@chromium.org, peterz@infradead.org, mhiramat@kernel.org, pjt@google.com In-Reply-To: <20170718042549.145161-6-davidcc@google.com> References: <20170718042549.145161-6-davidcc@google.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf header: Revamp do_write() Git-Commit-ID: 3b8f51a677ce574f69671e3f7822b4d8f8634ef3 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 3b8f51a677ce574f69671e3f7822b4d8f8634ef3 Gitweb: http://git.kernel.org/tip/3b8f51a677ce574f69671e3f7822b4d8f8634ef3 Author: David Carrillo-Cisneros AuthorDate: Mon, 17 Jul 2017 21:25:38 -0700 Committer: Arnaldo Carvalho de Melo CommitDate: Tue, 18 Jul 2017 23:14:30 -0300 perf header: Revamp do_write() Now that writen takes a const buffer, use it in do_write instead of duplicating its functionality. Export do_write to use it consistently in header.c and build_id.c . Signed-off-by: David Carrillo-Cisneros Acked-by: David Ahern Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: He Kuang Cc: Masami Hiramatsu Cc: Namhyung Kim Cc: Paul Turner Cc: Peter Zijlstra Cc: Simon Que Cc: Stephane Eranian Cc: Wang Nan Link: http://lkml.kernel.org/r/20170718042549.145161-6-davidcc@google.com Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/build-id.c | 2 +- tools/perf/util/header.c | 14 +++++--------- tools/perf/util/header.h | 2 ++ 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c index e966515..4baa532 100644 --- a/tools/perf/util/build-id.c +++ b/tools/perf/util/build-id.c @@ -304,7 +304,7 @@ static int write_buildid(const char *name, size_t name_len, u8 *build_id, b.header.misc = misc; b.header.size = sizeof(b) + len; - err = writen(fd, &b, sizeof(b)); + err = do_write(fd, &b, sizeof(b)); if (err < 0) return err; diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 8dda19b..954f0ef 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -75,17 +75,13 @@ bool perf_header__has_feat(const struct perf_header *header, int feat) } /* Return: 0 if succeded, -ERR if failed. */ -static int do_write(int fd, const void *buf, size_t size) +int do_write(int fd, const void *buf, size_t size) { - while (size) { - int ret = write(fd, buf, size); - - if (ret < 0) - return -errno; + ssize_t ret; - size -= ret; - buf += ret; - } + ret = writen(fd, buf, size); + if (ret != (ssize_t)size) + return ret < 0 ? (int)ret : -1; return 0; } diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index d30109b..e98489c 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h @@ -144,6 +144,8 @@ bool is_perf_magic(u64 magic); #define NAME_ALIGN 64 +int do_write(int fd, const void *buf, size_t size); + int write_padded(int fd, const void *bf, size_t count, size_t count_aligned); /*