From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759922AbcHaMMp (ORCPT ); Wed, 31 Aug 2016 08:12:45 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:35489 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752600AbcHaMMn (ORCPT ); Wed, 31 Aug 2016 08:12:43 -0400 Date: Wed, 31 Aug 2016 13:14:09 +0100 From: Lee Jones To: Charles Keepax Cc: linux-kernel@vger.kernel.org, patches@opensource.wolfsonmicro.com Subject: Re: [PATCH v2] mfd: arizona: Add sensible return value to some error paths Message-ID: <20160831121409.GA9415@dell> References: <1472636490-8930-1-git-send-email-ckeepax@opensource.wolfsonmicro.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1472636490-8930-1-git-send-email-ckeepax@opensource.wolfsonmicro.com> User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 31 Aug 2016, Charles Keepax wrote: > There are some cases in arizona_dev_init, such as where we don't > recognise the chip ID, in which we head to the error path without > setting a sensible error code in ret. This would lead to the chip > silently failing probe, as it would still return 0. Fix this up by > adding appropriate sets of the return value. > > Whilst adding these update the existing paths that do return an error > when the chip is not recognised to use ENODEV, which seems like a better > fit. > > Signed-off-by: Charles Keepax > --- > > Changes since v1: > - Update return codes to use ENODEV rather than EINVAL. > > Thanks, > Charles > > drivers/mfd/arizona-core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Applied, thanks. > diff --git a/drivers/mfd/arizona-core.c b/drivers/mfd/arizona-core.c > index e4f97b3..cdbb8a2 100644 > --- a/drivers/mfd/arizona-core.c > +++ b/drivers/mfd/arizona-core.c > @@ -1035,7 +1035,7 @@ int arizona_dev_init(struct arizona *arizona) > default: > dev_err(arizona->dev, "Unknown device type %d\n", > arizona->type); > - return -EINVAL; > + return -ENODEV; > } > > /* Mark DCVDD as external, LDO1 driver will clear if internal */ > @@ -1121,6 +1121,7 @@ int arizona_dev_init(struct arizona *arizona) > break; > default: > dev_err(arizona->dev, "Unknown device ID: %x\n", reg); > + ret = -ENODEV; > goto err_reset; > } > > @@ -1280,12 +1281,14 @@ int arizona_dev_init(struct arizona *arizona) > break; > default: > dev_err(arizona->dev, "Unknown device ID %x\n", reg); > + ret = -ENODEV; > goto err_reset; > } > > if (!subdevs) { > dev_err(arizona->dev, > "No kernel support for device ID %x\n", reg); > + ret = -ENODEV; > goto err_reset; > } > -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog