From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E0A6C433EF for ; Fri, 1 Oct 2021 04:57:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 30C3161267 for ; Fri, 1 Oct 2021 04:57:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 30C3161267 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=/psPhDyECd5iAxfb4UQL8m9ixck6KdSJZafaxFdcrkg=; b=OrNCgkGdYqlO1bCcNcxEklrhgv gvMo0RzFm5da3blmutUJlcl/Hho2IGd8U7oVZjJ4g5jBuUf073RZtgrA6zTqrgOYeA4vRiXtqLpBU yFZ2nhQ3rwxOtXX5rTtWvIaUX9AlGsXmg02LwSTG+hdIWFVg7GdL5DqcCDYY86v4c/2yxZPH421y+ UG3IQHMhGbvKF0Nks55dwVSfdXvILoYNq8dqYaPLSUchJynh7x31z6aQ0+n+ZvMfmAMdtPLQblPMG sGHy3+QMe73uXeMUUS3TTGHobenbKVvdEXntmU4QkHvtk3PWBUs6CD40g8oki5CF4djETPto1klK9 5zymPB4A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mWAaP-00GeR1-CS; Fri, 01 Oct 2021 04:55:53 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mWAaL-00GeQ4-82 for linux-arm-kernel@lists.infradead.org; Fri, 01 Oct 2021 04:55:50 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2C655106F; Thu, 30 Sep 2021 21:55:47 -0700 (PDT) Received: from [10.163.74.5] (unknown [10.163.74.5]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5ABD93F718; Thu, 30 Sep 2021 21:55:43 -0700 (PDT) Subject: Re: [PATCH v2 16/17] coresight: trbe: Work around write to out of range To: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, maz@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, james.morse@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, mathieu.poirier@linaro.org, will@kernel.org, lcherian@marvell.com, coresight@lists.linaro.org References: <20210921134121.2423546-1-suzuki.poulose@arm.com> <20210921134121.2423546-17-suzuki.poulose@arm.com> <6ecb0391-1525-8d65-93ba-b66424dadfd3@arm.com> <11de6dd1-e7eb-044c-a871-bfcca3e60884@arm.com> From: Anshuman Khandual Message-ID: <1436c9c3-ea39-363c-13c9-e2564b5eb1ea@arm.com> Date: Fri, 1 Oct 2021 10:26:50 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <11de6dd1-e7eb-044c-a871-bfcca3e60884@arm.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210930_215549_410932_AE88064C X-CRM114-Status: GOOD ( 30.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiA5LzI4LzIxIDQ6MDIgUE0sIFN1enVraSBLIFBvdWxvc2Ugd3JvdGU6Cj4gT24gMjMvMDkv MjAyMSAwNDoxNSwgQW5zaHVtYW4gS2hhbmR1YWwgd3JvdGU6Cj4+Cj4+Cj4+IE9uIDkvMjEvMjEg NzoxMSBQTSwgU3V6dWtpIEsgUG91bG9zZSB3cm90ZToKPj4+IFRSQkUgaW1wbGVtZW50YXRpb25z IGFmZmVjdGVkIGJ5IEFybSBlcnJhdHVtICgyMjUzMTM4IG9yIDIyMjQ0ODkpLCBjb3VsZAo+Pj4g d3JpdGUgdG8gdGhlIG5leHQgYWRkcmVzcyBhZnRlciB0aGUgVFJCTElNSVRSLkxJTUlULCBpbnN0 ZWFkIG9mIHdyYXBwaW5nCj4+PiB0byB0aGUgVFJCQkFTRVIuIFRoaXMgaW1wbGllcyB0aGF0IHRo ZSBUUkJFIGNvdWxkIHBvdGVudGlhbGx5IGNvcnJ1cHQgOgo+Pj4KPj4+IMKgwqAgLSBBIHBhZ2Ug dXNlZCBieSB0aGUgcmVzdCBvZiB0aGUga2VybmVsL3VzZXIgKGlmIHRoZSBMSU1JVCA9IGVuZCBv Zgo+Pj4gwqDCoMKgwqAgcGVyZiByaW5nIGJ1ZmZlcikKPj4+IMKgwqAgLSBBIHBhZ2Ugd2l0aGlu IHRoZSByaW5nIGJ1ZmZlciwgYnV0IG91dHNpZGUgdGhlIGRyaXZlcidzIHJhbmdlLgo+Pj4gwqDC oMKgwqAgW2hlYWQsIGhlYWQgKyBzaXplXS4gVGhpcyBtYXkgY29udGFpbiBzb21lIHRyYWNlIGRh dGEsIG1heSBiZQo+Pj4gwqDCoMKgwqAgY29uc3VtZWQgYnkgdGhlIHVzZXJzcGFjZS4KPj4+Cj4+ PiBXZSB3b3JrYXJvdW5kIHRoaXMgZXJyYXR1bSBieSA6Cj4+PiDCoMKgIC0gTWFraW5nIHN1cmUg dGhhdCB0aGVyZSBpcyBhdCBsZWFzdCBhbiBleHRyYSBQQUdFIHNwYWNlIGxlZnQgaW4gdGhlCj4+ PiDCoMKgwqDCoCBUUkJFJ3MgcmFuZ2UgdGhhbiB3ZSBub3JtYWxseSBhc3NpZ24uIFRoaXMgd2ls bCBiZSBhZGRpdGlvbmFsIHRvIG90aGVyCj4+PiDCoMKgwqDCoCByZXN0cmljdGlvbnMgKGUuZywg dGhlIFRSQkUgYWxpZ25tZW50IGZvciB3b3JraW5nIGFyb3VuZAo+Pj4gwqDCoMKgwqAgVFJCRV9X T1JLQVJPVU5EX09WRVJXUklURV9JTl9GSUxMX01PREUsIHdoZXJlIHRoZXJlIGlzIGEgbWluaW11 bSBvZiBQQUdFX1NJWkUuCj4+PiDCoMKgwqDCoCBUaHVzIHdlIHdvdWxkIGhhdmUgMiAqIFBBR0Vf U0laRSkKPj4+Cj4+PiDCoMKgIC0gQWRqdXN0IHRoZSBMSU1JVCB0byBsZWF2ZSB0aGUgbGFzdCBQ QUdFX1NJWkUgb3V0IG9mIHRoZSBUUkJFJ3MgYWxsb3dlZAo+Pj4gwqDCoMKgwqAgcmFuZ2UgKGku ZSwgVFJCRUJBU0VSLi4uVFJCTElNSVRSLkxJTUlUKSwgYnkgOgo+Pj4KPj4+IMKgwqDCoMKgwqDC oMKgwqAgVFJCTElNSVRSLkxJTUlUIC09IFBBR0VfU0laRQo+Pj4KPj4+IENjOiBBbnNodW1hbiBL aGFuZHVhbCA8YW5zaHVtYW4ua2hhbmR1YWxAYXJtLmNvbT4KPj4+IENjOiBNYXRoaWV1IFBvaXJp ZXIgPG1hdGhpZXUucG9pcmllckBsaW5hcm8ub3JnPgo+Pj4gQ2M6IE1pa2UgTGVhY2ggPG1pa2Uu bGVhY2hAbGluYXJvLm9yZz4KPj4+IENjOiBMZW8gWWFuIDxsZW8ueWFuQGxpbmFyby5vcmc+Cj4+ PiBTaWduZWQtb2ZmLWJ5OiBTdXp1a2kgSyBQb3Vsb3NlIDxzdXp1a2kucG91bG9zZUBhcm0uY29t Pgo+Pj4gLS0tCj4+PiDCoCBkcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXRy YmUuYyB8IDU5ICsrKysrKysrKysrKysrKysrKystCj4+PiDCoCAxIGZpbGUgY2hhbmdlZCwgNTcg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVzaWdodC10cmJlLmMgYi9kcml2ZXJzL2h3dHJhY2lu Zy9jb3Jlc2lnaHQvY29yZXNpZ2h0LXRyYmUuYwo+Pj4gaW5kZXggMDJmOWUwMGUyMDkxLi5lYTkw NzM0NTM1NGMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2h3dHJhY2luZy9jb3Jlc2lnaHQvY29y ZXNpZ2h0LXRyYmUuYwo+Pj4gKysrIGIvZHJpdmVycy9od3RyYWNpbmcvY29yZXNpZ2h0L2NvcmVz aWdodC10cmJlLmMKPj4+IEBAIC04Niw3ICs4Niw4IEBAIHN0cnVjdCB0cmJlX2J1ZiB7Cj4+PiDC oMKgICogYWZmZWN0cyB0aGUgZ2l2ZW4gaW5zdGFuY2Ugb2YgdGhlIFRSQkUuCj4+PiDCoMKgICov Cj4+PiDCoCAjZGVmaW5lIFRSQkVfV09SS0FST1VORF9PVkVSV1JJVEVfRklMTF9NT0RFwqDCoMKg IDAKPj4+IC0jZGVmaW5lIFRSQkVfRVJSQVRBX01BWMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAxCj4+PiArI2RlZmluZSBUUkJFX1dPUktBUk9VTkRfV1JJVEVfT1VUX09GX1JBTkdFwqDC oMKgIDEKPj4+ICsjZGVmaW5lIFRSQkVfRVJSQVRBX01BWMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAyCj4+PiDCoCDCoCAvKgo+Pj4gwqDCoCAqIFNhZmUgbGltaXQgZm9yIHRoZSBudW1i ZXIgb2YgYnl0ZXMgdGhhdCBtYXkgYmUgb3ZlcndyaXR0ZW4KPj4+IEBAIC05Niw2ICs5Nyw3IEBA IHN0cnVjdCB0cmJlX2J1ZiB7Cj4+PiDCoCDCoCBzdGF0aWMgdW5zaWduZWQgbG9uZyB0cmJlX2Vy cmF0YV9jcHVjYXBzW1RSQkVfRVJSQVRBX01BWF0gPSB7Cj4+PiDCoMKgwqDCoMKgIFtUUkJFX1dP UktBUk9VTkRfT1ZFUldSSVRFX0ZJTExfTU9ERV0gPSBBUk02NF9XT1JLQVJPVU5EX1RSQkVfT1ZF UldSSVRFX0ZJTExfTU9ERSwKPj4+ICvCoMKgwqAgW1RSQkVfV09SS0FST1VORF9XUklURV9PVVRf T0ZfUkFOR0VdID0gQVJNNjRfV09SS0FST1VORF9UUkJFX1dSSVRFX09VVF9PRl9SQU5HRSwKPj4+ IMKgIH07Cj4+PiDCoCDCoCAvKgo+Pj4gQEAgLTI3OSw3ICsyODEsMjAgQEAgdHJiZV9oYW5kbGVf dG9fY3B1ZGF0YShzdHJ1Y3QgcGVyZl9vdXRwdXRfaGFuZGxlICpoYW5kbGUpCj4+PiDCoCDCoCBz dGF0aWMgdTY0IHRyYmVfbWluX3RyYWNlX2J1Zl9zaXplKHN0cnVjdCBwZXJmX291dHB1dF9oYW5k bGUgKmhhbmRsZSkKPj4+IMKgIHsKPj4+IC3CoMKgwqAgcmV0dXJuIFRSQkVfVFJBQ0VfTUlOX0JV Rl9TSVpFOwo+Pj4gK8KgwqDCoCB1NjQgc2l6ZSA9IFRSQkVfVFJBQ0VfTUlOX0JVRl9TSVpFOwo+ Pj4gK8KgwqDCoCBzdHJ1Y3QgdHJiZV9jcHVkYXRhICpjcHVkYXRhID0gdHJiZV9oYW5kbGVfdG9f Y3B1ZGF0YShoYW5kbGUpOwo+Pj4gKwo+Pj4gK8KgwqDCoCAvKgo+Pj4gK8KgwqDCoMKgICogV2hl biB0aGUgVFJCRSBpcyBhZmZlY3RlZCBieSBhbiBlcnJhdHVtIHRoYXQgY291bGQgbWFrZSBpdAo+ Pj4gK8KgwqDCoMKgICogd3JpdGUgdG8gdGhlIG5leHQgInZpcnR1YWxseSBhZGRyZXNzZWQiIHBh Z2UgYmV5b25kIHRoZSBMSU1JVC4KPj4KPj4gV2hhdCBpZiB0aGUgbmV4dCAidmlydHVhbGx5IGFk ZHJlc3NlZCIgcGFnZSBpcyBqdXN0IGJsb2NrZWQgZnJvbSBmdXR1cmUKPj4gdXNhZ2UgaW4gdGhl IGtlcm5lbCBhbmQgbmV2ZXIgcmVhbGx5IGdldHMgbWFwcGVkIGludG8gYSBwaHlzaWNhbCBwYWdl ID8KPiAKPiBUaGF0IGlzIHRoZSBjYXNlIHRvZGF5IGZvciB2bWFwKCksIHRoZSBlbmQgb2YgdGhl IHZtX2FyZWEgaGFzIGEgZ3VhcmQKPiBwYWdlLiBCdXQgdGhhdCBpbXBsaWVzIHdoZW4gdGhlIGVy cmF0dW0gaXMgdHJpZ2dlcmVkLCB0aGUgVFJCRQo+IGVuY291bnRlcnMgYSBmYXVsdCBhbmQgd2Ug bmVlZCB0byBoYW5kbGUgdGhhdCBpbiB0aGUgZHJpdmVyLiBUaGlzIHdvcmtzCj4gZm9yICJlbmQi IG9mIHRoZSByaW5nIGJ1ZmZlci4gQnV0IG5vdCB3aGVuIHRoZSBMSU1JVCBpcyBpbiB0aGUgbWlk ZGxlCj4gb2YgdGhlIHJpbmcgYnVmZmVyLgo+IAo+PiBJbiB0aGF0IGNhc2UgaXQgd291bGQgYmUg Z3VhcmFudGVlZCB0aGF0LCBhIG5leHQgInZpcnR1YWxseSBhZGRyZXNzZWQiCj4+IHBhZ2Ugd291 bGQgbm90IGV2ZW4gZXhpc3QgYWZ0ZXIgdGhlIExJTUlUIHBvaW50ZXIgYW5kIGhlbmNlIHRoZSBl cnJhdGEKPj4gd291bGQgbm90IGJlIHRyaWdnZXJlZC4gU29tZXRoaW5nIGxpa2UgdGhlcmUgaXMg YSB2aXJ0dWFsIG1hcHBpbmcgY2xpZmYKPj4gcmlnaHQgYWZ0ZXIgdGhlIExJTUlUIHBvaW50ZXIg ZnJvbSB0aGUgTU1VIHBlcnNwZWN0aXZlLgo+Pgo+PiBBbHRob3VnaCBpdCBtaWdodCBiZSBiaXQg dHJpY2t5LiBDdXJyZW50bHkgdGhlIGVudGlyZSByaW5nIGJ1ZmZlciBnZXRzCj4+IG1hcHBlZCBh dCBvbmNlIHdpdGggdm1hcCgpIGluIGFybV90cmJlX2FsbG9jX2J1ZmZlcigpLiBKdXN0IHRvIGFj aGlldmUKPj4gdGhlIGFib3ZlIHNvbHV0aW9uLCBlYWNoIGNvbXB1dGF0aW9uIG9mIHRoZSBMSU1J VCBwb2ludGVyIG5lZWRzIHRvIGJlCj4+IGZvbGxvd2VkIGJ5IGEgdGVtcG9yYXJ5IHVubWFwcGlu ZyBvZiBuZXh0IHZpcnR1YWwgcGFnZSBmcm9tIGV4aXN0aW5nCj4+IHZtYXAoKSBidWZmZXIuIFN1 YnNlcXVlbnRseSBpdCBjb3VsZCBiZSBtYXBwZWQgYmFjayBhcyB0cmJlX2J1Zi0+cGFnZXMKPj4g YWx3YXlzIGNvbnRhaW5zIGFsbCB0aGUgcGh5c2ljYWwgcGFnZXMgZnJvbSB0aGUgcGVyZiByaW5n IGJ1ZmZlci4KPiAKPiBJdCBpcyBtdWNoIGVhc2llciB0byBsZWF2ZSBhIHBhZ2UgYXNpZGUgdGhh biB0byBkbyB0aGlzIG1hcCwgdW5tYXAKPiBkYW5jZSwgd2hpY2ggbWlnaHQgZXZlbiBjaGFuZ2Ug dGhlIFZBIGFkZHJlc3MgeW91IGdldCBhbmQgdGh1cyBpdAo+IGNvbXBsaWNhdGVzIHRoZSBUUkJF IGRyaXZlciBpbiBnZW5lcmFsLiBJIGJlbGlldmUgdGhpcyBpcyBtdWNoCj4gc2ltcGxlciBhbmQg d2UgY2FuIHJlYXNvbiBhYm91dCB0aGUgY29kZSBiZXR0ZXIuIEFuZCBhbGwgZmF1bHRzCj4gYXJl IHN0aWxsIGlsbGVnYWwgZm9yIHRoZSBkcml2ZXIsIHdoaWNoIGhlbHBzIHVzIHRvIGRldGVjdCBh bnkKPiBvdGhlciBpc3N1ZXMgaW4gdGhlIFRSQkUuCgpBZ3JlZWQsIGFzIEkgaGFkIG1lbnRpb25l ZCBlYXJsaWVyIHRoaXMgd291bGQgaGF2ZSBiZWVuIGFueXdheXMgYml0CmNvbXBsaWNhdGVkLiBO b3QgY2hhbmdpbmcgdGhlIHZpcnR1YWwgYWRkcmVzcyBmb3IgdGhlIGVudGlyZSBidWZmZXIKYW5k IHRvIHRyZWF0IGVhY2ggZmF1bHQgaW5zaWRlIHRoZSBkcml2ZXIgYXMgaWxsZWdhbCwgbWFrZXMg Y3VycmVudAppbXBsZW1lbnRhdGlvbiBtdWNoIHNpbXBsZXIgYW5kIGVhc2llciB0byByZWFzb24g YWJvdXQuIFNvIHByb2JhYmx5CmRpc2NhcmRpbmcgdGhvc2UgcHJvcGVydGllcyBtaWdodCBub3Qg YmUgYSBnb29kIGlkZWEgYWZ0ZXIgYWxsLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8EEE3C433F5 for ; Fri, 1 Oct 2021 04:55:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 67E8761A60 for ; Fri, 1 Oct 2021 04:55:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351912AbhJAE5c (ORCPT ); Fri, 1 Oct 2021 00:57:32 -0400 Received: from foss.arm.com ([217.140.110.172]:34824 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241515AbhJAE5a (ORCPT ); Fri, 1 Oct 2021 00:57:30 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2C655106F; Thu, 30 Sep 2021 21:55:47 -0700 (PDT) Received: from [10.163.74.5] (unknown [10.163.74.5]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5ABD93F718; Thu, 30 Sep 2021 21:55:43 -0700 (PDT) Subject: Re: [PATCH v2 16/17] coresight: trbe: Work around write to out of range To: Suzuki K Poulose , linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org, maz@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, james.morse@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, mathieu.poirier@linaro.org, will@kernel.org, lcherian@marvell.com, coresight@lists.linaro.org References: <20210921134121.2423546-1-suzuki.poulose@arm.com> <20210921134121.2423546-17-suzuki.poulose@arm.com> <6ecb0391-1525-8d65-93ba-b66424dadfd3@arm.com> <11de6dd1-e7eb-044c-a871-bfcca3e60884@arm.com> From: Anshuman Khandual Message-ID: <1436c9c3-ea39-363c-13c9-e2564b5eb1ea@arm.com> Date: Fri, 1 Oct 2021 10:26:50 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <11de6dd1-e7eb-044c-a871-bfcca3e60884@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 9/28/21 4:02 PM, Suzuki K Poulose wrote: > On 23/09/2021 04:15, Anshuman Khandual wrote: >> >> >> On 9/21/21 7:11 PM, Suzuki K Poulose wrote: >>> TRBE implementations affected by Arm erratum (2253138 or 2224489), could >>> write to the next address after the TRBLIMITR.LIMIT, instead of wrapping >>> to the TRBBASER. This implies that the TRBE could potentially corrupt : >>> >>>    - A page used by the rest of the kernel/user (if the LIMIT = end of >>>      perf ring buffer) >>>    - A page within the ring buffer, but outside the driver's range. >>>      [head, head + size]. This may contain some trace data, may be >>>      consumed by the userspace. >>> >>> We workaround this erratum by : >>>    - Making sure that there is at least an extra PAGE space left in the >>>      TRBE's range than we normally assign. This will be additional to other >>>      restrictions (e.g, the TRBE alignment for working around >>>      TRBE_WORKAROUND_OVERWRITE_IN_FILL_MODE, where there is a minimum of PAGE_SIZE. >>>      Thus we would have 2 * PAGE_SIZE) >>> >>>    - Adjust the LIMIT to leave the last PAGE_SIZE out of the TRBE's allowed >>>      range (i.e, TRBEBASER...TRBLIMITR.LIMIT), by : >>> >>>          TRBLIMITR.LIMIT -= PAGE_SIZE >>> >>> Cc: Anshuman Khandual >>> Cc: Mathieu Poirier >>> Cc: Mike Leach >>> Cc: Leo Yan >>> Signed-off-by: Suzuki K Poulose >>> --- >>>   drivers/hwtracing/coresight/coresight-trbe.c | 59 +++++++++++++++++++- >>>   1 file changed, 57 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/hwtracing/coresight/coresight-trbe.c b/drivers/hwtracing/coresight/coresight-trbe.c >>> index 02f9e00e2091..ea907345354c 100644 >>> --- a/drivers/hwtracing/coresight/coresight-trbe.c >>> +++ b/drivers/hwtracing/coresight/coresight-trbe.c >>> @@ -86,7 +86,8 @@ struct trbe_buf { >>>    * affects the given instance of the TRBE. >>>    */ >>>   #define TRBE_WORKAROUND_OVERWRITE_FILL_MODE    0 >>> -#define TRBE_ERRATA_MAX                1 >>> +#define TRBE_WORKAROUND_WRITE_OUT_OF_RANGE    1 >>> +#define TRBE_ERRATA_MAX                2 >>>     /* >>>    * Safe limit for the number of bytes that may be overwritten >>> @@ -96,6 +97,7 @@ struct trbe_buf { >>>     static unsigned long trbe_errata_cpucaps[TRBE_ERRATA_MAX] = { >>>       [TRBE_WORKAROUND_OVERWRITE_FILL_MODE] = ARM64_WORKAROUND_TRBE_OVERWRITE_FILL_MODE, >>> +    [TRBE_WORKAROUND_WRITE_OUT_OF_RANGE] = ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE, >>>   }; >>>     /* >>> @@ -279,7 +281,20 @@ trbe_handle_to_cpudata(struct perf_output_handle *handle) >>>     static u64 trbe_min_trace_buf_size(struct perf_output_handle *handle) >>>   { >>> -    return TRBE_TRACE_MIN_BUF_SIZE; >>> +    u64 size = TRBE_TRACE_MIN_BUF_SIZE; >>> +    struct trbe_cpudata *cpudata = trbe_handle_to_cpudata(handle); >>> + >>> +    /* >>> +     * When the TRBE is affected by an erratum that could make it >>> +     * write to the next "virtually addressed" page beyond the LIMIT. >> >> What if the next "virtually addressed" page is just blocked from future >> usage in the kernel and never really gets mapped into a physical page ? > > That is the case today for vmap(), the end of the vm_area has a guard > page. But that implies when the erratum is triggered, the TRBE > encounters a fault and we need to handle that in the driver. This works > for "end" of the ring buffer. But not when the LIMIT is in the middle > of the ring buffer. > >> In that case it would be guaranteed that, a next "virtually addressed" >> page would not even exist after the LIMIT pointer and hence the errata >> would not be triggered. Something like there is a virtual mapping cliff >> right after the LIMIT pointer from the MMU perspective. >> >> Although it might be bit tricky. Currently the entire ring buffer gets >> mapped at once with vmap() in arm_trbe_alloc_buffer(). Just to achieve >> the above solution, each computation of the LIMIT pointer needs to be >> followed by a temporary unmapping of next virtual page from existing >> vmap() buffer. Subsequently it could be mapped back as trbe_buf->pages >> always contains all the physical pages from the perf ring buffer. > > It is much easier to leave a page aside than to do this map, unmap > dance, which might even change the VA address you get and thus it > complicates the TRBE driver in general. I believe this is much > simpler and we can reason about the code better. And all faults > are still illegal for the driver, which helps us to detect any > other issues in the TRBE. Agreed, as I had mentioned earlier this would have been anyways bit complicated. Not changing the virtual address for the entire buffer and to treat each fault inside the driver as illegal, makes current implementation much simpler and easier to reason about. So probably discarding those properties might not be a good idea after all.