From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751928AbcFTA2C (ORCPT ); Sun, 19 Jun 2016 20:28:02 -0400 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:34574 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751883AbcFTA1y (ORCPT ); Sun, 19 Jun 2016 20:27:54 -0400 X-Original-SENDERIP: 156.147.1.127 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 165.244.98.203 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org Date: Mon, 20 Jun 2016 09:12:51 +0900 From: Namhyung Kim To: Steven Rostedt CC: , , Subject: Re: [PATCH] tracing: Add *iter check for NULL Message-ID: <20160620001250.GB25962@sejong> References: <1464769870-18344-1-git-send-email-zhengjun.xing@intel.com> <20160617123841.21b1a7e1@gandalf.local.home> <20160617142457.48a37b6c@gandalf.local.home> MIME-Version: 1.0 In-Reply-To: <20160617142457.48a37b6c@gandalf.local.home> User-Agent: Mutt/1.6.1 (2016-04-27) X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB04/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2016/06/20 09:12:51, Serialize by Router on LGEKRMHUB04/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2016/06/20 09:12:51, Serialize complete at 2016/06/20 09:12:51 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 On Fri, Jun 17, 2016 at 02:24:57PM -0400, Steven Rostedt wrote: > I tried your patch and it works until you remove the module and try > reading the trace again. As I said, you left out later processing. This > should not exit on error. Below is a patch I wrote, and it works well. > > I'll add you as reported by. > > Thanks! Acked-by: Namhyung Kim Thanks, Namhyung > diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c > index f96f0383f6c6..ad1d6164e946 100644 > --- a/kernel/trace/trace_printk.c > +++ b/kernel/trace/trace_printk.c > @@ -36,6 +36,10 @@ struct trace_bprintk_fmt { > static inline struct trace_bprintk_fmt *lookup_format(const char *fmt) > { > struct trace_bprintk_fmt *pos; > + > + if (!fmt) > + return ERR_PTR(-EINVAL); > + > list_for_each_entry(pos, &trace_bprintk_fmt_list, list) { > if (!strcmp(pos->fmt, fmt)) > return pos; > @@ -57,7 +61,8 @@ void hold_module_trace_bprintk_format(const char **start, const char **end) > for (iter = start; iter < end; iter++) { > struct trace_bprintk_fmt *tb_fmt = lookup_format(*iter); > if (tb_fmt) { > - *iter = tb_fmt->fmt; > + if (!IS_ERR(tb_fmt)) > + *iter = tb_fmt->fmt; > continue; > } >