Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp272389ybm; Thu, 28 May 2020 02:20:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxZCV/DP46oLQkwM/K7mRzRnt2KaMcj9+0yutRA0GR1ervAoa64v7NIRZ+HtIA76I4OeqYn X-Received: by 2002:a05:6402:1d2d:: with SMTP id dh13mr1974317edb.169.1590657606133; Thu, 28 May 2020 02:20:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590657606; cv=none; d=google.com; s=arc-20160816; b=CFO6KmZi2fVQXn8dwNuHkw892pKbyuAZZPjKMNFh+ROot7Plv8CtEBLZc8x/zc1ExT yFlZCVtglCQLOV9Z3BCdQctZm5G/c4N6Fswl17E/9a+Zc7SZg0VserPA8wUdfche7tcf IiYKCTLVJs/ivsBUaPX4o23EXlSweWxkpfsHV4FCkuoq0Vmdm80fKzODWuGaGgO0ybIo IW1KQj20AwwcXyKUfclTr7zxG+DoJamir6/ZjxS9FMaYofSQL53kXe/sG2/RyGb4rS6t ZrTknwh0sC9FexGyTuM7suGJCDPo3WSQHViEB8Zq4BKoonPZPj834roc48x11OgtATeW HnMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=WpID9em8H+xVyMKgPF9nGa2h+lBu4t+C7qiRTbUOkRk=; b=Aw9S1vOuRjtlVg3xFla0IRY1Q1r+9W7vTltv2sqVRWj9UqC8ChWjT2oNWzUikMZWLa yxmQWCJFMJKygqu8Bzg7m51oJucnq8CDYTLoWmXnTcMhSFdFmylTYxmZvjT8KiWLCbRg 2EeqZzw8IIDKNimxBjaf0PN8f9tJEj1P/jsYz+z3mDPaIayshIRUEyQL1vxUmIq8TkR1 DXkvxFbCDkID9PoZlFUu9OxJnF+12GaZIgcpItK5ydL/jUHcAugyCl25IaHcrH9cT+WT /VDLRDgEu4zEpG5J/tjRiCCt4md+6uPlcyBYBE9rs/cp+2+WWiPUuWyO2hpAcZmOccCe UgCA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i63si2628538edi.434.2020.05.28.02.19.42; Thu, 28 May 2020 02:20:06 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728200AbgE1JPb (ORCPT + 99 others); Thu, 28 May 2020 05:15:31 -0400 Received: from lhrrgout.huawei.com ([185.176.76.210]:2253 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728129AbgE1JPb (ORCPT ); Thu, 28 May 2020 05:15:31 -0400 Received: from lhreml717-chm.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 90BEB53985BFDB5B924F; Thu, 28 May 2020 10:15:29 +0100 (IST) Received: from lhreml710-chm.china.huawei.com (10.201.108.61) by lhreml717-chm.china.huawei.com (10.201.108.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Thu, 28 May 2020 10:15:29 +0100 Received: from lhreml710-chm.china.huawei.com ([169.254.81.184]) by lhreml710-chm.china.huawei.com ([169.254.81.184]) with mapi id 15.01.1913.007; Thu, 28 May 2020 10:15:29 +0100 From: Shameerali Kolothum Thodi To: Auger Eric , Jean-Philippe Brucker CC: Will Deacon , Joerg Roedel , "iommu@lists.linux-foundation.org" , "Linux Kernel Mailing List" , Alex Williamson , Srinath Mannam , BCM Kernel Feedback , Robin Murphy , Linux ARM Subject: RE: [RFC PATCH] iommu/arm-smmu: Add module parameter to set msi iova address Thread-Topic: [RFC PATCH] iommu/arm-smmu: Add module parameter to set msi iova address Thread-Index: AQHWNEClbcZZxLYw10iKbWYLL5/D/ai8H7KAgADE+ACAACO8AIAABcQAgAAPZICAAAQfAIAAFMbQ Date: Thu, 28 May 2020 09:15:29 +0000 Message-ID: <25ad278ae9ed4833aeb7b625fcb89d88@huawei.com> References: <1590595398-4217-1-git-send-email-srinath.mannam@broadcom.com> <20200528072308.GA414784@myrica> <527f25a4-ca5a-10da-150f-0b4ea3839635@redhat.com> <20200528083851.GB414784@myrica> <0076d965-b180-fc44-103c-9bc9d73fe7f2@redhat.com> In-Reply-To: <0076d965-b180-fc44-103c-9bc9d73fe7f2@redhat.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.47.88.123] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXVnZXIgRXJpYyBbbWFp bHRvOmVyaWMuYXVnZXJAcmVkaGF0LmNvbV0NCj4gU2VudDogMjggTWF5IDIwMjAgMDk6NTQNCj4g VG86IEplYW4tUGhpbGlwcGUgQnJ1Y2tlciA8amVhbi1waGlsaXBwZUBsaW5hcm8ub3JnPg0KPiBD YzogV2lsbCBEZWFjb24gPHdpbGxAa2VybmVsLm9yZz47IEpvZXJnIFJvZWRlbCA8am9yb0A4Ynl0 ZXMub3JnPjsNCj4gaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7IFNoYW1lZXJhbGkg S29sb3RodW0gVGhvZGkNCj4gPHNoYW1lZXJhbGkua29sb3RodW0udGhvZGlAaHVhd2VpLmNvbT47 IExpbnV4IEtlcm5lbCBNYWlsaW5nIExpc3QNCj4gPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5v cmc+OyBBbGV4IFdpbGxpYW1zb24NCj4gPGFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tPjsgU3Jp bmF0aCBNYW5uYW0NCj4gPHNyaW5hdGgubWFubmFtQGJyb2FkY29tLmNvbT47IEJDTSBLZXJuZWwg RmVlZGJhY2sNCj4gPGJjbS1rZXJuZWwtZmVlZGJhY2stbGlzdEBicm9hZGNvbS5jb20+OyBSb2Jp biBNdXJwaHkNCj4gPHJvYmluLm11cnBoeUBhcm0uY29tPjsgTGludXggQVJNIDxsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc+DQo+IFN1YmplY3Q6IFJlOiBbUkZDIFBBVENIXSBp b21tdS9hcm0tc21tdTogQWRkIG1vZHVsZSBwYXJhbWV0ZXIgdG8gc2V0IG1zaQ0KPiBpb3ZhIGFk ZHJlc3MNCj4gDQo+IEhpLA0KPiANCj4gT24gNS8yOC8yMCAxMDozOCBBTSwgSmVhbi1QaGlsaXBw ZSBCcnVja2VyIHdyb3RlOg0KPiA+IFsrIFNoYW1lZXJdDQo+ID4NCj4gPiBPbiBUaHUsIE1heSAy OCwgMjAyMCBhdCAwOTo0Mzo0NkFNICswMjAwLCBBdWdlciBFcmljIHdyb3RlOg0KPiA+PiBIaSwN Cj4gPj4NCj4gPj4gT24gNS8yOC8yMCA5OjIzIEFNLCBKZWFuLVBoaWxpcHBlIEJydWNrZXIgd3Jv dGU6DQo+ID4+PiBPbiBUaHUsIE1heSAyOCwgMjAyMCBhdCAxMDo0NToxNEFNICswNTMwLCBTcmlu YXRoIE1hbm5hbSB3cm90ZToNCj4gPj4+PiBPbiBXZWQsIE1heSAyNywgMjAyMCBhdCAxMTowMCBQ TSBSb2JpbiBNdXJwaHkNCj4gPHJvYmluLm11cnBoeUBhcm0uY29tPiB3cm90ZToNCj4gPj4+Pj4N Cj4gPj4+PiBUaGFua3MgUm9iaW4gZm9yIHlvdXIgcXVpY2sgcmVzcG9uc2UuDQo+ID4+Pj4+IE9u IDIwMjAtMDUtMjcgMTc6MDMsIFNyaW5hdGggTWFubmFtIHdyb3RlOg0KPiA+Pj4+Pj4gVGhpcyBw YXRjaCBnaXZlcyB0aGUgcHJvdmlzaW9uIHRvIGNoYW5nZSBkZWZhdWx0IHZhbHVlIG9mIE1TSSBJ T1ZBIGJhc2UNCj4gPj4+Pj4+IHRvIHBsYXRmb3JtJ3Mgc3VpdGFibGUgSU9WQSB1c2luZyBtb2R1 bGUgcGFyYW1ldGVyLiBUaGUgcHJlc2VudA0KPiA+Pj4+Pj4gaGFyZGNvZGVkIE1TSSBJT1ZBIGJh c2UgbWF5IG5vdCBiZSB0aGUgYWNjZXNzaWJsZSBJT1ZBIHJhbmdlcyBvZg0KPiBwbGF0Zm9ybS4N Cj4gPj4+Pj4NCj4gPj4+Pj4gVGhhdCBpbiBpdHNlbGYgZG9lc24ndCBzZWVtIGVudGlyZWx5IHVu cmVhc29uYWJsZTsgSUlSQyB0aGUgY3VycmVudA0KPiA+Pj4+PiBhZGRyZXNzIGlzIGp1c3QgYW4g YXJiaXRyYXJ5IGNob2ljZSB0byBmaXQgbmljZWx5IGludG8gUWVtdSdzIG1lbW9yeQ0KPiA+Pj4+ PiBtYXAsIGFuZCB0aGVyZSB3YXMgYWx3YXlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGl0IHdvdWxk bid0IHN1aXQNCj4gZXZlcnl0aGluZy4NCj4gPj4+Pj4NCj4gPj4+Pj4+IFNpbmNlIGNvbW1pdCBh YWRhZDA5N2NkNDYgKCJpb21tdS9kbWE6IFJlc2VydmUgSU9WQSBmb3IgUENJZQ0KPiBpbmFjY2Vz c2libGUNCj4gPj4+Pj4+IERNQSBhZGRyZXNzIiksIGluYWNjZXNzaWJsZSBJT1ZBIGFkZHJlc3Mg cmFuZ2VzIHBhcnNlZCBmcm9tDQo+IGRtYS1yYW5nZXMNCj4gPj4+Pj4+IHByb3BlcnR5IGFyZSBy ZXNlcnZlZC4NCj4gPj4+DQo+ID4+PiBJIGRvbid0IHVuZGVyc3RhbmQgd2h5IHdlIG9ubHkgcmVz ZXJ2ZSB0aGUgUENJZSB3aW5kb3dzIGZvciBETUENCj4gZG9tYWlucy4NCj4gPj4+IFNob3VsZG4n dCBWRklPIGFsc28gcHJldmVudCB1c2Vyc3BhY2UgZnJvbSBtYXBwaW5nIHRoZW0/DQo+ID4+DQo+ ID4+IFZGSU8gcHJldmVudHMgdXNlcnNwYWNlIGZyb20gRE1BIG1hcHBpbmcgaW92YXMgd2l0aGlu IHJlc2VydmVkIHJlZ2lvbnM6DQo+ID4+IDliNzdlNWM3OTg0MCAgdmZpby90eXBlMTogY2hlY2sg ZG1hIG1hcCByZXF1ZXN0IGlzIHdpdGhpbiBhIHZhbGlkIGlvdmENCj4gcmFuZ2UNCj4gPg0KPiA+ IFJpZ2h0IGJ1dCBJIHdhcyBhc2tpbmcgc3BlY2lmaWNhbGx5IGFib3V0IHRoZSBJT1ZBIHJlc2Vy dmF0aW9uIGludHJvZHVjZWQNCj4gPiBieSBjb21taXQgYWFkYWQwOTdjZDQ2LiBUaGV5IGFyZSBu b3QgcmVnaXN0ZXJlZCBhcyByZXNlcnZlZCByZWdpb25zIHdpdGhpbg0KPiA+IHRoZSBJT01NVSBj b3JlLCB0aGV5IGFyZSBvbmx5IHRha2VuIGludG8gYWNjb3VudCBieSBkbWEtaW9tbXUuYyB3aGVu DQo+ID4gY3JlYXRpbmcgYSBETUEgZG9tYWluLiBBcyBWRklPIHVzZXMgVU5NQU5BR0VEIGRvbWFp bnMsIGl0IGlzbid0IGF3YXJlDQo+IG9mDQo+ID4gdGhvc2UgcmVnaW9ucyBhbmQgdGhleSB3b24n dCBiZSBzZWVuIGJ5IHZmaW9faW9tbXVfcmVzdl9leGNsdWRlKCkuDQo+ID4NCj4gPiBJdCBsb29r cyBsaWtlIHRoZSBQQ0llIHJlZ2lvbnMgdXNlZCB0byBiZSBjb21tb24gdW50aWwgY2QyYzlmY2Y1 YzY2DQo+ID4gKCJpb21tdS9kbWE6IE1vdmUgUENJIHdpbmRvdyByZWdpb24gcmVzZXJ2YXRpb24g YmFjayBpbnRvIGRtYSBzcGVjaWZpYw0KPiA+IHBhdGguIikgQnV0IEkgY291bGRuJ3QgZmluZCB0 aGUganVzdGlmaWNhdGlvbiBmb3IgdGhpcyBjb21taXQuDQo+IA0KPiBZZXMgSSBub3RpY2VkIHRo YXQgYXMgd2VsbCB3aGVuIGRlYnVnZ2luZyB0aGUgYWJvdmUgbWVudGlvbmVkIGNhc2UNCj4gYmVm b3JlIGFuZCBhZnRlciBjZDJjOWZjZjVjNjYuIEkgZG8gbm90IHJlbWVtYmVyIGFib3V0IHRoZSBy YXRpb25hbGUgb2YNCj4gcmVtb3ZpbmcgdGhlIERNQSBob3N0IGJyaWdlIHdpbmRvd3MgZnJvbSB0 aGUgcmVzdiByZWdpb25zLiBEaWQgaXQgYnJlYWsNCj4gYSBsZWdhY3kgY2FzZT8NCj4gPg0KDQpJ IHRoaW5rIHllcy4gQW5kIGdvaW5nIHRocm91Z2ggdGhlIE1MIGRpc2N1c3Npb25zLCB0aGlzIHdh cyBkb25lIHNvIGJlY2F1c2Ugd2l0aCB0aGUgDQoiIHZmaW8vdHlwZTE6IEFkZCBzdXBwb3J0IGZv ciB2YWxpZCBpb3ZhIGxpc3QgbWFuYWdlbWVudCIgc2VyaWVzIHlvdSByZXBvcnRlZA0KYW4gaXNz dWUgd2l0aCBTZWF0dGxlIHBsYXRmb3JtLiBTZWUgdGhlIGZ1bGwgZGlzY3Vzc2lvbiBoZXJlLA0K DQpodHRwczovL2xvcmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gvODg5MDEyLw0KDQpDaGVl cnMsDQpTaGFtZWVyDQoNCj4gPiBUaGUgdGhpbmcgaXMsIGlmIFZGSU8gaXNuJ3QgYXdhcmUgb2Yg dGhlIHJlc2VydmVkIFBDSWUgd2luZG93cywgdGhlbg0KPiA+IGFsbG93aW5nIFZGSU8gb3IgdXNl cnNwYWNlIHRvIGNob29zZSBNU0lfSU9WQV9CQVNFIHdvbid0IHNvbHZlIHRoZQ0KPiBwcm9ibGVt DQo+ID4gcmVwb3J0ZWQgYnkgU3JpbmF0aCwgYmVjYXVzZSB0aGV5IGNvdWxkIHdlbGwgY2hvb3Nl IGFuIElPVkEgd2l0aGluIHRoZQ0KPiA+IFBDSWUgd2luZG93Li4uDQo+IEkgYWdyZWUgd2l0aCB5 b3UNCj4gDQo+IFRoYW5rcw0KPiANCj4gRXJpYw0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEplYW4N Cj4gPg0KPiA+PiBidXQgaXQgZG9lcyBub3QgcHJldmVudCB0aGUgU1cgTVNJIHJlZ2lvbiBjaG9z ZW4gYnkgdGhlIGtlcm5lbCBmcm9tDQo+ID4+IGNvbGxpZGluZyB3aXRoIG90aGVyIHJlc2VydmVk IHJlZ2lvbnMgKGVzcC4gUENJZSBob3N0IGJyaWRnZSB3aW5kb3dzKS4NCj4gPj4NCj4gPj4gICBJ ZiB0aGV5IHdlcmUNCj4gPj4+IHBhcnQgb2YgdGhlIGNvbW1vbiByZXNlcnZlZCByZWdpb25zIHRo ZW4gd2UgY291bGQgaGF2ZSBWRklPIGNob29zZSBhDQo+ID4+PiBTV19NU0kgcmVnaW9uIGFtb25n IHRoZSByZW1haW5pbmcgZnJlZSBzcGFjZS4NCj4gPj4gQXMgUm9iaW4gc2FpZCB0aGlzIHdhcyB0 aGUgaW5pdGlhbCBjaG9zZW4gYXBwcm9hY2gNCj4gPj4gW1BBVENIIDEwLzEwXSB2ZmlvOiBhbGxv dyB0aGUgdXNlciB0byByZWdpc3RlciByZXNlcnZlZCBpb3ZhIHJhbmdlIGZvcg0KPiA+PiBNU0kg bWFwcGluZw0KPiA+PiBodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzgxMjE2NDEv DQo+ID4+DQo+ID4+IFNvbWUgYWRkaXRpb25hbCBiYWNrZ3JvdW5kIGFib3V0IHdoeSB0aGUgc3Rh dGljIFNXIE1TSSByZWdpb24gY2hvc2VuIGJ5DQo+ID4+IHRoZSBrZXJuZWwgd2FzIGxhdGVyIGNo b3NlbjoNCj4gPj4gU3VtbWFyeSBvZiBMUEMgZ3Vlc3QgTVNJIGRpc2N1c3Npb24gaW4gU2FudGEg RmUgKHdhczogUmU6IFtSRkMgMC84XSBLVk0NCj4gPj4gUENJZS9NU0kgcGFzc3Rocm91Z2ggb24g QVJNL0FSTTY0IChBbHQgSUkpKQ0KPiA+Pg0KPiBodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlv bi5vcmcvcGlwZXJtYWlsL2lvbW11LzIwMTYtTm92ZW1iZXIvMDE5MDYwLmh0DQo+IG1sDQo+ID4+ DQo+ID4+IFRoYW5rcw0KPiA+Pg0KPiA+PiBFcmljDQo+ID4+DQo+ID4+DQo+ID4+ICBJdCB3b3Vs ZCBqdXN0IG5lZWQgYQ0KPiA+Pj4gZGlmZmVyZW50IHdheSBvZiBhc2tpbmcgdGhlIElPTU1VIGRy aXZlciBpZiBhIFNXX01TSSBpcyBuZWVkZWQsIGZvcg0KPiA+Pj4gZXhhbXBsZSB3aXRoIGEgZG9t YWluIGF0dHJpYnV0ZS4NCj4gPj4+DQo+ID4+PiBUaGFua3MsDQo+ID4+PiBKZWFuDQo+ID4+Pg0K PiA+Pj4+Pg0KPiA+Pj4+PiBUaGF0LCBob3dldmVyLCBkb2Vzbid0IHNlZW0gdG8gZml0IGhlcmU7 IGlvbW11LWRtYSBtYXBzIE1TSQ0KPiBkb29yYmVsbHMNCj4gPj4+Pj4gZHluYW1pY2FsbHksIHNv IHRoZXkgYXJlbid0IGFmZmVjdGVkIGJ5IHJlc2VydmVkIHJlZ2lvbnMgYW55IG1vcmUgdGhhbg0K PiA+Pj4+PiByZWd1bGFyIERNQSBwYWdlcyBhcmUuIEluIGZhY3QsIGl0IGV4cGxpY2l0bHkgaWdu b3JlcyB0aGUgc29mdHdhcmUgTVNJDQo+ID4+Pj4+IHJlZ2lvbiwgc2luY2UgYXMgdGhlIGNvbW1l bnQgc2F5cywgaXQgKmlzKiB0aGUgc29mdHdhcmUgdGhhdCBtYW5hZ2VzDQo+IHRob3NlLg0KPiA+ Pj4+IFllcyB5b3UgYXJlIHJpZ2h0LCB3ZSBkb24ndCBzZWUgYW55IGlzc3VlcyB3aXRoIGtlcm5l bCBkcml2ZXJzKFBDSSBFUCkNCj4gYmVjYXVzZQ0KPiA+Pj4+IE1TSSBJT1ZBIGFsbG9jYXRlZCBk eW5hbWljYWxseSBieSBob25vdXJpbmcgcmVzZXJ2ZWQgcmVnaW9ucyBzYW1lIGFzDQo+IERNQSBw YWdlcy4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhlIE1TSV9JT1ZBX0JBU0UgcmVnaW9uIGV4aXN0cyBm b3IgVkZJTywgcHJlY2lzZWx5IGJlY2F1c2UgaW4gdGhhdA0KPiBjYXNlDQo+ID4+Pj4+IHRoZSBr ZXJuZWwgKmRvZXNuJ3QqIGNvbnRyb2wgdGhlIGFkZHJlc3Mgc3BhY2UsIGJ1dCBzdGlsbCBuZWVk cyBzb21lIHdheQ0KPiA+Pj4+PiB0byBzdGVhbCBhIGJpdCBvZiBpdCBmb3IgTVNJcyB0aGF0IHRo ZSBndWVzdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IGtub3cNCj4gPj4+Pj4gYWJvdXQsIGFuZCBnaXZl IHVzZXJzcGFjZSBhIGZpZ2h0aW5nIGNoYW5jZSBvZiBrbm93aW5nIHdoYXQgaXQncyB0YWtlbi4N Cj4gPj4+Pj4gSSB0aGluayBhdCB0aGUgdGltZSB3ZSBkaXNjdXNzZWQgdGhlIGlkZWEgb2YgYWRk aW5nIHNvbWV0aGluZyB0byB0aGUNCj4gPj4+Pj4gVkZJTyB1YXBpIHN1Y2ggdGhhdCB1c2Vyc3Bh Y2UgY291bGQgbW92ZSB0aGlzIGFyb3VuZCBpZiBpdCB3YW50ZWQgb3INCj4gPj4+Pj4gbmVlZGVk IHRvLCBidXQgZGVjaWRlZCB3ZSBjb3VsZCBsaXZlIHdpdGhvdXQgdGhhdCBpbml0aWFsbHkuIFBl cmhhcHMgbm93DQo+ID4+Pj4+IHRoZSB0aW1lIGhhcyBjb21lPw0KPiA+Pj4+IFllcywgd2Ugc2Vl IGlzc3VlcyBvbmx5IHdpdGggdXNlci1zcGFjZSBkcml2ZXJzKERQREspIGluIHdoaWNoDQo+IE1T SV9JT1ZBX0JBU0UNCj4gPj4+PiByZWdpb24gaXMgY29uc2lkZXJlZCB0byBtYXAgTVNJIHJlZ2lz dGVycy4gVGhpcyBwYXRjaCBoZWxwcyB1cyB0byBmaXggdGhlDQo+IGlzc3VlLg0KPiA+Pj4+DQo+ ID4+Pj4gVGhhbmtzLA0KPiA+Pj4+IFNyaW5hdGguDQo+ID4+Pj4+DQo+ID4+Pj4+IFJvYmluLg0K PiA+Pj4+Pg0KPiA+Pj4+Pj4gSWYgYW55IHBsYXRmb3JtIGhhcyB0aGUgbGltaXRhaW9uIHRvIGFj Y2VzcyBkZWZhdWx0IE1TSSBJT1ZBLCB0aGVuIGl0IGNhbg0KPiA+Pj4+Pj4gYmUgY2hhbmdlZCB1 c2luZyAiYXJtLXNtbXUubXNpX2lvdmFfYmFzZT0weGEwMDAwMDAwIiBjb21tYW5kDQo+IGxpbmUg YXJndW1lbnQuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogU3JpbmF0aCBNYW5u YW0gPHNyaW5hdGgubWFubmFtQGJyb2FkY29tLmNvbT4NCj4gPj4+Pj4+IC0tLQ0KPiA+Pj4+Pj4g ICBkcml2ZXJzL2lvbW11L2FybS1zbW11LmMgfCA1ICsrKystDQo+ID4+Pj4+PiAgIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPj4+Pj4+DQo+ID4+Pj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jIGIvZHJpdmVycy9pb21tdS9h cm0tc21tdS5jDQo+ID4+Pj4+PiBpbmRleCA0ZjFhMzUwLi41ZTU5YzlkIDEwMDY0NA0KPiA+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS5jDQo+ID4+Pj4+PiArKysgYi9kcml2ZXJz L2lvbW11L2FybS1zbW11LmMNCj4gPj4+Pj4+IEBAIC03Miw2ICs3Miw5IEBAIHN0YXRpYyBib29s IGRpc2FibGVfYnlwYXNzID0NCj4gPj4+Pj4+ICAgbW9kdWxlX3BhcmFtKGRpc2FibGVfYnlwYXNz LCBib29sLCBTX0lSVUdPKTsNCj4gPj4+Pj4+ICAgTU9EVUxFX1BBUk1fREVTQyhkaXNhYmxlX2J5 cGFzcywNCj4gPj4+Pj4+ICAgICAgICJEaXNhYmxlIGJ5cGFzcyBzdHJlYW1zIHN1Y2ggdGhhdCBp bmNvbWluZyB0cmFuc2FjdGlvbnMgZnJvbQ0KPiBkZXZpY2VzIHRoYXQgYXJlIG5vdCBhdHRhY2hl ZCB0byBhbiBpb21tdSBkb21haW4gd2lsbCByZXBvcnQgYW4gYWJvcnQgYmFjayB0bw0KPiB0aGUg ZGV2aWNlIGFuZCB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIHBhc3MgdGhyb3VnaCB0aGUgU01NVS4i KTsNCj4gPj4+Pj4+ICtzdGF0aWMgdW5zaWduZWQgbG9uZyBtc2lfaW92YV9iYXNlID0gTVNJX0lP VkFfQkFTRTsNCj4gPj4+Pj4+ICttb2R1bGVfcGFyYW0obXNpX2lvdmFfYmFzZSwgdWxvbmcsIFNf SVJVR08pOw0KPiA+Pj4+Pj4gK01PRFVMRV9QQVJNX0RFU0MobXNpX2lvdmFfYmFzZSwgIm1zaSBp b3ZhIGJhc2UgYWRkcmVzcy4iKTsNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgIHN0cnVjdCBhcm1fc21t dV9zMmNyIHsNCj4gPj4+Pj4+ICAgICAgIHN0cnVjdCBpb21tdV9ncm91cCAgICAgICAgICAgICAg Kmdyb3VwOw0KPiA+Pj4+Pj4gQEAgLTE1NjYsNyArMTU2OSw3IEBAIHN0YXRpYyB2b2lkDQo+IGFy bV9zbW11X2dldF9yZXN2X3JlZ2lvbnMoc3RydWN0IGRldmljZSAqZGV2LA0KPiA+Pj4+Pj4gICAg ICAgc3RydWN0IGlvbW11X3Jlc3ZfcmVnaW9uICpyZWdpb247DQo+ID4+Pj4+PiAgICAgICBpbnQg cHJvdCA9IElPTU1VX1dSSVRFIHwgSU9NTVVfTk9FWEVDIHwNCj4gSU9NTVVfTU1JTzsNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiAtICAgICByZWdpb24gPSBpb21tdV9hbGxvY19yZXN2X3JlZ2lvbihNU0lf SU9WQV9CQVNFLA0KPiBNU0lfSU9WQV9MRU5HVEgsDQo+ID4+Pj4+PiArICAgICByZWdpb24gPSBp b21tdV9hbGxvY19yZXN2X3JlZ2lvbihtc2lfaW92YV9iYXNlLA0KPiBNU0lfSU9WQV9MRU5HVEgs DQo+ID4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90LA0K PiBJT01NVV9SRVNWX1NXX01TSSk7DQo+ID4+Pj4+PiAgICAgICBpZiAoIXJlZ2lvbikNCj4gPj4+ Pj4+ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+Pj4+Pj4NCj4gPj4+DQo+ID4+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4gbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QNCj4gPj4+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZw0KPiA+Pj4gaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsDQo+ID4+Pg0KPiA+Pg0KPiA+DQo+ID4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdA0KPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZw0KPiA+ IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbA0KPiA+DQoNCg==