Received: by 10.213.65.68 with SMTP id h4csp1369295imn; Sun, 8 Apr 2018 01:47:58 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+sKeTtL9PJxyNxSyFE5rFuRwjXsB+rDb8B3eDxfLqf1qzkxJ2aGJgLGC0IDXoQISBH6Qm1 X-Received: by 2002:a17:902:107:: with SMTP id 7-v6mr33943922plb.374.1523177278341; Sun, 08 Apr 2018 01:47:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523177278; cv=none; d=google.com; s=arc-20160816; b=SwFIZvMJPdbx+X2sDwxUKFtewYPAQ0FodTMh0/RmlPEZiOiBl+n9XrEX7eDCsWR13L oceVjJ/lR8bXGkDyeYympaTrkf2q4Q2AWrDYlLGd8gD+AFlLTHiJGFRDPOEMb/OJ5M2p 5f4xTUK78ZhJOzOEeuHXIFueNzntk3YDsAc8kVS8PMMza6fi3R+rpcEYWwTNo1ptn/VG uviu9+k4KgyxJKPLJK9Q1wQhDm1bnIKCfTUyX2R7q3IfeMn9NDu6WqurtAiv465oBD+V tKHIaj5qDWZXeU/HiBce2qz6y5g5SDJa12snjM8zR7/XMfafR3i9IBXP6RvQ24y3E2/I y8MQ== 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=9QQoI2GYk/O+h4I89XMrmFRM9dxQvnp0kRm2UV4EXXI=; b=qmT8JbAspkGyqr8YQ9zsuOVb48WDV4s7PDVjgfhHiQ4DnytkKsdM22U5XIOEjntfK6 RXWfozlzL4QXxmKogqmjXGiIhcLNYU5TDRK8rn7x9FpIm48PSZWSCpa5JdOn73m3eJQs mFUgLVhu5HozMZ261+09qXcDRIf0TquHBsw+Axq2iG/hVuetGP9PTwVH5riLgh5SbSE4 Uoo5YNRZ+JhkGfzfiBGbN2tSt5gsFqcZYEpZLCnVtitZwruGjaTY3PfFHR+nj+k5YoXT kWsmTzqgAodHxHTpgA73B3G2Y8r/JUjAIKxAcOnEKfXTIF1mMyZ74kwgK74lVay4cZb6 H9oA== 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 u20si6981396pgv.12.2018.04.08.01.46.49; Sun, 08 Apr 2018 01:47:58 -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 S1751970AbeDHIK1 (ORCPT + 99 others); Sun, 8 Apr 2018 04:10:27 -0400 Received: from mx01.hxt-semitech.com.96.203.223.in-addr.arpa ([223.203.96.7]:36701 "EHLO barracuda.hxt-semitech.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751484AbeDHIKZ (ORCPT ); Sun, 8 Apr 2018 04:10:25 -0400 X-ASG-Debug-ID: 1523175019-093b7e10b33f590001-xx1T2L Received: from HXTBJIDCEMVIW01.hxtcorp.net (localhost [10.128.0.14]) by barracuda.hxt-semitech.com with ESMTP id GJZ7DSjornf2hFBu (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 08 Apr 2018 16:10:19 +0800 (CST) X-Barracuda-Envelope-From: dongsheng.wang@hxt-semitech.com Received: from HXTBJIDCEMVIW02.hxtcorp.net (10.128.0.15) by HXTBJIDCEMVIW01.hxtcorp.net (10.128.0.14) with Microsoft SMTP Server (TLS) id 15.0.847.32; Sun, 8 Apr 2018 16:10:21 +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; Sun, 8 Apr 2018 16:10:21 +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: AdPPDfXxE8LZSQ+sRiaB1Yr0///HDA== Date: Sun, 8 Apr 2018 08:10:20 +0000 Message-ID: <63635b42529a48d39f36112a031e3655@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.71] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Barracuda-Connect: localhost[10.128.0.14] X-Barracuda-Start-Time: 1523175019 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.5003 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.49685 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 DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFJvYmluIE11cnBoeSBbbWFp bHRvOnJvYmluLm11cnBoeUBhcm0uY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMDUsIDIw MTggMjo1NyBBTQ0KPiBUbzogTG9yZW56byBQaWVyYWxpc2kgPGxvcmVuem8ucGllcmFsaXNpQGFy bS5jb20+OyBXYW5nLCBEb25nc2hlbmcNCj4gPGRvbmdzaGVuZy53YW5nQGh4dC1zZW1pdGVjaC5j b20+DQo+IENjOiByandAcmp3eXNvY2tpLm5ldDsgZ3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc7 IGhhbmp1bi5ndW9AbGluYXJvLm9yZzsNCj4gc3VkZWVwLmhvbGxhQGFybS5jb207IFpoZW5nLCBK b2V5IDx5dS56aGVuZ0BoeHQtc2VtaXRlY2guY29tPjsNCj4gbGludXgtYWNwaUB2Z2VyLmtlcm5l bC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogW+atpOmCruS7 tuWPr+iDveWtmOWcqOmjjumZqV0gUmU6IFtSRkMgUEFUQ0ggMi8yXSBBQ1BJL0lPUlQ6IHVzZQ0K PiBzd2lvdGxiX2RtYV9vcHMgd2hlbiBzbW11IHByb2JlIGZhaWxlZA0KPiANCj4gT24gMDQvMDQv MTggMTc6MDEsIExvcmVuem8gUGllcmFsaXNpIHdyb3RlOg0KPiA+IFsrY2MgUm9iaW5dDQo+ID4N Cj4gPiBPbiBUaHUsIE1hciAyOSwgMjAxOCBhdCAwMzowMTowMEFNIC0wNzAwLCBXYW5nIERvbmdz aGVuZyB3cm90ZToNCj4gPj4gSWYgU01NVSBwcm9iZSBmYWlsZWQsIG1hc3RlciBzaG91bGQgdXNl IHN3aW90bGIgYXMgZG1hIG9wcy4NCj4gPj4gU01NVSBtYXkgcHJvYmUgZmFpbGVkIHdpdGggc3Bl Y2lmaWVkIGVudmlyb25tZW50LCBzbyB0aGVyZQ0KPiA+PiBhcmUgbm90IGFueSBpb21tdSByZXNv dXJjZXMgaW4gaW9tbXVfZGV2aWNlX2xpc3QuDQo+ID4+DQo+ID4+IFRoZSBtYXN0ZXIgd2lsbCBh bHdheXMgZ2V0IEVQUk9CRV9ERUZFUiBmcm9tIHJlYWxseV9wcm9iZQ0KPiA+PiAoZG1hX2NvbmZp Z3VyZSkgYnV0IGluIGZhY3QgU01NVSBoYXMgcHJvYmUgZmFpbGVkLiBUaGUgaXNzdWUNCj4gPj4g Y2F1c2VzIGFsbCBvZiBtYXN0ZXJzIGZhaWxlZCB0byBiZSBkcml2ZW4uDQo+IA0KPiBMZXQncyBq dXN0IHRha2UgYSBzdGVwIGJhY2sgLSB3aHkgaXMgU01NVSBwcm9iZSBmYWlsaW5nPyBUaGF0IHNl ZW1zIHRvDQo+IGJlIHRoZSBwcmltYXJ5IGlzc3VlIGhlcmUsIGJlY2F1c2UgaXQgaW1wbGllcyB0 aGF0IGVpdGhlciB5b3VyIGhhcmR3YXJlLA0KPiBmaXJtd2FyZSBvciBrZXJuZWwgaXMgYnJva2Vu LCBhbnkgb2Ygd2hpY2ggd291bGQgbWFrZSBib290IGZhaWx1cmUNCj4gc29tZXdoYXQgdW5zdXJw cmlzaW5nIGFueXdheS4NCj4gDQpJdCdzIGFjdHVhbGx5IG5vdCBhIGhhcmR3YXJlIGlzc3VlLiBU aGlzIGlzIG15IHRlc3QgY2FzZSwganVzdCByZXR1cm4NCi1FSU5WQUwgaW4gYXJtX3NtbXVfZGV2 aWNlX3Byb2JlLiBUaGUgSFcgcHJvYmUoYXJtX3NtbXVfZGV2aWNlX2h3X3Byb2JlKQ0KaXMganVz dCBwYXJ0IG9mIFNNTVUgZHJpdmVyIHByb2JlIGFuZCB0aGUgZmFpbHVyZSBtYXkgYmUgY2F1c2Vk IGJ5IFNXLiBTbw0KSSBkZXNpZ24gdGhpcyBjYXNlLCBqdXN0IG1ha2Ugc3VyZSBldmVuIGlmIFNN TVUgcHJvYmUgZmFpbGVkIHRoYXQgY2F1c2UgYnkgU1csDQp0aGUgTUFTVEVSIGFsc28gY2FuIHdv cmsuIF9CZWNhdXNlIG9mIG91ciBTTU1VIGRlZmF1bHQgbW9kZSBpcyBieXBhc3MuXw0KDQoNCj4g PiBJIGFkZGVkIFJvYmluIHRvIHBpY2sgaGlzIGJyYWluLiBBbiBhbHRlcm5hdGl2ZSB3b3VsZCBj b25zaXN0DQo+ID4gaW4gdXNpbmcgYSBidXMgbm90aWZpZXIgdG8gcHJldmVudCBkZWZlcnJlZCBw cm9iaW5nIG9uY2UgdGhlIFNNTVUNCj4gPiBkcml2ZXIgcHJvYmluZyBmYWlsZWQgYnV0IHRoYXQg c2VlbXMgYmFja3dhcmRzIGdpdmVuIHRoYXQgYSBtYWpvcg0KPiA+IHJlYXNvbiB0byBtb3ZlIHRv IGRlZmVycmVkIHByb2Jpbmcgd2FzIHRvIHJlbW92ZSB0aGUgYnVzIG5vdGlmaWVycw0KPiA+IGRl cGVuZGVuY3kgaW4gdGhlIGZpcnN0IHBsYWNlLg0KPiA+DQo+ID4gSXQgc2VlbXMgdG8gbWUgdGhp cyBpcyBib3RoIGFuIE9GL0FDUEkgaXNzdWUgLSBpdCBpcyBub3QgYW4gSU9SVA0KPiA+IG9ubHkg cHJvYmxlbS4NCj4gDQo+IFllcywgdGhpcyBpcyBqdXN0IGFuIGluc3RhbmNlIG9mIHRoZSBnZW5l cmFsIHByb2JlLWRlZmVycmFsIHByb2JsZW0sDQo+IGUuZy4gb25jZSB5b3UgaGF2ZSBtdWx0aXBs ZSBkZXBlbmRlbmNpZXMgaXQncyBwb3NzaWJsZSB0byBlbmQgdXAgaW4gYQ0KPiBzdGFsZW1hdGUg d2hlcmUgZXZlcnl0aGluZyBpbmNsdWRpbmcgdGhlIElPTU1VIGVuZHMgdXAgb24gdGhlIGRlZmVy cmVkDQo+IHByb2JlIGxpc3Qgd2l0aCBub3RoaW5nIHRvIGtpY2sgaXQgYW5kIG1ha2UgcHJvZ3Jl c3MgYWdhaW4uDQo+IA0KPiBGdXJ0aGVybW9yZSBpdCBzZWVtcyB0byBtZSB0aGF0IHRoZSB3aG9s ZSBwcmVtaXNlIGluIHRoaXMgcGF0Y2ggaXMNCj4gZmxhd2VkLA0KRGl0dG8uIDopDQoNCg0KPiBz aW5jZSBldmVuIGdlbnVpbmUgcHJvYmUgZmFpbHVyZSBtYXkgd2VsbCBiZSB0cmFuc2llbnQgLSBq dXN0DQo+IGJlY2F1c2Ugb25lIGF0dGVtcHQgZmFpbGVkIGRvZXNuJ3QgbWVhbiBhIGxhdGVyIGF0 dGVtcHQgY2FuJ3Qgc3VjY2VlZC4NCj4gVGh1cyAidGhlIG1vc3QgcmVjZW50IHByb2JlIGF0dGVt cHQgZmFpbGVkIiBjYW5ub3QgYmUgY29uc2lkZXJlZCBhDQo+IGZ1bmRhbWVudGFsbHkgZGlmZmVy ZW50IHN0YXRlIGZyb20gIm5vIGRyaXZlciBpcyBjdXJyZW50bHkgYm91bmQiLg0KPiANCkFncmVl LCB0aGUgZ2VudWluZSBwcm9iZSBmYWlsdXJlIG1heSB3ZWxsIGJlIHRyYW5zaWVudC4gQnV0IHRo ZXJlIGlzDQpkZXBlbmQgb24gU01NVSBwcm9iZShJT01NVSBpbnN0YW5jZSkgc3RhdHVzLiBUaGVy ZSBhcmUgdHdvIHNpdHVhdGlvbnM6DQoNCjEuIE1BU1RFUiBwcm9iaW5nLCBTTU1VIGRvZXNuJ3Qg cHJvYmUgeWV0Lg0KCVRoaXMgY2FzZSB3aWxsIG1hdGNoICJ0aGUgdHJhbnNpZW50IGZhaWx1cmUi Lg0KCXJlYWxseV9wcm9iZSBnZXQgYW4gRVBST0JFX0RFRkVSIGZyb20gSU9SVCBhbmQgdGhlIE1B U1RFUiBwcm9iZSB3aWxsIGJlDQoJZGVsYXllZCB1bnRpbCBTTU1VIHByb2JlIHN1Y2Nlc3NmdWwu DQoyLiBNQVNURVIgcHJvYmluZywgU01NVSBwcm9iZSBoYXMgZmFpbGVkLg0KCXJlYWxseV9wcm9i ZSB3aWxsIGFsd2F5cyBnZXQgYW4gRVBST0JFX0RFRkVSIGZyb20gSU9SVCwgYmVjYXVzZSBrZXJu ZWwNCgloYXMgYnVpbGQgaW4gU01NVSBkcml2ZXIuKGlvcnRfaW9tbXVfZHJpdmVyX2VuYWJsZWQp IEFuZCB0aGUgbWFzdGVyDQoJbmV2ZXIgY2Fubm90IGRvIHByb2JlLg0KDQpUaGUgY2FzZSAyIGlz IEkgd2FudCB0byBoYW5kbGUuDQoNCkNoZWVycywNCi1Eb25nc2hlbmcNCg0KPiBSb2Jpbi4NCj4g DQo+ID4NCj4gPiBMb3JlbnpvDQo+ID4NCj4gPj4gU2lnbmVkLW9mZi1ieTogV2FuZyBEb25nc2hl bmcgPGRvbmdzaGVuZy53YW5nQGh4dC1zZW1pdGVjaC5jb20+DQo+ID4+IC0tLQ0KPiA+PiAgIGRy aXZlcnMvYWNwaS9hcm02NC9pb3J0LmMgfCAzOQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0NCj4gPj4gICAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hcm02 NC9pb3J0LmMgYi9kcml2ZXJzL2FjcGkvYXJtNjQvaW9ydC5jDQo+ID4+IGluZGV4IGUyZjdiZGQu LmE2ZjRjMjcgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvYWNwaS9hcm02NC9pb3J0LmMNCj4g Pj4gKysrIGIvZHJpdmVycy9hY3BpL2FybTY0L2lvcnQuYw0KPiA+PiBAQCAtNzc0LDE3ICs3NzQs NDUgQEAgc3RhdGljIGludCBhcm1fc21tdV9pb3J0X3hsYXRlKHN0cnVjdCBkZXZpY2UNCj4gKmRl diwgdTMyIHN0cmVhbWlkLA0KPiA+PiAgIAlyZXR1cm4gcmV0Ow0KPiA+PiAgIH0NCj4gPj4NCj4g Pj4gLXN0YXRpYyBpbmxpbmUgYm9vbCBpb3J0X2lvbW11X2RyaXZlcl9lbmFibGVkKHU4IHR5cGUp DQo+ID4+ICtzdGF0aWMgaW50IGlvcnRfY2hlY2tfZGV2X2RsX3N0YXR1cyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEpDQo+ID4+ICAgew0KPiA+PiArCXN0cnVjdCBmd25vZGVfaGFuZGxl ICpmd25vZGUgPSBkYXRhOw0KPiA+PiArDQo+ID4+ICsJaWYgKGRldi0+Zndub2RlICE9IGZ3bm9k ZSkNCj4gPj4gKwkJcmV0dXJuIDA7DQo+ID4+ICsNCj4gPj4gKwlpZiAoZGV2LT5saW5rcy5zdGF0 dXMgPT0gRExfREVWX1BST0JFX0ZBSUxFRCkNCj4gPj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+ ICsNCj4gPj4gKwlyZXR1cm4gLUVQUk9CRV9ERUZFUjsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAr c3RhdGljIGludCBpb3J0X2lvbW11X2RyaXZlcl9lbmFibGVkKHU4IHR5cGUsIHN0cnVjdCBmd25v ZGVfaGFuZGxlDQo+ICpmd25vZGUpDQo+ID4+ICt7DQo+ID4+ICsJYm9vbCBidWlsZGluOw0KPiA+ PiArCWludCByZXQ7DQo+ID4+ICsNCj4gPj4gICAJc3dpdGNoICh0eXBlKSB7DQo+ID4+ICAgCWNh c2UgQUNQSV9JT1JUX05PREVfU01NVV9WMzoNCj4gPj4gLQkJcmV0dXJuIElTX0JVSUxUSU4oQ09O RklHX0FSTV9TTU1VX1YzKTsNCj4gPj4gKwkJYnVpbGRpbiA9IElTX0JVSUxUSU4oQ09ORklHX0FS TV9TTU1VX1YzKTsNCj4gPj4gKwkJYnJlYWs7DQo+ID4+ICAgCWNhc2UgQUNQSV9JT1JUX05PREVf U01NVToNCj4gPj4gLQkJcmV0dXJuIElTX0JVSUxUSU4oQ09ORklHX0FSTV9TTU1VKTsNCj4gPj4g KwkJYnVpbGRpbiA9IElTX0JVSUxUSU4oQ09ORklHX0FSTV9TTU1VKTsNCj4gPj4gKwkJYnJlYWs7 DQo+ID4+ICAgCWRlZmF1bHQ6DQo+ID4+ICAgCQlwcl93YXJuKCJJT1JUIG5vZGUgdHlwZSAldSBk b2VzIG5vdCBkZXNjcmliZSBhbiBTTU1VXG4iLA0KPiB0eXBlKTsNCj4gPj4gLQkJcmV0dXJuIGZh bHNlOw0KPiA+PiArCQlidWlsZGluID0gZmFsc2U7DQo+ID4+ICAgCX0NCj4gPj4gKw0KPiA+PiAr CWlmICghYnVpbGRpbikNCj4gPj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+ICsNCj4gPj4gKwly ZXQgPSBidXNfZm9yX2VhY2hfZGV2KCZwbGF0Zm9ybV9idXNfdHlwZSwgTlVMTCwgZndub2RlLA0K PiA+PiArCQkJICAgICAgIGlvcnRfY2hlY2tfZGV2X2RsX3N0YXR1cyk7DQo+ID4+ICsJaWYgKCFy ZXQpDQo+ID4+ICsJCXJldHVybiAtRVBST0JFX0RFRkVSOw0KPiA+PiArDQo+ID4+ICsJcmV0dXJu IHJldDsNCj4gPj4gICB9DQo+ID4+DQo+ID4+ICAgI2lmZGVmIENPTkZJR19JT01NVV9BUEkNCj4g Pj4gQEAgLTkxOSw4ICs5NDcsNyBAQCBzdGF0aWMgaW50IGlvcnRfaW9tbXVfeGxhdGUoc3RydWN0 IGRldmljZSAqZGV2LA0KPiBzdHJ1Y3QgYWNwaV9pb3J0X25vZGUgKm5vZGUsDQo+ID4+ICAgCSAq Lw0KPiA+PiAgIAlvcHMgPSBpb21tdV9vcHNfZnJvbV9md25vZGUoaW9ydF9md25vZGUpOw0KPiA+ PiAgIAlpZiAoIW9wcykNCj4gPj4gLQkJcmV0dXJuIGlvcnRfaW9tbXVfZHJpdmVyX2VuYWJsZWQo bm9kZS0+dHlwZSkgPw0KPiA+PiAtCQkgICAgICAgLUVQUk9CRV9ERUZFUiA6IC1FTk9ERVY7DQo+ ID4+ICsJCXJldHVybiBpb3J0X2lvbW11X2RyaXZlcl9lbmFibGVkKG5vZGUtPnR5cGUsIGlvcnRf Zndub2RlKTsNCj4gPj4NCj4gPj4gICAJcmV0dXJuIGFybV9zbW11X2lvcnRfeGxhdGUoZGV2LCBz dHJlYW1pZCwgaW9ydF9md25vZGUsIG9wcyk7DQo+ID4+ICAgfQ0KPiA+PiAtLQ0KPiA+PiAyLjcu NA0KPiA+Pg0K