From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A87C4F85AB; Wed, 30 Sep 2026 16:30:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790785837; cv=none; b=Z7NPAsl5U7Wi0ztI0X5DFa4OQP0wsuhmQAJa42DdmRmivf0+gfZmRW2jFrqSy1Fv5rf9Q+NbiC611gmqovHmsLiiHuUcVMzydIp3+/9slc12K9fyQb71cCUUWCukitLg2khGFx2Mtf/4JJtDmX0wgYUrZ3EduuHLWxC0iqNoF74= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790785837; c=relaxed/simple; bh=/8M5GOwiSKqAa7X7oOdhpa+W6zi2qgeF6xWecclZeJM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nRTfhbfnEUJY2frV2Ugo8XErVWTkfygrlEtghA5xxtfc8va9O3kucHF6dkEamvBINyfqkhcsfHuSJWuD3bh0fEM3C6fXQI++rfTICTiG5Xho4QAXneacsp1aY2PzLJPCOjpREweBHN+01xxL4SSso2DAh6SmgoEz4g+19MPWtZo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=fbMUk/O3; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="fbMUk/O3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 83F9C1F00893; Wed, 30 Sep 2026 16:30:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1790785836; bh=bZflkPvPvxOp3MmVD7zWJ7/yJo3lyMbrLGn/W+xFUjI=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=fbMUk/O3tZWWcqt+R8RYBwLM5nSe/4TDFRv4QVknxH/yTqHw+LeC/0U/uIN8h663V zg31pTlYlrVo4W0DRCKDYLBfOTlb3YD09zcN+DBF/YA7+w4UqnRZdjjqQsIr/P1Kfs oPxBQ0T01YU+uCRdRbwUkhZUUIHbDXXP/j4gcAdo= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Shouping Wang , Robin Murphy , Will Deacon , Sasha Levin Subject: [PATCH 6.1 650/982] perf/arm-cmn: Fix wp_dev_sel2 setting for multi-DTM configurations Date: Wed, 30 Sep 2026 17:23:06 +0200 Message-ID: <20260930152430.728113977@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260930152416.775402466@linuxfoundation.org> References: <20260930152416.775402466@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.1-stable review patch. If anyone has any objections, please let me know. ------------------ From: Shouping Wang [ Upstream commit 49daa3d668b69a5454b5aba0078848a479f79f1c ] When MXP_MULTIPLE_DTM_EN is TRUE, each DTM will monitor at most two device ports. In this case, {wp_dev_sel2, wp_dev_sel} will only use values 2'b00 and 2'b01 per DTM. Previously the setting allowed values beyond the supported range per DTM, which could cause each DTM to select invalid ports when MXP_MULTIPLE_DTM_EN is TRUE. Fix this by only setting CMN_DTM_WPn_CONFIG_WP_DEV_SEL2 when !multi_dtm. Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features") Signed-off-by: Shouping Wang Reviewed-by: Robin Murphy Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- drivers/perf/arm-cmn.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c index dc985a0c40877..43b0afd1cfe52 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -1207,18 +1207,22 @@ static int arm_cmn_wp_idx(struct perf_event *event) static u32 arm_cmn_wp_config(struct perf_event *event) { + struct arm_cmn *cmn = to_cmn(event->pmu); u32 config; u32 dev = CMN_EVENT_WP_DEV_SEL(event); u32 chn = CMN_EVENT_WP_CHN_SEL(event); u32 grp = CMN_EVENT_WP_GRP(event); u32 exc = CMN_EVENT_WP_EXCLUSIVE(event); u32 combine = CMN_EVENT_WP_COMBINE(event); - bool is_cmn600 = to_cmn(event->pmu)->part == PART_CMN600; + bool is_cmn600 = cmn->part == PART_CMN600; config = FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL, dev) | FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_CHN_SEL, chn) | - FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_GRP, grp) | - FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL2, dev >> 1); + FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_GRP, grp); + + if (!cmn->multi_dtm) + config |= FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL2, dev >> 1); + if (exc) config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_EXCLUSIVE : CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE; -- 2.53.0