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 C3285C9833E for ; Fri, 25 Sep 2026 23:41:26 +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=xoNWdZagBefIevd2uAHLDCBSBnin8u4IpL/1LCLBdjc=; b=2pnzHtdZhQwbjF rTSrQHSK0SgLioZry1sQKlAmZNBaJ7VKSZBj46HwkJwlJDHIywMSNqeO0elJiG9DXzpdjDVHJR0hf cBrAPWCKl/voywan1+Fhnkn5FHu5RSQWfbyV5WHwJBouaDdWaimW6FTXd1GZhjDyRqdw7RrKMSNoW y91g5KFxadjPMV7uqtW18B3Qq597yvRG97j8LjxQbwK8gdyEiTktT20QJypTf2KzjuHQtr7LtJPkr 8DVdC/0Waxv4OxvV0F65k5YiXzGOoTxc4xZ/BIzCBFW4RAhE1FCAwvRXg3zcnr+QuOX+nyhsvDouR IYukl43ouhq6skt3TplQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAFXH-0000000EeNe-0CWX; Fri, 25 Sep 2026 23:40:59 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9QLJ-00000008xGt-3ncx; Wed, 23 Sep 2026 17:01:13 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 0BAFB40659; Wed, 23 Sep 2026 17:01:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 561491F000FF; Wed, 23 Sep 2026 17:00:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790182872; bh=IJaDFCurzscncuVAFa6+vn22cawBT99G95jk4ztKBZA=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=ZcQp1PRnB0QUSVQpuckyN6NnlN+6MRRjA34s3hMaCu8POd1KGSSc4nMgFHRy/IHqA sCDiNxAphIqnCATmrKjeMRENal9GdJ2FHLLfzcPAvtBm4HQgDI17YB3YuuU9mmpey8 M40JgzYg2AeW6EmFVSPS3WJjbwL+R67KY/9UZgXjOugo+2fSheSMvvUrWSx7A6M9mR 6+iMWSwNyDGjyL6vwrzt+dUQVxRsaK8B7fh+pUqbFmYGQUDsh1+AuIGD6iO43coutn vK0C7KFxaOB2Put8d5jI/j+DturfIgk3i+kflpxHx5ltcdoSP5VGVCG112PoZDHOPD a2ikeQJL/niYA== Date: Wed, 23 Sep 2026 18:00:41 +0100 From: "Lorenzo Stoakes (ARM)" To: Suren Baghdasaryan Cc: Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Jann Horn , Pedro Falcato , David Hildenbrand , Mike Rapoport , Michal Hocko , Jonathan Corbet , Greg Kroah-Hartman , Dennis Dalessandro , Jason Gunthorpe , Leon Romanovsky , Paul Moore , Stephen Smalley , Jaroslav Kysela , Takashi Iwai , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Eduard Zingerman , Kumar Kartikeya Dwivedi , Zi Yan , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Usama Arif , Kiryl Shutsemau , Doug Gilbert , "James E.J. Bottomley" , "Martin K. Petersen" , Jaya Kumar , Simona Vetter , Helge Deller , Sebastian Reichel , John Hubbard , Peter Xu , Masami Hiramatsu , Oleg Nesterov , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Rik van Riel , Harry Yoo , Juri Lelli , Vincent Guittot , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Will Deacon , "Aneesh Kumar K.V" , Nick Piggin , Arnd Bergmann , Muchun Song , Oscar Salvador , "Matthew Wilcox (Oracle)" , Jan Kara , Marc Zyngier , Oliver Upton , Catalin Marinas , Madhavan Srinivasan , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Christian Borntraeger , Janosch Frank , Claudio Imbrenda , Alexander Gordeev , Gerald Schaefer , Heiko Carstens , Vasily Gorbik , "David S. Miller" , Andreas Larsson , Alexander Viro , Christian Brauner , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Chris Li , Kairui Song , Kemeng Shi , Nhat Pham , Baoquan He , Youngjun Park , Johannes Weiner , Qi Zheng , Shakeel Butt , Axel Rasmussen , Yuanchu Xie , Wei Xu , Chengming Zhou , Michal Hocko , Miklos Szeredi , Xu Xin , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-usb@vger.kernel.org, linux-rdma@vger.kernel.org, selinux@vger.kernel.org, linux-sound@vger.kernel.org, bpf@vger.kernel.org, linux-scsi@vger.kernel.org, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arch@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, fuse-devel@lists.linux.dev Subject: Re: [PATCH v3 04/40] mm: consistently validate VMA state after mmap[_prepare] hooks Message-ID: References: <20260917-b4-mmap-prepare-vma-flag-sanify-v3-0-4583d8a23bca@kernel.org> <20260917-b4-mmap-prepare-vma-flag-sanify-v3-4-4583d8a23bca@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Mailman-Approved-At: Fri, 25 Sep 2026 16:40:51 -0700 X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBTZXAgMjMsIDIwMjYgYXQgMDk6NDc6MjBBTSAtMDcwMCwgU3VyZW4gQmFnaGRhc2Fy eWFuIHdyb3RlOgo+IE9uIFRodSwgU2VwIDE3LCAyMDI2IGF0IDk6MjXigK9BTSBMb3JlbnpvIFN0 b2FrZXMgKEFSTSkgPGxqc0BrZXJuZWwub3JnPiB3cm90ZToKPiA+Cj4gPiBXaGVuIHRoZSBmX29w LT5tbWFwX3ByZXBhcmUgb3IgZGVwcmVjYXRlZCBmX29wLT5tbWFwIGhvb2tzIGFyZSBpbnZva2Vk LCB0aGUKPiA+IGRyaXZlciBtaWdodCBoYXZlIGRvbmUgc29tZXRoaW5nIGNyYXp5IHRoYXQgaXMg bm90IHBlcm1pdHRlZCBieSB0aGUga2VybmVsLgo+ID4KPiA+IEN1cnJlbnRseSB3ZSBjaGVjayBm b3IgdGhyZWUgc3VjaCBjYXNlcyBpbiBfX21tYXBfbmV3X2ZpbGVfdm1hKCksIGJ1dCBvbmx5Cj4g PiBpZiB0aGUgbGVnYWN5IGZfb3AtPm1tYXAgaG9vayBpcyB1c2VkOgo+ID4KPiA+ICogRGlkIHNw YXJjIEFESSByZXN1bHQgaW4gaW52YWxpZCBmbGFncz8KPiA+Cj4gPiAqIERpZCB0aGUgZHJpdmVy IGFsdGVyIHZtYS0+dm1fc3RhcnQ/Cj4gPgo+ID4gKiBEaWQgdGhlIGRyaXZlciBtYWtlIGEgZmls ZS1iYWNrZWQgbWFwcGluZyBvbiBhIHJlYWQtb25seSBmaWxlIHdyaXRhYmxlPwo+ID4KPiA+IEdl bmVyYWxpc2UgdGhlc2UgY2hlY2tzIGZvciBib3RoIG1tYXBfcHJlcGFyZSBhbmQgbW1hcCBhbmQg YXBwbHkgdG8gYWxsCj4gPiBpbnZvY2F0aW9ucyBvZiBtbWFwX2ZpbGUoKSwgdGhlIGZfb3AtPm1t YXAgYW5kIGZfb3AtPm1tYXBfcHJlcGFyZSBoYW5kbGluZwo+ID4gaW4gdGhlIGNvcmUgVk1BIGNv ZGUgYW5kIHRoZSBtbWFwX3ByZXBhcmUgY29tcGF0aWJpbGl0eSBsYXllci4KPiA+Cj4gPiBBbHNv IGV4dGVuZCB0aGUgdm1fc3RhcnQgY2hlY2sgdG8gdm1fZW5kIGFsc28gLSBkcml2ZXJzIG11c3Qg bm90IGNoYW5nZSB0aGUKPiA+IFZNQSByYW5nZSBhdCBhbGwuCj4gPgo+ID4gV2UgYWxzbyBXQVJO X09OX09OQ0UoKSBvbiB0aGVzZSBjb25kaXRpb25zIGFzIHRoZXkgYXJlIHRoaW5ncyB0aGF0IHNo b3VsZAo+ID4gc2ltcGx5IG5vdCBvY2N1ciBpbiB0aGUga2VybmVsIGFuZCBpdCdzIGltcG9ydGFu dCB0byBjYWxsIGl0IG91dCB3aGVuIGl0Cj4gPiBkb2VzLgo+ID4KPiA+IFdlIGludm9rZSBtbWFw X3ByZXBhcmVfdmFsaWRhdGUoKSBhZnRlciBtbWFwX2FjdGlvbl9wcmVwYXJlKCksIGFzIG1tYXAK PiA+IGFjdGlvbnMgb2Z0ZW4gbWFuaXB1bGF0ZSBzdGF0ZSBpbiB0aGUgZGVzY3JpcHRvciB0aHVz IHByb3ZpZGluZyB0aGUgZmluYWwKPiA+IHN0YXRlIHRoZSBWTUEgd2lsbCBiZSBkZXJpdmVkIGZy b20uCj4gPgo+ID4gQWxzbyBjYWxsIG1tYXBfdmFsaWRhdGVfdm1hX2ZsYWdzKCkgaW4gaW5zZXJ0 X3ZtX3N0cnVjdCgpIHRvIGVuc3VyZSB0aGF0Cj4gPiBzcGVjaWFsIHJlZ2lvbnMgd2hpY2ggYXJl IGluc2VydGVkIChzdWNoIGFzIGEgVkRTTyBvciBWVkFSKSBhbHNvIHNhdGlzZnkKPiA+IHRoZSBz YW5pdHkgY2hlY2tzLgo+ID4KPiA+IFRoaXMgd2F5IGV2ZXJ5IFZNQSBlc3RhYmxpc2hlZCB0aHJv dWdoIGFuIG1tYXAgaG9vaywgd2hldGhlciB2aWEgbW1hcCgpIG9yCj4gPiB0aGUgY29tcGF0aWJp bGl0eSBsYXllciwgb3IgaW5zZXJ0ZWQgdmlhIGluc2VydF92bV9zdHJ1Y3QoKSwgaGFzIGJlZW4K PiA+IHZhbGlkYXRlZC4gYnJrKCkgVk1BcyBuZXZlciBwYXNzIHRocm91Z2ggYSBkcml2ZXIgaG9v ayBhbmQgc28gbmVlZCBubyBzdWNoCj4gPiBjaGVjay4KPiA+Cj4gPiBXaGlsZSB3ZSdyZSBoZXJl LCBhbHNvIGZpeHVwIGEgY291cGxlIGRpc2pvaW50IGJsb2NrcyBvZiAjaWZkZWYgQ09ORklHX01N VS4KPiA+Cj4gPiBGaW5hbGx5LCB1cGRhdGUgdGhlIFZNQSB1c2VybGFuZCB0ZXN0cyB0byByZWZs ZWN0IHRoZSBjaGFuZ2UuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogTG9yZW56byBTdG9ha2VzIChB Uk0pIDxsanNAa2VybmVsLm9yZz4KPgo+IFJldmlld2VkLWJ5OiBTdXJlbiBCYWdoZGFzYXJ5YW4g PHN1cmVuYkBnb29nbGUuY29tPgoKVGhhbmtzIQoKPgo+ID4gLS0tCj4gPiAgbW0vaW50ZXJuYWwu aCAgICAgICAgICAgICAgICAgICB8ICA1MSArKysrKysrKysrKystLS0tLS0tLQo+ID4gIG1tL3V0 aWwuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKysrKysrLS0KPiA+ICBtbS92bWEuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0KPiA+ICBtbS92bWEuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsr KysrKysrLS0KPiA+ICB0b29scy90ZXN0aW5nL3ZtYS9pbmNsdWRlL2R1cC5oIHwgIDEwICsrKysK PiA+ICA1IGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkK PiA+Cj4gPiBkaWZmIC0tZ2l0IGEvbW0vaW50ZXJuYWwuaCBiL21tL2ludGVybmFsLmgKPiA+IGlu ZGV4IGZlNTc2ZDQ2OGFmNC4uOTcwZmIzNDg5OGIyIDEwMDY0NAo+ID4gLS0tIGEvbW0vaW50ZXJu YWwuaAo+ID4gKysrIGIvbW0vaW50ZXJuYWwuaAo+ID4gQEAgLTIxMyw2ICsyMTMsMjQgQEAgc3Rh dGljIGlubGluZSB2b2lkICpmb2xpb19yYXdfbWFwcGluZyhjb25zdCBzdHJ1Y3QgZm9saW8gKmZv bGlvKQo+ID4gICAgICAgICByZXR1cm4gKHZvaWQgKikobWFwcGluZyAmIH5GT0xJT19NQVBQSU5H X0ZMQUdTKTsKPiA+ICB9Cj4gPgo+ID4gKy8qCj4gPiArICogSWYgdGhlIFZNQSBoYXMgYSBjbG9z ZSBob29rIHRoZW4gY2xvc2UgaXQsIGFuZCBzaW5jZSBjbG9zaW5nIGl0IG1pZ2h0IGxlYXZlCj4g PiArICogaXQgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIHdoaWNoIG1ha2VzIHRoZSB1c2Ugb2Yg YW55IGhvb2tzIHN1c3BlY3QsIGNsZWFyCj4gPiArICogdGhlbSBkb3duIGJ5IGluc3RhbGxpbmcg ZHVtbXkgZW1wdHkgaG9va3MuCj4gPiArICovCj4gPiArc3RhdGljIGlubGluZSB2b2lkIHZtYV9j bG9zZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiA+ICt7Cj4gPiArICAgICAgIGlmICh2 bWEtPnZtX29wcyAmJiB2bWEtPnZtX29wcy0+Y2xvc2UpIHsKPiA+ICsgICAgICAgICAgICAgICB2 bWEtPnZtX29wcy0+Y2xvc2Uodm1hKTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAvKgo+ID4g KyAgICAgICAgICAgICAgICAqIFRoZSBtYXBwaW5nIGlzIGluIGFuIGluY29uc2lzdGVudCBzdGF0 ZSwgYW5kIG5vIGZ1cnRoZXIgaG9va3MKPiA+ICsgICAgICAgICAgICAgICAgKiBtYXkgYmUgaW52 b2tlZCB1cG9uIGl0Lgo+ID4gKyAgICAgICAgICAgICAgICAqLwo+ID4gKyAgICAgICAgICAgICAg IHZtYS0+dm1fb3BzID0gJnZtYV9kdW1teV92bV9vcHM7Cj4gPiArICAgICAgIH0KPiA+ICt9Cj4g PiArCj4gPiAgLyoKPiA+ICAgKiBUaGlzIGlzIGEgZmlsZS1iYWNrZWQgbWFwcGluZywgYW5kIGlz IGFib3V0IHRvIGJlIG1lbW9yeSBtYXBwZWQgLSBpbnZva2UgaXRzCj4gPiAgICogbW1hcCBob29r IGFuZCBzYWZlbHkgaGFuZGxlIGVycm9yIGNvbmRpdGlvbnMuIE9uIGVycm9yLCBWTUEgaG9va3Mg d2lsbCBiZQo+ID4gQEAgLTIyNSw4ICsyNDMsMTIgQEAgc3RhdGljIGlubGluZSB2b2lkICpmb2xp b19yYXdfbWFwcGluZyhjb25zdCBzdHJ1Y3QgZm9saW8gKmZvbGlvKQo+ID4gICAqLwo+ID4gIHN0 YXRpYyBpbmxpbmUgaW50IG1tYXBfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEpCj4gPiAgewo+ID4gLSAgICAgICBpbnQgZXJyID0gdmZzX21tYXAoZmls ZSwgdm1hKTsKPiA+ICsgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBwcmV2X3N0YXJ0ID0gdm1h LT52bV9zdGFydDsKPiA+ICsgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBwcmV2X2VuZCA9IHZt YS0+dm1fZW5kOwo+ID4gKyAgICAgICBjb25zdCB2bWFfZmxhZ3NfdCBwcmV2X2ZsYWdzID0gdm1h LT5mbGFnczsKPgo+IG5pdDogTWlnaHQgYmUganVzdCBtZSBidXQgd2hlbiBJIHNlZSBwcmV2X1hY WCBpbiBWTUEtcmVsYXRlZCBjb2RlIEkKPiBwaWN0dXJlIHByZXZpb3VzIFZNQSBpbiB0aGUgYWRk cmVzcyBzcGFjZS4gTWF5YmUgY2FsbCB0aGVzZSBvcmlnX1hYWD8KClN1cmUsIHdpbGwgY2hhbmdl LgoKPgo+ID4gKyAgICAgICBpbnQgZXJyOwo+ID4KPiA+ICsgICAgICAgZXJyID0gdmZzX21tYXAo ZmlsZSwgdm1hKTsKPiA+ICAgICAgICAgLyoKPiA+ICAgICAgICAgICogRWl0aGVyIHdlIHRyaWVk IHRvIGNhbGwgdGhlIGZpbGUgaG9vayBmb3IgbW1hcCgpIGFuZCBhbiBlcnJvciBhcm9zZQo+ID4g ICAgICAgICAgKiBvciBhIGRyaXZlciBzZXQgdm1hLT52bV9vcHMgPSBOVUxMIGludGVuZGluZyB0 aGVyZSB0byBiZSBubyBWTUEKPiA+IEBAIC0yMzksMjYgKzI2MSwxNyBAQCBzdGF0aWMgaW5saW5l IGludCBtbWFwX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq dm1hKQo+ID4gICAgICAgICAgKi8KPiA+ICAgICAgICAgaWYgKHVubGlrZWx5KGVyciB8fCAhdm1h LT52bV9vcHMpKQo+ID4gICAgICAgICAgICAgICAgIHZtYS0+dm1fb3BzID0gJnZtYV9kdW1teV92 bV9vcHM7Cj4gPiArICAgICAgIGlmICh1bmxpa2VseShlcnIpKQo+ID4gKyAgICAgICAgICAgICAg IHJldHVybiBlcnI7Cj4gPgo+ID4gLSAgICAgICByZXR1cm4gZXJyOwo+ID4gLX0KPiA+IC0KPiA+ IC0vKgo+ID4gLSAqIElmIHRoZSBWTUEgaGFzIGEgY2xvc2UgaG9vayB0aGVuIGNsb3NlIGl0LCBh bmQgc2luY2UgY2xvc2luZyBpdCBtaWdodCBsZWF2ZQo+ID4gLSAqIGl0IGluIGFuIGluY29uc2lz dGVudCBzdGF0ZSB3aGljaCBtYWtlcyB0aGUgdXNlIG9mIGFueSBob29rcyBzdXNwZWN0LCBjbGVh cgo+ID4gLSAqIHRoZW0gZG93biBieSBpbnN0YWxsaW5nIGR1bW15IGVtcHR5IGhvb2tzLgo+ID4g LSAqLwo+ID4gLXN0YXRpYyBpbmxpbmUgdm9pZCB2bWFfY2xvc2Uoc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpCj4gPiAtewo+ID4gLSAgICAgICBpZiAodm1hLT52bV9vcHMgJiYgdm1hLT52bV9v cHMtPmNsb3NlKSB7Cj4gPiAtICAgICAgICAgICAgICAgdm1hLT52bV9vcHMtPmNsb3NlKHZtYSk7 Cj4gPiAtCj4gPiAtICAgICAgICAgICAgICAgLyoKPiA+IC0gICAgICAgICAgICAgICAgKiBUaGUg bWFwcGluZyBpcyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUsIGFuZCBubyBmdXJ0aGVyIGhvb2tz Cj4gPiAtICAgICAgICAgICAgICAgICogbWF5IGJlIGludm9rZWQgdXBvbiBpdC4KPiA+IC0gICAg ICAgICAgICAgICAgKi8KPiA+IC0gICAgICAgICAgICAgICB2bWEtPnZtX29wcyA9ICZ2bWFfZHVt bXlfdm1fb3BzOwo+ID4gKyAgICAgICBlcnIgPSBtbWFwX2hvb2tfdmFsaWRhdGUocHJldl9zdGFy dCwgcHJldl9lbmQsICZwcmV2X2ZsYWdzLCB2bWEpOwo+ID4gKyAgICAgICBpZiAodW5saWtlbHko ZXJyKSkgewo+ID4gKyAgICAgICAgICAgICAgIHZtYS0+dm1fc3RhcnQgPSBwcmV2X3N0YXJ0Owo+ ID4gKyAgICAgICAgICAgICAgIHZtYS0+dm1fZW5kID0gcHJldl9lbmQ7Cj4gPiArICAgICAgICAg ICAgICAgdm1hX2Nsb3NlKHZtYSk7Cj4gPiAgICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgcmV0 dXJuIGVycjsKPiA+ICB9Cj4gPgo+ID4gIC8qIHVubWFwX3ZtYXMgaXMgaW4gbW0vbWVtb3J5LmMg Ki8KPiA+IGRpZmYgLS1naXQgYS9tbS91dGlsLmMgYi9tbS91dGlsLmMKPiA+IGluZGV4IDAxNjkz Mjc4MDkyNS4uYmRkNTkyM2VlYmM3IDEwMDY0NAo+ID4gLS0tIGEvbW0vdXRpbC5jCj4gPiArKysg Yi9tbS91dGlsLmMKPiA+IEBAIC0xMjI0LDE5ICsxMjI0LDI4IEBAIEVYUE9SVF9TWU1CT0woY29t cGF0X3NldF9kZXNjX2Zyb21fdm1hKTsKPiA+ICBpbnQgX19jb21wYXRfdm1hX21tYXAoc3RydWN0 IHZtX2FyZWFfZGVzYyAqZGVzYywKPiA+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKPiA+ICB7Cj4gPiArICAgICAgIHN0cnVjdCB2bV9hcmVhX2Rlc2Mg cHJldl9kZXNjOwo+ID4gICAgICAgICBpbnQgZXJyOwo+ID4KPiA+ICsgICAgICAgLyogRGVyaXZl IHN0YXRlIHByaW9yIHRvIG1tYXBfcHJlcGFyZSBob29rLiAqLwo+ID4gKyAgICAgICBjb21wYXRf c2V0X2Rlc2NfZnJvbV92bWEoJnByZXZfZGVzYywgZGVzYy0+ZmlsZSwgdm1hKTsKPiA+ICAgICAg ICAgLyogUGVyZm9ybSBhbnkgcHJlcGFyYXRvcnkgdGFza3MgZm9yIG1tYXAgYWN0aW9uLiAqLwo+ ID4gICAgICAgICBlcnIgPSBtbWFwX2FjdGlvbl9wcmVwYXJlKGRlc2MpOwo+ID4gLSAgICAgICBp ZiAoZXJyKSB7Cj4gPiAtICAgICAgICAgICAgICAgaWYgKGRlc2MtPnZtX2ZpbGUgIT0gdm1hLT52 bV9maWxlKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgZnB1dChkZXNjLT52bV9maWxlKTsK PiA+IC0gICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gLSAgICAgICB9Cj4gPiArICAgICAg IGlmIChlcnIpCj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfcHV0Owo+ID4gKyAgICAgICAv KiBDaGVjayB0aGUgY2FsbGVyIGRpZCBub3RoaW5nIGNyYXp5LiAqLwo+ID4gKyAgICAgICBlcnIg PSBtbWFwX3ByZXBhcmVfdmFsaWRhdGUoJnByZXZfZGVzYywgZGVzYyk7Cj4gPiArICAgICAgIGlm IChlcnIpCj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfcHV0Owo+ID4gICAgICAgICAvKiBV cGRhdGUgdGhlIFZNQSBmcm9tIHRoZSBkZXNjcmlwdG9yLiAqLwo+ID4gICAgICAgICBjb21wYXRf c2V0X3ZtYV9mcm9tX2Rlc2Modm1hLCBkZXNjKTsKPiA+ICAgICAgICAgLyogQ29tcGxldGUgYW55 IHNwZWNpZmllZCBtbWFwIGFjdGlvbnMuICovCj4gPiAgICAgICAgIHJldHVybiBtbWFwX2FjdGlv bl9jb21wbGV0ZSh2bWEsICZkZXNjLT5hY3Rpb24sIC8qaXNfY29tcGF0PSovdHJ1ZSk7Cj4gPiAr Cj4gPiArZXJyX3B1dDoKPiA+ICsgICAgICAgaWYgKGRlc2MtPnZtX2ZpbGUgIT0gdm1hLT52bV9m aWxlKQo+ID4gKyAgICAgICAgICAgICAgIGZwdXQoZGVzYy0+dm1fZmlsZSk7Cj4gPiArICAgICAg IHJldHVybiBlcnI7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woX19jb21wYXRfdm1hX21tYXAp Owo+ID4KPiA+IGRpZmYgLS1naXQgYS9tbS92bWEuYyBiL21tL3ZtYS5jCj4gPiBpbmRleCAwNWQy YzY3NjY3MmUuLmQ2ZWQxMGNlZmM4ZiAxMDA2NDQKPiA+IC0tLSBhL21tL3ZtYS5jCj4gPiArKysg Yi9tbS92bWEuYwo+ID4gQEAgLTI2MjMsMTYgKzI2MjMsNiBAQCBzdGF0aWMgaW50IF9fbW1hcF9u ZXdfZmlsZV92bWEoc3RydWN0IG1tYXBfc3RhdGUgKm1hcCwKPiA+ICAgICAgICAgICAgICAgICBy ZXR1cm4gZXJyb3I7Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiAtICAgICAgIC8qIERyaXZlcnMgY2Fu bm90IGFsdGVyIHRoZSBhZGRyZXNzIG9mIHRoZSBWTUEuICovCj4gPiAtICAgICAgIFdBUk5fT05f T05DRShtYXAtPmFkZHIgIT0gdm1hLT52bV9zdGFydCk7Cj4gPiAtICAgICAgIC8qCj4gPiAtICAg ICAgICAqIERyaXZlcnMgc2hvdWxkIG5vdCBwZXJtaXQgd3JpdGFiaWxpdHkgd2hlbiBwcmV2aW91 c2x5IGl0IHdhcwo+ID4gLSAgICAgICAgKiBkaXNhbGxvd2VkLgo+ID4gLSAgICAgICAgKi8KPiA+ IC0gICAgICAgVk1fV0FSTl9PTl9PTkNFKCF2bWFfZmxhZ3Nfc2FtZV9wYWlyKCZtYXAtPnZtYV9m bGFncywgJnZtYS0+ZmxhZ3MpICYmCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAhdm1hX2Zs YWdzX3Rlc3QoJm1hcC0+dm1hX2ZsYWdzLCBWTUFfTUFZV1JJVEVfQklUKSAmJgo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgdm1hX3Rlc3Qodm1hLCBWTUFfTUFZV1JJVEVfQklUKSk7Cj4gPiAt Cj4gPiAgICAgICAgIG1hcC0+dm1hX2ZsYWdzID0gdm1hLT5mbGFnczsKPiA+Cj4gPiAgICAgICAg IHJldHVybiAwOwo+ID4gQEAgLTI3MTAsMTEgKzI3MDAsNiBAQCBzdGF0aWMgaW50IF9fbW1hcF9u ZXdfdm1hKHN0cnVjdCBtbWFwX3N0YXRlICptYXAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKnZt YXAsCj4gPiAgICAgICAgICAgICAgICAgdm1hLT5mbGFncyA9IG1hcC0+dm1hX2ZsYWdzOwo+ID4g ICAgICAgICB9Cj4gPgo+ID4gLSNpZmRlZiBDT05GSUdfU1BBUkM2NAo+ID4gLSAgICAgICAvKiBU T0RPOiBGaXggU1BBUkMgQURJISAqLwo+ID4gLSAgICAgICBXQVJOX09OX09OQ0UoIWFyY2hfdmFs aWRhdGVfZmxhZ3MobWFwLT52bV9mbGFncykpOwo+ID4gLSNlbmRpZgo+ID4gLQo+ID4gICAgICAg ICAvKiBMb2NrIHRoZSBWTUEgc2luY2UgaXQgaXMgbW9kaWZpZWQgYWZ0ZXIgaW5zZXJ0aW9uIGlu dG8gVk1BIHRyZWUgKi8KPiA+ICAgICAgICAgdm1hX3N0YXJ0X3dyaXRlKHZtYSk7Cj4gPiAgICAg ICAgIHZtYV9pdGVyX3N0b3JlX25ldyh2bWksIHZtYSk7Cj4gPiBAQCAtMjc3Nyw2ICsyNzYyLDgw IEBAIHN0YXRpYyB2b2lkIF9fbW1hcF9jb21wbGV0ZShzdHJ1Y3QgbW1hcF9zdGF0ZSAqbWFwLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiA+ICAgICAgICAgdm1hX3NldF9wYWdlX3Byb3Qo dm1hKTsKPiA+ICB9Cj4gPgo+ID4gKy8qIENoZWNrIHRvIGVuc3VyZSB0aGF0IHRoZSBWTUEgZmxh Z3Mgb2YgYSBuZXdseSBtYXBwZWQgVk1BIGFyZSBzYW5lLiAqLwo+ID4gK3N0YXRpYyBpbnQgbW1h cF92YWxpZGF0ZV92bWFfZmxhZ3MoY29uc3Qgdm1hX2ZsYWdzX3QgKmZsYWdzKQo+ID4gK3sKPiA+ ICsjaWZkZWYgQ09ORklHX1NQQVJDNjQKPiA+ICsgICAgICAgY29uc3Qgdm1fZmxhZ3NfdCBsZWdh Y3lfZmxhZ3MgPSB2bWFfZmxhZ3NfdG9fbGVnYWN5KCpmbGFncyk7Cj4gPiArCj4gPiArICAgICAg IC8qIFRPRE86IEZpeCBTUEFSQyBBREkhICovCj4gPiArICAgICAgIGlmIChXQVJOX09OX09OQ0Uo IWFyY2hfdmFsaWRhdGVfZmxhZ3MobGVnYWN5X2ZsYWdzKSkpCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gPiArI2VuZGlmCj4gPiArCj4gPiArICAgICAgIHJldHVybiAwOwo+ ID4gK30KPiA+ICsKPiA+ICsvKiBDaGVjayB0byBlbnN1cmUgYSBkcml2ZXIgaGFzbid0IGRvbmUg c29tZXRoaW5nIGNyYXp5LiAqLwo+ID4gK3N0YXRpYyBpbnQgbW1hcF92YWxpZGF0ZSh1bnNpZ25l ZCBsb25nIHByZXZfc3RhcnQsIHVuc2lnbmVkIGxvbmcgcHJldl9lbmQsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBjdXJyX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGN1 cnJfZW5kLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZtYV9mbGFnc190ICpw cmV2X2ZsYWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZtYV9mbGFnc190 ICpjdXJyX2ZsYWdzKQo+ID4gK3sKPiA+ICsgICAgICAgYm9vbCB3YXNfbWF5d3JpdGUsIGlzX21h eXdyaXRlOwo+ID4gKwo+ID4gKyAgICAgICAvKiBEcml2ZXJzIGNhbm5vdCBhbHRlciB0aGUgcmFu Z2Ugb2YgdGhlIFZNQS4gKi8KPiA+ICsgICAgICAgaWYgKFdBUk5fT05fT05DRShwcmV2X3N0YXJ0 ICE9IGN1cnJfc3RhcnQgfHwgcHJldl9lbmQgIT0gY3Vycl9lbmQpKQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4gKyAgICAgICB3YXNfbWF5d3JpdGUgPSB2bWFf ZmxhZ3NfdGVzdChwcmV2X2ZsYWdzLCBWTUFfTUFZV1JJVEVfQklUKTsKPiA+ICsgICAgICAgaXNf bWF5d3JpdGUgPSB2bWFfZmxhZ3NfdGVzdChjdXJyX2ZsYWdzLCBWTUFfTUFZV1JJVEVfQklUKTsK PiA+ICsKPiA+ICsgICAgICAgLyogQSBkcml2ZXIgbWF5IG5vdCBtYWtlIGEgcHJldmlvdXNseSB1 bndyaXRhYmxlIG1hcHBpbmcgd3JpdGFibGUuICovCj4gPiArICAgICAgIGlmIChXQVJOX09OX09O Q0UoIXdhc19tYXl3cml0ZSAmJiBpc19tYXl3cml0ZSkpCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiBtbWFwX3ZhbGlkYXRlX3ZtYV9m bGFncyhjdXJyX2ZsYWdzKTsKPiA+ICt9Cj4gPiArCj4gPiArLyoqCj4gPiArICogbW1hcF9wcmVw YXJlX3ZhbGlkYXRlKCkgLSBFbnN1cmUgdGhlIGRyaXZlciBoYXNuJ3QgdmlvbGF0ZWQgaW52YXJp YW50cyBpbiBpdHMKPiA+ICsgKiBmX29wLT5tbWFwX3ByZXBhcmUgaG9vay4KPiA+ICsgKiBAcHJl dl9kZXNjOiBUaGUgVk1BIGRlc2NyaXB0b3IgcHJpb3IgdG8gdGhlIG1tYXBfcHJlcGFyZSBob29r IGJlaW5nIGNhbGxlZC4KPiA+ICsgKiBAZGVzYzogVGhlIFZNQSBkZXNjcmlwdG9yIGFmdGVyIHRo ZSBtbWFwX3ByZXBhcmUgaG9vayBoYXMgYmVlbiBjYWxsZWQuCj4gPiArICoKPiA+ICsgKiBSZXR1 cm5zOiAwIG9uIHN1Y2Nlc3MsIG90aGVyd2lzZSBhbiBlcnJvci4KPiA+ICsgKi8KPiA+ICtpbnQg bW1hcF9wcmVwYXJlX3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCB2bV9hcmVhX2Rlc2MgKnByZXZfZGVz YywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZtX2FyZWFfZGVz YyAqZGVzYykKPiA+ICt7Cj4gPiArICAgICAgIHJldHVybiBtbWFwX3ZhbGlkYXRlKHByZXZfZGVz Yy0+c3RhcnQsIHByZXZfZGVzYy0+ZW5kLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXNjLT5zdGFydCwgZGVzYy0+ZW5kLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmcHJldl9kZXNjLT52bWFfZmxhZ3MsICZkZXNjLT52bWFfZmxhZ3MpOwo+ID4gK30KPiA+ICsK PiA+ICsvKioKPiA+ICsgKiBtbWFwX2hvb2tfdmFsaWRhdGUoKSAtIEVuc3VyZSB0aGUgZHJpdmVy IGhhc24ndCB2aW9sYXRlZCBpbnZhcmlhbnRzIGluCj4gPiArICogaXRzIGZfb3AtPm1tYXAgaG9v ay4KPiA+ICsgKiBAcHJldl9zdGFydDogVGhlIHN0YXJ0IG9mIHRoZSBtYXBwaW5nIHByaW9yIHRv IHRoZSBtbWFwIGhvb2suCj4gPiArICogQHByZXZfZW5kOiBUaGUgZW5kIG9mIHRoZSBtYXBwaW5n IHByaW9yIHRvIHRoZSBtbWFwIGhvb2suCj4gPiArICogQHByZXZfZmxhZ3M6IFRoZSBWTUEgZmxh Z3Mgc2V0IGZvciB0aGUgVk1BIHByaW9yIHRvIHRoZSBtbWFwIGhvb2suCj4gPiArICogQHZtYTog VGhlIFZNQSBhZnRlciB0aGUgaG9vayBoYXMgYmVlbiBhcHBsaWVkLgo+ID4gKyAqCj4gPiArICog UmV0dXJuczogMCBvbiBzdWNjZXNzLCBvdGhlcndpc2UgYW4gZXJyb3IuCj4gPiArICovCj4gPiAr aW50IG1tYXBfaG9va192YWxpZGF0ZSh1bnNpZ25lZCBsb25nIHByZXZfc3RhcnQsIHVuc2lnbmVk IGxvbmcgcHJldl9lbmQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZtYV9mbGFn c190ICpwcmV2X2ZsYWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPiA+ICt7Cj4gPiArICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv bmcgc3RhcnQgPSB2bWEtPnZtX3N0YXJ0Owo+ID4gKyAgICAgICBjb25zdCB1bnNpZ25lZCBsb25n IGVuZCA9IHZtYS0+dm1fZW5kOwo+ID4gKyAgICAgICBjb25zdCB2bWFfZmxhZ3NfdCAqZmxhZ3Mg PSAmdm1hLT5mbGFnczsKPiA+ICsKPiA+ICsgICAgICAgcmV0dXJuIG1tYXBfdmFsaWRhdGUocHJl dl9zdGFydCwgcHJldl9lbmQsIHN0YXJ0LCBlbmQsIHByZXZfZmxhZ3MsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZsYWdzKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBj YWxsX2FjdGlvbl9wcmVwYXJlKHN0cnVjdCBtbWFwX3N0YXRlICptYXAsCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYykKPiA+ICB7Cj4g PiBAQCAtMjgwMyw2ICsyODYyLDcgQEAgc3RhdGljIGludCBjYWxsX2FjdGlvbl9wcmVwYXJlKHN0 cnVjdCBtbWFwX3N0YXRlICptYXAsCj4gPiAgc3RhdGljIGludCBjYWxsX21tYXBfcHJlcGFyZShz dHJ1Y3QgbW1hcF9zdGF0ZSAqbWFwLAo+ID4gICAgICAgICAgICAgICAgIHN0cnVjdCB2bV9hcmVh X2Rlc2MgKmRlc2MpCj4gPiAgewo+ID4gKyAgICAgICBjb25zdCBzdHJ1Y3Qgdm1fYXJlYV9kZXNj IHByZXZfZGVzYyA9ICpkZXNjOwo+ID4gICAgICAgICBpbnQgZXJyOwo+ID4KPiA+ICAgICAgICAg LyogSW52b2tlIHRoZSBob29rLiAqLwo+ID4gQEAgLTI4MjIsNiArMjg4MiwxMSBAQCBzdGF0aWMg aW50IGNhbGxfbW1hcF9wcmVwYXJlKHN0cnVjdCBtbWFwX3N0YXRlICptYXAsCj4gPiAgICAgICAg IGlmIChlcnIpCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsKPiA+Cj4gPiArICAgICAg IC8qIENoZWNrIHRoZSBjYWxsZXIgZGlkIG5vdGhpbmcgY3JhenkuICovCj4gPiArICAgICAgIGVy ciA9IG1tYXBfcHJlcGFyZV92YWxpZGF0ZSgmcHJldl9kZXNjLCBkZXNjKTsKPiA+ICsgICAgICAg aWYgKGVycikKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ID4gKwo+ID4gICAgICAg ICAvKiBVcGRhdGUgZmllbGRzIHBlcm1pdHRlZCB0byBiZSBjaGFuZ2VkLiAqLwo+ID4gICAgICAg ICBtYXAtPnBnb2ZmID0gZGVzYy0+cGdvZmY7Cj4gPiAgICAgICAgIG1hcC0+dm1hX2ZsYWdzID0g ZGVzYy0+dm1hX2ZsYWdzOwo+ID4gQEAgLTM0NTcsMTAgKzM1MjIsMTUgQEAgaW50IF9fdm1fbXVu bWFwKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHNpemVfdCBsZW4sIGJvb2wgdW5sb2NrKQo+ID4gIGlu dCBpbnNlcnRfdm1fc3RydWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKPiA+ICB7Cj4gPiAgICAgICAgIHVuc2lnbmVkIGxvbmcgY2hhcmdlZCA9IHZt YV9wYWdlcyh2bWEpOwo+ID4gKyAgICAgICBpbnQgZXJyOwo+ID4KPiA+ICAgICAgICAgaWYgKGZp bmRfdm1hX2ludGVyc2VjdGlvbihtbSwgdm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQpKQo+ID4g ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4KPiA+ICsgICAgICAgZXJyID0gbW1h cF92YWxpZGF0ZV92bWFfZmxhZ3MoJnZtYS0+ZmxhZ3MpOwo+ID4gKyAgICAgICBpZiAoZXJyKQo+ ID4gKyAgICAgICAgICAgICAgIHJldHVybiBlcnI7Cj4gPiArCj4gPiAgICAgICAgIGlmICh2bWFf dGVzdCh2bWEsIFZNQV9BQ0NPVU5UX0JJVCkgJiYKPiA+ICAgICAgICAgICAgICBzZWN1cml0eV92 bV9lbm91Z2hfbWVtb3J5X21tKG1tLCBjaGFyZ2VkKSkKPiA+ICAgICAgICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsKPiA+IGRpZmYgLS1naXQgYS9tbS92bWEuaCBiL21tL3ZtYS5oCj4gPiBpbmRl eCBmMTVmYWE4M2YzZDYuLmIyYzNiYzgzMmE0OCAxMDA2NDQKPiA+IC0tLSBhL21tL3ZtYS5oCj4g PiArKysgYi9tbS92bWEuaAo+ID4gQEAgLTc4MiwxNCArNzgyLDE5IEBAIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1fYXJlYV9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICptbSk7Cj4gPiAgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bV9hcmVhX2R1cChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKm9yaWcp Owo+ID4gIHZvaWQgdm1fYXJlYV9mcmVlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiA+ Cj4gPiAtLyogdm1hX2V4ZWMuYyAqLwo+ID4gICNpZmRlZiBDT05GSUdfTU1VCj4gPiAraW50IG1t YXBfcHJlcGFyZV92YWxpZGF0ZShjb25zdCBzdHJ1Y3Qgdm1fYXJlYV9kZXNjICpwcmV2X2Rlc2Ms Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2bV9hcmVhX2Rlc2Mg KmRlc2MpOwo+ID4gKwo+ID4gK2ludCBtbWFwX2hvb2tfdmFsaWRhdGUodW5zaWduZWQgbG9uZyBw cmV2X3N0YXJ0LCB1bnNpZ25lZCBsb25nIHByZXZfZW5kLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB2bWFfZmxhZ3NfdCAqcHJldl9mbGFncywKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+ID4gKwo+ID4gKy8qIHZt YV9leGVjLmMgKi8KPiA+ICBpbnQgY3JlYXRlX2luaXRfc3RhY2tfdm1hKHN0cnVjdCBtbV9zdHJ1 Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKip2bWFwLAo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICp0b3BfbWVtX3ApOwo+ID4gIGludCByZWxvY2F0ZV92 bWFfZG93bihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBzaGlmdCk7 Cj4gPiAtI2VuZGlmCj4gPgo+ID4gLSNpZmRlZiBDT05GSUdfTU1VCj4gPiAgLyoKPiA+ICAgKiBE ZW5pZXMgY3JlYXRpbmcgYSB3cml0YWJsZSBleGVjdXRhYmxlIG1hcHBpbmcgb3IgZ2FpbmluZyBl eGVjdXRhYmxlIHBlcm1pc3Npb25zLgo+ID4gICAqCj4gPiBAQCAtODM4LDYgKzg0MywyMCBAQCBz dGF0aWMgaW5saW5lIGJvb2wgbWFwX2Rlbnlfd3JpdGVfZXhlYyhjb25zdCB2bWFfZmxhZ3NfdCAq b2xkLAo+ID4KPiA+ICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICsjZWxzZQo+ID4g K3N0YXRpYyBpbmxpbmUgaW50IG1tYXBfcHJlcGFyZV92YWxpZGF0ZShjb25zdCBzdHJ1Y3Qgdm1f YXJlYV9kZXNjICpwcmV2X2Rlc2MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHZtX2FyZWFfZGVzYyAqZGVzYykKPiA+ICt7Cj4gPiArICAg ICAgIHJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW5saW5lIGludCBtbWFwX2hv b2tfdmFsaWRhdGUodW5zaWduZWQgbG9uZyBwcmV2X3N0YXJ0LAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgcHJldl9lbmQsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1hX2ZsYWdzX3QgKnByZXZfZmxh Z3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4gPiArewo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ICt9 Cj4gPiAgI2VuZGlmCj4gPgo+ID4gIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqX19pbnN0YWxsX3Nw ZWNpYWxfbWFwcGluZyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwKPiA+IGRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3ZtYS9pbmNsdWRlL2R1cC5oIGIvdG9vbHMvdGVzdGluZy92bWEvaW5jbHVkZS9k dXAuaAo+ID4gaW5kZXggMmZkNDIyNzg5NzE3Li4yOTg2YWU2Y2ExZTUgMTAwNjQ0Cj4gPiAtLS0g YS90b29scy90ZXN0aW5nL3ZtYS9pbmNsdWRlL2R1cC5oCj4gPiArKysgYi90b29scy90ZXN0aW5n L3ZtYS9pbmNsdWRlL2R1cC5oCj4gPiBAQCAtMTM1OSwxMyArMTM1OSwyMyBAQCBzdGF0aWMgaW5s aW5lIGludCB2ZnNfbW1hcF9wcmVwYXJlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJl YV9kZXNjICpkZXNjKQo+ID4gICAgICAgICByZXR1cm4gZmlsZS0+Zl9vcC0+bW1hcF9wcmVwYXJl KGRlc2MpOwo+ID4gIH0KPiA+Cj4gPiAraW50IG1tYXBfcHJlcGFyZV92YWxpZGF0ZShjb25zdCBz dHJ1Y3Qgdm1fYXJlYV9kZXNjICpwcmV2X2Rlc2MsCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MpOwo+ID4gKwo+ID4gIHN0YXRpYyBp bmxpbmUgaW50IF9fY29tcGF0X3ZtYV9tbWFwKHN0cnVjdCB2bV9hcmVhX2Rlc2MgKmRlc2MsCj4g PiAgICAgICAgICAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4gPiAgewo+ID4g KyAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9kZXNjIHByZXZfZGVzYzsKPiA+ICAgICAgICAgaW50IGVy cjsKPiA+Cj4gPiArICAgICAgIC8qIERlcml2ZSBzdGF0ZSBwcmlvciB0byBtbWFwX3ByZXBhcmUg aG9vay4gKi8KPiA+ICsgICAgICAgY29tcGF0X3NldF9kZXNjX2Zyb21fdm1hKCZwcmV2X2Rlc2Ms IGRlc2MtPmZpbGUsIHZtYSk7Cj4gPiAgICAgICAgIC8qIFBlcmZvcm0gYW55IHByZXBhcmF0b3J5 IHRhc2tzIGZvciBtbWFwIGFjdGlvbi4gKi8KPiA+ICAgICAgICAgZXJyID0gbW1hcF9hY3Rpb25f cHJlcGFyZShkZXNjKTsKPiA+ICsgICAgICAgaWYgKGVycikKPiA+ICsgICAgICAgICAgICAgICBy ZXR1cm4gZXJyOwo+ID4gKyAgICAgICAvKiBDaGVjayB0aGUgY2FsbGVyIGRpZCBub3RoaW5nIGNy YXp5LiAqLwo+ID4gKyAgICAgICBlcnIgPSBtbWFwX3ByZXBhcmVfdmFsaWRhdGUoJnByZXZfZGVz YywgZGVzYyk7Cj4gPiAgICAgICAgIGlmIChlcnIpCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJu IGVycjsKPiA+ICAgICAgICAgLyogVXBkYXRlIHRoZSBWTUEgZnJvbSB0aGUgZGVzY3JpcHRvci4g Ki8KPiA+Cj4gPiAtLQo+ID4gMi41NS4wCj4gPgoKLS0KQ2hlZXJzLCBMb3JlbnpvCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWls aW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==