From patchwork Mon Nov 23 18:33:09 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Poirier X-Patchwork-Id: 7685161 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 09DE9BF90C for ; Mon, 23 Nov 2015 18:41:23 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5A27820800 for ; Mon, 23 Nov 2015 18:41:21 +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 87904207FD for ; Mon, 23 Nov 2015 18:41:20 +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 1a0w1N-0005GV-Gk; Mon, 23 Nov 2015 18:39:25 +0000 Received: from mail-pa0-x22c.google.com ([2607:f8b0:400e:c03::22c]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1a0vws-0000Fv-I6 for linux-arm-kernel@lists.infradead.org; Mon, 23 Nov 2015 18:34:47 +0000 Received: by pacdm15 with SMTP id dm15so198927627pac.3 for ; Mon, 23 Nov 2015 10:34:25 -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=uHRbQqYd4kXNoMEqw6VkpVB7VKIqrbybuJBgOltiKoa8q7mD6ximhbLiT+a3P3Bp2T JF6Y770TDZgJJ+VacMdQhTGCn1TkU3uaUxZGzYBHivTDWJSAkyUGOJv8Nb3f38mqLtWs b3NIolU63idQEU+uey750M6J0AUk53bdCSrkV9EhCIN8TSEGwKFWE6rvi+d8a4SHG+Hn +b9RB5CxfHq4dAGNZQG7hE/0rVjDo8lTkPUd3pPgC8t5CUSzEKEALdNHZyfg92epwZgJ e3B6UaGkPTPr5p9lkJ4Il9USGM02MZGmnYl+gNBMRPZppWTy1jaBIs/ki2D449E//47l jyVw== 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=mI0Lfq42VcIMxdbuhH3ziz7Yh5SZ4o/DB3SFK7Mx0f5hzhL6cPPBub3IpaLyv/QVjC Qg2/XpH3bCeTvaQAY3baC2A3nZEHFTfIBHsbrpavpG6vGq5cugeVkZc6A+YIjy5JGuMp q7s1/uw4mn+QHDvTqLl6DyFAy1JJUXGzVhh3HPFaMikkKfwN3vh78AiYHxkL1xbIakb8 fMG+zPx++aimTVwSM6Qe5ji4TPqGE02tq4ZwHF41nG7tjSl3pUULvoyp6KqiesCHo3Fo TI3QDOZ/o8ABiZSY5K8mIDuQ9Uw05wl9yAXIGZWwPReoki1OyEKmjE9bm6ys5ngcIgd4 rs/g== X-Gm-Message-State: ALoCoQlv9OQf6+hHjLSklf86GiDo/0ZXPgKiR3uRY0AJBnkKHviSXFXfovN+PiOV18pYaj5C32YV X-Received: by 10.66.63.37 with SMTP id d5mr37729206pas.103.1448303665816; Mon, 23 Nov 2015 10:34:25 -0800 (PST) Received: from t430.cg.shawcable.net ([184.64.168.246]) by smtp.gmail.com with ESMTPSA id r20sm10865186pfa.93.2015.11.23.10.34.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 23 Nov 2015 10:34:25 -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: [RESEND PATCH V4 17/26] coresight: etb10: moving to local atomic operations Date: Mon, 23 Nov 2015 11:33:09 -0700 Message-Id: <1448303598-11249-18-git-send-email-mathieu.poirier@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1448303598-11249-1-git-send-email-mathieu.poirier@linaro.org> References: <1448303598-11249-1-git-send-email-mathieu.poirier@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151123_103446_666575_AD48D197 X-CRM114-Status: GOOD ( 13.60 ) 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, pawel.moll@arm.com, linux-doc@vger.kernel.org, fainelli@broadcom.com, linux-kernel@vger.kernel.org, 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.7 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;