From patchwork Wed Dec 23 15:33:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 351455 Delivered-To: patch@linaro.org Received: by 2002:a02:85a7:0:0:0:0:0 with SMTP id d36csp6294265jai; Wed, 23 Dec 2020 07:35:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJy9s3Lb5rqwCZIDXN4FpPj/eyvMfyC6SjFLKGDzSL+xcN4W5uprtKwJcg9BQST1KeJw7scu X-Received: by 2002:a05:6402:171a:: with SMTP id y26mr25787123edu.371.1608737742849; Wed, 23 Dec 2020 07:35:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608737742; cv=none; d=google.com; s=arc-20160816; b=FkAmi67KH4fPqLJKAXC+R1QWe8vwqhistF1qk/fjlIM9fPn2qwagq4d9xpi9RqMgH4 cCAoAWdCblcU/hMOUKfDc5VN4hkIQaE3SEBXN0g5Rrq321hV3JRYIlr3+XgjgtjMUTO5 j8i8nPH/W6CkqbKLx2TGPpImF5YLh+FcygCUH1JiZ/J27tBIx3eup2/7aTF0n9oTdYJN XSh1mXhQgQL0yrqh92WfkS4AOS58hYTKYhHPCTQ+z50ZG8i4GhMO/VDAui5Bm9spGDw7 7vwCXGKbcr5Oob/a+NVsMIDEJDxZ977Ayp11PKr5aojdwz9AS/L40iy7xn+AmWGDr3bw xWcQ== 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=SoRnUneIFS9RKHKkLLqeTwk/Ew+2AAL9k6huK+U/xek=; b=LYV+PBDu8v5lTu4ek7/iubhSj8RiMQ822BcnS+aEeNF65fujZkCu4ibKdrKKaGWCAG PX7hadiFZcesqDRP2E+ctKwRDVUcC7ACsumXvBjTK74pZJfMYZY6D/PFDBiwg51M3guI NdW1oMEoXkuTqjw8UycXq1WAHEvmVKP6MtD1NSk6LnDeJk6V6+cPmcQLWNn1D/Rs0uXl Ej3pTeGwjUjrT/EOpRYnaomMn64+jjnTBTKZ3VowkdHC3SJm9RzAW3Mq4pNnO6ew3s61 8nRw67V6JG+dJKdOYH/2An9wEVJanCJOZx93rdP4QYnGYbDxkdUnoIfJydsHLBQEnKri roMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Sndp78AH; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 n18si12371307ejr.448.2020.12.23.07.35.42; Wed, 23 Dec 2020 07:35:42 -0800 (PST) Received-SPF: pass (google.com: domain of stable-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=Sndp78AH; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-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 S1728920AbgLWPeg (ORCPT + 14 others); Wed, 23 Dec 2020 10:34:36 -0500 Received: from mail.kernel.org ([198.145.29.99]:46082 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728910AbgLWPef (ORCPT ); Wed, 23 Dec 2020 10:34:35 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 922C323382; Wed, 23 Dec 2020 15:33:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1608737598; bh=7RVfjl/KNWMrR4HzNnolRlL8h78aEhowNgRbnHZ0Gak=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Sndp78AH8DHbEOoE/olxI6a1fruDmGm/QnuGBItlr4KGyILzLe1zIyXjdpC3C4keS LeFpCEiqhRAjGNTJFYOBtW68uxbGYLNCJyTfdumc/njqjhGgBAxhNNRyvnKKB2S3Kc QBc5pr69W6cz78v6UuzjZWrzEALwdyc9glVO0OdA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Suzuki K Poulose , Mathieu Poirier Subject: [PATCH 5.10 23/40] coresight: etm4x: Handle TRCVIPCSSCTLR accesses Date: Wed, 23 Dec 2020 16:33:24 +0100 Message-Id: <20201223150516.668717311@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201223150515.553836647@linuxfoundation.org> References: <20201223150515.553836647@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Suzuki K Poulose commit 60c519c5d3629c21ba356782434d5b612d312de4 upstream. TRCVIPCSSCTLR is not present if the TRCIDR4.NUMPC > 0. Thus we should only access the register if it is present, preventing any undesired behavior. Cc: stable@vger.kernel.org Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Link: https://lore.kernel.org/r/20201127175256.1092685-8-mathieu.poirier@linaro.org Signed-off-by: Greg Kroah-Hartman --- drivers/hwtracing/coresight/coresight-etm4x-core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c @@ -141,8 +141,9 @@ static int etm4_enable_hw(struct etmv4_d writel_relaxed(config->viiectlr, drvdata->base + TRCVIIECTLR); writel_relaxed(config->vissctlr, drvdata->base + TRCVISSCTLR); - writel_relaxed(config->vipcssctlr, - drvdata->base + TRCVIPCSSCTLR); + if (drvdata->nr_pe_cmp) + writel_relaxed(config->vipcssctlr, + drvdata->base + TRCVIPCSSCTLR); for (i = 0; i < drvdata->nrseqstate - 1; i++) writel_relaxed(config->seq_ctrl[i], drvdata->base + TRCSEQEVRn(i)); @@ -1197,7 +1198,8 @@ static int etm4_cpu_save(struct etmv4_dr state->trcvictlr = readl(drvdata->base + TRCVICTLR); state->trcviiectlr = readl(drvdata->base + TRCVIIECTLR); state->trcvissctlr = readl(drvdata->base + TRCVISSCTLR); - state->trcvipcssctlr = readl(drvdata->base + TRCVIPCSSCTLR); + if (drvdata->nr_pe_cmp) + state->trcvipcssctlr = readl(drvdata->base + TRCVIPCSSCTLR); state->trcvdctlr = readl(drvdata->base + TRCVDCTLR); state->trcvdsacctlr = readl(drvdata->base + TRCVDSACCTLR); state->trcvdarcctlr = readl(drvdata->base + TRCVDARCCTLR); @@ -1305,7 +1307,8 @@ static void etm4_cpu_restore(struct etmv writel_relaxed(state->trcvictlr, drvdata->base + TRCVICTLR); writel_relaxed(state->trcviiectlr, drvdata->base + TRCVIIECTLR); writel_relaxed(state->trcvissctlr, drvdata->base + TRCVISSCTLR); - writel_relaxed(state->trcvipcssctlr, drvdata->base + TRCVIPCSSCTLR); + if (drvdata->nr_pe_cmp) + writel_relaxed(state->trcvipcssctlr, drvdata->base + TRCVIPCSSCTLR); writel_relaxed(state->trcvdctlr, drvdata->base + TRCVDCTLR); writel_relaxed(state->trcvdsacctlr, drvdata->base + TRCVDSACCTLR); writel_relaxed(state->trcvdarcctlr, drvdata->base + TRCVDARCCTLR);