From patchwork Sat Apr 1 04:28:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arushi Singhal X-Patchwork-Id: 745890 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vw53T52dlz9s0Z for ; Sat, 1 Apr 2017 15:28:53 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="s+IPd+gf"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750807AbdDAE2x (ORCPT ); Sat, 1 Apr 2017 00:28:53 -0400 Received: from mail-pg0-f65.google.com ([74.125.83.65]:32883 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750799AbdDAE2w (ORCPT ); Sat, 1 Apr 2017 00:28:52 -0400 Received: by mail-pg0-f65.google.com with SMTP id 79so21140236pgf.0 for ; Fri, 31 Mar 2017 21:28:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EUwNvk8SScjnF26znQ2tof3fuM94Hepqh05vL8PJ2RQ=; b=s+IPd+gfmuXINrzk9fGG0mh9q0DqP6Q7DpOERIUhD6TQI+VgrBTLVJRHd7SHCYf+/e d/KOe2rXV3P7pISkrKbQpTg2+KrnjNhu5rZ261Exl0H/bLndSPHlp4sps9Fq1k7sNe8L cBdtQUCIaPiZ0H/e01TYqlqPoaG3yIRRDCxuV9VstGDhrGw/PdEDoSU2ojC4ACsDWcLC aNpYRmckWGHIyEi/2j7IGEYpQ623Npe7r5AqUQWHNapTHIjihuIchwSY3tSaXG8x9GR7 AFJQRZ9uxU19A888TeDpRcoVIpT/sw83fH4Y6epvY++T47NCm8TW8eDRL3RuaPVR1G+2 7ySg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EUwNvk8SScjnF26znQ2tof3fuM94Hepqh05vL8PJ2RQ=; b=KtNTS0gdiNf14Tt9u0sVFHx/cuuwETt5Mw57bHN3s1hwSHf4gjLP+9F6Nmg8EUeENz GduQsLQM+9J0StYWlU9SLYnktEIqw9xsLHJrG9mXEuNNNTDYuTBanQCpC9h09Ca+kq2f aSNQY3YWFKVFMuiNwi8bClxCwBJkpbl7kjCaif6g56rNbZ1Z5Yv6g14uKOs/Vex7R1Ry ip7gB2fKVDrwRLZA11J4czebWlD5EqcaAa44IOl3WJjW/OR4S7c2Sk2FGuLz+zp4+7Up suzjmZlNipbHcOFWM+iW+iO+rZZVnk+sPW+eg5Dw1uXZMX9WTvc+tdwCChSNrnX1vAGz KlKg== X-Gm-Message-State: AFeK/H28bBZfMCrA+JtMyRycPXgCu25xGD8a38nKgOl8cf0s0Zv/C9TbplEtpBEyNnXPpg== X-Received: by 10.98.220.200 with SMTP id c69mr5825895pfl.60.1491020932053; Fri, 31 Mar 2017 21:28:52 -0700 (PDT) Received: from arushi-HP-Pavilion-Notebook ([14.139.82.6]) by smtp.gmail.com with ESMTPSA id t66sm13130560pfk.53.2017.03.31.21.28.50 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 31 Mar 2017 21:28:50 -0700 (PDT) From: Arushi Singhal To: netfilter-devel@vger.kernel.org Cc: Arushi Singhal Subject: [PATCH 2/2] staging: iio: meter: Replace mlock with driver private buf_lock Date: Sat, 1 Apr 2017 09:58:27 +0530 Message-Id: <20170401042827.30500-3-arushisinghal19971997@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170401042827.30500-1-arushisinghal19971997@gmail.com> References: <20170401042827.30500-1-arushisinghal19971997@gmail.com> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org The driver needs to insure atomicity during frequency changes of bus and device. The iiodev->mlock as used was not doing that. Replace it with the drivers existing buffer lock and execute spi_write directly. Signed-off-by: Arushi Singhal --- drivers/staging/iio/meter/ade7759.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/staging/iio/meter/ade7759.c b/drivers/staging/iio/meter/ade7759.c index 0b65f1847510..a5ee4501d30a 100644 --- a/drivers/staging/iio/meter/ade7759.c +++ b/drivers/staging/iio/meter/ade7759.c @@ -429,7 +429,7 @@ static ssize_t ade7759_write_frequency(struct device *dev, if (!val) return -EINVAL; - mutex_lock(&indio_dev->mlock); + mutex_lock(&st->buf_lock); t = 27900 / val; if (t > 0) @@ -447,10 +447,13 @@ static ssize_t ade7759_write_frequency(struct device *dev, reg &= ~(3 << 13); reg |= t << 13; - ret = ade7759_spi_write_reg_16(dev, ADE7759_MODE, reg); + st->tx[0] = ADE7759_WRITE_REG(ADE7759_MODE); + st->tx[1] = reg; + + ret = spi_write(st->us, st->tx, 2); out: - mutex_unlock(&indio_dev->mlock); + mutex_unlock(&st->buf_lock); return ret ? ret : len; }