Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935581AbdCWSRH convert rfc822-to-8bit (ORCPT ); Thu, 23 Mar 2017 14:17:07 -0400 Received: from saturn.retrosnub.co.uk ([178.18.118.26]:55581 "EHLO saturn.retrosnub.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933773AbdCWSRF (ORCPT ); Thu, 23 Mar 2017 14:17:05 -0400 Date: Thu, 23 Mar 2017 18:17:00 +0000 User-Agent: K-9 Mail for Android In-Reply-To: References: <1490119436-20042-1-git-send-email-singhalsimran0@gmail.com> <1490119436-20042-3-git-send-email-singhalsimran0@gmail.com> <5d65a41d-5290-eb55-6452-7bb8bfbdd9f2@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Subject: Re: [PATCH v3 2/2] staging: iio: ade7753: Replace mlock with driver private lock To: SIMRAN SINGHAL , Jonathan Cameron CC: Lars-Peter Clausen , Michael Hennerich , Hartmut Knaack , Peter Meerwald-Stadler , Greg KH , linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, outreachy-kernel From: Jonathan Cameron Message-ID: <87F68D7D-B342-486E-92A2-0C127E23E862@jic23.retrosnub.co.uk> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2284 Lines: 67 On 23 March 2017 18:12:33 GMT+00:00, SIMRAN SINGHAL wrote: >On Thu, Mar 23, 2017 at 1:55 AM, Jonathan Cameron >wrote: >> On 21/03/17 18:03, simran singhal wrote: >>> The IIO subsystem is redefining iio_dev->mlock to be used by >>> the IIO core only for protecting device operating mode changes. >>> ie. Changes between INDIO_DIRECT_MODE, INDIO_BUFFER_* modes. >>> >>> In this driver, mlock was being used to protect hardware state >>> changes. Replace it with a lock in the devices global data. >>> >>> Signed-off-by: simran singhal >> Mutex is not initialized... > >Mutex is already initialized in ade7753_probe(). Given you introduce a new mutex it seems unlikely that one is. You have to initialise each mutex. > >>> --- >>> drivers/staging/iio/meter/ade7753.c | 6 ++++-- >>> 1 file changed, 4 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/staging/iio/meter/ade7753.c >b/drivers/staging/iio/meter/ade7753.c >>> index b71fbd3..9674e05 100644 >>> --- a/drivers/staging/iio/meter/ade7753.c >>> +++ b/drivers/staging/iio/meter/ade7753.c >>> @@ -80,11 +80,13 @@ >>> * @us: actual spi_device >>> * @tx: transmit buffer >>> * @rx: receive buffer >>> + * @lock: protect sensor state >>> * @buf_lock: mutex to protect tx and rx >>> **/ >>> struct ade7753_state { >>> struct spi_device *us; >>> struct mutex buf_lock; >>> + struct mutex lock; /* protect sensor state */ >>> u8 tx[ADE7753_MAX_TX] ____cacheline_aligned; >>> u8 rx[ADE7753_MAX_RX]; >>> }; >>> @@ -484,7 +486,7 @@ static ssize_t ade7753_write_frequency(struct >device *dev, >>> if (!val) >>> return -EINVAL; >>> >>> - mutex_lock(&indio_dev->mlock); >>> + mutex_lock(&st->lock); >>> >>> t = 27900 / val; >>> if (t > 0) >>> @@ -505,7 +507,7 @@ static ssize_t ade7753_write_frequency(struct >device *dev, >>> ret = ade7753_spi_write_reg_16(dev, ADE7753_MODE, reg); >>> >>> out: >>> - mutex_unlock(&indio_dev->mlock); >>> + mutex_unlock(&st->lock); >>> >>> return ret ? ret : len; >>> } >>> >> -- Sent from my Android device with K-9 Mail. Please excuse my brevity.