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=-6.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 A88DDC33C99 for ; Tue, 7 Jan 2020 09:05:07 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 269C02080A for ; Tue, 7 Jan 2020 09:05:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="f5vWmbQf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 269C02080A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 6FFD68E001F; Tue, 7 Jan 2020 04:05:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 688C48E001E; Tue, 7 Jan 2020 04:05:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 52ACE8E001F; Tue, 7 Jan 2020 04:05:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0060.hostedemail.com [216.40.44.60]) by kanga.kvack.org (Postfix) with ESMTP id 374B48E001E for ; Tue, 7 Jan 2020 04:05:06 -0500 (EST) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with SMTP id F0EBC8249980 for ; Tue, 7 Jan 2020 09:05:05 +0000 (UTC) X-FDA: 76350253770.26.ant91_83b7d24683505 X-HE-Tag: ant91_83b7d24683505 X-Filterd-Recvd-Size: 14896 Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by imf45.hostedemail.com (Postfix) with ESMTP for ; Tue, 7 Jan 2020 09:05:04 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id c14so52975106wrn.7 for ; Tue, 07 Jan 2020 01:05:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:references:mime-version:message-id :content-transfer-encoding; bh=NT23SAB+gYCo5aW0lnbvbeXfC+riwB0HBKedNxYl9XA=; b=f5vWmbQflKZc5LFdF4wgA3I7c14YtgxghOKI9hIPuexX+aURy6XWznba8iVUdfoIr3 fYNmwB1AD7T4NBxSP71o7FQfHHWJ7lvjwwdWu8JeYVU+arygQ5wS/Sjc+73zwfLUwEpC k2h5wgILTn99Mr9h7v2rrLCD/ZUhjbVxydNFj34SKoD+vLZ2XvaA0PkEJsiA4R47J1Cv oSMpdF+d7YU/FnFBJH4XSL+vrhFjguYZneIMyTAv4ACeK9F/6IUHe5O6TZSa+bTt5jYK Li8O84Y3HrQ+rDSXpvsupFTSjTA3OrLhUaQOFkA6+j+ouBe7h+dPGZwLPVmuK05FRHvr fxWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:references:mime-version :message-id:content-transfer-encoding; bh=NT23SAB+gYCo5aW0lnbvbeXfC+riwB0HBKedNxYl9XA=; b=j3sbD0B1imP2wAJKBkoep7rJpb5U3BUYnadB9ptg1N3NdQwVgdRIcFIbXTp4zB87GX LXgDC57zxgMJ0Jo7s0u6VO1GStl/pm6vE+NKtc89kybrmefYIiKYIo8hq0s2SG4gC4+d DHIOG2Btrxe7bdcewroyyJEg3udTGqZCoWGxQ1l7CQuaG2Ldf1UwgI2DpAVMzgMZs2F9 sgody6VwCFSAt5dmxjXspCK0y9j9b5LitFP6wwg/uoiROIqf3rgY7Ib3QBu9wf5y5+3j iko03HHI5DxibHH4COmq1GlT0tLNw89xL/FMoEmLwBpdqy1kwUpGGM0IcioMtusO8J1C dEIA== X-Gm-Message-State: APjAAAUYaV/uDrnfOvsq5OHGfhjRfXhjUJr+rglhfe4ttiPBBafR5+Ac C0jdIL1NJrNfWjVLc5xECbk= X-Google-Smtp-Source: APXvYqwYVx/4Zm2pZrtbbidbOuVqcTR5To6tCOx7TX77xr+4FdOehkSMH5tReOGvsLcXnYbny80+zA== X-Received: by 2002:a5d:6802:: with SMTP id w2mr105694126wru.353.1578387903708; Tue, 07 Jan 2020 01:05:03 -0800 (PST) Received: from N-20L6PF1KTYA2 ([131.228.2.21]) by smtp.gmail.com with ESMTPSA id x10sm72471307wrv.60.2020.01.07.01.05.00 (version=TLS1_2 cipher=AES128-GCM-SHA256 bits=128/128); Tue, 07 Jan 2020 01:05:02 -0800 (PST) Date: Tue, 7 Jan 2020 17:05:00 +0800 From: "lixinhai.lxh@gmail.com" To: khlebnikov , "Konstantin Khlebnikov" Cc: "linux-mm@kvack.org" , akpm , "linux-kernel@vger.kernel.org" , richardw.yang , kirill.shutemov Subject: Re: [PATCH] mm/rmap: fix reusing mergeable anon_vma as parent when fork References: <157830736034.8148.7070851958306750616.stgit@buzz>, , <2020010710441027026650@gmail.com>, X-Priority: 3 X-GUID: DD46B966-FE44-4603-AC63-635860348E7A X-Has-Attach: no X-Mailer: Foxmail 7.2.13.365[cn] Mime-Version: 1.0 Message-ID: <2020010717045916228557@gmail.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 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: T24gMjAyMC0wMS0wN8KgYXQgMTY6MjTCoEtvbnN0YW50aW4gS2hsZWJuaWtvdsKgd3JvdGU6Cj5P biAwNy8wMS8yMDIwIDA1LjQ0LCBsaXhpbmhhaS5seGhAZ21haWwuY29tIHdyb3RlOgo+PiBPbiAy MDIwLTAxLTA3wqBhdCAwNDozNcKgS29uc3RhbnRpbiBLaGxlYm5pa292wqB3cm90ZToKPj4+IE9u IE1vbiwgSmFuIDYsIDIwMjAgYXQgMTo0MiBQTSBLb25zdGFudGluIEtobGVibmlrb3YKPj4+IDxr aGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PiB3cm90ZToKPj4+Pgo+Pj4+IFRoaXMgZml4ZXMgY291 cGxlIG1pc2NvbmNlcHRpb25zIGluIGNvbW1pdCA0ZTRhOWViOTIxMzMgKCJtbS9ybWFwLmM6IHJl dXNlCj4+Pj4gbWVyZ2VhYmxlIGFub25fdm1hIGFzIHBhcmVudCB3aGVuIGZvcmsiKS4KPj4+Pgo+ Pj4+IEZpcnN0IHByb2JsZW0gY2F1c2VkIGJ5IGluaXRpYWxpemF0aW9uIG9yZGVyIGluIGR1cF9t bWFwKCk6IHZtYS0+dm1fcHJldgo+Pj4+IGlzIHNldCBhZnRlciBjYWxsaW5nIGFub25fdm1hX2Zv cmsoKS4gVGh1cyBpbiBhbm9uX3ZtYV9mb3JrKCkgaXQgcG9pbnRzIHRvCj4+Pj4gcHJldmlvdXMg Vk1BIGluIHBhcmVudCBtbS4gVGhpcyBpcyBmaXhlZCBieSByZWFycmFuZ2VtZW50IGluIGR1cF9t bWFwKCkuCj4+Pj4KPj4+PiBJZiBpbiBwYXJlbnQgVk1BczogU1JDMSBTUkMyIC4uIFNSQ24gc2hh cmUgYW5vbi12bWEgQU5PTjAsIHRoZW4gYWZ0ZXIgZm9yawo+Pj4+IGJlZm9yZSBhbGwgcGF0Y2hl cyBpbiBjaGlsZCBwcm9jZXNzIHJlbGF0ZWQgVk1BczogRFNUMSBEU1QyIC4uIERTVG4gd2lsbAo+ Pj4+IHVzZSBkaWZmZXJlbnQgYW5vbi12bWFzOiBBTk9OMSBBTk9OMiAuLiBBTk9Obi4gQmVmb3Jl IHRoaXMgcGF0Y2ggb25seSBEU1QxCj4+Pj4gd2lsbCBmb3JrIG5ldyBBTk9OMSBhbmQgZm9sbG93 aW5nIERTVDIgLi4gRFNUbiB3aWxsIHNoYXJlIHBhcmVudCdzIEFOT04wLgo+Pj4+IFdpdGggdGhp cyBwYXRjaCBEU1QxIHdpbGwgY3JlYXRlIG5ldyBBTk9OMSBhbmQgRFNUMiAuLiBEU1RuIHdpbGwg c2hhcmUgaXQuCj4+Pj4KPj4+PiBBbHNvIHRoaXMgcGF0Y2ggbW92ZXMgc2hhcmluZyBsb2dpYyBv dXQgb2YgYW5vbl92bWFfY2xvbmUoKSBpbnRvIG1vcmUKPj4+PiBzcGVjaWZpYyBhbm9uX3ZtYV9m b3JrKCkgYmVjYXVzZSB0aGlzIHN1cHBvc2VkIHRvIHdvcmsgb25seSBhdCBmb3JrKCkuCj4+Pj4g RnVuY3Rpb24gYW5vbl92bWFfY2xvbmUoKSBpcyBtb3JlIGdlbmVyaWMgaXMgYWxzbyB1c2VkIGF0 IHNwbGl0dGluZyBWTUFzLgo+Pj4+Cj4+Pj4gU2Vjb25kIHByb2JsZW0gaXMgaGlkZGVuIGJlaGlu ZCBmaXJzdCBvbmU6IGFzc3VtcHRpb24gIlBhcmVudCBoYXMgdm1fcHJldiwKPj4+PiB3aGljaCBp bXBsaWVzIHdlIGhhdmUgdm1fcHJldiIgaXMgd3JvbmcgaWYgZmlyc3QgVk1BIGluIHBhcmVudCBt bSBoYXMgc2V0Cj4+Pj4gZmxhZyBWTV9ET05UQ09QWS4gTHVja2lseSBwcmV2LT5hbm9uX3ZtYSBk b2Vzbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcgo+Pj4+IGJlY2F1c2UgaW4gY3VycmVudCBj b2RlICdwcmV2JyBhY3R1YWxseSBpcyBzYW1lIGFzICdwcHJldicuIFRvIGF2b2lkIHRoYXQKPj4+ PiB0aGlzIHBhdGNoIGp1c3QgY2hlY2tzIHBvaW50ZXIgYW5kIGNvbXBhcmVzIHZtX3N0YXJ0IHRv IHZlcmlmeSByZWxhdGlvbgo+Pj4+IGJldHdlZW4gcHJldmlvdXMgVk1BcyBpbiBwYXJlbnQgYW5k IGNoaWxkLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogS29uc3RhbnRpbiBLaGxlYm5pa292IDxr aGxlYm5pa292QHlhbmRleC10ZWFtLnJ1Pgo+Pj4+IEZpeGVzOiA0ZTRhOWViOTIxMzMgKCJtbS9y bWFwLmM6IHJldXNlIG1lcmdlYWJsZSBhbm9uX3ZtYSBhcyBwYXJlbnQgd2hlbiBmb3JrIikKPj4+ Cj4+PiBPb3BzLCBJJ3ZlIGZvcmdvdCB0byBtZW50aW9uIHRoYXQgTGkgWGluaGFpIDxsaXhpbmhh aS5seGhAZ21haWwuY29tPgo+Pj4gZm91bmQgYW5kIHJlcG9ydGVkIHRoaXMgc3VzcGljaW91cyBj b2RlLiBTb3JyeS4KPj4+Cj4+PiBSZXBvcnRlZC1ieTogTGkgWGluaGFpIDxsaXhpbmhhaS5seGhA Z21haWwuY29tPgo+Pj4gTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGludXgtbW0vQ0FM WUdOaU56eitkeEhYMGc1LWdOeXBVUWMzQj04X1NjcDUzLU5UT2g9eldzZFV1SEF3QG1haWwuZ21h aWwuY29tL1QvI3QKPj4+Cj4+Cj4+IENhbiB3ZSBjaGFuZ2UgdGhlIGludGVyZmFjZQo+PiBpbnQg YW5vbl92bWFfZm9yayhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICpwdm1hKSwKPj4gdG8KPj4gaW50IGFub25fdm1hX2Zvcmsoc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqcHZtYSwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICpwY3ZtYSksCj4+IGFuZCAncGN2bWEnIG1lYW5zIHByZXZpb3VzIGNoaWxkIHZtYS4K Pj4gc28gaGlnaGxpZ2h0IHRoZSB1c2Ugb2YgdGhhdCB2bWEsIGFuZCB0aGUgY3VycmVudCBjb2Rl IHNlcXVlbmNlIGZvciBsaW5raW5nICd0bXAnIHZtYQo+PiBpbiBkdXBfbW1hcCgpIGlzIG5vdCBj aGFuZ2VkKGluIGNhc2Ugc29tZSBjb2RlIHdvdWxkIGhhdmUgZGVwZW5kZW5jeSBvbiB0aGF0Cj4+ IGxpbmtpbmcgc2VxdWVuY2UpCj4KPlRoZXJlIHNob3VsZCBiZSBubyBkZXBlbmRlbmN5IG9uIGxp bmtpbmcgc2VxdWVuY2UuCj5CdXQgd2UgY291bGQgZ2VuZXJhbGl6ZSBzaGFyaW5nOiBjbG9uZWQg dm1hIGNvdWxkIHNoYXJlIHByZXYgYW5vbi12bWEKPihvciBhbnkgb3RoZXIgYWN0dWFsbHkpIGlm IGFub25fdm1hLT5wYXJlbnQgPT0gc3JjLT5hbm9uX3ZtYS4KPlRoaXMgaXMgbW9yZSBjbGVhciB0 aGFuIHNoYXJpbmcgb25seSBiZXR3ZWVuIHJlbGF0ZWQgdm1hcy4KPiAKSSBtZWFuIGluwqAKaW50 IGR1cF9tbWFwKC4uLikKewoJCXRtcCA9IHZtX2FyZWFfZHVwKG1wbnQpOwoKLy8uLi4uIHNvbWUg Y29kZSBpbiB0aGlzIHBhcnQgd291bGQgaGF2ZSBkZXBlbmRlbmN5IG9uICd0bXAtPnZtX3ByZXYs IHRtcC0+dm1fbmV4dCcKLy8gLi4uIEkgZGlkbid0IGdvIHRocm91Z2ggYWxsIHRoaXMgcGFydCwg YnV0IG5lZWQgdGFrZSBjYXJlIGFib3V0IGl0LgovLyBzbywgYmV0dGVyIHRvIGtlZXAgdGhlIGN1 cnJlbnQgc2VtYW50aWMgYW5kIHBhc3MgaW4gKnBwcmV2IGZvciBhbm9uIHZtYSBjYWxsCgoJCS8q CgkJICogTGluayBpbiB0aGUgbmV3IHZtYSBhbmQgY29weSB0aGUgcGFnZSB0YWJsZSBlbnRyaWVz LgoJCSAqLwoJCSpwcHJldiA9IHRtcDsKCQlwcHJldiA9ICZ0bXAtPnZtX25leHQ7CgkJdG1wLT52 bV9wcmV2ID0gcHJldjsKCQlwcmV2ID0gdG1wOwoKfQoKPj4KPj4gQW5vdGhlciBpc3N1ZSBpcyBm b3IgbGlua2luZyB0aGUgYXZjIGZvciB0aGUgcmV1c2VkIGFub25fdm1hLiBhbm9uX3ZtYV9jbG9u ZSgpCj4+IHVzZSB0aGUgaXRlcmF0aW9uCj4+IGxpc3RfZm9yX2VhY2hfZW50cnlfcmV2ZXJzZShw YXZjLCAmc3JjLT5hbm9uX3ZtYV9jaGFpbiwgc2FtZV92bWEpLAo+PiB0byBsaW5rIGF2YyBmb3Ig Y2hpbGQgdm1hLCBhbmQgaXQgaXMgdW5hYmxlIHRvIHJlYWNoIHRoZSByZXN1ZWQgYW5vbl92bWEg YmVjYXVzZQo+PiB0aGF0IGlzIGZyb20gdGhlIHByZXZpb3VzIHZtYSBub3QgZnJvbSBwYXJlbnQg dm1hLiBTbywgaW4gYW5vbl92bWFfZm9yaygpLAo+PiB3ZSBuZWVkIHRvIHNldHVwIHRoZcKgYXZj IGxpbmsgZm9yIHZtYS0+YW5vbi4KPgo+T2gsIHllcy4gVGhhdCdzIGFub3RoZXIgZXhhbXBsZSB3 aGVyZSBjdXJyZW50IGNvZGUgbWlyYWN1bG91c2x5IHN0YXlzIGNvcnJlY3QuCj4KPj4KPj4+PiAt LS0KPj4+PsKgIMKgIGtlcm5lbC9mb3JrLmMgfMKgwqDCoCA0ICsrLS0KPj4+PsKgIMKgIG1tL3Jt YXAuY8KgwqDCoMKgIHzCoMKgIDI1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPj4+PsKgIMKg IDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4+Pj4K Pj4+PiBkaWZmIC0tZ2l0IGEva2VybmVsL2ZvcmsuYyBiL2tlcm5lbC9mb3JrLmMKPj4+PiBpbmRl eCAyNTA4YTRmMjM4YTMuLjA0ZWU1ZTI0M2Y2NSAxMDA2NDQKPj4+PiAtLS0gYS9rZXJuZWwvZm9y ay5jCj4+Pj4gKysrIGIva2VybmVsL2ZvcmsuYwo+Pj4+IEBAIC01NDgsNiArNTQ4LDggQEAgc3Rh dGljIF9fbGF0ZW50X2VudHJvcHkgaW50IGR1cF9tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+ Pj4+wqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldHZhbCkKPj4+PsKg IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZh aWxfbm9tZW1fcG9saWN5Owo+Pj4+wqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dG1wLT52bV9tbSA9IG1tOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcC0+ dm1fcHJldiA9IHByZXY7wqDCoMKgIC8qIGFub25fdm1hX2ZvcmsgdXNlIHRoaXMgKi8KPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0bXAtPnZtX25leHQgPSBOVUxMOwo+Pj4+wqAg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dmFsID0gZHVwX3VzZXJmYXVsdGZk KHRtcCwgJnVmKTsKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChy ZXR2YWwpCj4+Pj7CoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZ290byBmYWlsX25vbWVtX2Fub25fdm1hX2Zvcms7Cj4+Pj4gQEAgLTU1OSw3ICs1NjEs NiBAQCBzdGF0aWMgX19sYXRlbnRfZW50cm9weSBpbnQgZHVwX21tYXAoc3RydWN0IG1tX3N0cnVj dCAqbW0sCj4+Pj7CoCDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYg KGFub25fdm1hX2ZvcmsodG1wLCBtcG50KSkKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZhaWxfbm9tZW1fYW5vbl92bWFfZm9yazsK Pj4+PsKgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcC0+dm1fZmxhZ3MgJj0g fihWTV9MT0NLRUQgfCBWTV9MT0NLT05GQVVMVCk7Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdG1wLT52bV9uZXh0ID0gdG1wLT52bV9wcmV2ID0gTlVMTDsKPj4+PsKgIMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpbGUgPSB0bXAtPnZtX2ZpbGU7Cj4+Pj7CoCDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZmlsZSkgewo+Pj4+wqAgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbm9kZSAq aW5vZGUgPSBmaWxlX2lub2RlKGZpbGUpOwo+Pj4+IEBAIC01OTIsNyArNTkzLDYgQEAgc3RhdGlj IF9fbGF0ZW50X2VudHJvcHkgaW50IGR1cF9tbWFwKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+Pj4+ wqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+wqAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKnBwcmV2ID0gdG1wOwo+Pj4+wqAgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcHByZXYgPSAmdG1wLT52bV9uZXh0Owo+Pj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRtcC0+dm1fcHJldiA9IHByZXY7Cj4+Pj7CoCDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcmV2ID0gdG1wOwo+Pj4+Cj4+Pj7CoCDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3ZtYV9saW5rX3JiKG1tLCB0bXAsIHJiX2xpbmss IHJiX3BhcmVudCk7Cj4+Pj4gZGlmZiAtLWdpdCBhL21tL3JtYXAuYyBiL21tL3JtYXAuYwo+Pj4+ IGluZGV4IGIzZTM4MTkxOTgzNS4uNzdiM2FhMzhkNWMyIDEwMDY0NAo+Pj4+IC0tLSBhL21tL3Jt YXAuYwo+Pj4+ICsrKyBiL21tL3JtYXAuYwo+Pj4+IEBAIC0yNjksMTkgKzI2OSw2IEBAIGludCBh bm9uX3ZtYV9jbG9uZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmRzdCwgc3RydWN0IHZtX2FyZWFf c3RydWN0ICpzcmMpCj4+Pj7CoCDCoCB7Cj4+Pj7CoCDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBh bm9uX3ZtYV9jaGFpbiAqYXZjLCAqcGF2YzsKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0 IGFub25fdm1hICpyb290ID0gTlVMTDsKPj4+PiAtwqDCoMKgwqDCoMKgIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqcHJldiA9IGRzdC0+dm1fcHJldiwgKnBwcmV2ID0gc3JjLT52bV9wcmV2Owo+Pj4+ IC0KPj4+PiAtwqDCoMKgwqDCoMKgIC8qCj4+Pj4gLcKgwqDCoMKgwqDCoMKgICogSWYgcGFyZW50 IHNoYXJlIGFub25fdm1hIHdpdGggaXRzIHZtX3ByZXYsIGtlZXAgdGhpcyBzaGFyaW5nIGluIGlu Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgICogY2hpbGQuCj4+Pj4gLcKgwqDCoMKgwqDCoMKgICoKPj4+ PiAtwqDCoMKgwqDCoMKgwqAgKiAxLiBQYXJlbnQgaGFzIHZtX3ByZXYsIHdoaWNoIGltcGxpZXMg d2UgaGF2ZSB2bV9wcmV2Lgo+Pj4+IC3CoMKgwqDCoMKgwqDCoCAqIDIuIFBhcmVudCBhbmQgaXRz IHZtX3ByZXYgaGF2ZSB0aGUgc2FtZSBhbm9uX3ZtYS4KPj4+PiAtwqDCoMKgwqDCoMKgwqAgKi8K Pj4+PiAtwqDCoMKgwqDCoMKgIGlmICghZHN0LT5hbm9uX3ZtYSAmJiBzcmMtPmFub25fdm1hICYm Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIHBwcmV2ICYmIHBwcmV2LT5hbm9uX3ZtYSA9PSBz cmMtPmFub25fdm1hKQo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRzdC0+YW5v bl92bWEgPSBwcmV2LT5hbm9uX3ZtYTsKPj4+PiAtCj4+Pj4KPj4+PsKgIMKgwqDCoMKgwqDCoMKg wqAgbGlzdF9mb3JfZWFjaF9lbnRyeV9yZXZlcnNlKHBhdmMsICZzcmMtPmFub25fdm1hX2NoYWlu LCBzYW1lX3ZtYSkgewo+Pj4+wqAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IGFub25fdm1hICphbm9uX3ZtYTsKPj4+PiBAQCAtMzM0LDYgKzMyMSw3IEBAIGludCBhbm9u X3ZtYV9jbG9uZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmRzdCwgc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICpzcmMpCj4+Pj7CoCDCoMKgICovCj4+Pj7CoCDCoCBpbnQgYW5vbl92bWFfZm9yayhzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpwdm1hKQo+Pj4+ wqAgwqAgewo+Pj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpwcmV2ID0g dm1hLT52bV9wcmV2LCAqcHByZXYgPSBwdm1hLT52bV9wcmV2Owo+Pj4+wqAgwqDCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgYW5vbl92bWFfY2hhaW4gKmF2YzsKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGFub25fdm1hICphbm9uX3ZtYTsKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqAgaW50IGVy cm9yOwo+Pj4+IEBAIC0zNDUsNiArMzMzLDE3IEBAIGludCBhbm9uX3ZtYV9mb3JrKHN0cnVjdCB2 bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnB2bWEpCj4+Pj7CoCDC oMKgwqDCoMKgwqDCoMKgIC8qIERyb3AgaW5oZXJpdGVkIGFub25fdm1hLCB3ZSdsbCByZXVzZSBl eGlzdGluZyBvciBhbGxvY2F0ZSBuZXcuICovCj4+Pj7CoCDCoMKgwqDCoMKgwqDCoMKgIHZtYS0+ YW5vbl92bWEgPSBOVUxMOwo+Pj4+Cj4+Pj4gK8KgwqDCoMKgwqDCoCAvKgo+Pj4+ICvCoMKgwqDC oMKgwqDCoCAqIElmIHBhcmVudCBzaGFyZXMgYW5vbl92bWEgd2l0aCBpdHMgdm1fcHJldiwga2Vl cCB0aGlzIHNoYXJpbmcuCj4+Pj4gK8KgwqDCoMKgwqDCoMKgICoKPj4+PiArwqDCoMKgwqDCoMKg wqAgKiBQcmV2aW91cyBWTUEgY291bGQgYmUgbWlzc2luZyBvciBub3QgbWF0Y2ggcHJldml1b3Mg aW4gcGFyZW50Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgICogaWYgVk1fRE9OVENPUFkgaXMgc2V0OiBj b21wYXJlIHZtX3N0YXJ0IHRvIGF2b2lkIHRoaXMgY2FzZS4KPj4+PiArwqDCoMKgwqDCoMKgwqAg Ki8KPj4+PiArwqDCoMKgwqDCoMKgIGlmIChwdm1hLT5hbm9uX3ZtYSAmJiBwcHJldiAmJiBwcmV2 ICYmCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHBwcmV2LT5hbm9uX3ZtYSA9PSBwdm1hLT5h bm9uX3ZtYSAmJgo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcHJldi0+dm1fc3RhcnQgPT0g cHJldi0+dm1fc3RhcnQpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdm1hLT5h bm9uX3ZtYSA9IHByZXYtPmFub25fdm1hOwo+Pj4+ICsKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqAg LyoKPj4+PsKgIMKgwqDCoMKgwqDCoMKgwqDCoCAqIEZpcnN0LCBhdHRhY2ggdGhlIG5ldyBWTUEg dG8gdGhlIHBhcmVudCBWTUEncyBhbm9uX3ZtYXMsCj4+Pj7CoCDCoMKgwqDCoMKgwqDCoMKgwqAg KiBzbyBybWFwIGNhbiBmaW5kIG5vbi1DT1dlZCBwYWdlcyBpbiBjaGlsZCBwcm9jZXNzZXMuCj4+ Pj4KPj4+ID4=