Received: by 10.223.164.202 with SMTP id h10csp4881627wrb; Tue, 21 Nov 2017 01:00:26 -0800 (PST) X-Google-Smtp-Source: AGs4zMYZxNyZaMkELupfvqInSUXPBzlA6IKheCf1GQA1/8AXgHhiR/ajAn+mdCVJ3q8VIZEcWu0R X-Received: by 10.84.130.6 with SMTP id 6mr17437927plc.402.1511254826581; Tue, 21 Nov 2017 01:00:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511254826; cv=none; d=google.com; s=arc-20160816; b=kQ1czMl/th9nyG1FkK/HJHWS4VYlLJdURxwro9NAVA1+trHPdgg7SPo2NYii0jJRWV k1uWdZFYZnZ40fihyW486ocxJYVcb60uH6rjS3EmZ36FhwquOjZNYv67mann1FNTwXyx WU92Ls7fy5FdxxnmNA7yB6nSd7q+iU6Tbj5tJQ210zEnIz8GFKbCk6wQeW4lZU1/uO9k Jhy8RO1G+E3dXmyNzCrLdm/lkrT0EFXtw2vv0/OIQLeU5TlF/Nxe7RUUC6IBEyehaINO 51XetqcYtwWhRJOymH9CRx58lEfLRbfKCytVplf9iSbD3o4PE7RE36mNAO5IA/5G+dg4 xFmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=vEoven0U/kdMlAxeQATX3aWxcJxuuCfnxhvIKY+LvcU=; b=orKVWkAU71nN7Ps7gFa43+vsOkVSpRTbZBrvF0cTh+n7xid5tl1VvF/TuwpuWwKy2g F5RETepbpoyBjUSZnoovQGUYHOvAbUDrZKxeNwU40eEgDXn7ylaPtAVBJo/sFidKayNk cAkZbkSnvjunmLrU1qsNlQF0PjhwpmuySkGibE8NTDHpwIP8G7hUbLhUQqb43qHNiS0U 2MQzKIRB923DdEC/6cJjHXXJkRZek/Af7CBwKM/TD6UXzQdctnq95RN6803mapCxSLZL VtpUa61YOOHQw9zKJI+UdkKjRfhYWu4Lf4KMfvAUma9e7KBSPLDT2yzUHX24pvPuVr05 sdIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fTb2HMeq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 98si10442426plt.495.2017.11.21.01.00.15; Tue, 21 Nov 2017 01:00:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fTb2HMeq; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751232AbdKUI6a (ORCPT + 72 others); Tue, 21 Nov 2017 03:58:30 -0500 Received: from mail-lf0-f65.google.com ([209.85.215.65]:40352 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750762AbdKUI62 (ORCPT ); Tue, 21 Nov 2017 03:58:28 -0500 Received: by mail-lf0-f65.google.com with SMTP id d10so2125057lfj.7; Tue, 21 Nov 2017 00:58:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vEoven0U/kdMlAxeQATX3aWxcJxuuCfnxhvIKY+LvcU=; b=fTb2HMeqVLIQRZByOwYeAYpqX3frRDrUq5MA9KP2YgvTTSYr02F6oqriICg6bze6Pq eQyUvI5UNQIHK6Ifpgw4ROvd2AcU3xMSWpcPk4Br/dcL3iknj7QR2rXUE+pL7LTGldhI aiY2EFAH/E7f0LjRBWuSm3fhd6uVde6rsIr7TZvdjggagz4zhQUh+mtXoJkdnvB13IRv 28fgu+GVJ00JcE3znUbkq7pfHctUhAFlmC5BzxfE8Q019wbUAU2cRDXDFtR3UKRaV5EC ZE+kv0z55hPx1XVKl+zF1MLoKWB6f+yyUwrzXuiR6uORpuNn/mWdVVo3thrMva1AuxXQ ooTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vEoven0U/kdMlAxeQATX3aWxcJxuuCfnxhvIKY+LvcU=; b=MpMNx830poIasxRK1eQfITt5KcNHBjalH5jl8pDVdEU8QwA4jrkK8hKoZ2wmlh1UH/ 9IjbWETwSWzLNXlPjfgdzfMYjdCcQaLHBgqBderYweQb0PrKsX0WSKxtPyELWH90EDsy sFwaO6azCZI/uLuHjruXR/+wv2/yzyeXO4a3RaNy2828cEbd9FHDB/uLNl72xP6qYW9h G/PWmGVZ2i7nkH4gxOss8Hmh7+hr/C5ldLU/TxQ5PJIRvC3rCMuEmZS9uN5iIimKSZ78 7WXe/VkhZpwCeDSFVyEx6l86wUy9aLP40k2v74yOog663Nk2O+2IGqrjGJKzeSd/zuJt iQOQ== X-Gm-Message-State: AJaThX4l3GAVXD9+y2Wo3Xp6UsPNkmpvIEInJbW0lnYTuU5yNfU4LzWc JJAvAevxNOw7ayXp9IDA7ik9QQaYh2Jpul1c4HY= X-Received: by 10.25.21.154 with SMTP id 26mr3697260lfv.22.1511254707085; Tue, 21 Nov 2017 00:58:27 -0800 (PST) MIME-Version: 1.0 Received: by 10.179.65.132 with HTTP; Tue, 21 Nov 2017 00:57:46 -0800 (PST) In-Reply-To: <20171120191219.GD18379@codeaurora.org> References: <20171120033816.28414-1-chunyan.zhang@spreadtrum.com> <20171120191219.GD18379@codeaurora.org> From: Chunyan Zhang Date: Tue, 21 Nov 2017 16:57:46 +0800 Message-ID: Subject: Re: [PATCH] clk: fix a panic error caused by accessing NULL pointer To: Stephen Boyd Cc: Chunyan Zhang , Michael Turquette , linux-clk , "linux-kernel@vger.kernel.org" , Cai Li , Orson Zhai Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 21 November 2017 at 03:12, Stephen Boyd wrote: > On 11/20, Chunyan Zhang wrote: >> From: Cai Li >> >> In some cases the clock parent would be set NULL when doing re-parent, >> it will cause a NULL pointer accessing if clk_set trace event is enabled, >> since the trace event function would not check the input parameter. >> >> Signed-off-by: Cai Li >> Signed-off-by: Chunyan Zhang > > Fixes: tag? > >> --- >> drivers/clk/clk.c | 9 ++++----- >> 1 file changed, 4 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c >> index c8d83ac..64efaf0 100644 >> --- a/drivers/clk/clk.c >> +++ b/drivers/clk/clk.c >> @@ -1242,13 +1242,12 @@ static int __clk_set_parent(struct clk_core *core, struct clk_core *parent, >> >> old_parent = __clk_set_parent_before(core, parent); >> >> - trace_clk_set_parent(core, parent); >> - >> /* change clock input source */ >> - if (parent && core->ops->set_parent) >> + if (parent && core->ops->set_parent) { >> + trace_clk_set_parent(core, parent); >> ret = core->ops->set_parent(core->hw, p_index); >> - >> - trace_clk_set_parent_complete(core, parent); >> + trace_clk_set_parent_complete(core, parent); >> + } > > Is the problem that parent may be NULL and the tracepoint > dereferences it? Yes, I think that probably is uncommon usage though, it revealed that the tracepoint could be stronger :) > Perhaps we need to update the tracepoint code > instead so that we always see that the tracepoint is called even > if we don't actually touch the hardware. Something like the patch > below instead. Ok, we will cook a new patch according to your comments. Thanks, Chunyan > > ---8<---- > diff --git a/include/trace/events/clk.h b/include/trace/events/clk.h > index 758607226bfd..5a85ea2090c4 100644 > --- a/include/trace/events/clk.h > +++ b/include/trace/events/clk.h > @@ -139,7 +139,7 @@ DECLARE_EVENT_CLASS(clk_parent, > > TP_fast_assign( > __assign_str(name, core->name); > - __assign_str(pname, parent->name); > + __assign_str(pname, parent ? parent->name : NULL); > ), > > TP_printk("%s %s", __get_str(name), __get_str(pname)) > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, > a Linux Foundation Collaborative Project From 1584613575924285957@xxx Mon Nov 20 19:14:28 +0000 2017 X-GM-THRID: 1584555218460383528 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread