From patchwork Wed Jun 28 15:06:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 113948 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp9006287vqr; Wed, 28 Jun 2023 08:20:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5baRXFUrnp9fIqNV0/qdMgkFRchguifCrjsVmaZxW1jw1Qx9Smsr0Cd1YjQfa5ifb64qN8 X-Received: by 2002:aa7:8c48:0:b0:675:8627:a291 with SMTP id e8-20020aa78c48000000b006758627a291mr9350812pfd.3.1687965636635; Wed, 28 Jun 2023 08:20:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687965636; cv=none; d=google.com; s=arc-20160816; b=gQRhz47i0reSWSgcd/VM/ANTXsVEdFVy0bmXzKG2rk3N+njp1rVOXFjZ+/ekMIq7cQ KdBpsepM/OfqSRMgqNL/iKsQfX7fbdbKotOdsO9/1UpYHe45N70w47yx6+6HFCOApwzU KX0cxCRLTTMFVlBrjhSIH6fGzLOocjtMTgxcRiarnO/MccXLt2hr19xgdgh2mXVYk4HE IpgMCNEs3SivahQz88rU6r79rlzMhi1KDGS4oUC8zVlepxzIzVlcvPiLW1XBAxSQUuvK F9az3Oli8bnAcXIoofHolM2CfOmYWTZ55VI6JNmmJR/wAVm9AMospGnWDwJCHoihgZRB AMGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:subject:cc:to:from:date; bh=XxD/yStur1yRAcwwD5JCeYC11fTz4MpCZ++7MS41Cfw=; fh=A8QdFQZkM/cCAZOr5NR8LSzPw0DfFnfx/gQ5bEM0y74=; b=jYnkbQFnhwHIZSVaoHguOgo2NyvUHJ9QKSP7udRinzG6GMUE97/f+S593zVwoInrr0 BUx3vJcPBmPQh1Pizm7LfaQ5WfxLXU1s/JHH5Y8LFBpZ4wD1rqSyoLKSuuUPVoYZcLYs VMVlmHxb0FTeJEWFCuDrKqVO8l80uhn/hJr3L6JCMXJiEWmrSCCObaFfM6Rm0/d3RvXQ i1sNhssn6O0/IUlYKXxQO3WSqSNk1NhMLkOJKWNBUpBXeI2BVH9PJXkv6C7vgzPUyHuO JMQYiVuBrmHHDJPnkpDIon1h36+KOaRjjgxwK+cpe1ZGJ/YngH3gDFUZqt5TjxqoAdVh Zl0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k22-20020a056a00135600b00681620c8fbesi1088968pfu.393.2023.06.28.08.20.23; Wed, 28 Jun 2023 08:20:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231996AbjF1PGR (ORCPT + 99 others); Wed, 28 Jun 2023 11:06:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231980AbjF1PGL (ORCPT ); Wed, 28 Jun 2023 11:06:11 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 220C710FD for ; Wed, 28 Jun 2023 08:06:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AB68361353 for ; Wed, 28 Jun 2023 15:06:09 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC809C433C0; Wed, 28 Jun 2023 15:06:07 +0000 (UTC) Date: Wed, 28 Jun 2023 11:06:04 -0400 From: Steven Rostedt To: Linus Torvalds Cc: LKML , Masami Hiramatsu , Mark Rutland , sunliming , Beau Belgrave Subject: [GIT PULL v3] tracing: tracing: user_event fix for 6.4 Message-ID: <20230628110604.5cf29440@rorschach.local.home> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769959141279053625?= X-GMAIL-MSGID: =?utf-8?q?1769960255554260874?= Linus, tracing: Fix user event write on buffer disabled The user events write currently returns the size of what was suppose to be written when tracing is disabled and nothing was written. Instead, behave like trace_marker and return -EBADF, as that is what is returned if a file is opened for read only, and a write is performed on it. Writing to the buffer that is disabled is like trying to write to a file opened for read only, as the buffer still can be read, but just not written to. This also includes test cases for this use case Please pull the latest trace-v6.4-rc7-v3 tree, which can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git trace-v6.4-rc7-v3 Tag SHA1: e50c9719e4ccc09a792544dee295b09f16877544 Head SHA1: d34a271accf8fad00e05aad2cecb9fb53a840a94 sunliming (3): tracing/user_events: Fix incorrect return value for writing operation when events are disabled selftests/user_events: Enable the event before write_fault test in ftrace self-test selftests/user_events: Add test cases when event is disabled ---- kernel/trace/trace_events_user.c | 3 ++- tools/testing/selftests/user_events/ftrace_test.c | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) --------------------------- diff --git a/kernel/trace/trace_events_user.c b/kernel/trace/trace_events_user.c index 8df0550415e7..09f7d9167b8e 100644 --- a/kernel/trace/trace_events_user.c +++ b/kernel/trace/trace_events_user.c @@ -2096,7 +2096,8 @@ static ssize_t user_events_write_core(struct file *file, struct iov_iter *i) if (unlikely(faulted)) return -EFAULT; - } + } else + return -EBADF; return ret; } diff --git a/tools/testing/selftests/user_events/ftrace_test.c b/tools/testing/selftests/user_events/ftrace_test.c index eb6904d89f14..5beb0aef1d81 100644 --- a/tools/testing/selftests/user_events/ftrace_test.c +++ b/tools/testing/selftests/user_events/ftrace_test.c @@ -324,6 +324,10 @@ TEST_F(user, write_events) { io[0].iov_base = ®.write_index; io[0].iov_len = sizeof(reg.write_index); + /* Write should return -EBADF when event is not enabled */ + ASSERT_EQ(-1, writev(self->data_fd, (const struct iovec *)io, 3)); + ASSERT_EQ(EBADF, errno); + /* Enable event */ self->enable_fd = open(enable_file, O_RDWR); ASSERT_NE(-1, write(self->enable_fd, "1", sizeof("1"))) @@ -400,6 +404,10 @@ TEST_F(user, write_fault) { ASSERT_EQ(0, ioctl(self->data_fd, DIAG_IOCSREG, ®)); ASSERT_EQ(0, reg.write_index); + /* Enable event */ + self->enable_fd = open(enable_file, O_RDWR); + ASSERT_NE(-1, write(self->enable_fd, "1", sizeof("1"))) + /* Write should work normally */ ASSERT_NE(-1, writev(self->data_fd, (const struct iovec *)io, 2));