Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp580761ybt; Wed, 24 Jun 2020 06:27:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwP2mE1JiZxem7pXCb70Hn7Wth5XU1YBQ59N5nHlo6lSlcjScflUvAn/bUjCLN8RFtwCh2f X-Received: by 2002:aa7:dc57:: with SMTP id g23mr25764320edu.352.1593005257571; Wed, 24 Jun 2020 06:27:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593005257; cv=none; d=google.com; s=arc-20160816; b=iJwNDAHQ9NKKVObJfvZVrYewVQRGj4LFyH9tK4nnuWygM7MSBInhFLu/RixP0riUbq VcLllpyHe2tn/f31Ye104Ezb60h0y+pQ/b0uTAyUNEa7Ek4wDyTZNwomrwAp1imC3KQW 3+kAy5fC1TWvewywppomIOPxJX3lC5Fjjz67PZI4vJ1Yh4LF+rPc4nJRU0bUmsKyryvd 6Q1F9wE7wxCrrOai2CGHJMlt5Z146Xf6/Z4DYAoUsF71xxWUGIM8rP7y/dV7fe2rLn2Y x3mnouecmT2gf/pSbOoMYMeZfqBfvIlq78Ot/WpSB3ZAQLUYmy/jK4EkBWat0dL6hgFy WJwA== 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=0AhSFTv3JbtbBAbPuVsglAXV6nBeo5YzMDac2DP39ks=; b=eLHIXi4gNLI/0f65z2HnOZ2VJzQC8g5p53gHbXeUYB7jiWBtFzv35fv7W9I0ePpLBY mvL2bf9I5PMGvZLMXU+6Tkg6R27UfFixFZ6ZlzCuI+ZzgG54PwBeyUwibZKVOqMlYp1s mZQ0bNWcxmBakfTLnaOUJu1q75x1HnRZ6TwfPHr7KvrNrhSy2ZKPohyqbriSbwyFJSZj vUqRFMmFxdm6zUOqzyOii9PUBWVxsGix+Md+psFFSRjpxyMHCNKLK6eMI37n7Agfozoo uB689WeijiObQproe6+G6HIVv073tTU1ilwPzDfnDARIQO+BO+aDi7zw52cBlN1DWkIZ 2etA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=t0QNK4Y0; 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 k12si13031375edi.198.2020.06.24.06.27.13; Wed, 24 Jun 2020 06:27:37 -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 (test mode) header.i=@ideasonboard.com header.s=mail header.b=t0QNK4Y0; 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 S2388329AbgFXNYN (ORCPT + 99 others); Wed, 24 Jun 2020 09:24:13 -0400 Received: from perceval.ideasonboard.com ([213.167.242.64]:58380 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387687AbgFXNYM (ORCPT ); Wed, 24 Jun 2020 09:24:12 -0400 Received: from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D9F6A2A8; Wed, 24 Jun 2020 15:24:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1593005050; bh=9FvYZAeIEFhM+JzFaVDBCgpx8ST/p2ndCMOZJSUhqVc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=t0QNK4Y0HvQGnv/OPruCmqjPCrEapbS9oYQvfpmeNJKLmUnRSr7nbq+HKuDFtb4rc vGnPLdD994z4HiGZAlXcmpMPpRdy1p8MlrhPL3H8tptS8AbK2v/6nR8otECzwezL50 4kp1MaPvbgyIso516Pa7RAssnvKI6w1y5+Mjs9z0= Date: Wed, 24 Jun 2020 16:23:44 +0300 From: Laurent Pinchart To: Greg Kroah-Hartman Cc: Andrzej Hajda , 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 , 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: <20200624132344.GA5980@pendragon.ideasonboard.com> References: <20200624114127.3016-1-a.hajda@samsung.com> <20200624114127.3016-2-a.hajda@samsung.com> <20200624123140.GB1773782@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20200624123140.GB1773782@kroah.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 02:31:40PM +0200, Greg Kroah-Hartman wrote: > 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()"? Or dev_err_probe() to match the existing dev_* functions ? > 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. -- Regards, Laurent Pinchart