Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753568AbdCNRiE (ORCPT ); Tue, 14 Mar 2017 13:38:04 -0400 Received: from mail-lf0-f52.google.com ([209.85.215.52]:32833 "EHLO mail-lf0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752693AbdCNRhz (ORCPT ); Tue, 14 Mar 2017 13:37:55 -0400 MIME-Version: 1.0 In-Reply-To: <1489073232-5093-2-git-send-email-suzuki.poulose@arm.com> References: <1489073232-5093-2-git-send-email-suzuki.poulose@arm.com> From: Mathieu Poirier Date: Tue, 14 Mar 2017 11:37:52 -0600 Message-ID: Subject: Re: [1/2] coresight: Disable the path only when the source is disabled To: "Suzuki K. Poulose" Cc: Chunyan Zhang , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2357 Lines: 67 Hi Suzuki, On 14 March 2017 at 11:31, Mathieu Poirier wrote: > From: "Suzuki K. Poulose" > > With a coresight tracing session, the components along the path > from the source to sink are disabled after the source is disabled. > However, if the source was not actually disabled due to active > users, we should not disable the components in the path. > > Cc: Mathieu Poirier > Signed-off-by: Suzuki K Poulose > --- > drivers/hwtracing/coresight/coresight.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c > index 0c37356..34cd1ed 100644 > --- a/drivers/hwtracing/coresight/coresight.c > +++ b/drivers/hwtracing/coresight/coresight.c > @@ -253,7 +253,8 @@ static int coresight_enable_source(struct coresight_device *csdev, u32 mode) > return 0; > } > > -static void coresight_disable_source(struct coresight_device *csdev) > +/* coresight_disable_source: Returns true if the device has been disabled */ To be coherent with the rest of the file please use: /* * coresight_disable_source: Returns true if the device has been disabled */ I would have done the modification myself but 2/2 needs tending as well. Thanks, Mathieu > +static bool coresight_disable_source(struct coresight_device *csdev) > { > if (atomic_dec_return(csdev->refcnt) == 0) { > if (source_ops(csdev)->disable) { > @@ -261,6 +262,7 @@ static void coresight_disable_source(struct coresight_device *csdev) > csdev->enable = false; > } > } > + return !csdev->enable; > } > > void coresight_disable_path(struct list_head *path) > @@ -629,7 +631,7 @@ void coresight_disable(struct coresight_device *csdev) > if (ret) > goto out; > > - if (!csdev->enable) > + if (!csdev->enable || !coresight_disable_source(csdev)) > goto out; > > switch (csdev->subtype.source_subtype) { > @@ -647,7 +649,6 @@ void coresight_disable(struct coresight_device *csdev) > break; > } > > - coresight_disable_source(csdev); > coresight_disable_path(path); > coresight_release_path(path); >