From patchwork Wed Nov 11 22:18:07 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Poirier X-Patchwork-Id: 7598591 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id BFEFEBF90C for ; Wed, 11 Nov 2015 22:29:55 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DCA4C20551 for ; Wed, 11 Nov 2015 22:29:54 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 10C5C2054D for ; Wed, 11 Nov 2015 22:29:54 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Zwdrj-00076L-CW; Wed, 11 Nov 2015 22:27:43 +0000 Received: from mail-pa0-x229.google.com ([2607:f8b0:400e:c03::229]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZwdkL-0006EY-R0 for linux-arm-kernel@lists.infradead.org; Wed, 11 Nov 2015 22:20:15 +0000 Received: by pabfh17 with SMTP id fh17so42988614pab.0 for ; Wed, 11 Nov 2015 14:19:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro_org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ZveGRFUbK7wsnlmCbRWblmTSGPdv1ppgv9Wh1RwsYmo=; b=jz6DbayIuggwTha5s22s6J1IIIQlnnVBDyMsx9vWZgdXC4jDPNvvcxaxr4HerDprP2 pr0TyXr44AAD3+u6Be0NzZFmV67Z4cG16+8e7dV+Lds7ZCUUBtQ5DjPoxMSnkIEEbob/ 34tirUc43PPnLzBTVrpFZ/ScVldDVAF2+68cXK4cXuMd6rfb56t7/QQ9DvrhDZy6LoQu soTsus6yfQS1RFtR1zPwaDQOXqm+6VQ7ltkovIg7MCa9zGsTbCqVy7K0/9iVRk+b5z/5 Yym+k0Un5pEgq3rQV6DSk+f1YRtU0o7Vd8Er04o40EjBvKUBqfgKLKtwo6xzimGI1EMm KpQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ZveGRFUbK7wsnlmCbRWblmTSGPdv1ppgv9Wh1RwsYmo=; b=m5qD1I522HeZ1XkQQMlQNZ9I/vdN8VEPVzzXRFwWV6YKfdOp3urO4a8kBqUmCCksGA 6JiR8dqIXALhd+2clkFxTVaKsfVEeRsFFzM2j7NNytERGF/7bw+QE36KjMIlEqLN+R2h qA/ryNgjLMUOxGz4QveqlFrD6JNdOetm1cc982siLDlwhG9FoY9kkdn4J1kwh+mxmVnP cQh+imEXzSPs5qUD07PnlkYr8aG7JGEFfeUnUXEWJ5aogU33n6esxMTiqhOrwuQb3Lwl MOs79ld82kjDr+cLcgOaMBR+Q/Fgf589o2Dbf1dQCw1tD81vmOW9vRM4LsM3M8kX6KYu KtXg== X-Gm-Message-State: ALoCoQmUcyJoqHESZO60VpxqGCy93PygluHv+UojyiTFMzU2WlLx4FCGi9J/bizlRVzX1l6BLSii X-Received: by 10.66.228.3 with SMTP id se3mr17657009pac.75.1447280386876; Wed, 11 Nov 2015 14:19:46 -0800 (PST) Received: from t430.cg.shawcable.net ([184.64.168.246]) by smtp.gmail.com with ESMTPSA id h10sm11156697pat.7.2015.11.11.14.19.45 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 11 Nov 2015 14:19:46 -0800 (PST) From: Mathieu Poirier To: gregkh@linuxfoundation.org, a.p.zijlstra@chello.nl, alexander.shishkin@linux.intel.com, acme@kernel.org, mingo@redhat.com, corbet@lwn.net, nicolas.pitre@linaro.org Subject: [PATCH V3 17/26] coresight: etb10: moving to local atomic operations Date: Wed, 11 Nov 2015 15:18:07 -0700 Message-Id: <1447280296-19147-18-git-send-email-mathieu.poirier@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1447280296-19147-1-git-send-email-mathieu.poirier@linaro.org> References: <1447280296-19147-1-git-send-email-mathieu.poirier@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151111_142006_195987_C7C44C3E X-CRM114-Status: GOOD ( 13.93 ) X-Spam-Score: -2.6 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: al.grant@arm.com, mathieu.poirier@linaro.org, pawel.moll@arm.com, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, fainelli@broadcom.com, adrian.hunter@intel.com, tor@ti.com, mike.leach@arm.com, zhang.chunyan@linaro.org, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Moving to use local atomic operations to take advantage of the lockless implementation, something that will come handy when the ETB is accessed from the Perf subsystem. Also changing the name of the variable to something more meaningful. Signed-off-by: Mathieu Poirier --- drivers/hwtracing/coresight/coresight-etb10.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c index 1301edc44629..09e306361e4f 100644 --- a/drivers/hwtracing/coresight/coresight-etb10.c +++ b/drivers/hwtracing/coresight/coresight-etb10.c @@ -10,6 +10,7 @@ * GNU General Public License for more details. */ +#include #include #include #include @@ -71,7 +72,7 @@ * @csdev: component vitals needed by the framework. * @miscdev: specifics to handle "/dev/xyz.etb" entry. * @spinlock: only one at a time pls. - * @in_use: synchronise user space access to etb buffer. + * @reading: synchronise user space access to etb buffer. * @buf: area of memory where ETB buffer content gets sent. * @buffer_depth: size of @buf. * @enable: this ETB is being used. @@ -84,7 +85,7 @@ struct etb_drvdata { struct coresight_device *csdev; struct miscdevice miscdev; spinlock_t spinlock; - atomic_t in_use; + local_t reading; u8 *buf; u32 buffer_depth; bool enable; @@ -277,7 +278,7 @@ static int etb_open(struct inode *inode, struct file *file) struct etb_drvdata *drvdata = container_of(file->private_data, struct etb_drvdata, miscdev); - if (atomic_cmpxchg(&drvdata->in_use, 0, 1)) + if (local_cmpxchg(&drvdata->reading, 0, 1)) return -EBUSY; dev_dbg(drvdata->dev, "%s: successfully opened\n", __func__); @@ -313,7 +314,7 @@ static int etb_release(struct inode *inode, struct file *file) { struct etb_drvdata *drvdata = container_of(file->private_data, struct etb_drvdata, miscdev); - atomic_set(&drvdata->in_use, 0); + local_set(&drvdata->reading, 0); dev_dbg(drvdata->dev, "%s: released\n", __func__); return 0;