Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp539593ybt; Wed, 24 Jun 2020 05:33:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwEYZPzbEVPRZzrma0ccx6d/8S0572OSLzDLVj7v/rb7FDynwumgU1YtyFcJ6EUKa5p5ARa X-Received: by 2002:a17:906:3e13:: with SMTP id k19mr19304382eji.476.1593001981603; Wed, 24 Jun 2020 05:33:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593001981; cv=none; d=google.com; s=arc-20160816; b=Se5KqniPmZjoXzluMDK6wk3zhEi+JN1mL3c2b2c1B8Ick59taqYcb9PiuZ7XAwVX96 CDsn8FzVnqjMv92tDPOdGdsh5rtd9dIEX5KXf1/y1jD8Orv8bTIXrj2/uW5Q0OFSVZbK DLUlST7MaSsD3Rtl8zFFh58vBTcVQZFBF+whOQRxSjXblDYsl9WWZceyY6tlTW0+t6fM ASZVTLn8/qFD7NM7M14OAiDYvaFmHKo17/1WDHj6LufY+v8PEGoHdKSA3ZfsZ/z210TK 5kQPUjlCHHJ8CFMyEu5d9ODk7IFBibXIa7hiB9gosCTiBGg1EP5/X4RjjHE1VQ5UhcPG kB7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=IGlrnysW9CJe4pTou23o2geoC46sGjSRFKPwSL+n1hQ=; b=GE9X3u9Y9XPN5kn/Vo5ETleYGRrHv4TLNWLBzSh5/pO9HZjxxJ6AZ4b612gDLsH7Bi iVcb+q2U9u++8T3KEi/3l0F3yNbsLTcI0eRwq6ia1MxMd7kD8+n5ptE1LwetSHRGXg9L ECEQKCdMIRsZm85B2SinLrarky5HPYuXg606uHQC6bnDEFpV2U+m/2TWk0xQyxKJcxnl seIcSeNqn7kuysk9ssH6fjNJyuV+6ADoAeKIH6+3m7co96QS5w8kp1Jmu5O3SQuXKr46 zKM7pmbP6nUp8dYDXiyHlP5cM+35KwhflmRUhgnGvPUMz4YJFoTa1LRr3jNM7wsPrqCA l5sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LjlpDlMY; 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 p15si406913ejg.22.2020.06.24.05.32.37; Wed, 24 Jun 2020 05:33:01 -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; dkim=pass header.i=@kernel.org header.s=default header.b=LjlpDlMY; 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 S2389183AbgFXMbn (ORCPT + 99 others); Wed, 24 Jun 2020 08:31:43 -0400 Received: from mail.kernel.org ([198.145.29.99]:36714 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388181AbgFXMbm (ORCPT ); Wed, 24 Jun 2020 08:31:42 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 58AAD20B1F; Wed, 24 Jun 2020 12:31:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593001902; bh=HHFW9P/Qkn3LOU79EtMz+P3iLwblu/8OTGW8v5iyu7o=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LjlpDlMYSWuBlcaaODRklRvE0ggw9FShRdjGviDu9yK/vCFr1fQpKjofevQJSnoUQ lS49EyX4L8oFtt0OVluh+L2oE+6gRim2gCbF/4NhnRvPw0iuPeK947ikIrRjtgCtRN XaBRLKr/qIHfA77EhvA/7fzLkhMMgAIzKkWuR65k= Date: Wed, 24 Jun 2020 14:31:40 +0200 From: Greg Kroah-Hartman To: Andrzej Hajda Cc: Bartlomiej Zolnierkiewicz , Marek Szyprowski , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, andy.shevchenko@gmail.com, Mark Brown , Russell King - ARM Linux , Neil Armstrong , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Daniel Vetter , "open list:DRM DRIVERS" Subject: Re: [RESEND PATCH v5 1/5] driver core: add probe_err log helper Message-ID: <20200624123140.GB1773782@kroah.com> References: <20200624114127.3016-1-a.hajda@samsung.com> <20200624114127.3016-2-a.hajda@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200624114127.3016-2-a.hajda@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 24, 2020 at 01:41:23PM +0200, Andrzej Hajda wrote: > During probe every time driver gets resource it should usually check for error > printk some message if it is not -EPROBE_DEFER and return the error. This > pattern is simple but requires adding few lines after any resource acquisition > code, as a result it is often omited or implemented only partially. > probe_err helps to replace such code sequences with simple call, so code: > if (err != -EPROBE_DEFER) > dev_err(dev, ...); > return err; > becomes: > return probe_err(dev, err, ...); > > Signed-off-by: Andrzej Hajda > Reviewed-by: Javier Martinez Canillas > Reviewed-by: Mark Brown > Reviewed-by: Andy Shevchenko > --- > drivers/base/core.c | 39 +++++++++++++++++++++++++++++++++++++++ > include/linux/device.h | 3 +++ > 2 files changed, 42 insertions(+) > > diff --git a/drivers/base/core.c b/drivers/base/core.c > index 67d39a90b45c..ee9da66bff1b 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -3953,6 +3953,45 @@ define_dev_printk_level(_dev_info, KERN_INFO); > > #endif > > +/** > + * probe_err - probe error check and log helper > + * @dev: the pointer to the struct device > + * @err: error value to test > + * @fmt: printf-style format string > + * @...: arguments as specified in the format string > + * > + * This helper implements common pattern present in probe functions for error > + * checking: print message if the error is not -EPROBE_DEFER and propagate it. > + * It replaces code sequence: > + * if (err != -EPROBE_DEFER) > + * dev_err(dev, ...); > + * return err; > + * with > + * return probe_err(dev, err, ...); > + * > + * Returns @err. > + * > + */ > +int probe_err(const struct device *dev, int err, const char *fmt, ...) > +{ > + struct va_format vaf; > + va_list args; > + > + if (err == -EPROBE_DEFER) > + return err; > + > + va_start(args, fmt); > + vaf.fmt = fmt; > + vaf.va = &args; > + > + dev_err(dev, "error %d: %pV", err, &vaf); > + > + va_end(args); > + > + return err; > +} > +EXPORT_SYMBOL_GPL(probe_err); Please be specific in global symbols, how about "driver_probe_error()"? And merge the other patch into this one, as Raphael said, otherwise this just looks odd to add something and then fix it up later. thanks, greg k-h