Received: by 10.213.65.68 with SMTP id h4csp810949imn; Sun, 18 Mar 2018 03:20:07 -0700 (PDT) X-Google-Smtp-Source: AG47ELtw9VtwQnRmHEfkMt8rfSj2AU4XKXpRtaybWbg+mBT0G9XQLm137FHTFx+oVkrtYV7oJ8cY X-Received: by 2002:a17:902:788e:: with SMTP id q14-v6mr8742672pll.396.1521368407520; Sun, 18 Mar 2018 03:20:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521368407; cv=none; d=google.com; s=arc-20160816; b=eD1wvVwnDO501W1rQUIgQ41n4DZ8FE5WoqhSRJPhrCWSbOKN6/TSmIdTbCrw0XkwZM tABQ4Rip9FeAZaATf1XBIej1AIH+xDwmmBpDmzh2bMWNJ5eMwh0FqW9wLdX8E+DjXmII ngpROFC/phH0JadUu0Tc8b3SlOfsXLrf72zkmaKTBJrXe8lB+W/KemGiBVvBOaUvNR8J G0hYyDeGU6yr2VRlne5RHbS9IHKGfQ2NhYT2lbF271+U2nRViwPEyYxvu3smRyk39v9S l9ZMdFHZpog5E227b77jNdn4442Ty6IC5s8lg/dF5fCRHQxbGXq54dkF188A52JPk+0x Mjjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dmarc-filter:arc-authentication-results; bh=eDCTxfrlysxWqUY9SrKIlDfdYoOGgqHxGjDaa51+iE4=; b=kxZ+WqwTwqoc0oHiKD/qOKdBbfEqErlRjc+j0dmR2at45jYAsP4KCKdDfWsaDk0h5S DYwuSNu/Z+/bgyAIx62btd6VeotaZQnxr3UEnT3X2j5gq3GymHv/8WuVg1OS/ubTs7rM OlDDbOAbksOZng7w7+rfmLU4grvBaZ8pkWEflugpjBZTPDQWSJXF7gCN0CMmH1VAT/VS iuR5LY96kKavS0bw7PEaEq1t4omLQIbgqt/lhMQoOXhwsjkoFZKoT0bdTYmNNyjtqndA 3c7Fghy1Cn8hfkFZtzyIL6fwLeKotd7INt9PlwlRgVJxf/dxPT8KFgCZJo9ttxhXRnqS 1L6Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u6-v6si9913920pls.424.2018.03.18.03.19.53; Sun, 18 Mar 2018 03:20:07 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753997AbeCRKTA (ORCPT + 99 others); Sun, 18 Mar 2018 06:19:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:47498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751635AbeCRKS6 (ORCPT ); Sun, 18 Mar 2018 06:18:58 -0400 Received: from archlinux (cpc91196-cmbg18-2-0-cust659.5-4.cable.virginm.net [81.96.234.148]) (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 75B6020855; Sun, 18 Mar 2018 10:18:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 75B6020855 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=jic23@kernel.org Date: Sun, 18 Mar 2018 10:18:53 +0000 From: Jonathan Cameron To: SF Markus Elfring Cc: linux-iio@vger.kernel.org, Hartmut Knaack , Lars-Peter Clausen , Michael Hennerich , Peter Meerwald-Stadler , LKML , kernel-janitors@vger.kernel.org Subject: Re: [PATCH] iio/adc/ad7291: Improve unlocking of a mutex in ad7291_read_raw() Message-ID: <20180318101853.756785b4@archlinux> In-Reply-To: References: X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 13 Mar 2018 20:16:27 +0100 SF Markus Elfring wrote: > From: Markus Elfring > Date: Tue, 13 Mar 2018 20:08:40 +0100 > > * Add a jump target so that a call of the function "mutex_unlock" is stored > only once in this function implementation. > > * Replace three calls by goto statements. > > This issue was detected by using the Coccinelle software. > > Signed-off-by: Markus Elfring > --- > drivers/iio/adc/ad7291.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/drivers/iio/adc/ad7291.c b/drivers/iio/adc/ad7291.c > index a862b5d8fb4b..b2c3d4c79909 100644 > --- a/drivers/iio/adc/ad7291.c > +++ b/drivers/iio/adc/ad7291.c > @@ -335,27 +335,27 @@ static int ad7291_read_raw(struct iio_dev *indio_dev, > mutex_lock(&chip->state_lock); > /* If in autocycle mode drop through */ > if (chip->command & AD7291_AUTOCYCLE) { > - mutex_unlock(&chip->state_lock); > - return -EBUSY; > + ret = -EBUSY; > + goto unlock; > } > /* Enable this channel alone */ > regval = chip->command & (~AD7291_VOLTAGE_MASK); > regval |= BIT(15 - chan->channel); > ret = ad7291_i2c_write(chip, AD7291_COMMAND, regval); > - if (ret < 0) { > - mutex_unlock(&chip->state_lock); > - return ret; > - } > + if (ret < 0) > + goto unlock; > + > /* Read voltage */ > ret = i2c_smbus_read_word_swapped(chip->client, > AD7291_VOLTAGE); > - if (ret < 0) { > - mutex_unlock(&chip->state_lock); > - return ret; > - } > + if (ret < 0) > + goto unlock; > + > *val = ret & AD7291_VALUE_MASK; > + ret = IIO_VAL_INT; > +unlock: > mutex_unlock(&chip->state_lock); > - return IIO_VAL_INT; > + return ret; This localized error handling makes for complex code flow. It does however suggest that perhaps this block of code would be better in it's own function with nice clean internal error handling. > case IIO_TEMP: > /* Assumes tsense bit of command register always set */ > ret = i2c_smbus_read_word_swapped(chip->client, Markus, please throttle these patches to one at a time. If you send lots of similar patches before anyone has reviewed any of them it wastes both your and reviewers time. Thanks, Jonathan