From patchwork Fri Dec 18 20:59:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mathieu Poirier X-Patchwork-Id: 58751 Delivered-To: patch@linaro.org Received: by 10.112.89.199 with SMTP id bq7csp1269678lbb; Fri, 18 Dec 2015 13:04:24 -0800 (PST) X-Received: by 10.98.16.26 with SMTP id y26mr8260629pfi.135.1450472664753; Fri, 18 Dec 2015 13:04:24 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 66si22175937pfo.231.2015.12.18.13.04.24; Fri, 18 Dec 2015 13:04:24 -0800 (PST) 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; dkim=neutral (body hash did not verify) header.i=@linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965513AbbLRVEW (ORCPT + 29 others); Fri, 18 Dec 2015 16:04:22 -0500 Received: from mail-io0-f179.google.com ([209.85.223.179]:33702 "EHLO mail-io0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965379AbbLRVAE (ORCPT ); Fri, 18 Dec 2015 16:00:04 -0500 Received: by mail-io0-f179.google.com with SMTP id 186so103753446iow.0 for ; Fri, 18 Dec 2015 13:00:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rlAfk2kTYSS9yyrY+Q71n3fNrpXd9ixx060DJBs5sw0=; b=J7yPEotJh+P77DtbyCt5L4SbLhwNp5Y+i0VDWs1jzP0azK2PGoIZcMdiJ+ch5aN6m/ tOyTgUzrBNUMciIK0cDOAN07A9WItmSmbePkfkAN5S1dNItdUwdeo8oT8A2U21oUVp1S 6uhF18tt+Tub+awdkQRw3HOKVDr3IYljVRRTY= 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=rlAfk2kTYSS9yyrY+Q71n3fNrpXd9ixx060DJBs5sw0=; b=kojBzIAuL/XG4EtHe8zd95SUY3QvAE6I2Nw+DYoG/8yqWAfP6jc2sDPsooO/Xl2RC+ +EDFSDl+ndfoNzDIHKo1KgGEm4RyximxfU6sAwzLWBB2cqsmZehXdU+1gbBc3CRkiDrX NfHaLU6Ng5y9DksBz53odj6uZEB5Hyb5rz5tUHInebBwZ5zdL4snkztCPG74fWleJNgQ UwmmoWaLLAA6sEDccrJUy62AAWI0FtFP0XFazVExgGmueeWPLPZVemQISOxAhiVYkpXv NBTaGD9yhllmIbXlSfXz/FwYECIGqiBhgLpfOhsYh5F6C01buhOtSxxbVluRJ6OBmPsX cEVA== X-Gm-Message-State: ALoCoQkM4ZQJf5Yp0Z8TFOpjv6jZqOhVdkHCdTo7sy7rkmQAb6RW5X5MhQVImaDyk+B+9kuzqpjd3QHp26pLMkvmI8keOpelcw== X-Received: by 10.107.33.212 with SMTP id h203mr7247114ioh.186.1450472403985; Fri, 18 Dec 2015 13:00:03 -0800 (PST) Received: from t430.cg.shawcable.net (S0106002369de4dac.cg.shawcable.net. [184.64.168.246]) by smtp.gmail.com with ESMTPSA id l10sm843701igx.18.2015.12.18.13.00.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Dec 2015 13:00:03 -0800 (PST) From: Mathieu Poirier To: gregkh@linuxfoundation.org, alexander.shishkin@linux.intel.com Cc: zhang.chunyan@linaro.org, mike.leach@arm.com, tor@ti.com, al.grant@arm.com, fainelli@broadcom.com, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Mathieu Poirier Subject: [PATCH V7 15/24] coresight: etb10: moving to local atomic operations Date: Fri, 18 Dec 2015 13:59:11 -0700 Message-Id: <1450472361-426-16-git-send-email-mathieu.poirier@linaro.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1450472361-426-1-git-send-email-mathieu.poirier@linaro.org> References: <1450472361-426-1-git-send-email-mathieu.poirier@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(-) -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ 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;