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 X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 51644C433E0 for ; Thu, 21 Jan 2021 23:15:20 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 7772123A54 for ; Thu, 21 Jan 2021 23:15:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7772123A54 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=hisilicon.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 0AA8F6B0006; Thu, 21 Jan 2021 18:15:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 05BAB6B0007; Thu, 21 Jan 2021 18:15:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB3AA6B0008; Thu, 21 Jan 2021 18:15:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0162.hostedemail.com [216.40.44.162]) by kanga.kvack.org (Postfix) with ESMTP id C5C776B0006 for ; Thu, 21 Jan 2021 18:15:18 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 8B538181AF5D7 for ; Thu, 21 Jan 2021 23:15:18 +0000 (UTC) X-FDA: 77731340316.29.crack23_390a04327567 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin29.hostedemail.com (Postfix) with ESMTP id 647D5180ACEE9 for ; Thu, 21 Jan 2021 23:15:18 +0000 (UTC) X-HE-Tag: crack23_390a04327567 X-Filterd-Recvd-Size: 13729 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf23.hostedemail.com (Postfix) with ESMTP for ; Thu, 21 Jan 2021 23:15:17 +0000 (UTC) Received: from dggeme759-chm.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4DMJ9w1XjqzY0q5; Fri, 22 Jan 2021 07:14:12 +0800 (CST) Received: from dggemi761-chm.china.huawei.com (10.1.198.147) by dggeme759-chm.china.huawei.com (10.3.19.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2106.2; Fri, 22 Jan 2021 07:15:13 +0800 Received: from dggemi761-chm.china.huawei.com ([10.9.49.202]) by dggemi761-chm.china.huawei.com ([10.9.49.202]) with mapi id 15.01.2106.002; Fri, 22 Jan 2021 07:15:13 +0800 From: "Song Bao Hua (Barry Song)" To: Vitaly Wool , "tiantao (H)" CC: Seth Jennings , Dan Streetman , Andrew Morton , Linux-MM Subject: RE: [RFC mm/zswap 1/2] mm/zswap: add the flag can_sleep_mapped Thread-Topic: [RFC mm/zswap 1/2] mm/zswap: add the flag can_sleep_mapped Thread-Index: AQHW79Y67v/cXyoZZUiZyiU37SykF6oys+ow Date: Thu, 21 Jan 2021 23:15:13 +0000 Message-ID: <51ee9f1da4a742df81ab0599fb2757b8@hisilicon.com> References: <1608894171-54174-1-git-send-email-tiantao6@hisilicon.com> <1608894171-54174-2-git-send-email-tiantao6@hisilicon.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.200.100] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVml0YWx5IFdvb2wgW21h aWx0bzp2aXRhbHkud29vbEBrb25zdWxrby5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5 IDIxLCAyMDIxIDEwOjE3IFBNDQo+IFRvOiB0aWFudGFvIChIKSA8dGlhbnRhbzZAaGlzaWxpY29u LmNvbT4NCj4gQ2M6IFNldGggSmVubmluZ3MgPHNqZW5uaW5nQHJlZGhhdC5jb20+OyBEYW4gU3Ry ZWV0bWFuIDxkZHN0cmVldEBpZWVlLm9yZz47DQo+IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgt Zm91bmRhdGlvbi5vcmc+OyBTb25nIEJhbyBIdWEgKEJhcnJ5IFNvbmcpDQo+IDxzb25nLmJhby5o dWFAaGlzaWxpY29uLmNvbT47IExpbnV4LU1NIDxsaW51eC1tbUBrdmFjay5vcmc+DQo+IFN1Ympl Y3Q6IFJlOiBbUkZDIG1tL3pzd2FwIDEvMl0gbW0venN3YXA6IGFkZCB0aGUgZmxhZyBjYW5fc2xl ZXBfbWFwcGVkDQo+IA0KPiBPbiBGcmksIERlYyAyNSwgMjAyMCBhdCAxMjowMiBQTSBUaWFuIFRh byA8dGlhbnRhbzZAaGlzaWxpY29uLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBhZGQgYSBmbGFnIHRv IHpwb29sLCBuYW1lZCBpcyAiY2FuX3NsZWVwX21hcHBlZCIsIGFuZCBoYXZlIGl0IHNldCB0cnVl DQo+ID4gZm9yIHpidWQvejNmb2xkLCBzZXQgZmFsc2UgZm9yIHpzbWFsbG9jLiBUaGVuIHpzd2Fw IGNvdWxkIGdvIHRoZSBjdXJyZW50DQo+ID4gcGF0aCBpZiB0aGUgZmxhZyBpcyB0cnVlOyBhbmQg aWYgaXQncyBmYWxzZSwgY29weSBkYXRhIGZyb20gc3JjIHRvIGENCj4gPiB0ZW1wb3JhcnkgYnVm ZmVyLCB0aGVuIHVubWFwIHRoZSBoYW5kbGUsIHRha2UgdGhlIG11dGV4LCBwcm9jZXNzIHRoZQ0K PiA+IGJ1ZmZlciBpbnN0ZWFkIG9mIHNyYyB0byBhdm9pZCBzbGVlcGluZyBmdW5jdGlvbiBjYWxs ZWQgZnJvbSBhdG9taWMNCj4gPiBjb250ZXh0Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogVGlh biBUYW8gPHRpYW50YW82QGhpc2lsaWNvbi5jb20+DQo+ID4gLS0tDQo+ID4gIGluY2x1ZGUvbGlu dXgvenBvb2wuaCB8ICAzICsrKw0KPiA+ICBtbS96cG9vbC5jICAgICAgICAgICAgfCAxMyArKysr KysrKysrKysrDQo+ID4gIG1tL3pzd2FwLmMgICAgICAgICAgICB8IDUwDQo+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4gIDMgZmlsZXMgY2hh bmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L3pwb29sLmggYi9pbmNsdWRlL2xpbnV4L3pwb29sLmgNCj4gPiBp bmRleCA1MWJmNDMwLi5lODk5NzAxIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvenBv b2wuaA0KPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvenBvb2wuaA0KPiA+IEBAIC03Myw2ICs3Myw3 IEBAIHU2NCB6cG9vbF9nZXRfdG90YWxfc2l6ZShzdHJ1Y3QgenBvb2wgKnBvb2wpOw0KPiA+ICAg KiBAbWFsbG9jOiAgICBhbGxvY2F0ZSBtZW0gZnJvbSBhIHBvb2wuDQo+ID4gICAqIEBmcmVlOiAg ICAgIGZyZWUgbWVtIGZyb20gYSBwb29sLg0KPiA+ICAgKiBAc2hyaW5rOiAgICBzaHJpbmsgdGhl IHBvb2wuDQo+ID4gKyAqIEBzbGVlcF9tYXBwZWQ6IHdoZXRoZXIgenBvb2wgZHJpdmVyIGNhbiBz bGVlcCBkdXJpbmcgbWFwLg0KPiA+ICAgKiBAbWFwOiAgICAgICBtYXAgYSBoYW5kbGUuDQo+ID4g ICAqIEB1bm1hcDogICAgIHVubWFwIGEgaGFuZGxlLg0KPiA+ICAgKiBAdG90YWxfc2l6ZTogICAg ICAgIGdldCB0b3RhbCBzaXplIG9mIGEgcG9vbC4NCj4gPiBAQCAtMTAwLDYgKzEwMSw3IEBAIHN0 cnVjdCB6cG9vbF9kcml2ZXIgew0KPiA+ICAgICAgICAgaW50ICgqc2hyaW5rKSh2b2lkICpwb29s LCB1bnNpZ25lZCBpbnQgcGFnZXMsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgKnJlY2xhaW1lZCk7DQo+ID4NCj4gPiArICAgICAgIGJvb2wgc2xlZXBf bWFwcGVkOw0KPiA+ICAgICAgICAgdm9pZCAqKCptYXApKHZvaWQgKnBvb2wsIHVuc2lnbmVkIGxv bmcgaGFuZGxlLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSB6cG9v bF9tYXBtb2RlIG1tKTsNCj4gPiAgICAgICAgIHZvaWQgKCp1bm1hcCkodm9pZCAqcG9vbCwgdW5z aWduZWQgbG9uZyBoYW5kbGUpOw0KPiA+IEBAIC0xMTIsNSArMTE0LDYgQEAgdm9pZCB6cG9vbF9y ZWdpc3Rlcl9kcml2ZXIoc3RydWN0IHpwb29sX2RyaXZlciAqZHJpdmVyKTsNCj4gPiAgaW50IHpw b29sX3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB6cG9vbF9kcml2ZXIgKmRyaXZlcik7DQo+ID4N Cj4gPiAgYm9vbCB6cG9vbF9ldmljdGFibGUoc3RydWN0IHpwb29sICpwb29sKTsNCj4gPiArYm9v bCB6cG9vbF9jYW5fc2xlZXBfbWFwcGVkKHN0cnVjdCB6cG9vbCAqcG9vbCk7DQo+ID4NCj4gPiAg I2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL21tL3pwb29sLmMgYi9tbS96cG9vbC5jDQo+ID4gaW5k ZXggMzc0NGEyZC4uNWVkNzEyMCAxMDA2NDQNCj4gPiAtLS0gYS9tbS96cG9vbC5jDQo+ID4gKysr IGIvbW0venBvb2wuYw0KPiA+IEBAIC0yMyw2ICsyMyw3IEBAIHN0cnVjdCB6cG9vbCB7DQo+ID4g ICAgICAgICB2b2lkICpwb29sOw0KPiA+ICAgICAgICAgY29uc3Qgc3RydWN0IHpwb29sX29wcyAq b3BzOw0KPiA+ICAgICAgICAgYm9vbCBldmljdGFibGU7DQo+ID4gKyAgICAgICBib29sIGNhbl9z bGVlcF9tYXBwZWQ7DQo+ID4NCj4gPiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4g PiAgfTsNCj4gPiBAQCAtMTgzLDYgKzE4NCw3IEBAIHN0cnVjdCB6cG9vbCAqenBvb2xfY3JlYXRl X3Bvb2woY29uc3QgY2hhciAqdHlwZSwgY29uc3QNCj4gY2hhciAqbmFtZSwgZ2ZwX3QgZ2ZwLA0K PiA+ICAgICAgICAgenBvb2wtPnBvb2wgPSBkcml2ZXItPmNyZWF0ZShuYW1lLCBnZnAsIG9wcywg enBvb2wpOw0KPiA+ICAgICAgICAgenBvb2wtPm9wcyA9IG9wczsNCj4gPiAgICAgICAgIHpwb29s LT5ldmljdGFibGUgPSBkcml2ZXItPnNocmluayAmJiBvcHMgJiYgb3BzLT5ldmljdDsNCj4gPiAr ICAgICAgIHpwb29sLT5jYW5fc2xlZXBfbWFwcGVkID0gZHJpdmVyLT5zbGVlcF9tYXBwZWQ7DQo+ ID4NCj4gPiAgICAgICAgIGlmICghenBvb2wtPnBvb2wpIHsNCj4gPiAgICAgICAgICAgICAgICAg cHJfZXJyKCJjb3VsZG4ndCBjcmVhdGUgJXMgcG9vbFxuIiwgdHlwZSk7DQo+ID4gQEAgLTM5Myw2 ICszOTUsMTcgQEAgYm9vbCB6cG9vbF9ldmljdGFibGUoc3RydWN0IHpwb29sICp6cG9vbCkNCj4g PiAgICAgICAgIHJldHVybiB6cG9vbC0+ZXZpY3RhYmxlOw0KPiA+ICB9DQo+ID4NCj4gPiArLyoq DQo+ID4gKyAqIHpwb29sX2Nhbl9zbGVlcF9tYXBwZWQgLSBUZXN0IGlmIHpwb29sIGNhbiBzbGVl cCB3aGVuIGRvIG1hcHBlZC4NCj4gPiArICogQHpwb29sOiAgICAgVGhlIHpwb29sIHRvIHRlc3QN Cj4gPiArICoNCj4gPiArICogUmV0dXJuczogdHJ1ZSBpZiB6cG9vbCBjYW4gc2xlZXA7IGZhbHNl IG90aGVyd2lzZS4NCj4gPiArICovDQo+ID4gK2Jvb2wgenBvb2xfY2FuX3NsZWVwX21hcHBlZChz dHJ1Y3QgenBvb2wgKnpwb29sKQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4genBvb2wtPmNh bl9zbGVlcF9tYXBwZWQ7DQo+ID4gK30NCj4gPiArDQo+ID4gIE1PRFVMRV9MSUNFTlNFKCJHUEwi KTsNCj4gPiAgTU9EVUxFX0FVVEhPUigiRGFuIFN0cmVldG1hbiA8ZGRzdHJlZXRAaWVlZS5vcmc+ Iik7DQo+ID4gIE1PRFVMRV9ERVNDUklQVElPTigiQ29tbW9uIEFQSSBmb3IgY29tcHJlc3NlZCBt ZW1vcnkgc3RvcmFnZSIpOw0KPiA+IGRpZmYgLS1naXQgYS9tbS96c3dhcC5jIGIvbW0venN3YXAu Yw0KPiA+IGluZGV4IDE4MmY2YWQuLjY3ZDQ1NTUgMTAwNjQ0DQo+ID4gLS0tIGEvbW0venN3YXAu Yw0KPiA+ICsrKyBiL21tL3pzd2FwLmMNCj4gPiBAQCAtOTM1LDEzICs5MzUsMjAgQEAgc3RhdGlj IGludCB6c3dhcF93cml0ZWJhY2tfZW50cnkoc3RydWN0IHpwb29sICpwb29sLA0KPiB1bnNpZ25l ZCBsb25nIGhhbmRsZSkNCj4gPiAgICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCBpbnB1dCwgb3V0 cHV0Ow0KPiA+ICAgICAgICAgc3RydWN0IGNyeXB0b19hY29tcF9jdHggKmFjb21wX2N0eDsNCj4g Pg0KPiA+IC0gICAgICAgdTggKnNyYzsNCj4gPiArICAgICAgIHU4ICpzcmMsICp0bXA7DQo+ID4g ICAgICAgICB1bnNpZ25lZCBpbnQgZGxlbjsNCj4gPiAgICAgICAgIGludCByZXQ7DQo+ID4gICAg ICAgICBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgd2JjID0gew0KPiA+ICAgICAgICAgICAgICAg ICAuc3luY19tb2RlID0gV0JfU1lOQ19OT05FLA0KPiA+ICAgICAgICAgfTsNCj4gPg0KPiA+ICsg ICAgICAgaWYgKCF6cG9vbF9jYW5fc2xlZXBfbWFwcGVkKHBvb2wpKSB7DQo+ID4gKw0KPiA+ICsg ICAgICAgICAgICAgICB0bXAgPSBrbWFsbG9jKGVudHJ5LT5sZW5ndGgsIEdGUF9BVE9NSUMpOw0K PiANCj4gVGhpcyBoYXMgZXNjYXBlZCBteSBhdHRlbnRpb24sIGJ1dCB0aGlzIGlzIG9idmlvdXNs eSBhIGJ1Zy4gJ2VudHJ5JyBpcw0KPiBub3QgaW5pdGlhbGl6ZWQgYXQgdGhpcyBwb2ludC4NCj4g WW91IGVpdGhlciBoYXZlIHRvIG1vdmUgbWVtb3J5IGFsbG9jYXRpb24gZnVydGhlciBkb3duIHdo ZW4NCj4gZW50cnktPmxlbmd0aCBzdGFydHMgbWFraW5nIHNlbnNlLCBvciBhbGxvY2F0ZSBQQUdF X1NJWkUuDQo+IA0KDQpTaW5jZSB6c21hbGxvYyBoYXMgbm8gZXZpY3QgZW50cnksIHdlIGhhdmUg bmV2ZXIgYXJyaXZlZCBoZXJlLg0KVGhhdCdzIHdoeSB0aGUgdGVzdGluZyBieSBib3RoIFRpYW50 YW8gYW5kIFNlYmFzdGlhbiBkaWRuJ3QNCnNob3cgdGhlIHByb2JsZW0uDQoNCg0KPiBCZXN0IHJl Z2FyZHMsDQo+ICAgIFZpdGFseQ0KPiANCj4gPiArICAgICAgICAgICAgICAgaWYgKCF0bXApDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ID4gKyAgICAgICB9 DQo+ID4gKw0KPiA+ICAgICAgICAgLyogZXh0cmFjdCBzd3BlbnRyeSBmcm9tIGRhdGEgKi8NCj4g PiAgICAgICAgIHpoZHIgPSB6cG9vbF9tYXBfaGFuZGxlKHBvb2wsIGhhbmRsZSwgWlBPT0xfTU1f Uk8pOw0KPiA+ICAgICAgICAgc3dwZW50cnkgPSB6aGRyLT5zd3BlbnRyeTsgLyogaGVyZSAqLw0K PiA+IEBAIC05NzksNiArOTg2LDE0IEBAIHN0YXRpYyBpbnQgenN3YXBfd3JpdGViYWNrX2VudHJ5 KHN0cnVjdCB6cG9vbCAqcG9vbCwNCj4gdW5zaWduZWQgbG9uZyBoYW5kbGUpDQo+ID4gICAgICAg ICAgICAgICAgIGRsZW4gPSBQQUdFX1NJWkU7DQo+ID4gICAgICAgICAgICAgICAgIHNyYyA9ICh1 OCAqKXpoZHIgKyBzaXplb2Yoc3RydWN0IHpzd2FwX2hlYWRlcik7DQo+ID4NCj4gPiArICAgICAg ICAgICAgICAgaWYgKCF6cG9vbF9jYW5fc2xlZXBfbWFwcGVkKHBvb2wpKSB7DQo+ID4gKw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweSh0bXAsIHNyYywgZW50cnktPmxlbmd0aCk7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc3JjID0gdG1wOw0KPiA+ICsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICB6cG9vbF91bm1hcF9oYW5kbGUocG9vbCwgaGFuZGxlKTsNCj4g PiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiAgICAgICAgICAgICAgICAgbXV0ZXhfbG9j ayhhY29tcF9jdHgtPm11dGV4KTsNCj4gPiAgICAgICAgICAgICAgICAgc2dfaW5pdF9vbmUoJmlu cHV0LCBzcmMsIGVudHJ5LT5sZW5ndGgpOw0KPiA+ICAgICAgICAgICAgICAgICBzZ19pbml0X3Rh YmxlKCZvdXRwdXQsIDEpOw0KPiA+IEBAIC0xMDMzLDcgKzEwNDgsMTEgQEAgc3RhdGljIGludCB6 c3dhcF93cml0ZWJhY2tfZW50cnkoc3RydWN0IHpwb29sICpwb29sLA0KPiB1bnNpZ25lZCBsb25n IGhhbmRsZSkNCj4gPiAgICAgICAgIHNwaW5fdW5sb2NrKCZ0cmVlLT5sb2NrKTsNCj4gPg0KPiA+ ICBlbmQ6DQo+ID4gLSAgICAgICB6cG9vbF91bm1hcF9oYW5kbGUocG9vbCwgaGFuZGxlKTsNCj4g PiArICAgICAgIGlmICh6cG9vbF9jYW5fc2xlZXBfbWFwcGVkKHBvb2wpKQ0KPiA+ICsgICAgICAg ICAgICAgICB6cG9vbF91bm1hcF9oYW5kbGUocG9vbCwgaGFuZGxlKTsNCj4gPiArICAgICAgIGVs c2UNCj4gPiArICAgICAgICAgICAgICAga2ZyZWUodG1wKTsNCj4gPiArDQo+ID4gICAgICAgICBy ZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMTIzNSw3ICsxMjU0LDcgQEAgc3RhdGlj IGludCB6c3dhcF9mcm9udHN3YXBfbG9hZCh1bnNpZ25lZCB0eXBlLCBwZ29mZl90DQo+IG9mZnNl dCwNCj4gPiAgICAgICAgIHN0cnVjdCB6c3dhcF9lbnRyeSAqZW50cnk7DQo+ID4gICAgICAgICBz dHJ1Y3Qgc2NhdHRlcmxpc3QgaW5wdXQsIG91dHB1dDsNCj4gPiAgICAgICAgIHN0cnVjdCBjcnlw dG9fYWNvbXBfY3R4ICphY29tcF9jdHg7DQo+ID4gLSAgICAgICB1OCAqc3JjLCAqZHN0Ow0KPiA+ ICsgICAgICAgdTggKnNyYywgKmRzdCwgKnRtcDsNCj4gPiAgICAgICAgIHVuc2lnbmVkIGludCBk bGVuOw0KPiA+ICAgICAgICAgaW50IHJldDsNCj4gPg0KPiA+IEBAIC0xMjU2LDEyICsxMjc1LDI5 IEBAIHN0YXRpYyBpbnQgenN3YXBfZnJvbnRzd2FwX2xvYWQodW5zaWduZWQgdHlwZSwgcGdvZmZf dA0KPiBvZmZzZXQsDQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZnJlZWVudHJ5Ow0KPiA+ICAg ICAgICAgfQ0KPiA+DQo+ID4gKyAgICAgICBpZiAoIXpwb29sX2Nhbl9zbGVlcF9tYXBwZWQoZW50 cnktPnBvb2wtPnpwb29sKSkgew0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgdG1wID0ga21h bGxvYyhlbnRyeS0+bGVuZ3RoLCBHRlBfQVRPTUlDKTsNCj4gPiArICAgICAgICAgICAgICAgaWYg KCF0bXApIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZnJlZWVudHJ5Ow0KPiA+ICsgICAgICAgICAg ICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICAgICAgICAgLyogZGVjb21wcmVzcyAq Lw0KPiA+ICAgICAgICAgZGxlbiA9IFBBR0VfU0laRTsNCj4gPiAgICAgICAgIHNyYyA9IHpwb29s X21hcF9oYW5kbGUoZW50cnktPnBvb2wtPnpwb29sLCBlbnRyeS0+aGFuZGxlLA0KPiBaUE9PTF9N TV9STyk7DQo+ID4gICAgICAgICBpZiAoenBvb2xfZXZpY3RhYmxlKGVudHJ5LT5wb29sLT56cG9v bCkpDQo+ID4gICAgICAgICAgICAgICAgIHNyYyArPSBzaXplb2Yoc3RydWN0IHpzd2FwX2hlYWRl cik7DQo+ID4NCj4gPiArICAgICAgIGlmICghenBvb2xfY2FuX3NsZWVwX21hcHBlZChlbnRyeS0+ cG9vbC0+enBvb2wpKSB7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBtZW1jcHkodG1wLCBz cmMsIGVudHJ5LT5sZW5ndGgpOw0KPiA+ICsgICAgICAgICAgICAgICBzcmMgPSB0bXA7DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICB6cG9vbF91bm1hcF9oYW5kbGUoZW50cnktPnBvb2wtPnpw b29sLCBlbnRyeS0+aGFuZGxlKTsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gICAgICAgICBh Y29tcF9jdHggPSByYXdfY3B1X3B0cihlbnRyeS0+cG9vbC0+YWNvbXBfY3R4KTsNCj4gPiAgICAg ICAgIG11dGV4X2xvY2soYWNvbXBfY3R4LT5tdXRleCk7DQo+ID4gICAgICAgICBzZ19pbml0X29u ZSgmaW5wdXQsIHNyYywgZW50cnktPmxlbmd0aCk7DQo+ID4gQEAgLTEyNzEsNyArMTMwNywxMSBA QCBzdGF0aWMgaW50IHpzd2FwX2Zyb250c3dhcF9sb2FkKHVuc2lnbmVkIHR5cGUsIHBnb2ZmX3QN Cj4gb2Zmc2V0LA0KPiA+ICAgICAgICAgcmV0ID0gY3J5cHRvX3dhaXRfcmVxKGNyeXB0b19hY29t cF9kZWNvbXByZXNzKGFjb21wX2N0eC0+cmVxKSwNCj4gJmFjb21wX2N0eC0+d2FpdCk7DQo+ID4g ICAgICAgICBtdXRleF91bmxvY2soYWNvbXBfY3R4LT5tdXRleCk7DQo+ID4NCj4gPiAtICAgICAg IHpwb29sX3VubWFwX2hhbmRsZShlbnRyeS0+cG9vbC0+enBvb2wsIGVudHJ5LT5oYW5kbGUpOw0K PiA+ICsgICAgICAgaWYgKHpwb29sX2Nhbl9zbGVlcF9tYXBwZWQoZW50cnktPnBvb2wtPnpwb29s KSkNCj4gPiArICAgICAgICAgICAgICAgenBvb2xfdW5tYXBfaGFuZGxlKGVudHJ5LT5wb29sLT56 cG9vbCwgZW50cnktPmhhbmRsZSk7DQo+ID4gKyAgICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAg ICAgIGtmcmVlKHRtcCk7DQo+ID4gKw0KPiA+ICAgICAgICAgQlVHX09OKHJldCk7DQo+ID4NCj4g PiAgZnJlZWVudHJ5Og0KPiA+IEBAIC0xMjc5LDcgKzEzMTksNyBAQCBzdGF0aWMgaW50IHpzd2Fw X2Zyb250c3dhcF9sb2FkKHVuc2lnbmVkIHR5cGUsIHBnb2ZmX3QNCj4gb2Zmc2V0LA0KPiA+ICAg ICAgICAgenN3YXBfZW50cnlfcHV0KHRyZWUsIGVudHJ5KTsNCj4gPiAgICAgICAgIHNwaW5fdW5s b2NrKCZ0cmVlLT5sb2NrKTsNCj4gPg0KPiA+IC0gICAgICAgcmV0dXJuIDA7DQo+ID4gKyAgICAg ICByZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4NCj4gPiAgLyogZnJlZXMgYW4gZW50cnkgaW4genN3 YXAgKi8NCj4gPiAtLQ0KPiA+IDIuNy40DQo+ID4NCg0KVGhhbmtzDQpCYXJyeQ0KDQo=