From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF2C713959D for ; Mon, 1 Dec 2025 10:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764585553; cv=none; b=MS6tgk9XPPa8LQoJJDnqjFGmj9/mpToSiOskVkSMw/hQ38Kt3FdIdG4GU10ksg0/ux9tGjbBk1LTgbdvjCrFnG2D7AE6ap6ylhnFhwPH9m60yNl9b2+n4mRkQDdoq6gGvB5A19JrMo1AAMQ0FTQ+eG5zvaOj5+9KSddkLiQ/wk8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764585553; c=relaxed/simple; bh=Gfuesbp4faDZ8qrO1duCX9KodBW6Q09hiDLs/LdyTLE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Ie6ud/X9QTbgb4dWMM2YcFedL+LiQP/iiF3opLHaSPUwHMfXhAy12AIM2LOSnP52uZ0kleVzu3jGTeDlSd8y2gUo034BOdQoOUFRzZB1/sieCcka6OESGkgnpIbRDtvp9cI0Epib4AsiZ7amOZEXCDS5XAeuzqy5LifPZcmC1ek= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=h7w/lIiV; arc=none smtp.client-ip=209.85.210.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="h7w/lIiV" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-7bf0ad0cb87so4824857b3a.2 for ; Mon, 01 Dec 2025 02:39:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764585551; x=1765190351; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=bDER+MAQplrxhK0hdlEzUbQpxtfqDMXbC4KPwCBf7Lc=; b=h7w/lIiVLpDW0L7zzx4kM1xynlqdKoKXcjsTvO1BLQfbqXmZL+B6TFjSgY4YVyFTo5 7HcJUT6Khd6Gf+wuY64hnKKFlS9YdrIQ79zjm6o06X32MZrxZI5SEzbbHOVFpgK26QKq 0vxfVUbYCdrUTTEU7YRi2NLUxsZJ3w/OQReqnqUYR/7mnXAM4f4XN3CZd+hia3+YA3pw rNBCicQ6VB/ANipSgua8UAiiELq99qdTVqxsj3BVMZrFkqiOHd6iyY5P9VxuRC5mTaOv JQr91W7eKdGli8s3iDWhIOsK4576jqN3xvRMqlVq8LbTciDiUon8lMOTbrjxkpJuUxWJ 9DLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764585551; x=1765190351; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bDER+MAQplrxhK0hdlEzUbQpxtfqDMXbC4KPwCBf7Lc=; b=ZxaS5+l/8xg3+3xou2WoE18ntC8yv/UAMKLFdO/ka0O8/PGjKMHl4D2ejZuLJ4Si2q BoCDXA+4CF8TWbul4Ll1XgT97FoodokNb+syuOsurGDRvJoaCq05yiFkEsCxy8pO/Qik P6MKqtH345tQi+mc0nlldRhUpya2+/ejhBuBFFsJqFI1/Xoa0vHSLB6OJIR24xOcEKyt WFEHpxBIewm90WaAOe2gZmhoIAyjLZq33YW3pLsnUTkJNnBvLXlGZKlGl3u/iWjXH+pW sMF1MBHldJsSBMOPX2xIomsauhhWCkJtlcU/i3oFJAfhOs8BCxVoXNfphjfSrjn0e//6 S+4A== X-Forwarded-Encrypted: i=1; AJvYcCUQSIJczjSlL3oIY3M2AgtQrsLB8itTgPQjbhAm0NO2G/17d14r8CNct5Fg2zu+COhKp24L1rgXaBkiyvg=@vger.kernel.org X-Gm-Message-State: AOJu0YyYqnFTnryUayyGNN8hS3CygxkhMed1EodSGIr6cweHVhL0ieCd 2iaEKxeh2mqV4YXcwzxukdhEPVafw+kMyEnIfAHTE32OAflHekoqGcAI X-Gm-Gg: ASbGncuHVtoH/aOeFEPsw+nW6oEFaxlvoYkLirVJnGfcdbjjpgEzM2oRbJKDnGzjVgZ A1G2UTd2b0tOq5VS5ljaomjrhPOlxJJnniSPy4oxRr39eSNmsVDSO5SvaHxGOJHWTHk9UWrymCZ uS8RkyHVP1gLPZFvG9W0d9GXy5tyzM0C7x0XqLeOJW8ZIqW0qWbJObVpnwHlZYYdPgUJi27zjOB mCvVt5IPHbaZNlsCV1Xo4M3oEdLIrSbqST+0sXlj64JcmUg0frK6QA11tGoTeGUQ/vPWmAoo2BL Kb36z/PBcC4GU2ccS3cKkfwM65Vear1ijQ6FU6DJ1VV0O8oV4cUL12iIcztd2wV+mHL9vBnUAPX KjAxmOONQ2SzJ/DpTjup6cCVoZjwVLGs5JdfCOzmshHnMcBNYe82cPIzmxMxpVjhVLPim5b7X0t pBkoPnqo2ZBCU7hpN4Bkk= X-Google-Smtp-Source: AGHT+IHF+eZVE3C0cEuEBRumNGUDfaRlB4Mv1q8oJ5yjxaz8ScKS+9O6EnZusB3BjbUji03iZI5cZg== X-Received: by 2002:a05:6a20:72a0:b0:342:a7cd:9211 with SMTP id adf61e73a8af0-36150f05e58mr40521914637.34.1764585550855; Mon, 01 Dec 2025 02:39:10 -0800 (PST) Received: from google.com ([2401:fa00:95:201:9418:7391:496a:8ca8]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7d150b68367sm13267239b3a.12.2025.12.01.02.39.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Dec 2025 02:39:10 -0800 (PST) Date: Mon, 1 Dec 2025 18:39:05 +0800 From: Kuan-Wei Chiu To: James Clark Cc: suzuki.poulose@arm.com, mike.leach@linaro.org, alexander.shishkin@linux.intel.com, gregkh@linuxfoundation.org, mathieu.poirier@linaro.org, leo.yan@arm.com, Al.Grant@arm.com, jserv@ccns.ncku.edu.tw, marscheng@google.com, ericchancf@google.com, milesjiang@google.com, nickpan@google.com, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] coresight: etm3x: Fix cntr_val_show() to match cntr_val_store() behavior Message-ID: References: <20251201095228.1905489-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Mon, Dec 01, 2025 at 10:25:25AM +0000, James Clark wrote: > > > On 01/12/2025 9:52 am, Kuan-Wei Chiu wrote: > > The cntr_val_show() function was intended to print the values of all > > counters using a loop. However, due to a buffer overwrite issue with > > sprintf(), it effectively only displayed the value of the last counter. > > > > The companion function, cntr_val_store(), allows users to modify a > > specific counter selected by 'cntr_idx'. To maintain consistency > > between read and write operations and to align with the ETM4x driver > > behavior, modify cntr_val_show() to report only the value of the > > currently selected counter. > > > > This change removes the loop and the "counter %d:" prefix, printing > > only the hexadecimal value. It also adopts sysfs_emit() for standard > > sysfs output formatting. > > > > Fixes: a939fc5a71ad ("coresight-etm: add CoreSight ETM/PTM driver") > > Signed-off-by: Kuan-Wei Chiu > > --- > > Build test only. > > > > Changes in v2: > > - Redesigned the fix to match cntr_val_store() logic (display only the > > currently selected counter) instead of attempting to list all > > counters. > > - Removed the loop and the "counter %d:" prefix. > > - Switched from sprintf() to sysfs_emit(). > > - Refactored control flow to use a single return point. > > > > v1: https://lore.kernel.org/lkml/20251121002350.1166758-1-visitorckw@gmail.com/ > > > > .../hwtracing/coresight/coresight-etm3x-sysfs.c | 15 ++++----------- > > 1 file changed, 4 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/hwtracing/coresight/coresight-etm3x-sysfs.c b/drivers/hwtracing/coresight/coresight-etm3x-sysfs.c > > index 762109307b86..a6a650331196 100644 > > --- a/drivers/hwtracing/coresight/coresight-etm3x-sysfs.c > > +++ b/drivers/hwtracing/coresight/coresight-etm3x-sysfs.c > > @@ -717,26 +717,19 @@ static DEVICE_ATTR_RW(cntr_rld_event); > > static ssize_t cntr_val_show(struct device *dev, > > struct device_attribute *attr, char *buf) > > { > > - int i, ret = 0; > > u32 val; > > struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent); > > struct etm_config *config = &drvdata->config; > > if (!coresight_get_mode(drvdata->csdev)) { > > spin_lock(&drvdata->spinlock); > > - for (i = 0; i < drvdata->nr_cntr; i++) > > - ret += sprintf(buf, "counter %d: %x\n", > > - i, config->cntr_val[i]); > > + val = config->cntr_val[config->cntr_idx]; > > spin_unlock(&drvdata->spinlock); > > - return ret; > > - } > > - > > - for (i = 0; i < drvdata->nr_cntr; i++) { > > - val = etm_readl(drvdata, ETMCNTVRn(i)); > > - ret += sprintf(buf, "counter %d: %x\n", i, val); > > + } else { > > + val = etm_readl(drvdata, ETMCNTVRn(config->cntr_idx)); > > } > > - return ret; > > + return sysfs_emit(buf, "%x\n", val); > > Sorry I missed this on the previous version, but this should be %#x to add > the "0x" prefix. All the other ones in this file have it. Otherwise you > can't tell the difference between decimal and hex. > Thanks for catching that. I will fix it in v3. I'll wait a day or two to see if there are any other comments, and then respin with the Cc stable tag. Regards, Kuan-Wei > > } > > static ssize_t cntr_val_store(struct device *dev, >