Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp1759275pxb; Thu, 16 Sep 2021 15:05:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyPFBtO8lXmdn6qvBTd9cTLLILx/81G0iXUgz9iJTHsy8ERq310GTMarxAriLOStvvWtYzG X-Received: by 2002:a05:6402:2695:: with SMTP id w21mr8870015edd.182.1631829923314; Thu, 16 Sep 2021 15:05:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631829923; cv=none; d=google.com; s=arc-20160816; b=lCwJhRpyfEaq5HyNcsBoO5zOFDcWDIc/2jMKe9/segulEkQmUc3ijxNNCv1rVd/vho SSBzQqhUFrgarIpyXPckw4ccPxiNOe5ehjY2EDLBYtcV7IVuRdUIWKmVXwkICKVMjGW1 ICEB5gTxAshwizXLjV5X5Lb/GJ+uWrEq52/s23mGDSFlKN6hLgwbCN/qVVQvJ9qWm33u MpPTBPd0HXtj9v8mYdjLxp4wtHoz5KDedp5LJ8Ko6ZRtXsLT+mb3rVDfcLWY/zYsayQP KVeKgCtHobAb8VY4JfHgTvX2I4SMdmNCTl8EHLxepMzPaojmjjkXES+MTpd6o2p6ELlt gFgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GZxrbD+KySQg88LzthoU9EeDw5HL1McyhqHsLxsIrno=; b=vzsWs+ZDGw/oXReSdiQrol1vlSJpYlR26VLKIvsyBWD1hBdXsigsu6ZrlpyL/Vm12V lyeP4evb+2kUxYv/9ciycmsB5NoXs1Vnjs//N8119gMBp7XsWObIgteDyT8UYc65G4yU AlDU6PGqDuItdk3B5mwsIY9i+7N+X2fkan4QCBMfgleSHQufqn1Ka5DSqMNlzgv96pDo 66+GLqSgprDKCQcQyS7qBSeWrBwMwfvzY9R9GNvWQ1ePO6WOGwc/IDUChsrBZG7fSKYF w8vBwpSXsPJrbT4dMZuX2w5FKwI2iWecunXLJ2rW8HS1GXAwVHzT2v+GysGKwAbgFaTw BYbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZsJzGTfr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cw1si4958248ejc.693.2021.09.16.15.04.36; Thu, 16 Sep 2021 15:05:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ZsJzGTfr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243889AbhIPQnK (ORCPT + 99 others); Thu, 16 Sep 2021 12:43:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:51674 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242270AbhIPQh3 (ORCPT ); Thu, 16 Sep 2021 12:37:29 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id AE14A61361; Thu, 16 Sep 2021 16:22:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631809339; bh=PZGC0dDtXGFEIuEDhIPnrPNRbBj4L29UyRqSIXumYeg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZsJzGTfrAbjkJXZrs79kw6TQvSub7tsnSeiOAUPU2uLmPqIsWS7R6PSwwK8/gd0V7 6hxXPU+6EayTT9U2dKLAPsgRZwiEs/BCxeok9nwTg9RplRLzAYa1XKLGbooDlSkr9+ Hhb4ks+4kIQ9p3xSUMc4KsgfwK8ifsZOXIjLzFxM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kajol Jain , Michael Ellerman , Sasha Levin Subject: [PATCH 5.13 119/380] powerpc/perf: Fix the check for SIAR value Date: Thu, 16 Sep 2021 17:57:56 +0200 Message-Id: <20210916155808.079508594@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916155803.966362085@linuxfoundation.org> References: <20210916155803.966362085@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kajol Jain [ Upstream commit 3c69a5f22223fa3e312689ec218b5059784d49d7 ] Incase of random sampling, there can be scenarios where Sample Instruction Address Register(SIAR) may not latch to the sampled instruction and could result in the value of 0. In these scenarios it is preferred to return regs->nip. These corner cases are seen in the previous generation (p9) also. Patch adds the check for SIAR value along with regs_use_siar and siar_valid checks so that the function will return regs->nip incase SIAR is zero. Patch drops the code under PPMU_P10_DD1 flag check which handles SIAR 0 case only for Power10 DD1. Fixes: 2ca13a4cc56c9 ("powerpc/perf: Use regs->nip when SIAR is zero") Signed-off-by: Kajol Jain Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/20210818171556.36912-3-kjain@linux.ibm.com Signed-off-by: Sasha Levin --- arch/powerpc/perf/core-book3s.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c index 51622411a7cc..35658b963d5a 100644 --- a/arch/powerpc/perf/core-book3s.c +++ b/arch/powerpc/perf/core-book3s.c @@ -2251,18 +2251,10 @@ unsigned long perf_misc_flags(struct pt_regs *regs) */ unsigned long perf_instruction_pointer(struct pt_regs *regs) { - bool use_siar = regs_use_siar(regs); unsigned long siar = mfspr(SPRN_SIAR); - if (ppmu && (ppmu->flags & PPMU_P10_DD1)) { - if (siar) - return siar; - else - return regs->nip; - } else if (use_siar && siar_valid(regs)) - return mfspr(SPRN_SIAR) + perf_ip_adjust(regs); - else if (use_siar) - return 0; // no valid instruction pointer + if (regs_use_siar(regs) && siar_valid(regs) && siar) + return siar + perf_ip_adjust(regs); else return regs->nip; } -- 2.30.2