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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 89E3BC61D9B for ; Wed, 22 Nov 2023 09:23:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=z99UUpGx+klsqoC+Fov3J8zApTr+Akqx8m1549J3n4k=; b=xloQvlo276ufNb sZ0Epaz8MI8yPWRdKKeWh+VOUwxcWOb2R/ksK6NWMG6lN5SoaGKtr2CXsU2wO4OJwinbt5nyccFKA 1AvGGFzYGtYIt69tmBcIdGsNaGGht2ybcqyZbGs/cJCfvdJNq4HydfEp6QOps1sfGsPiKdtmlr/sm IDNhbB3xyxfkgU5F/Ug4+IzoTtOWX7OkXO586dswCkDTHzA1mpk9tiqFbMSLCbKz5zBCd/dnTb9P9 br1FqHTYdY+Yh8UiwtoQnfEEzoM5M1RlZ1MPEx0pN4mfr8WmYhpC3Uf1YW9KA8Yh/Ih0AgZxvnZAp OeP/YQ8aKr8CNEtvaiKQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r5jRY-001By8-1g; Wed, 22 Nov 2023 09:22:48 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r5jRW-001BxE-0W for linux-arm-kernel@lists.infradead.org; Wed, 22 Nov 2023 09:22:47 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 42BE01595; Wed, 22 Nov 2023 01:23:32 -0800 (PST) Received: from arm.com (e121798.cambridge.arm.com [10.1.197.44]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3C2073F73F; Wed, 22 Nov 2023 01:22:41 -0800 (PST) Date: Wed, 22 Nov 2023 09:22:38 +0000 From: Alexandru Elisei To: Peter Collingbourne Cc: catalin.marinas@arm.com, will@kernel.org, oliver.upton@linux.dev, maz@kernel.org, james.morse@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, arnd@arndb.de, akpm@linux-foundation.org, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, mhiramat@kernel.org, rppt@kernel.org, hughd@google.com, steven.price@arm.com, anshuman.khandual@arm.com, vincenzo.frascino@arm.com, david@redhat.com, eugenis@google.com, kcc@google.com, hyesoo.yu@samsung.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kvmarm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Subject: Re: [PATCH RFC v2 20/27] mm: hugepage: Handle huge page fault on access Message-ID: References: <20231119165721.9849-1-alexandru.elisei@arm.com> <20231119165721.9849-21-alexandru.elisei@arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231122_012246_294379_D8CE7798 X-CRM114-Status: GOOD ( 24.26 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUGV0ZXIsCgpPbiBUdWUsIE5vdiAyMSwgMjAyMyBhdCAwNToyODo0OVBNIC0wODAwLCBQZXRl ciBDb2xsaW5nYm91cm5lIHdyb3RlOgo+IE9uIFN1biwgTm92IDE5LCAyMDIzIGF0IDg6NTnigK9B TSBBbGV4YW5kcnUgRWxpc2VpCj4gPGFsZXhhbmRydS5lbGlzZWlAYXJtLmNvbT4gd3JvdGU6Cj4g Pgo+ID4gSGFuZGxlIFBBR0VfRkFVTFRfT05fQUNDRVNTIGZhdWx0cyBmb3IgaHVnZSBwYWdlcyBp biBhIHNpbWlsYXIgd2F5IHRvCj4gPiByZWd1bGFyIHBhZ2VzLgo+ID4KPiA+IFNpZ25lZC1vZmYt Ynk6IEFsZXhhbmRydSBFbGlzZWkgPGFsZXhhbmRydS5lbGlzZWlAYXJtLmNvbT4KPiA+IC0tLQo+ ID4gIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vbXRlX3RhZ19zdG9yYWdlLmggfCAgMSArCj4gPiAg YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggICAgICAgICB8ICA3ICsrCj4gPiAgYXJj aC9hcm02NC9tbS9mYXVsdC5jICAgICAgICAgICAgICAgICAgICB8IDgxICsrKysrKysrKysrKysr KysrKysrKysrKwo+ID4gIGluY2x1ZGUvbGludXgvaHVnZV9tbS5oICAgICAgICAgICAgICAgICAg fCAgMiArCj4gPiAgaW5jbHVkZS9saW51eC9wZ3RhYmxlLmggICAgICAgICAgICAgICAgICB8ICA1 ICsrCj4gPiAgbW0vaHVnZV9tZW1vcnkuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICst Cj4gPiAgbW0vbWVtb3J5LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsKPiA+ ICA3IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4K PiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL210ZV90YWdfc3RvcmFnZS5o IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tdGVfdGFnX3N0b3JhZ2UuaAo+ID4gaW5kZXggYzcw Y2VkNjBhMGNkLi5iOTc0MDZkMzY5Y2UgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL210ZV90YWdfc3RvcmFnZS5oCj4gPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNt L210ZV90YWdfc3RvcmFnZS5oCj4gPiBAQCAtMzUsNiArMzUsNyBAQCB2b2lkIGZyZWVfdGFnX3N0 b3JhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBvcmRlcik7Cj4gPiAgYm9vbCBwYWdlX3RhZ19z dG9yYWdlX3Jlc2VydmVkKHN0cnVjdCBwYWdlICpwYWdlKTsKPiA+Cj4gPiAgdm1fZmF1bHRfdCBo YW5kbGVfcGFnZV9taXNzaW5nX3RhZ19zdG9yYWdlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKTsKPiA+ ICt2bV9mYXVsdF90IGhhbmRsZV9odWdlX3BhZ2VfbWlzc2luZ190YWdfc3RvcmFnZShzdHJ1Y3Qg dm1fZmF1bHQgKnZtZik7Cj4gPiAgI2Vsc2UKPiA+ICBzdGF0aWMgaW5saW5lIGJvb2wgdGFnX3N0 b3JhZ2VfZW5hYmxlZCh2b2lkKQo+ID4gIHsKPiA+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL3BndGFibGUuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4g PiBpbmRleCA4Y2MxMzVmMWMxMTIuLjE3MDQ0MTFjMDk2ZCAxMDA2NDQKPiA+IC0tLSBhL2FyY2gv YXJtNjQvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gPiArKysgYi9hcmNoL2FybTY0L2luY2x1ZGUv YXNtL3BndGFibGUuaAo+ID4gQEAgLTQ3Nyw2ICs0NzcsMTMgQEAgc3RhdGljIGlubGluZSB2bV9m YXVsdF90IGFyY2hfZG9fcGFnZV9mYXVsdF9vbl9hY2Nlc3Moc3RydWN0IHZtX2ZhdWx0ICp2bWYp Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZV9wYWdlX21pc3NpbmdfdGFnX3N0b3Jh Z2Uodm1mKTsKPiA+ICAgICAgICAgcmV0dXJuIFZNX0ZBVUxUX1NJR0JVUzsKPiA+ICB9Cj4gPiAr Cj4gPiArc3RhdGljIGlubGluZSB2bV9mYXVsdF90IGFyY2hfZG9faHVnZV9wYWdlX2ZhdWx0X29u X2FjY2VzcyhzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiA+ICt7Cj4gPiArICAgICAgIGlmICh0YWdf c3RvcmFnZV9lbmFibGVkKCkpCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZV9odWdl X3BhZ2VfbWlzc2luZ190YWdfc3RvcmFnZSh2bWYpOwo+ID4gKyAgICAgICByZXR1cm4gVk1fRkFV TFRfU0lHQlVTOwo+ID4gK30KPiA+ICAjZW5kaWYgLyogQ09ORklHX0FSQ0hfSEFTX0ZBVUxUX09O X0FDQ0VTUyAqLwo+ID4KPiA+ICAjZGVmaW5lIHBtZF9wcmVzZW50X2ludmFsaWQocG1kKSAgICAg KCEhKHBtZF92YWwocG1kKSAmIFBNRF9QUkVTRU5UX0lOVkFMSUQpKQo+ID4gZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQvbW0vZmF1bHQuYyBiL2FyY2gvYXJtNjQvbW0vZmF1bHQuYwo+ID4gaW5kZXgg ZjVmYTU4M2FjZjE4Li42NzMwYTA4MTJhMjQgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL2FybTY0L21t L2ZhdWx0LmMKPiA+ICsrKyBiL2FyY2gvYXJtNjQvbW0vZmF1bHQuYwo+ID4gQEAgLTEwNDEsNiAr MTA0MSw4NyBAQCB2bV9mYXVsdF90IGhhbmRsZV9wYWdlX21pc3NpbmdfdGFnX3N0b3JhZ2Uoc3Ry dWN0IHZtX2ZhdWx0ICp2bWYpCj4gPgo+ID4gICAgICAgICByZXR1cm4gMDsKPiA+Cj4gPiArb3V0 X3JldHJ5Ogo+ID4gKyAgICAgICBwdXRfcGFnZShwYWdlKTsKPiA+ICsgICAgICAgaWYgKHZtZi0+ ZmxhZ3MgJiBGQVVMVF9GTEFHX1ZNQV9MT0NLKQo+ID4gKyAgICAgICAgICAgICAgIHZtYV9lbmRf cmVhZCh2bWEpOwo+ID4gKyAgICAgICBpZiAoZmF1bHRfZmxhZ19hbGxvd19yZXRyeV9maXJzdCh2 bWYtPmZsYWdzKSkgewo+ID4gKyAgICAgICAgICAgICAgIGVyciA9IFZNX0ZBVUxUX1JFVFJZOwo+ ID4gKyAgICAgICB9IGVsc2Ugewo+ID4gKyAgICAgICAgICAgICAgIC8qIFJlcGxheSB0aGUgZmF1 bHQuICovCj4gPiArICAgICAgICAgICAgICAgZXJyID0gMDsKPiA+ICsgICAgICAgfQo+ID4gKyAg ICAgICByZXR1cm4gZXJyOwo+ID4gK30KPiA+ICsKPiA+ICt2bV9mYXVsdF90IGhhbmRsZV9odWdl X3BhZ2VfbWlzc2luZ190YWdfc3RvcmFnZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPiA+ICt7Cj4g PiArICAgICAgIHVuc2lnbmVkIGxvbmcgaGFkZHIgPSB2bWYtPmFkZHJlc3MgJiBIUEFHRV9QTURf TUFTSzsKPiA+ICsgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSB2bWYtPnZtYTsK PiA+ICsgICAgICAgcG1kX3Qgb2xkX3BtZCwgbmV3X3BtZDsKPiA+ICsgICAgICAgYm9vbCB3cml0 YWJsZSA9IGZhbHNlOwo+ID4gKyAgICAgICBzdHJ1Y3QgcGFnZSAqcGFnZTsKPiA+ICsgICAgICAg dm1fZmF1bHRfdCBlcnI7Cj4gPiArICAgICAgIGludCByZXQ7Cj4gPiArCj4gPiArICAgICAgIHZt Zi0+cHRsID0gcG1kX2xvY2sodm1hLT52bV9tbSwgdm1mLT5wbWQpOwo+ID4gKyAgICAgICBpZiAo dW5saWtlbHkoIXBtZF9zYW1lKHZtZi0+b3JpZ19wbWQsICp2bWYtPnBtZCkpKSB7Cj4gPiArICAg ICAgICAgICAgICAgc3Bpbl91bmxvY2sodm1mLT5wdGwpOwo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiAwOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIG9sZF9wbWQgPSB2bWYtPm9y aWdfcG1kOwo+ID4gKyAgICAgICBuZXdfcG1kID0gcG1kX21vZGlmeShvbGRfcG1kLCB2bWEtPnZt X3BhZ2VfcHJvdCk7Cj4gPiArCj4gPiArICAgICAgIC8qCj4gPiArICAgICAgICAqIERldGVjdCBu b3cgd2hldGhlciB0aGUgUE1EIGNvdWxkIGJlIHdyaXRhYmxlOyB0aGlzIGluZm9ybWF0aW9uCj4g PiArICAgICAgICAqIGlzIG9ubHkgdmFsaWQgd2hpbGUgaG9sZGluZyB0aGUgUFQgbG9jay4KPiA+ ICsgICAgICAgICovCj4gPiArICAgICAgIHdyaXRhYmxlID0gcG1kX3dyaXRlKG5ld19wbWQpOwo+ ID4gKyAgICAgICBpZiAoIXdyaXRhYmxlICYmIHZtYV93YW50c19tYW51YWxfcHRlX3dyaXRlX3Vw Z3JhZGUodm1hKSAmJgo+ID4gKyAgICAgICAgICAgY2FuX2NoYW5nZV9wbWRfd3JpdGFibGUodm1h LCB2bWYtPmFkZHJlc3MsIG5ld19wbWQpKQo+ID4gKyAgICAgICAgICAgICAgIHdyaXRhYmxlID0g dHJ1ZTsKPiA+ICsKPiA+ICsgICAgICAgcGFnZSA9IHZtX25vcm1hbF9wYWdlX3BtZCh2bWEsIGhh ZGRyLCBuZXdfcG1kKTsKPiA+ICsgICAgICAgaWYgKCFwYWdlKQo+ID4gKyAgICAgICAgICAgICAg IGdvdG8gb3V0X21hcDsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCEodm1hLT52bV9mbGFncyAmIFZN X01URSkpCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXRfbWFwOwo+ID4gKwo+ID4gKyAgICAg ICBnZXRfcGFnZShwYWdlKTsKPiA+ICsgICAgICAgdm1hX3NldF9hY2Nlc3NfcGlkX2JpdCh2bWEp Owo+ID4gKwo+ID4gKyAgICAgICBzcGluX3VubG9jayh2bWYtPnB0bCk7Cj4gPiArICAgICAgIHdy aXRhYmxlID0gZmFsc2U7Cj4gPiArCj4gPiArICAgICAgIGlmICh1bmxpa2VseShpc19taWdyYXRl X2lzb2xhdGVfcGFnZShwYWdlKSkpCj4gPiArICAgICAgICAgICAgICAgZ290byBvdXRfcmV0cnk7 Cj4gPiArCj4gPiArICAgICAgIHJldCA9IHJlc2VydmVfdGFnX3N0b3JhZ2UocGFnZSwgSFBBR0Vf UE1EX09SREVSLCBHRlBfSElHSFVTRVJfTU9WQUJMRSk7Cj4gPiArICAgICAgIGlmIChyZXQpCj4g PiArICAgICAgICAgICAgICAgZ290byBvdXRfcmV0cnk7Cj4gPiArCj4gPiArICAgICAgIHB1dF9w YWdlKHBhZ2UpOwo+ID4gKwo+ID4gKyAgICAgICB2bWYtPnB0bCA9IHBtZF9sb2NrKHZtYS0+dm1f bW0sIHZtZi0+cG1kKTsKPiA+ICsgICAgICAgaWYgKHVubGlrZWx5KCFwbWRfc2FtZShvbGRfcG1k LCAqdm1mLT5wbWQpKSkgewo+ID4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKHZtZi0+cHRs KTsKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4g K291dF9tYXA6Cj4gPiArICAgICAgIC8qIFJlc3RvcmUgdGhlIFBNRCAqLwo+ID4gKyAgICAgICBu ZXdfcG1kID0gcG1kX21vZGlmeShvbGRfcG1kLCB2bWEtPnZtX3BhZ2VfcHJvdCk7Cj4gPiArICAg ICAgIG5ld19wbWQgPSBwbWRfbWt5b3VuZyhuZXdfcG1kKTsKPiA+ICsgICAgICAgaWYgKHdyaXRh YmxlKQo+ID4gKyAgICAgICAgICAgICAgIG5ld19wbWQgPSBwbWRfbWt3cml0ZShuZXdfcG1kLCB2 bWEpOwo+ID4gKyAgICAgICBzZXRfcG1kX2F0KHZtYS0+dm1fbW0sIGhhZGRyLCB2bWYtPnBtZCwg bmV3X3BtZCk7Cj4gPiArICAgICAgIHVwZGF0ZV9tbXVfY2FjaGVfcG1kKHZtYSwgdm1mLT5hZGRy ZXNzLCB2bWYtPnBtZCk7Cj4gPiArICAgICAgIHNwaW5fdW5sb2NrKHZtZi0+cHRsKTsKPiA+ICsK PiA+ICsgICAgICAgcmV0dXJuIDA7Cj4gPiArCj4gPiAgb3V0X3JldHJ5Ogo+ID4gICAgICAgICBw dXRfcGFnZShwYWdlKTsKPiA+ICAgICAgICAgaWYgKHZtZi0+ZmxhZ3MgJiBGQVVMVF9GTEFHX1ZN QV9MT0NLKQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaHVnZV9tbS5oIGIvaW5jbHVk ZS9saW51eC9odWdlX21tLmgKPiA+IGluZGV4IGZhMDM1MGIwODEyYS4uYmI4NDI5MWY5MjMxIDEw MDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9odWdlX21tLmgKPiA+ICsrKyBiL2luY2x1ZGUv bGludXgvaHVnZV9tbS5oCj4gPiBAQCAtMzYsNiArMzYsOCBAQCBib29sIG1vdmVfaHVnZV9wbWQo c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgb2xkX2FkZHIsCj4gPiAg aW50IGNoYW5nZV9odWdlX3BtZChzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLCBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSwKPiA+ICAgICAgICAgICAgICAgICAgICAgcG1kX3QgKnBtZCwgdW5zaWdu ZWQgbG9uZyBhZGRyLCBwZ3Byb3RfdCBuZXdwcm90LAo+ID4gICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGNwX2ZsYWdzKTsKPiA+ICtib29sIGNhbl9jaGFuZ2VfcG1kX3dyaXRhYmxl KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBtZF90IHBtZCk7Cj4gPgo+ID4gIHZtX2ZhdWx0X3Qg dm1mX2luc2VydF9wZm5fcG1kKHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBwZm5fdCBwZm4sIGJvb2wg d3JpdGUpOwo+ID4gIHZtX2ZhdWx0X3Qgdm1mX2luc2VydF9wZm5fcHVkKHN0cnVjdCB2bV9mYXVs dCAqdm1mLCBwZm5fdCBwZm4sIGJvb2wgd3JpdGUpOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvcGd0YWJsZS5oIGIvaW5jbHVkZS9saW51eC9wZ3RhYmxlLmgKPiA+IGluZGV4IGUyYzc2 MWRkNmM0MS4uZGU0NWY0NzViZjhkIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9wZ3Rh YmxlLmgKPiA+ICsrKyBiL2luY2x1ZGUvbGludXgvcGd0YWJsZS5oCj4gPiBAQCAtMTQ3Myw2ICsx NDczLDExIEBAIHN0YXRpYyBpbmxpbmUgdm1fZmF1bHRfdCBhcmNoX2RvX3BhZ2VfZmF1bHRfb25f YWNjZXNzKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQo+ID4gIHsKPiA+ICAgICAgICAgcmV0dXJuIFZN X0ZBVUxUX1NJR0JVUzsKPiA+ICB9Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSB2bV9mYXVsdF90 IGFyY2hfZG9faHVnZV9wYWdlX2ZhdWx0X29uX2FjY2VzcyhzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikK PiA+ICt7Cj4gPiArICAgICAgIHJldHVybiBWTV9GQVVMVF9TSUdCVVM7Cj4gPiArfQo+ID4gICNl bmRpZgo+ID4KPiA+ICAjZW5kaWYgLyogQ09ORklHX01NVSAqLwo+ID4gZGlmZiAtLWdpdCBhL21t L2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21lbW9yeS5jCj4gPiBpbmRleCA5YmVlYWQ5NjFhNjUu LmQxNDAyYjQzZWEzOSAxMDA2NDQKPiA+IC0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKPiA+ICsrKyBi L21tL2h1Z2VfbWVtb3J5LmMKPiA+IEBAIC0xNDA2LDggKzE0MDYsOCBAQCB2bV9mYXVsdF90IGRv X2h1Z2VfcG1kX3dwX3BhZ2Uoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4gPiAgICAgICAgIHJldHVy biBWTV9GQVVMVF9GQUxMQkFDSzsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyBpbmxpbmUgYm9vbCBj YW5fY2hhbmdlX3BtZF93cml0YWJsZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFk ZHIsIHBtZF90IHBtZCkKPiA+ICtpbmxpbmUgYm9vbCBjYW5fY2hhbmdlX3BtZF93cml0YWJsZShz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPiAKPiBSZW1vdmUgaW5saW5lIGtleXdvcmQgaGVy ZS4KCkluZGVlZCwgYXMgaXQgZG9lcyBub3RoaW5nIG5vdyB0aGF0IHRoZSBmdW5jdGlvbiBpcyBu b3Qgc3RhdGljLgoKVGhhbmtzLApBbGV4Cgo+IAo+IFBldGVyCj4gCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHBtZF90IHBtZCkKPiA+ ICB7Cj4gPiAgICAgICAgIHN0cnVjdCBwYWdlICpwYWdlOwo+ID4KPiA+IGRpZmYgLS1naXQgYS9t bS9tZW1vcnkuYyBiL21tL21lbW9yeS5jCj4gPiBpbmRleCBhMDRhOTcxMjAwYjkuLjQ2YjkyNjYy NTUwMyAxMDA2NDQKPiA+IC0tLSBhL21tL21lbW9yeS5jCj4gPiArKysgYi9tbS9tZW1vcnkuYwo+ ID4gQEAgLTUxNjgsNiArNTE2OCw5IEBAIHN0YXRpYyB2bV9mYXVsdF90IF9faGFuZGxlX21tX2Zh dWx0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7Cj4gPiAgICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICAgICAgIGlm IChwbWRfdHJhbnNfaHVnZSh2bWYub3JpZ19wbWQpIHx8IHBtZF9kZXZtYXAodm1mLm9yaWdfcG1k KSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhdWx0X29uX2FjY2Vzc19wbWQo dm1mLm9yaWdfcG1kKSAmJiB2bWFfaXNfYWNjZXNzaWJsZSh2bWEpKQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJjaF9kb19odWdlX3BhZ2VfZmF1bHRfb25fYWNj ZXNzKCZ2bWYpOwo+ID4gKwo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBtZF9wcm90 bm9uZSh2bWYub3JpZ19wbWQpICYmIHZtYV9pc19hY2Nlc3NpYmxlKHZtYSkpCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkb19odWdlX3BtZF9udW1hX3BhZ2UoJnZt Zik7Cj4gPgo+ID4gLS0KPiA+IDIuNDIuMQo+ID4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK