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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 2E6B9CDB47E for ; Wed, 15 Nov 2023 15:05:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Sa5eI7s6KlUE6OtoX7ptQSrKf7CXMkpd9eUKdD9p1Do=; b=FAn51B7qQs7BnP ZXqd8OH6hHMnh3e3iGTdoPoYCyCmFflqMmL/vHV3xbZljBVo6nOh6f+WmBSQV6S6s9ExtOeaO0vJ6 Y7N2ImFJEbGHYytKoxlYrvEUg4j0WK1n+4lcS8qEatiLf1bm0QkZkp/KU1Ss/8YsSYAi0Wuphsirm PaYQgtKt3O9NoNdcOwWXSVwXXuie7vLn48sgUib2z8iQzehR1LIZfjsPHlO3xttnQprtxst9G9lo+ dN+qt6ca7vvbG6SAQp5gjFEhiLWdKJiA47fLCMGnbCZp/hHsPmH74WluBye6t27VAgj6rQmPIWwVq eMmylFaUrIUnwiwIPoxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3HRx-0017VC-1P; Wed, 15 Nov 2023 15:05:05 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3HRt-0017Tk-2P for linux-arm-kernel@lists.infradead.org; Wed, 15 Nov 2023 15:05:03 +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 F3775C15; Wed, 15 Nov 2023 07:05:42 -0800 (PST) Received: from [10.57.83.164] (unknown [10.57.83.164]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 5755F3F641; Wed, 15 Nov 2023 07:04:55 -0800 (PST) Message-ID: <23944508-1054-4a31-b119-66f006cf10de@arm.com> Date: Wed, 15 Nov 2023 15:04:53 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/3] iommu/arm-smmu: introduction of ACTLR for custom prefetcher settings Content-Language: en-GB To: Bibek Kumar Patro , will@kernel.org, joro@8bytes.org, dmitry.baryshkov@linaro.org, a39.skl@gmail.com, konrad.dybcio@linaro.org, quic_pkondeti@quicinc.com, quic_molvera@quicinc.com Cc: linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, qipl.kernel.upstream@quicinc.com References: <20231114135654.30475-1-quic_bibekkum@quicinc.com> <20231114135654.30475-2-quic_bibekkum@quicinc.com> <372885ab-b24d-44ae-afb8-76755bcd6e21@arm.com> <2a65a498-6a0f-445c-9c00-9e9e4fbc3a98@quicinc.com> From: Robin Murphy In-Reply-To: <2a65a498-6a0f-445c-9c00-9e9e4fbc3a98@quicinc.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231115_070501_890229_D2DB665A X-CRM114-Status: GOOD ( 32.83 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMy0xMS0xNSAxMjozMiBwbSwgQmliZWsgS3VtYXIgUGF0cm8gd3JvdGU6Cj4gCj4gCj4g T24gMTEvMTQvMjAyMyAxMDoyNSBQTSwgUm9iaW4gTXVycGh5IHdyb3RlOgo+PiBPbiAxNC8xMS8y MDIzIDE6NTYgcG0sIEJpYmVrIEt1bWFyIFBhdHJvIHdyb3RlOgo+Pj4gQ3VycmVudGx5IGluIFF1 YWxjb21twqAgU29DcyB0aGUgZGVmYXVsdCBwcmVmZXRjaCBpcyBzZXQgdG8gMSB3aGljaCAKPj4+ IGFsbG93cwo+Pj4gdGhlIFRMQiB0byBmZXRjaCBqdXN0IHRoZSBuZXh0IHBhZ2UgdGFibGUuIE1N VS01MDAgZmVhdHVyZXMgQUNUTFIKPj4+IHJlZ2lzdGVyIHdoaWNoIGlzIGltcGxlbWVudGF0aW9u IGRlZmluZWQgYW5kIGlzIHVzZWQgZm9yIFF1YWxjb21tIFNvQ3MKPj4+IHRvIGhhdmUgYSBwcmVm ZXRjaCBzZXR0aW5nIG9mIDEvMy83LzE1IGVuYWJsaW5nIFRMQiB0byBwcmVmZXRjaAo+Pj4gdGhl IG5leHQgc2V0IG9mIHBhZ2UgdGFibGVzIGFjY29yZGluZ2x5IGFsbG93aW5nIGZvciBmYXN0ZXIg Cj4+PiB0cmFuc2xhdGlvbnMuCj4+Pgo+Pj4gQUNUTFIgdmFsdWUgaXMgdW5pcXVlIGZvciBlYWNo IFNNUiAoU3RyZWFtIG1hdGNoaW5nIHJlZ2lzdGVyKSBhbmQgc3RvcmVkCj4+PiBpbiBhIHByZS1w b3B1bGF0ZWQgdGFibGUuIFRoaXMgdmFsdWUgaXMgc2V0IHRvIHRoZSByZWdpc3RlciBkdXJpbmcK Pj4+IGNvbnRleHQgYmFuayBpbml0aWFsaXNhdGlvbi4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBC aWJlayBLdW1hciBQYXRybyA8cXVpY19iaWJla2t1bUBxdWljaW5jLmNvbT4KPj4+IC0tLQo+Pj4g wqAgZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUvYXJtLXNtbXUtcWNvbS5jIHwgNDEgKysrKysr KysrKysrKysrKysrKysrKwo+Pj4gwqAgZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUvYXJtLXNt bXUtcWNvbS5oIHzCoCAyICsrCj4+PiDCoCBkcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9hcm0t c21tdS5jwqDCoMKgwqDCoCB8wqAgNSArLS0KPj4+IMKgIGRyaXZlcnMvaW9tbXUvYXJtL2FybS1z bW11L2FybS1zbW11LmjCoMKgwqDCoMKgIHzCoCA1ICsrKwo+Pj4gwqAgNCBmaWxlcyBjaGFuZ2Vk LCA1MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9hcm0tc21tdS1xY29tLmMgCj4+PiBiL2RyaXZlcnMv aW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LXFjb20uYwo+Pj4gaW5kZXggNTQ5YWU0ZGJhM2E2 Li41NzhjNjYyYzdjMzAgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21t dS9hcm0tc21tdS1xY29tLmMKPj4+ICsrKyBiL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2Fy bS1zbW11LXFjb20uYwo+Pj4gQEAgLTE0LDYgKzE0LDE3IEBACj4+Pgo+Pj4gwqAgI2RlZmluZSBR Q09NX0RVTU1ZX1ZBTMKgwqDCoCAtMQo+Pj4KPj4+ICtzdHJ1Y3QgYWN0bHJfY29uZmlnIHsKPj4+ ICvCoMKgwqAgY29uc3Qgc3RydWN0IGFjdGxyX2RhdGEgKmFkYXRhOwo+Pj4gK8KgwqDCoCBzaXpl X3Qgc2l6ZTsKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0cnVjdCBhY3Rscl9kYXRhIHsKPj4+ICvCoMKg wqAgdTE2IHNpZDsKPj4+ICvCoMKgwqAgdTE2IG1hc2s7Cj4+Cj4+IERvIHdlIG5lZWQgdG8gd29y cnkgYWJvdXQgbWFza3M/IElmIHlvdSdyZSBhbHJlYWR5IGFzc3VtaW5nIHRoYXQgYW55IAo+PiBT TVIgd2lsbCBiZSBwcm9ncmFtbWVkIHRvIG1hdGNoIGEgc3VwZXJzZXQgb2YgdGhlIGRhdGEgaGVy ZSwgc3VyZWx5IGEgCj4+IHNpbmdsZSB1bmlxdWUgSUQgcGVyIGRldmljZSB3b3VsZCBzdWZmaWNl Pwo+Pgo+IAo+IElmIHlvdSByZWZlciB0byB0aGUgYXJtX3NtbXVfc2V0X2FjdGxyIGJlbG93LCBt YXNrIHdvdWxkIGJlIG5lZWRlZCBhcyB3ZSAKPiB3b3VsZCBjaGVjayBmb3IgbWFzayBhbG9uZyB3 aXRoIHNpZCBhcyB3ZWxsIHdoaWxlIGFzc2lnbmluZyBhY3RsciAKPiBjb25maWd1cmF0aW9uLiBB bHNvIHdpdGggbWFzayBubyBvZiBhY3RsciBlbnRyaWVzIGNhbiBiZSByZWR1Y2VzIGFzCj4gd2l0 aCBvdXQgbWFzayB3ZSBoYXZlIHRvIGhhdmUgZW50cnkgZm9yIGVhY2ggc2lkLgoKQnV0IHdoeT8g QXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRoZSBkZXNpZ24gaW4gcGF0Y2ggIzIgaXMgdG8gaGF2ZSBh IApzaW5nbGUgZGF0YSBlbnRyeSBmb3IgZWFjaCBkaXN0aW5jdCBkZXZpY2UsIHNpbmNlIHlvdSdy ZSBleHBlY3RpbmcgdG8gCnNlZSBhIHNpbmdsZSBTTVIgcHJvZ3JhbW1lZCB0byBtYXRjaCBhdCBs ZWFzdCB0aGUgZnVsbCBpZC9tYXNrIHJhbmdlIG9mIAp0aGUgZW50cnkuIEhvd2V2ZXIgYW55IFNN UiB3aGljaCBtYXRjaGVzIHRoYXQgZnVsbCByYW5nZSB3aWxsIGJ5IApkZWZpbml0aW9uIGFsc28g bWF0Y2ggYW55IHNtYWxsZXIgc3Vic2V0IG9mIHRoYXQgcmFuZ2UgYXMgd2VsbCwgc28gd2UgCmNh biB1bmlxdWVseSBpZGVudGlmeSBhbnkgZGV2aWNlIGluIHRoaXMgY29udGV4dCBmcm9tIGp1c3Qg YW55ICpvbmUqIG9mIAppdHMgSURzLCB0aHVzIHdlIGNvdWxkIHN0b3JlIGxlc3MgZGF0YSBhbmQg aGF2ZSBzaW1wbGVyIG1hdGNoaW5nIGxvZ2ljLgoKPj4+ICvCoMKgwqAgdTMyIGFjdGxyOwo+Pj4g K307Cj4+PiArCj4+PiDCoCBzdGF0aWMgc3RydWN0IHFjb21fc21tdSAqdG9fcWNvbV9zbW11KHN0 cnVjdCBhcm1fc21tdV9kZXZpY2UgKnNtbXUpCj4+PiDCoCB7Cj4+PiDCoMKgwqDCoMKgIHJldHVy biBjb250YWluZXJfb2Yoc21tdSwgc3RydWN0IHFjb21fc21tdSwgc21tdSk7Cj4+PiBAQCAtMjYx LDkgKzI3MiwzNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAKPj4+IHFjb21f c21tdV9jbGllbnRfb2ZfbWF0Y2hbXSBfX21heWJlX3VudXNlZCA9IHsKPj4+IMKgwqDCoMKgwqAg eyB9Cj4+PiDCoCB9Owo+Pj4KPj4+ICtzdGF0aWMgdm9pZCBhcm1fc21tdV9zZXRfYWN0bHIoc3Ry dWN0IGFybV9zbW11X2RldmljZSAqc21tdSwgaW50IGlkeCwKPj4+ICvCoMKgwqDCoMKgwqDCoCBj b25zdCBzdHJ1Y3QgYWN0bHJfY29uZmlnICphY3RscmNmZykKPj4+ICt7Cj4+PiArwqDCoMKgIHN0 cnVjdCBhcm1fc21tdV9zbXIgKnNtciA9IHNtbXUtPnNtcnM7Cj4+PiArwqDCoMKgIGludCBpOwo+ Pj4gK8KgwqDCoCB1MTYgaWQ7Cj4+PiArwqDCoMKgIHUxNiBtYXNrOwo+Pj4gKwo+Pj4gK8KgwqDC oCBmb3IgKGkgPSAwOyBpIDwgYWN0bHJjZmctPnNpemU7ICsraSkgewo+Pj4gK8KgwqDCoMKgwqDC oMKgIGlkID0gYWN0bHJjZmctPmFkYXRhW2ldLnNpZDsKPj4+ICvCoMKgwqDCoMKgwqDCoCBtYXNr ID0gYWN0bHJjZmctPmFkYXRhW2ldLm1hc2s7Cj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKCFzbXJf aXNfc3Vic2V0KCpzbXIsIGlkLCBtYXNrKSkKPj4KPj4gSG93IHdlbGwgaGF2ZSB5b3UgdGVzdGVk IHRoaXM/IDspCj4+Cj4gCj4gV2VsbCwgdGhpcyBsb2dpYyBoYXMgd29ya2VkIHByZXR0eSBnb29k IGZvciB1cyB0aWxsIG5vdyBpbiBvdXIKPiBkb3duc3RyZWFtIGltcGxlbWVudGF0aW9uLiA6KSAo RHVyaW5nIHRlc3RpbmcgYXMgd2VsbCB0aGlzIGxvZ2ljIGhlbHBlZCAKPiB0byBiZXR0ZXIgbWF0 Y2ggdGhlIFNNUnMgaW5zdGVhZCBvZiBtYW51YWxseSBtYXRoY2luZyB0aGUgbWFzayBhbmQgU0lE IAo+IHdoaWNoIG1pc3NlZCBzb21lIFNJRHMpCj4gQWxzbyB0aGlzIGlzIGFscmVhZHkgYmVpbmcg dXNlZCB0byBhcm1fc21tdV9maW5kX3NtZSBoZW5jZSBwYWNrYWdlZCB0aGlzCj4gbG9naWMgaW4g YSB3cmFwcGVyIHRvIGJlIHVzZWQgaW4gb3RoZXIgcGxhY2VzIGFzIHdlbGwoaW5jbHVkaW5nIEFD VExSCj4gcmVnaXN0ZXIgc2V0dGluZyBjYXNlIGhlcmUuKQoKMSkgTG9vayBhdCB3aGF0IHlvdSdy ZSBtYXRjaGluZyB0aGUgaWQgYW5kIG1hc2sgdmFsdWVzICphZ2FpbnN0KgoKMikgTG9vayBhdCB0 aGUgcG9sYXJpdHkgb2YgdGhlIGNvbmRpdGlvbgoKMykgQ29uc2lkZXIgdGhlIG9sZCBzYXlpbmcg InR3byB3cm9uZ3MgZG9uJ3QgbWFrZSBhIHJpZ2h0IgoKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGFybV9zbW11X2NiX3dyaXRlKHNtbXUsIGlkeCwgQVJNX1NNTVVfQ0JfQUNUTFIsCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWN0bHJjZmctPmFkYXRhW2ld LmFjdGxyKTsKPj4+ICvCoMKgwqAgfQo+Pj4gK30KPj4+ICsKPj4+IMKgIHN0YXRpYyBpbnQgcWNv bV9zbW11X2luaXRfY29udGV4dChzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2RvbWFpbiwK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW9fcGd0YWJsZV9jZmcgKnBndGJsX2NmZywg c3RydWN0IGRldmljZSAqZGV2KQo+Pj4gwqAgewo+Pj4gK8KgwqDCoCBzdHJ1Y3QgYXJtX3NtbXVf ZGV2aWNlICpzbW11ID0gc21tdV9kb21haW4tPnNtbXU7Cj4+PiArwqDCoMKgIHN0cnVjdCBxY29t X3NtbXUgKnFzbW11ID0gdG9fcWNvbV9zbW11KHNtbXUpOwo+Pj4gK8KgwqDCoCBjb25zdCBzdHJ1 Y3QgYWN0bHJfY29uZmlnICphY3RscmNmZzsKPj4+ICvCoMKgwqAgaW50IGlkeCA9IHNtbXVfZG9t YWluLT5jZmcuY2JuZHg7Cj4+PiArCj4+PiArwqDCoMKgIGlmIChxc21tdS0+YWN0bHJjZmcpIHsK Pj4+ICvCoMKgwqDCoMKgwqDCoCBhY3RscmNmZyA9IHFzbW11LT5hY3RscmNmZzsKPj4+ICvCoMKg wqDCoMKgwqDCoCBhcm1fc21tdV9zZXRfYWN0bHIoc21tdSwgaWR4LCBhY3RscmNmZyk7Cj4+PiAr wqDCoMKgIH0KPj4+ICsKPj4+IMKgwqDCoMKgwqAgc21tdV9kb21haW4tPmNmZy5mbHVzaF93YWxr X3ByZWZlcl90bGJpYXNpZCA9IHRydWU7Cj4+Pgo+Pj4gwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+ IEBAIC00NjcsNiArNTA1LDkgQEAgc3RhdGljIHN0cnVjdCBhcm1fc21tdV9kZXZpY2UgCj4+PiAq cWNvbV9zbW11X2NyZWF0ZShzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpzbW11LAo+Pj4gwqDCoMKg wqDCoCBxc21tdS0+c21tdS5pbXBsID0gaW1wbDsKPj4+IMKgwqDCoMKgwqAgcXNtbXUtPmNmZyA9 IGRhdGEtPmNmZzsKPj4+Cj4+PiArwqDCoMKgIGlmIChkYXRhLT5hY3RscmNmZyAmJiAoZGF0YS0+ YWN0bHJjZmctPnNpemUpKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHFzbW11LT5hY3RscmNmZyA9IGRh dGEtPmFjdGxyY2ZnOwo+Pgo+PiBEbyB3ZSByZWFsbHkgbmVlZCB0byByZXBsaWNhdGUgbXVsdGlw bGUgcGFydHMgb2YgdGhlIGRhdGEsIG9yIHdvdWxkIGl0IAo+PiBiZSBzZW5zaWJsZSB0byBqdXN0 IHJlcGxhY2UgcXNtbXUtPmNmZyB3aXRoIHFzbW11LT5kYXRhIGFuZCBoYW5kbGUgdGhlIAo+PiBm dXJ0aGVyIGRlcmVmZXJlbmNlcyBpbiB0aGUgcGxhY2VzIHRoYXQgd2FudCB0aGVtPwo+Pgo+Pj4g Kwo+Pj4gwqDCoMKgwqDCoCByZXR1cm4gJnFzbW11LT5zbW11Owo+Pj4gwqAgfQo+Pj4KPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS9hcm0tc21tdS1xY29tLmggCj4+ PiBiL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LXFjb20uaAo+Pj4gaW5kZXgg NTkzOTEwNTY3Yjg4Li40YjY4NjI3MTUwNzAgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2lvbW11 L2FybS9hcm0tc21tdS9hcm0tc21tdS1xY29tLmgKPj4+ICsrKyBiL2RyaXZlcnMvaW9tbXUvYXJt L2FybS1zbW11L2FybS1zbW11LXFjb20uaAo+Pj4gQEAgLTksNiArOSw3IEBACj4+PiDCoCBzdHJ1 Y3QgcWNvbV9zbW11IHsKPj4+IMKgwqDCoMKgwqAgc3RydWN0IGFybV9zbW11X2RldmljZSBzbW11 Owo+Pj4gwqDCoMKgwqDCoCBjb25zdCBzdHJ1Y3QgcWNvbV9zbW11X2NvbmZpZyAqY2ZnOwo+Pj4g K8KgwqDCoCBjb25zdCBzdHJ1Y3QgYWN0bHJfY29uZmlnICphY3RscmNmZzsKPj4+IMKgwqDCoMKg wqAgYm9vbCBieXBhc3NfcXVpcms7Cj4+PiDCoMKgwqDCoMKgIHU4IGJ5cGFzc19jYm5keDsKPj4+ IMKgwqDCoMKgwqAgdTMyIHN0YWxsX2VuYWJsZWQ7Cj4+PiBAQCAtMjUsNiArMjYsNyBAQCBzdHJ1 Y3QgcWNvbV9zbW11X2NvbmZpZyB7Cj4+PiDCoCB9Owo+Pj4KPj4+IMKgIHN0cnVjdCBxY29tX3Nt bXVfbWF0Y2hfZGF0YSB7Cj4+PiArwqDCoMKgIGNvbnN0IHN0cnVjdCBhY3Rscl9jb25maWcgKmFj dGxyY2ZnOwo+Pj4gwqDCoMKgwqDCoCBjb25zdCBzdHJ1Y3QgcWNvbV9zbW11X2NvbmZpZyAqY2Zn Owo+Pj4gwqDCoMKgwqDCoCBjb25zdCBzdHJ1Y3QgYXJtX3NtbXVfaW1wbCAqaW1wbDsKPj4+IMKg wqDCoMKgwqAgY29uc3Qgc3RydWN0IGFybV9zbW11X2ltcGwgKmFkcmVub19pbXBsOwo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LmMgCj4+PiBiL2Ry aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LmMKPj4+IGluZGV4IGQ2ZDFhMmE1NWNj MC4uOGU0ZmFmMDE1Mjg2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUvYXJtLXNtbXUuYwo+Pj4gKysrIGIvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUvYXJtLXNt bXUuYwo+Pj4gQEAgLTk5MCw5ICs5OTAsMTAgQEAgc3RhdGljIGludCBhcm1fc21tdV9maW5kX3Nt ZShzdHJ1Y3QgCj4+PiBhcm1fc21tdV9kZXZpY2UgKnNtbXUsIHUxNiBpZCwgdTE2IG1hc2spCj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGV4cGVjdCBzaW1wbHkgaWRlbnRpY2FsIGVudHJpZXMg Zm9yIHRoaXMgY2FzZSwgYnV0IHRoZXJlJ3MKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgICogbm8g aGFybSBpbiBhY2NvbW1vZGF0aW5nIHRoZSBnZW5lcmFsaXNhdGlvbi4KPj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgICovCj4+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKChtYXNrICYgc21yc1tpXS5tYXNr KSA9PSBtYXNrICYmCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAhKChpZCBeIHNtcnNbaV0u aWQpICYgfnNtcnNbaV0ubWFzaykpCj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHNtcl9p c19zdWJzZXQoc21yc1tpXSwgaWQsIG1hc2spKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0dXJuIGk7Cj4+PiArCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLyoKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgICogSWYgdGhlIG5ldyBlbnRyeSBoYXMgYW55IG90aGVyIG92ZXJsYXAgd2l0 aCBhbiBleGlzdGluZyAKPj4+IG9uZSwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgICogdGhvdWdo LCB0aGVuIHRoZXJlIGFsd2F5cyBleGlzdHMgYXQgbGVhc3Qgb25lIHN0cmVhbSBJRAo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LmggCj4+PiBiL2Ry aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11L2FybS1zbW11LmgKPj4+IGluZGV4IDcwM2ZkNTgxN2Vj MS4uYjE2MzhiYmM0MWQ0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUvYXJtLXNtbXUuaAo+Pj4gKysrIGIvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUvYXJtLXNt bXUuaAo+Pj4gQEAgLTUwMSw2ICs1MDEsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIGFybV9zbW11 X3dyaXRlcShzdHJ1Y3QgCj4+PiBhcm1fc21tdV9kZXZpY2UgKnNtbXUsIGludCBwYWdlLAo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgIHdyaXRlcV9yZWxheGVkKHZhbCwgYXJtX3NtbXVfcGFnZShzbW11 LCBwYWdlKSArIG9mZnNldCk7Cj4+PiDCoCB9Cj4+Pgo+Pj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBz bXJfaXNfc3Vic2V0KHN0cnVjdCBhcm1fc21tdV9zbXIgc21ycywgdTE2IGlkLCAKPj4+IHUxNiBt YXNrKQo+Pgo+PiBIbW0sIHRoYXQgbmFtZSByZWFkcyBhcyBpbXBseWluZyB0aGUgb3Bwb3NpdGUg b2Ygd2hhdCBpdCBhY3R1YWxseSAKPj4gdGVzdHMsIG5vdCB0byBtZW50aW9uIHRoYXQgcGFzc2lu ZyBzdHJ1Y3RzIGJ5IHZhbHVlIGlzIGEgYml0IGhvcnJpZCBhcyAKPj4gd2VsbCA6KAo+Pgo+IAo+ IEl0IG1pZ2h0IGJlIG9rYXkgdG8gbmFtZSBpdCBhcyBzdWJzZXRfb2Zfc21yKCkgdGhvdWdoLiBZ b3UgaGF2ZSBhbnkgCj4gb3RoZXIgbmFtaW5nIHN1Z2dlc3Rpb24gaW4gbWluZCB3aGljaCBjb3Vs ZCBjb3JyZWN0bHkgZGVzY3JpYmUgdGhlCj4gbG9naWM/CgpBcyBhYm92ZSBJIHRoaW5rIHRoZSBp ZGVhbCBhbnN3ZXIgaXMgdG8gYXZvaWQgdGhlIHJlYXNvbiBmb3IgZmFjdG9yaW5nIAppdCBvdXQg YXQgYWxsLCBieSB1c2luZyBhIHNpbXBsZXIgbWF0Y2hpbmcgcHJvY2VzcyB0byBiZWdpbiB3aXRo LgoKVGhhbmtzLApSb2Jpbi4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK