Received: by 10.192.165.156 with SMTP id m28csp228055imm; Tue, 10 Apr 2018 20:25:58 -0700 (PDT) X-Google-Smtp-Source: AIpwx49lNlN0on6lalJrRXPQJb0XISOslV8PMvQB26k46J0t2ONkMSFHiVc5jHrKD2f2CfJOWy2U X-Received: by 10.98.141.78 with SMTP id z75mr2536919pfd.174.1523417158014; Tue, 10 Apr 2018 20:25:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523417157; cv=none; d=google.com; s=arc-20160816; b=WHS05oWZROVgsmF339r+u473fVTi4VH478RDy8YpoIyOR73toxcym4hw5GEypIv5h3 8pArSwkR6fib76wXxbmkBYxvKAPf4mfV+U0lECZUdccX3ZD87nJqxs9+wysASes6fjhV AnERP1mByNimUg74hCEKfHG+Yv3gqEYoU6Eu+cNLpa3ynW8wtKrwBH8ZaHLcAsIFJHoJ x2lEDP62YKyCasc+mcIrfXrkLZZC6CyjP+crnIYN+/q0wQYHH1r8iRs1IBegPXpPA6f/ JS9zVTTflcGM8TrqrcNBfhRm6KSzKNZQESvz1nsaMH9t1zHfS90eDvKbXup32JCvv63o 99cw== 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 :dlp-reaction:dlp-version:dlp-product:content-language :accept-language:message-id:date:thread-index:thread-topic:subject :cc:to:from:arc-authentication-results; bh=tMtxhiXp5cnE0euwaArHJpj81Skpw0YL7O0TJdqNn40=; b=DBzixIAlHGbR8NyH4+8SJ61Vye1AiPIBnlcYkMcmR0tYB8aTB5bsJ3Y//zMM49HRut c4/j9puKe5Si+5bDmJ/M8n9oyjwruFGEdmjTgA8gteYt/H2ndzCTV2kuOY5qISc6x9MM cdqdqRYt/Lp3+65mHwQD1RBSIWLaIYv06x6MFdCqQqL29+UDIwUcbBg5StEHRsi+CFjt 2bioekcqgyvOxekAaLTAmKfCXy/WDpi9cFzcMPoSv+0m8iyt2EuVqMDkofig0m1wmhc+ B1a0qVM8iDiONyZsoKIHC1Qq9Dq0uW27sYLTa7HGUkDiQJHzfuHUxlgeJpwgQ8dylr4b uImQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i81si144805pfd.261.2018.04.10.20.25.18; Tue, 10 Apr 2018 20:25:57 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752482AbeDKDTM (ORCPT + 99 others); Tue, 10 Apr 2018 23:19:12 -0400 Received: from mx01.hxt-semitech.com.96.203.223.in-addr.arpa ([223.203.96.7]:47075 "EHLO barracuda.hxt-semitech.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752016AbeDKDTK (ORCPT ); Tue, 10 Apr 2018 23:19:10 -0400 X-ASG-Debug-ID: 1523416745-093b7e10b35c1a0001-xx1T2L Received: from HXTBJIDCEMVIW02.hxtcorp.net (localhost [10.128.0.15]) by barracuda.hxt-semitech.com with ESMTP id TqE3oibiyRDiB5Lv (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Apr 2018 11:19:05 +0800 (CST) X-Barracuda-Envelope-From: dongsheng.wang@hxt-semitech.com Received: from HXTBJIDCEMVIW02.hxtcorp.net (10.128.0.15) by HXTBJIDCEMVIW02.hxtcorp.net (10.128.0.15) with Microsoft SMTP Server (TLS) id 15.0.847.32; Wed, 11 Apr 2018 11:19:09 +0800 Received: from HXTBJIDCEMVIW02.hxtcorp.net ([fe80::3e:f4ff:7927:a6f6]) by HXTBJIDCEMVIW02.hxtcorp.net ([fe80::3e:f4ff:7927:a6f6%12]) with mapi id 15.00.0847.030; Wed, 11 Apr 2018 11:18:56 +0800 From: "Wang, Dongsheng" To: Robin Murphy , Lorenzo Pieralisi CC: "rjw@rjwysocki.net" , "gregkh@linuxfoundation.org" , "hanjun.guo@linaro.org" , "sudeep.holla@arm.com" , "Zheng, Joey" , "linux-acpi@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: Re: [RFC PATCH 2/2] ACPI/IORT: use swiotlb_dma_ops when smmu probe failed Thread-Topic: Re: [RFC PATCH 2/2] ACPI/IORT: use swiotlb_dma_ops when smmu probe failed X-ASG-Orig-Subj: RE: Re: [RFC PATCH 2/2] ACPI/IORT: use swiotlb_dma_ops when smmu probe failed Thread-Index: AdPRQ84yaW8lTqhnRdK1xo8D4x/dMQ== Date: Wed, 11 Apr 2018 03:18:56 +0000 Message-ID: <85a3b2c4bd9b49d9a9e7bf88ee670119@HXTBJIDCEMVIW02.hxtcorp.net> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.2.3 dlp-reaction: no-action x-originating-ip: [10.64.6.78] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Barracuda-Connect: localhost[10.128.0.15] X-Barracuda-Start-Time: 1523416745 X-Barracuda-Encrypted: ECDHE-RSA-AES256-SHA X-Barracuda-URL: https://192.168.50.101:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at hxt-semitech.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5797 1.0000 0.7500 X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.49763 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaW51eC1hY3BpLW93bmVyQHZn ZXIua2VybmVsLm9yZw0KPiBbbWFpbHRvOmxpbnV4LWFjcGktb3duZXJAdmdlci5rZXJuZWwub3Jn XSBPbiBCZWhhbGYgT2YgUm9iaW4gTXVycGh5DQo+IFNlbnQ6IE1vbmRheSwgQXByaWwgMDksIDIw MTggODoxMSBQTQ0KPiBUbzogV2FuZywgRG9uZ3NoZW5nIDxkb25nc2hlbmcud2FuZ0BoeHQtc2Vt aXRlY2guY29tPjsgTG9yZW56byBQaWVyYWxpc2kNCj4gPGxvcmVuem8ucGllcmFsaXNpQGFybS5j b20+DQo+IENjOiByandAcmp3eXNvY2tpLm5ldDsgZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7 IGhhbmp1bi5ndW9AbGluYXJvLm9yZzsNCj4gc3VkZWVwLmhvbGxhQGFybS5jb207IFpoZW5nLCBK b2V5IDx5dS56aGVuZ0BoeHQtc2VtaXRlY2guY29tPjsNCj4gbGludXgtYWNwaUB2Z2VyLmtlcm5l bC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogW+atpOmCruS7 tuWPr+iDveWtmOWcqOmjjumZqV0gUmU6IFtSRkMgUEFUQ0ggMi8yXSBBQ1BJL0lPUlQ6IHVzZQ0K PiBzd2lvdGxiX2RtYV9vcHMgd2hlbiBzbW11IHByb2JlIGZhaWxlZA0KPiANCj4gT24gMDgvMDQv MTggMDk6MTAsIFdhbmcsIERvbmdzaGVuZyB3cm90ZToNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBSb2JpbiBNdXJwaHkgW21haWx0bzpyb2Jpbi5tdXJw aHlAYXJtLmNvbV0NCj4gPj4gU2VudDogVGh1cnNkYXksIEFwcmlsIDA1LCAyMDE4IDI6NTcgQU0N Cj4gPj4gVG86IExvcmVuem8gUGllcmFsaXNpIDxsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tPjsg V2FuZywgRG9uZ3NoZW5nDQo+ID4+IDxkb25nc2hlbmcud2FuZ0BoeHQtc2VtaXRlY2guY29tPg0K PiA+PiBDYzogcmp3QHJqd3lzb2NraS5uZXQ7IGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnOw0K PiBoYW5qdW4uZ3VvQGxpbmFyby5vcmc7DQo+ID4+IHN1ZGVlcC5ob2xsYUBhcm0uY29tOyBaaGVu ZywgSm9leSA8eXUuemhlbmdAaHh0LXNlbWl0ZWNoLmNvbT47DQo+ID4+IGxpbnV4LWFjcGlAdmdl ci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+ID4+IFN1YmplY3Q6 IFvmraTpgq7ku7blj6/og73lrZjlnKjpo47pmaldIFJlOiBbUkZDIFBBVENIIDIvMl0gQUNQSS9J T1JUOiB1c2UNCj4gPj4gc3dpb3RsYl9kbWFfb3BzIHdoZW4gc21tdSBwcm9iZSBmYWlsZWQNCj4g Pj4NCj4gPj4gT24gMDQvMDQvMTggMTc6MDEsIExvcmVuem8gUGllcmFsaXNpIHdyb3RlOg0KPiA+ Pj4gWytjYyBSb2Jpbl0NCj4gPj4+DQo+ID4+PiBPbiBUaHUsIE1hciAyOSwgMjAxOCBhdCAwMzow MTowMEFNIC0wNzAwLCBXYW5nIERvbmdzaGVuZyB3cm90ZToNCj4gPj4+PiBJZiBTTU1VIHByb2Jl IGZhaWxlZCwgbWFzdGVyIHNob3VsZCB1c2Ugc3dpb3RsYiBhcyBkbWEgb3BzLg0KPiA+Pj4+IFNN TVUgbWF5IHByb2JlIGZhaWxlZCB3aXRoIHNwZWNpZmllZCBlbnZpcm9ubWVudCwgc28gdGhlcmUN Cj4gPj4+PiBhcmUgbm90IGFueSBpb21tdSByZXNvdXJjZXMgaW4gaW9tbXVfZGV2aWNlX2xpc3Qu DQo+ID4+Pj4NCj4gPj4+PiBUaGUgbWFzdGVyIHdpbGwgYWx3YXlzIGdldCBFUFJPQkVfREVGRVIg ZnJvbSByZWFsbHlfcHJvYmUNCj4gPj4+PiAoZG1hX2NvbmZpZ3VyZSkgYnV0IGluIGZhY3QgU01N VSBoYXMgcHJvYmUgZmFpbGVkLiBUaGUgaXNzdWUNCj4gPj4+PiBjYXVzZXMgYWxsIG9mIG1hc3Rl cnMgZmFpbGVkIHRvIGJlIGRyaXZlbi4NCj4gPj4NCj4gPj4gTGV0J3MganVzdCB0YWtlIGEgc3Rl cCBiYWNrIC0gd2h5IGlzIFNNTVUgcHJvYmUgZmFpbGluZz8gVGhhdCBzZWVtcyB0bw0KPiA+PiBi ZSB0aGUgcHJpbWFyeSBpc3N1ZSBoZXJlLCBiZWNhdXNlIGl0IGltcGxpZXMgdGhhdCBlaXRoZXIg eW91ciBoYXJkd2FyZSwNCj4gPj4gZmlybXdhcmUgb3Iga2VybmVsIGlzIGJyb2tlbiwgYW55IG9m IHdoaWNoIHdvdWxkIG1ha2UgYm9vdCBmYWlsdXJlDQo+ID4+IHNvbWV3aGF0IHVuc3VycHJpc2lu ZyBhbnl3YXkuDQo+ID4+DQo+ID4gSXQncyBhY3R1YWxseSBub3QgYSBoYXJkd2FyZSBpc3N1ZS4g VGhpcyBpcyBteSB0ZXN0IGNhc2UsIGp1c3QgcmV0dXJuDQo+ID4gLUVJTlZBTCBpbiBhcm1fc21t dV9kZXZpY2VfcHJvYmUuIFRoZSBIVw0KPiBwcm9iZShhcm1fc21tdV9kZXZpY2VfaHdfcHJvYmUp DQo+ID4gaXMganVzdCBwYXJ0IG9mIFNNTVUgZHJpdmVyIHByb2JlIGFuZCB0aGUgZmFpbHVyZSBt YXkgYmUgY2F1c2VkIGJ5IFNXLiBTbw0KPiA+IEkgZGVzaWduIHRoaXMgY2FzZSwganVzdCBtYWtl IHN1cmUgZXZlbiBpZiBTTU1VIHByb2JlIGZhaWxlZCB0aGF0IGNhdXNlIGJ5IFNXLA0KPiA+IHRo ZSBNQVNURVIgYWxzbyBjYW4gd29yay4gX0JlY2F1c2Ugb2Ygb3VyIFNNTVUgZGVmYXVsdCBtb2Rl IGlzIGJ5cGFzcy5fDQo+IA0KPiBJIGRvbid0IHRoaW5rIGl0J3MgcGFydGljdWxhcmx5IGp1c3Rp ZmlhYmxlIHRvIG1ha2UgY29yZSBBUEkgY2hhbmdlcyBmb3INCj4gdGhlIHNha2Ugb2YgY29udHJp dmVkIHRlc3RjYXNlcy4gT24gcmVhbCBzeXN0ZW1zLCB0aGUgU01NVSBpcyBhDQo+IGZ1bmRhbWVu dGFsIHN5c3RlbSBjb21wb25lbnQgd2hpY2ggaXMgbm8gbW9yZSBleHBlY3RlZCB0byBmYWlsIHBy b2JlDQo+IHRoYW4sIHNheSwgdGhlIEdJQywgYW5kIGFzIHN1Y2ggaWYgaXQgKmRvZXMqIGZhaWwg dGhlbiBmdXJ0aGVyIHByb2dyZXNzDQo+IGlzIG9uIGEgYmVzdC1lZmZvcnQgYmFzaXMgYXQgbW9z dC4NClllcy4gQWdyZWUgd2l0aCB5b3UuDQoNCg0KPiBKdXN0IGJlY2F1c2UgKnlvdXIqIHN5c3Rl bSBoYXBwZW5zIHRvIHdvcmsgZmluZSBpbiB0aGlzIHN0YXRlIGRvZXNuJ3QgbWFrZSBpdCB0cnVl IGZvciBldmVyeSBTTU1VDQo+IGltcGxlbWVudGF0aW9uIGFuZCBpbnRlZ3JhdGlvbiB0aGF0IExp bnV4IG1heSBldmVyIHJ1biBvbi4NCjooLCB5ZXMsIHRoaXMgaXMgbXkgbWlzdGFrZS4NCg0KDQo+ IAkJCQ0KPiBJZiB5b3Ugd2FudCB0aGUga2VybmVsIHRvIGlnbm9yZSBhbiBTTU1VLCBlaXRoZXIg Y29uZmlndXJlIG91dCB0aGUNCj4gZHJpdmVyIG9yIGRvbid0IGRlc2NyaWJlIHRoYXQgU01NVSBp biBmaXJtd2FyZSBpbiB0aGUgZmlyc3QgcGxhY2UuDQo+IA0KPiA+Pj4gSSBhZGRlZCBSb2JpbiB0 byBwaWNrIGhpcyBicmFpbi4gQW4gYWx0ZXJuYXRpdmUgd291bGQgY29uc2lzdA0KPiA+Pj4gaW4g dXNpbmcgYSBidXMgbm90aWZpZXIgdG8gcHJldmVudCBkZWZlcnJlZCBwcm9iaW5nIG9uY2UgdGhl IFNNTVUNCj4gPj4+IGRyaXZlciBwcm9iaW5nIGZhaWxlZCBidXQgdGhhdCBzZWVtcyBiYWNrd2Fy ZHMgZ2l2ZW4gdGhhdCBhIG1ham9yDQo+ID4+PiByZWFzb24gdG8gbW92ZSB0byBkZWZlcnJlZCBw cm9iaW5nIHdhcyB0byByZW1vdmUgdGhlIGJ1cyBub3RpZmllcnMNCj4gPj4+IGRlcGVuZGVuY3kg aW4gdGhlIGZpcnN0IHBsYWNlLg0KPiA+Pj4NCj4gPj4+IEl0IHNlZW1zIHRvIG1lIHRoaXMgaXMg Ym90aCBhbiBPRi9BQ1BJIGlzc3VlIC0gaXQgaXMgbm90IGFuIElPUlQNCj4gPj4+IG9ubHkgcHJv YmxlbS4NCj4gPj4NCj4gPj4gWWVzLCB0aGlzIGlzIGp1c3QgYW4gaW5zdGFuY2Ugb2YgdGhlIGdl bmVyYWwgcHJvYmUtZGVmZXJyYWwgcHJvYmxlbSwNCj4gPj4gZS5nLiBvbmNlIHlvdSBoYXZlIG11 bHRpcGxlIGRlcGVuZGVuY2llcyBpdCdzIHBvc3NpYmxlIHRvIGVuZCB1cCBpbiBhDQo+ID4+IHN0 YWxlbWF0ZSB3aGVyZSBldmVyeXRoaW5nIGluY2x1ZGluZyB0aGUgSU9NTVUgZW5kcyB1cCBvbiB0 aGUgZGVmZXJyZWQNCj4gPj4gcHJvYmUgbGlzdCB3aXRoIG5vdGhpbmcgdG8ga2ljayBpdCBhbmQg bWFrZSBwcm9ncmVzcyBhZ2Fpbi4NCj4gPj4NCj4gPj4gRnVydGhlcm1vcmUgaXQgc2VlbXMgdG8g bWUgdGhhdCB0aGUgd2hvbGUgcHJlbWlzZSBpbiB0aGlzIHBhdGNoIGlzDQo+ID4+IGZsYXdlZCwN Cj4gPiBEaXR0by4gOikNCj4gPg0KPiA+DQo+ID4+IHNpbmNlIGV2ZW4gZ2VudWluZSBwcm9iZSBm YWlsdXJlIG1heSB3ZWxsIGJlIHRyYW5zaWVudCAtIGp1c3QNCj4gPj4gYmVjYXVzZSBvbmUgYXR0 ZW1wdCBmYWlsZWQgZG9lc24ndCBtZWFuIGEgbGF0ZXIgYXR0ZW1wdCBjYW4ndCBzdWNjZWVkLg0K PiA+PiBUaHVzICJ0aGUgbW9zdCByZWNlbnQgcHJvYmUgYXR0ZW1wdCBmYWlsZWQiIGNhbm5vdCBi ZSBjb25zaWRlcmVkIGENCj4gPj4gZnVuZGFtZW50YWxseSBkaWZmZXJlbnQgc3RhdGUgZnJvbSAi bm8gZHJpdmVyIGlzIGN1cnJlbnRseSBib3VuZCIuDQo+ID4+DQo+ID4gQWdyZWUsIHRoZSBnZW51 aW5lIHByb2JlIGZhaWx1cmUgbWF5IHdlbGwgYmUgdHJhbnNpZW50LiBCdXQgdGhlcmUgaXMNCj4g PiBkZXBlbmQgb24gU01NVSBwcm9iZShJT01NVSBpbnN0YW5jZSkgc3RhdHVzLiBUaGVyZSBhcmUg dHdvIHNpdHVhdGlvbnM6DQo+ID4NCj4gPiAxLiBNQVNURVIgcHJvYmluZywgU01NVSBkb2Vzbid0 IHByb2JlIHlldC4NCj4gPiAJVGhpcyBjYXNlIHdpbGwgbWF0Y2ggInRoZSB0cmFuc2llbnQgZmFp bHVyZSIuDQo+ID4gCXJlYWxseV9wcm9iZSBnZXQgYW4gRVBST0JFX0RFRkVSIGZyb20gSU9SVCBh bmQgdGhlIE1BU1RFUiBwcm9iZSB3aWxsDQo+IGJlDQo+ID4gCWRlbGF5ZWQgdW50aWwgU01NVSBw cm9iZSBzdWNjZXNzZnVsLg0KPiA+IDIuIE1BU1RFUiBwcm9iaW5nLCBTTU1VIHByb2JlIGhhcyBm YWlsZWQuDQo+ID4gCXJlYWxseV9wcm9iZSB3aWxsIGFsd2F5cyBnZXQgYW4gRVBST0JFX0RFRkVS IGZyb20gSU9SVCwgYmVjYXVzZSBrZXJuZWwNCj4gPiAJaGFzIGJ1aWxkIGluIFNNTVUgZHJpdmVy Lihpb3J0X2lvbW11X2RyaXZlcl9lbmFibGVkKSBBbmQgdGhlIG1hc3Rlcg0KPiA+IAluZXZlciBj YW5ub3QgZG8gcHJvYmUuDQo+ID4NCj4gPiBUaGUgY2FzZSAyIGlzIEkgd2FudCB0byBoYW5kbGUu DQo+IA0KPiBIYW5kbGUgaXQgYnkgbm90IGRlbGliZXJhdGVseSBicmVha2luZyB0aGUgU01NVSBk cml2ZXIuIEluIGFsbCBvdGhlcg0KPiBjYXNlcywgZWl0aGVyIHJlLXRyaWdnZXJpbmcgU01NVSBw cm9iZSBtaWdodCBtYWtlIGl0IHN1Y2NlZWQgKGkuZS4gdGhlDQo+IERMX0RFVl9QUk9CRV9GQUlM RUQgc3RhdGUgaXMgbWVhbmluZ2xlc3MpLCBvciB0aGluZ3MgYXJlIHNvIGJyb2tlbiB0aGF0DQo+ IHlvdSdyZSBwcm9iYWJseSBkZWFkIGluIHRoZSB3YXRlciBhbnl3YXkuDQo+IA0KRHJvcCB0aGlz IHBhdGNoLg0KDQpUaGFua3MgZm9yIHlvdXIgcmV2aWV3Lg0KDQpDaGVlcnMsDQotRG9uZ3NoZW5n DQoNCj4gUm9iaW4uDQo+IA0KPiA+DQo+ID4gQ2hlZXJzLA0KPiA+IC1Eb25nc2hlbmcNCj4gPg0K PiA+PiBSb2Jpbi4NCj4gPj4NCj4gPj4+DQo+ID4+PiBMb3JlbnpvDQo+ID4+Pg0KPiA+Pj4+IFNp Z25lZC1vZmYtYnk6IFdhbmcgRG9uZ3NoZW5nIDxkb25nc2hlbmcud2FuZ0BoeHQtc2VtaXRlY2gu Y29tPg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+ICAgIGRyaXZlcnMvYWNwaS9hcm02NC9pb3J0LmMgfCAz OQ0KPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gPj4+PiAg ICAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4gPj4+ Pg0KPiA+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYXJtNjQvaW9ydC5jIGIvZHJpdmVy cy9hY3BpL2FybTY0L2lvcnQuYw0KPiA+Pj4+IGluZGV4IGUyZjdiZGQuLmE2ZjRjMjcgMTAwNjQ0 DQo+ID4+Pj4gLS0tIGEvZHJpdmVycy9hY3BpL2FybTY0L2lvcnQuYw0KPiA+Pj4+ICsrKyBiL2Ry aXZlcnMvYWNwaS9hcm02NC9pb3J0LmMNCj4gPj4+PiBAQCAtNzc0LDE3ICs3NzQsNDUgQEAgc3Rh dGljIGludCBhcm1fc21tdV9pb3J0X3hsYXRlKHN0cnVjdCBkZXZpY2UNCj4gPj4gKmRldiwgdTMy IHN0cmVhbWlkLA0KPiA+Pj4+ICAgIAlyZXR1cm4gcmV0Ow0KPiA+Pj4+ICAgIH0NCj4gPj4+Pg0K PiA+Pj4+IC1zdGF0aWMgaW5saW5lIGJvb2wgaW9ydF9pb21tdV9kcml2ZXJfZW5hYmxlZCh1OCB0 eXBlKQ0KPiA+Pj4+ICtzdGF0aWMgaW50IGlvcnRfY2hlY2tfZGV2X2RsX3N0YXR1cyhzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpDQo+ID4+Pj4gICAgew0KPiA+Pj4+ICsJc3RydWN0IGZ3 bm9kZV9oYW5kbGUgKmZ3bm9kZSA9IGRhdGE7DQo+ID4+Pj4gKw0KPiA+Pj4+ICsJaWYgKGRldi0+ Zndub2RlICE9IGZ3bm9kZSkNCj4gPj4+PiArCQlyZXR1cm4gMDsNCj4gPj4+PiArDQo+ID4+Pj4g KwlpZiAoZGV2LT5saW5rcy5zdGF0dXMgPT0gRExfREVWX1BST0JFX0ZBSUxFRCkNCj4gPj4+PiAr CQlyZXR1cm4gLUVOT0RFVjsNCj4gPj4+PiArDQo+ID4+Pj4gKwlyZXR1cm4gLUVQUk9CRV9ERUZF UjsNCj4gPj4+PiArfQ0KPiA+Pj4+ICsNCj4gPj4+PiArc3RhdGljIGludCBpb3J0X2lvbW11X2Ry aXZlcl9lbmFibGVkKHU4IHR5cGUsIHN0cnVjdCBmd25vZGVfaGFuZGxlDQo+ID4+ICpmd25vZGUp DQo+ID4+Pj4gK3sNCj4gPj4+PiArCWJvb2wgYnVpbGRpbjsNCj4gPj4+PiArCWludCByZXQ7DQo+ ID4+Pj4gKw0KPiA+Pj4+ICAgIAlzd2l0Y2ggKHR5cGUpIHsNCj4gPj4+PiAgICAJY2FzZSBBQ1BJ X0lPUlRfTk9ERV9TTU1VX1YzOg0KPiA+Pj4+IC0JCXJldHVybiBJU19CVUlMVElOKENPTkZJR19B Uk1fU01NVV9WMyk7DQo+ID4+Pj4gKwkJYnVpbGRpbiA9IElTX0JVSUxUSU4oQ09ORklHX0FSTV9T TU1VX1YzKTsNCj4gPj4+PiArCQlicmVhazsNCj4gPj4+PiAgICAJY2FzZSBBQ1BJX0lPUlRfTk9E RV9TTU1VOg0KPiA+Pj4+IC0JCXJldHVybiBJU19CVUlMVElOKENPTkZJR19BUk1fU01NVSk7DQo+ ID4+Pj4gKwkJYnVpbGRpbiA9IElTX0JVSUxUSU4oQ09ORklHX0FSTV9TTU1VKTsNCj4gPj4+PiAr CQlicmVhazsNCj4gPj4+PiAgICAJZGVmYXVsdDoNCj4gPj4+PiAgICAJCXByX3dhcm4oIklPUlQg bm9kZSB0eXBlICV1IGRvZXMgbm90IGRlc2NyaWJlIGFuDQo+IFNNTVVcbiIsDQo+ID4+IHR5cGUp Ow0KPiA+Pj4+IC0JCXJldHVybiBmYWxzZTsNCj4gPj4+PiArCQlidWlsZGluID0gZmFsc2U7DQo+ ID4+Pj4gICAgCX0NCj4gPj4+PiArDQo+ID4+Pj4gKwlpZiAoIWJ1aWxkaW4pDQo+ID4+Pj4gKwkJ cmV0dXJuIC1FTk9ERVY7DQo+ID4+Pj4gKw0KPiA+Pj4+ICsJcmV0ID0gYnVzX2Zvcl9lYWNoX2Rl digmcGxhdGZvcm1fYnVzX3R5cGUsIE5VTEwsIGZ3bm9kZSwNCj4gPj4+PiArCQkJICAgICAgIGlv cnRfY2hlY2tfZGV2X2RsX3N0YXR1cyk7DQo+ID4+Pj4gKwlpZiAoIXJldCkNCj4gPj4+PiArCQly ZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4gPj4+PiArDQo+ID4+Pj4gKwlyZXR1cm4gcmV0Ow0KPiA+ Pj4+ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAgICNpZmRlZiBDT05GSUdfSU9NTVVfQVBJDQo+ID4+ Pj4gQEAgLTkxOSw4ICs5NDcsNyBAQCBzdGF0aWMgaW50IGlvcnRfaW9tbXVfeGxhdGUoc3RydWN0 IGRldmljZSAqZGV2LA0KPiA+PiBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUsDQo+ID4+Pj4g ICAgCSAqLw0KPiA+Pj4+ICAgIAlvcHMgPSBpb21tdV9vcHNfZnJvbV9md25vZGUoaW9ydF9md25v ZGUpOw0KPiA+Pj4+ICAgIAlpZiAoIW9wcykNCj4gPj4+PiAtCQlyZXR1cm4gaW9ydF9pb21tdV9k cml2ZXJfZW5hYmxlZChub2RlLT50eXBlKSA/DQo+ID4+Pj4gLQkJICAgICAgIC1FUFJPQkVfREVG RVIgOiAtRU5PREVWOw0KPiA+Pj4+ICsJCXJldHVybiBpb3J0X2lvbW11X2RyaXZlcl9lbmFibGVk KG5vZGUtPnR5cGUsIGlvcnRfZndub2RlKTsNCj4gPj4+Pg0KPiA+Pj4+ICAgIAlyZXR1cm4gYXJt X3NtbXVfaW9ydF94bGF0ZShkZXYsIHN0cmVhbWlkLCBpb3J0X2Z3bm9kZSwgb3BzKTsNCj4gPj4+ PiAgICB9DQo+ID4+Pj4gLS0NCj4gPj4+PiAyLjcuNA0KPiA+Pj4+DQo+IC0tDQo+IFRvIHVuc3Vi c2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1h Y3BpIiBpbg0KPiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVs Lm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21h am9yZG9tby1pbmZvLmh0bWwNCg==