From patchwork Thu Apr 6 19:10:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Rostedt X-Patchwork-Id: 80407 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1251125vqo; Thu, 6 Apr 2023 12:22:52 -0700 (PDT) X-Google-Smtp-Source: AKy350ZCIH72yCFxU8JyDqdZv1RErQMFEO6Vwads7hzZVuFKk4StIO0OmAnBIUXM40K0OuoSAELj X-Received: by 2002:a50:ef03:0:b0:4fb:4fc2:e600 with SMTP id m3-20020a50ef03000000b004fb4fc2e600mr525593eds.42.1680808972082; Thu, 06 Apr 2023 12:22:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680808972; cv=none; d=google.com; s=arc-20160816; b=Ays28Ngz99+ZrnwnR/EocscLEYmEt0vcExPJaa6T4OpLqkgNpmVf3mY2eCqDqXl3RE QLlrDCtRYEdTKI2uorixTncdGgrgAZbMj0sgd0yjoCzsPYLAU3hF2MMdPGmM+/IPUphX zJVgqe6JJNhOQIjT6J0ykPwKeEUoWXigGoEeuZLiaSJz6psT4N1VbnPHbKY02btBWsMq 88PChmHeEcTz/bABU3eZmvo6D19jE7ICd33tNvPFYEAUIlb+lDlcDxkgXBCI11tiK26I JbRtyCg3WFQdYAFhCUWu5x+e8ISzi29m4Z8ZDv3ijeAYMjwn5QGWHPQqpEL283xdYMc6 BD5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:subject:cc:to:from:date :user-agent:message-id; bh=fvy1EWanVWusnwW4vJMLRDhc7fI0+W/x+zRDhTGPZTY=; b=XC2P3lzjy4ez3nNpLEmi6f7LI+vkU9Nc1im1ihCwvQAsgGmi4jM1LPXrSueFXHZuzH AHcP/JJF/7emuCh93GEc2lbazEFIGpkSFUe3NtWI6jl8WDhjc6Sh1s0tMerOPMqA468O KGDTWgTvcaEkLK6KbFcflyrX8hDwZjPI+eMrhXH6YtHAJBpxM0x+BQzbb2MlCYJtbySf o31/WfMzmmBku+AXfaMxa4w/QNroEGoPRXQT6XYgAjRjucjKmqZ//DIVuvXd6XjI/5LT jQgmTqB3gN3cZ1RK4Y6YACjLwa4WzM978T0YBRHZi5L7PqAuq/z7/yTWFckEkAoudkL+ ZfgA== 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 e22-20020aa7d7d6000000b005046d9d2c82si850654eds.401.2023.04.06.12.22.27; Thu, 06 Apr 2023 12:22:52 -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 S240397AbjDFTMr (ORCPT + 99 others); Thu, 6 Apr 2023 15:12:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240333AbjDFTMg (ORCPT ); Thu, 6 Apr 2023 15:12:36 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1E44A93C9; Thu, 6 Apr 2023 12:12:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7622462D38; Thu, 6 Apr 2023 19:12:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DACF9C4339B; Thu, 6 Apr 2023 19:12:33 +0000 (UTC) Received: from rostedt by gandalf with local (Exim 4.96) (envelope-from ) id 1pkV28-001EY1-39; Thu, 06 Apr 2023 15:12:32 -0400 Message-ID: <20230406191232.794410178@goodmis.org> User-Agent: quilt/0.66 Date: Thu, 06 Apr 2023 15:10:59 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org Cc: Masami Hiramatsu , Mark Rutland , Andrew Morton , stable@vger.kernel.org, , , Zheng Yejian Subject: [for-linus][PATCH 1/2] ftrace: Fix issue that direct->addr not restored in modify_ftrace_direct() References: <20230406191058.652785135@goodmis.org> MIME-Version: 1.0 X-Spam-Status: No, score=-4.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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?1762455948489468221?= X-GMAIL-MSGID: =?utf-8?q?1762455948489468221?= From: Zheng Yejian Syzkaller report a WARNING: "WARN_ON(!direct)" in modify_ftrace_direct(). Root cause is 'direct->addr' was changed from 'old_addr' to 'new_addr' but not restored if error happened on calling ftrace_modify_direct_caller(). Then it can no longer find 'direct' by that 'old_addr'. To fix it, restore 'direct->addr' to 'old_addr' explicitly in error path. Link: https://lore.kernel.org/linux-trace-kernel/20230330025223.1046087-1-zhengyejian1@huawei.com Cc: stable@vger.kernel.org Cc: Cc: Cc: Cc: Fixes: 8a141dd7f706 ("ftrace: Fix modify_ftrace_direct.") Signed-off-by: Zheng Yejian Signed-off-by: Steven Rostedt (Google) --- kernel/trace/ftrace.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 0feea145bb29..c67bcc89a771 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -5667,12 +5667,15 @@ int modify_ftrace_direct(unsigned long ip, ret = 0; } - if (unlikely(ret && new_direct)) { - direct->count++; - list_del_rcu(&new_direct->next); - synchronize_rcu_tasks(); - kfree(new_direct); - ftrace_direct_func_count--; + if (ret) { + direct->addr = old_addr; + if (unlikely(new_direct)) { + direct->count++; + list_del_rcu(&new_direct->next); + synchronize_rcu_tasks(); + kfree(new_direct); + ftrace_direct_func_count--; + } } out_unlock: