Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2016404pxv; Sat, 26 Jun 2021 07:00:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwtmu6TREToNuPO7SWBnwOxLPFd400hxZPAy7qulwUCFOw89uVjQlcz9xhYN8wfwd1Gq3G9 X-Received: by 2002:a05:6402:18f6:: with SMTP id x54mr22548929edy.53.1624716023554; Sat, 26 Jun 2021 07:00:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624716023; cv=none; d=google.com; s=arc-20160816; b=vl5yu8Nb4mDXe3XmqEkPGX/oX+0z5hF2VuqPLAULCoQVOpCG/U4x3yj+rw42H2PzlN AYKR1dX1DkbKULN2hxEQJFU8VcMqivBYgy9qvQAktPGrqCNGtpjdW30Kap9no51tUglu ffUvAzxJO7hyjTlEeVWncIQTFtIFe/EFxraapp9JocXpu1xpdyNOugfHttBxuAipt6BL ARSerkoSZGyS91hDVLnHfs/M9ebkIwskpXsyKpXCIINSN6RXhHZKktMA2Nu1DOmP4wsX vUEMOFVUCeUZjGmeDQByQ5U0kvEZR30WU6x/IiRtlM6Hp9C/Xj9vZW3snTfDUsiYcJ7I BdfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=Ubog20KQrUqJch//11TatRa10QJH6CvwNLEZU0cJB4I=; b=KadyilzrMj9WmCKOOFe7hHbq9SNM6VnockKAZATiFg6hB7qQFc5/Z3TgC6S9U3zI8U ZihW7s5iiA4IA8suHXVLNT/w6GVL3DfaFPYpb5SkGknTfQTGb8x2p46s5kLipuA9L2xf 6udbqX8avGnp+MGf7VeFcdqD58Yfw5I146w4Ppq8L6G+HxKQ5itQUWUV+vwA72LrNgwM jrxb/+bWcDFJWwI3lzzBil34Qmg25W7fSM3m8OX6+PFWeo5eackxGQYj92TSH8kazZh1 FKr8YPAK1XSw8QVEFEB6Ls1FJoJNd1pxL+EakrVS7TUpXZRli3JpOAfboSDNuU+6ZeBf cjzQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nb19si11014638ejc.121.2021.06.26.06.59.58; Sat, 26 Jun 2021 07:00:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229850AbhFZOBX (ORCPT + 99 others); Sat, 26 Jun 2021 10:01:23 -0400 Received: from www262.sakura.ne.jp ([202.181.97.72]:57147 "EHLO www262.sakura.ne.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbhFZOBW (ORCPT ); Sat, 26 Jun 2021 10:01:22 -0400 Received: from fsav113.sakura.ne.jp (fsav113.sakura.ne.jp [27.133.134.240]) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTP id 15QDwxmG005391; Sat, 26 Jun 2021 22:58:59 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) Received: from www262.sakura.ne.jp (202.181.97.72) by fsav113.sakura.ne.jp (F-Secure/fsigk_smtp/550/fsav113.sakura.ne.jp); Sat, 26 Jun 2021 22:58:59 +0900 (JST) X-Virus-Status: clean(F-Secure/fsigk_smtp/550/fsav113.sakura.ne.jp) Received: from localhost.localdomain (M106072142033.v4.enabler.ne.jp [106.72.142.33]) (authenticated bits=0) by www262.sakura.ne.jp (8.15.2/8.15.2) with ESMTPSA id 15QDwsVn005110 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sat, 26 Jun 2021 22:58:59 +0900 (JST) (envelope-from penguin-kernel@I-love.SAKURA.ne.jp) From: Tetsuo Handa To: Steven Rostedt , Peter Zijlstra , Mathieu Desnoyers , Ingo Molnar , Robert Richter , Gabriel Krisman Bertazi , "Gustavo A. R. Silva" Cc: linux-kernel@vger.kernel.org, Tetsuo Handa Subject: [PATCH] tracepoint: Do not warn on EEXIST or ENOENT Date: Sat, 26 Jun 2021 22:58:45 +0900 Message-Id: <20210626135845.4080-1-penguin-kernel@I-love.SAKURA.ne.jp> X-Mailer: git-send-email 2.18.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org syzbot is hitting WARN_ON_ONCE() at tracepoint_add_func() [1], but func_add() returning -EEXIST and func_remove() returning -ENOENT are not kernel bugs that can justify crashing the system. Commit d66a270be3310d7a ("tracepoint: Do not warn on ENOMEM") says that tracepoint should only warn when a kernel API user does not respect the required preconditions (e.g. same tracepoint enabled twice, or called to remove a tracepoint that does not exist). But WARN*() must be used to denote kernel bugs and not to print simple warnings. If someone wants to print warnings, pr_warn() etc. should be used instead. Link: https://syzkaller.appspot.com/bug?id=41f4318cf01762389f4d1c1c459da4f542fe5153 [1] Reported-by: syzbot Signed-off-by: Tetsuo Handa Tested-by: syzbot --- kernel/tracepoint.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c index 9f478d29b926..3cfa37a3d05c 100644 --- a/kernel/tracepoint.c +++ b/kernel/tracepoint.c @@ -287,10 +287,8 @@ static int tracepoint_add_func(struct tracepoint *tp, tp_funcs = rcu_dereference_protected(tp->funcs, lockdep_is_held(&tracepoints_mutex)); old = func_add(&tp_funcs, func, prio); - if (IS_ERR(old)) { - WARN_ON_ONCE(PTR_ERR(old) != -ENOMEM); + if (IS_ERR(old)) return PTR_ERR(old); - } /* * rcu_assign_pointer has as smp_store_release() which makes sure @@ -320,7 +318,7 @@ static int tracepoint_remove_func(struct tracepoint *tp, tp_funcs = rcu_dereference_protected(tp->funcs, lockdep_is_held(&tracepoints_mutex)); old = func_remove(&tp_funcs, func); - if (WARN_ON_ONCE(IS_ERR(old))) + if (IS_ERR(old)) return PTR_ERR(old); if (tp_funcs == old) -- 2.18.4