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 78BAEC001B0 for ; Thu, 10 Aug 2023 17:10:34 +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=/yUxZmcgycd9TZHghdQ4bo4iWj2NYaTQW89Sa6oHOAY=; b=hkb+1YMBKnE+oo yw+ldsnBeni3M1LA+BmlPy6pSQFyfHvsm0nsBJujFKyzZJ54Ee3enTpB+3kNMSYEk5xtLACO+xYxg Zva9NijByQhHvK8BQ8DZD26uR58kFwIoIovtUiVvIVSqkTmwZNOMkpa+EiT22Vu4o2HgRBBBTw+da 7ssDja10TK2TNkib6+APwLO8ytNX2bHNw6HdjEZj9/YRF7MPGF0w01FgArpL6Dr4abg7gdtTHaloH 3Qn7twTt1vn/Czmj0a9P+6QCVRjWZeXr+Ats3oW1vOtY+50bw6D8B7+/I/gAkVIwgLx7gWeJ/96+A Ct45qyFryJuKDcDeBA1g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qU9Ak-008GOh-2A; Thu, 10 Aug 2023 17:10:06 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qU9Ah-008GNs-11 for linux-arm-kernel@lists.infradead.org; Thu, 10 Aug 2023 17:10:05 +0000 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3fe501e0b4cso10592915e9.1 for ; Thu, 10 Aug 2023 10:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1691687397; x=1692292197; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=5k2bgFIeP6rEvqhW+76MYexuUI5okzvmYLcGv7ImAA4=; b=348rKh2mB9+JZM1jeKzEc5ff04qfUKJElqfM7dcXuWR7WpqcsYyE0SR6pV+XKf3EXS EtRj6Pc2PahN400SFGd0Enu7oFvk/Y6fqGSqHRBevhWpSPC+eT3j/oza8H1lWhXds9bv ohZZ3YulUFTEuuWRPQjQe7hsBvCUvA42F3W65g10bk1Ey0D8p/7nmY8r+Bs/0pArjg/T ud1XhzVn+8MMJHmXAgHUxQc1oCGKFPmdEFRO0qRz4JfBMC4nDos7JeCDFomxzU1xCcsc 13mfewUufnuDbOxu3rAUm/0c53ed3097YyoBTxgIXYrNWctWltSW563BrMdaSVwy0N0d qcUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691687397; x=1692292197; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5k2bgFIeP6rEvqhW+76MYexuUI5okzvmYLcGv7ImAA4=; b=dcalxHWomEN3oll5AqfB2MJAtXLcMUAnXFdD+81sH/TtiUV0og+9S0IGLeFmk08IFK UPEcEN/Oh3y4EvOmrPdzhpuAqqudXF4N0L/mbi4cKNSuaiNUr/CDfiiHqyIqiA271ffq MJKPxLFuvzEAPOGEFCzdshoFlKcFhyncxMEFLo1j+LAKT3ODpR2KPNvjHAkL6GodLYXU /xpOR2sU5DzchO4fQ4oip6YKKfkYYf1MiHxuqqdbSOggt5pdZ4oQ1Gi3RTYPLX+mYHE2 HC2SNgWUo6INj848jfTfrPxuTHJSwYAH7cCEiETKq6aBxAx17yUOBfS2f6Dhs1AVzDlK K+wg== X-Gm-Message-State: AOJu0YzviA9CjX5qW1mZHYoqUhx6WM9ZaWXt8U8uHLmdHkuVLcT211UZ 2azKHvcf54fn7g2Kpl/Easu6BQ== X-Google-Smtp-Source: AGHT+IEWb/Xo7u8eP8qwVSZXPSJwXV2AwZhLO7gPmVS6pQLqyddlKtO7VqIGu2pqOFkudZuyrtfkwg== X-Received: by 2002:a05:6000:c8:b0:313:f548:25b9 with SMTP id q8-20020a05600000c800b00313f54825b9mr2591405wrx.40.1691687396520; Thu, 10 Aug 2023 10:09:56 -0700 (PDT) Received: from google.com (65.0.187.35.bc.googleusercontent.com. [35.187.0.65]) by smtp.gmail.com with ESMTPSA id f17-20020adff451000000b00317efb41e44sm2763727wrp.18.2023.08.10.10.09.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Aug 2023 10:09:55 -0700 (PDT) Date: Thu, 10 Aug 2023 18:09:51 +0100 From: Vincent Donnefort To: Kalesh Singh Cc: maz@kernel.org, oliver.upton@linux.dev, kvmarm@lists.linux.dev, qperret@google.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, kernel-team@android.com, will@kernel.org Subject: Re: [PATCH] KVM: arm64: Do not size-order align pkvm_alloc_private_va_range() Message-ID: References: <20230810133432.680392-1-vdonnefort@google.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-20230810_101003_362545_75C697FB X-CRM114-Status: GOOD ( 39.09 ) 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 T24gVGh1LCBBdWcgMTAsIDIwMjMgYXQgMDk6NDI6NTRBTSAtMDcwMCwgS2FsZXNoIFNpbmdoIHdy b3RlOgo+IE9uIFRodSwgQXVnIDEwLCAyMDIzIGF0IDY6MzTigK9BTSBWaW5jZW50IERvbm5lZm9y dCA8dmRvbm5lZm9ydEBnb29nbGUuY29tPiB3cm90ZToKPiA+Cj4gPiBjb21taXQgZjkyMmMxM2U3 NzhkICgiS1ZNOiBhcm02NDogSW50cm9kdWNlIHBrdm1fYWxsb2NfcHJpdmF0ZV92YV9yYW5nZSgp IikKPiA+IGFkZGVkIGFuIGFsaWdubWVudCBmb3IgdGhlIHN0YXJ0IGFkZHJlc3Mgb2YgYW55IGFs bG9jYXRpb24gaW50byB0aGUgblZIRQo+ID4gcHJvdGVjdGVkIGh5cGVydmlzb3IgcHJpdmF0ZSBW QSByYW5nZS4KPiA+Cj4gPiBUaGlzIGFsaWdubWVudCAob3JkZXIgb2YgdGhlIHNpemUgb2YgdGhl IGFsbG9jYXRpb24pIGludGVuZHMgdG8gZW5hYmxlCj4gPiBlZmZpY2llbnQgc3RhY2sgZ3VhcmQg dmVyaWZpY2F0aW9uIChpZiB0aGUgUEFHRV9TSElGVCBiaXQgaXMgemVybywgdGhlCj4gPiBzdGFj ayBwb2ludGVyIGlzIG9uIHRoZSBzdGFjayBndWFyZCBwYWdlLCBhIHN0YWNrIG92ZXJmbG93IG9j Y3VycmVkKS4KPiA+Cj4gPiBCdXQgYSBzdWNoIGFsaWdubWVudCBvbmx5IG1ha2VzIHNlbnNlIGZv ciBzdGFjayBhbGxvY2F0aW9uIGFuZCBjYW4gd2FzdGUKPiA+IGEgbG90IG9mIFZBIHNwYWNlLiBT byBpbnN0ZWFkIG1ha2UgYSBzdGFjayBzcGVjaWZpYyBhbGxvY2F0aW9uIGZ1bmN0aW9uCj4gPiAo aHlwX2NyZWF0ZV9zdGFjaygpKSBoYW5kbGluZyB0aGUgc3RhY2sgZ3VhcmQgcGFnZSByZXF1aXJl bWVudHMsIHdoaWxlCj4gPiBvdGhlciB1c2VycyAoZS5nLiBmaXhtYXApIHdpbGwgb25seSBnZXQg cGFnZSBhbGlnbm1lbnQuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogVmluY2VudCBEb25uZWZvcnQg PHZkb25uZWZvcnRAZ29vZ2xlLmNvbT4KPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9r dm0vaHlwL2luY2x1ZGUvbnZoZS9tbS5oIGIvYXJjaC9hcm02NC9rdm0vaHlwL2luY2x1ZGUvbnZo ZS9tbS5oCj4gPiBpbmRleCBkNWVjOTcyYjVjMWUuLjcxZDE3ZGRiNTYyZiAxMDA2NDQKPiA+IC0t LSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9pbmNsdWRlL252aGUvbW0uaAo+ID4gKysrIGIvYXJjaC9h cm02NC9rdm0vaHlwL2luY2x1ZGUvbnZoZS9tbS5oCj4gPiBAQCAtMTgsNiArMTgsNyBAQCB2b2lk ICpoeXBfZml4bWFwX21hcChwaHlzX2FkZHJfdCBwaHlzKTsKPiA+ICB2b2lkIGh5cF9maXhtYXBf dW5tYXAodm9pZCk7Cj4gPgo+ID4gIGludCBoeXBfY3JlYXRlX2lkbWFwKHUzMiBoeXBfdmFfYml0 cyk7Cj4gPiAraW50IGh5cF9jcmVhdGVfc3RhY2sodW5zaWduZWQgbG9uZyBzdGFja19wYSwgdW5z aWduZWQgbG9uZyAqc3RhY2tfdmEpOwo+ID4gIGludCBoeXBfbWFwX3ZlY3RvcnModm9pZCk7Cj4g PiAgaW50IGh5cF9iYWNrX3ZtZW1tYXAocGh5c19hZGRyX3QgYmFjayk7Cj4gPiAgaW50IHBrdm1f Y3B1X3NldF92ZWN0b3IoZW51bSBhcm02NF9oeXBfc3BlY3RyZV92ZWN0b3Igc2xvdCk7Cj4gPiBk aWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvbW0uYyBiL2FyY2gvYXJtNjQva3Zt L2h5cC9udmhlL21tLmMKPiA+IGluZGV4IDMxODI5OGViM2Q2Yi4uMjc1ZTMzYThiZTlhIDEwMDY0 NAo+ID4gLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvbW0uYwo+ID4gKysrIGIvYXJjaC9h cm02NC9rdm0vaHlwL252aGUvbW0uYwo+ID4gQEAgLTQ0LDYgKzQ0LDI4IEBAIHN0YXRpYyBpbnQg X19wa3ZtX2NyZWF0ZV9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n IHNpemUsCj4gPiAgICAgICAgIHJldHVybiBlcnI7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMgaW50 IF9fcGt2bV9hbGxvY19wcml2YXRlX3ZhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHNpemVf dCBzaXplKQo+ID4gK3sKPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBjdXI7Cj4gPiArICAgICAg IGludCByZXQgPSAwOwo+ID4gKwo+ID4gKyAgICAgICBoeXBfYXNzZXJ0X2xvY2tfaGVsZCgmcGt2 bV9wZ2RfbG9jayk7Cj4gPiArCj4gPiArICAgICAgIGlmICghc3RhcnQgfHwgc3RhcnQgPCBfX2lv X21hcF9iYXNlKQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gKwo+ID4g KyAgICAgICAvKiBUaGUgYWxsb2NhdGVkIHNpemUgaXMgYWx3YXlzIGEgbXVsdGlwbGUgb2YgUEFH RV9TSVpFICovCj4gPiArICAgICAgIGN1ciA9IHN0YXJ0ICsgUEFHRV9BTElHTihzaXplKTsKPiA+ ICsKPiA+ICsgICAgICAgLyogQXJlIHdlIG92ZXJmbG93aW5nIG9uIHRoZSB2bWVtbWFwID8gKi8K PiA+ICsgICAgICAgaWYgKGN1ciA+IF9faHlwX3ZtZW1tYXApCj4gPiArICAgICAgICAgICAgICAg cmV0ID0gLUVOT01FTTsKPiA+ICsgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAgICAgIF9faW9f bWFwX2Jhc2UgPSBjdXI7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiByZXQ7Cj4gPiArfQo+ID4g Kwo+ID4gIC8qKgo+ID4gICAqIHBrdm1fYWxsb2NfcHJpdmF0ZV92YV9yYW5nZSAtIEFsbG9jYXRl cyBhIHByaXZhdGUgVkEgcmFuZ2UuCj4gPiAgICogQHNpemU6ICAgICAgVGhlIHNpemUgb2YgdGhl IFZBIHJhbmdlIHRvIHJlc2VydmUuCj4gPiBAQCAtNTYsMjcgKzc4LDE2IEBAIHN0YXRpYyBpbnQg X19wa3ZtX2NyZWF0ZV9tYXBwaW5ncyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n IHNpemUsCj4gPiAgICovCj4gPiAgaW50IHBrdm1fYWxsb2NfcHJpdmF0ZV92YV9yYW5nZShzaXpl X3Qgc2l6ZSwgdW5zaWduZWQgbG9uZyAqaGFkZHIpCj4gPiAgewo+ID4gLSAgICAgICB1bnNpZ25l ZCBsb25nIGJhc2UsIGFkZHI7Cj4gPiAtICAgICAgIGludCByZXQgPSAwOwo+ID4gKyAgICAgICB1 bnNpZ25lZCBsb25nIGFkZHI7Cj4gPiArICAgICAgIGludCByZXQ7Cj4gPgo+ID4gICAgICAgICBo eXBfc3Bpbl9sb2NrKCZwa3ZtX3BnZF9sb2NrKTsKPiA+IC0KPiA+IC0gICAgICAgLyogQWxpZ24g dGhlIGFsbG9jYXRpb24gYmFzZWQgb24gdGhlIG9yZGVyIG9mIGl0cyBzaXplICovCj4gPiAtICAg ICAgIGFkZHIgPSBBTElHTihfX2lvX21hcF9iYXNlLCBQQUdFX1NJWkUgPDwgZ2V0X29yZGVyKHNp emUpKTsKPiA+IC0KPiA+IC0gICAgICAgLyogVGhlIGFsbG9jYXRlZCBzaXplIGlzIGFsd2F5cyBh IG11bHRpcGxlIG9mIFBBR0VfU0laRSAqLwo+ID4gLSAgICAgICBiYXNlID0gYWRkciArIFBBR0Vf QUxJR04oc2l6ZSk7Cj4gPiAtCj4gPiAtICAgICAgIC8qIEFyZSB3ZSBvdmVyZmxvd2luZyBvbiB0 aGUgdm1lbW1hcCA/ICovCj4gPiAtICAgICAgIGlmICghYWRkciB8fCBiYXNlID4gX19oeXBfdm1l bW1hcCkKPiA+IC0gICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+ID4gLSAgICAgICBlbHNl IHsKPiA+IC0gICAgICAgICAgICAgICBfX2lvX21hcF9iYXNlID0gYmFzZTsKPiA+IC0gICAgICAg ICAgICAgICAqaGFkZHIgPSBhZGRyOwo+ID4gLSAgICAgICB9Cj4gPiAtCj4gPiArICAgICAgIGFk ZHIgPSBfX2lvX21hcF9iYXNlOwo+ID4gKyAgICAgICByZXQgPSBfX3Brdm1fYWxsb2NfcHJpdmF0 ZV92YV9yYW5nZShhZGRyLCBzaXplKTsKPiA+ICAgICAgICAgaHlwX3NwaW5fdW5sb2NrKCZwa3Zt X3BnZF9sb2NrKTsKPiA+Cj4gPiArICAgICAgICpoYWRkciA9IGFkZHI7Cj4gPiArCj4gPiAgICAg ICAgIHJldHVybiByZXQ7Cj4gPiAgfQo+ID4KPiA+IEBAIC0zNDAsNiArMzUxLDM5IEBAIGludCBo eXBfY3JlYXRlX2lkbWFwKHUzMiBoeXBfdmFfYml0cykKPiA+ICAgICAgICAgcmV0dXJuIF9fcGt2 bV9jcmVhdGVfbWFwcGluZ3Moc3RhcnQsIGVuZCAtIHN0YXJ0LCBzdGFydCwgUEFHRV9IWVBfRVhF Qyk7Cj4gPiAgfQo+ID4KPiA+ICtpbnQgaHlwX2NyZWF0ZV9zdGFjayh1bnNpZ25lZCBsb25nIHN0 YWNrX3BhLCB1bnNpZ25lZCBsb25nICpzdGFja192YSkKPiA+ICt7Cj4gCj4gSGkgVmluY2VudCwK PiAKPiBDYW4geW91IHJlbmFtZSB0aGlzIGluc3RlYWQgYXMgcGt2bV9jcmVhdGVfc3RhY2soKSwg c2luY2UgaXQncyBmb3IgdGhlCj4gcHJvdGVjdGVkIGNhc2UuCgpOb3Qgc3VyZSBhYm91dCB0aGUg cGt2bV9jcmVhdGVfc3RhY2soKSwgSSB3YW50ZWQgdG8gaGF2ZSBzb21ldGhpbmcgdGhhdCBsb29r cwpsaWtlIGh5cF9jcmVhdGVfaWRtYXAoKSB0aGF0IGlzIGFsc28gcGt2bSBvbmx5LiBBbmQgYXMg dGhlIGxhdHRlciwgdGhlIHN0YWNrCmNyZWF0aW9uIGhhcHBlbnMgb25seSBkdXJpbmcgdGhlIHNl dHVwLCBzbyBJIHRob3VnaHQgSSdkIGJldHRlciBrZWVwIHRoaXMKZm9ybWF0LgoKVGhvdWdodHM/ Cgo+IAo+IEFuZCBJIGFzc3VtZSB3ZSB3YW50IHRoZSBzYW1lIHRoaW5nIGZvciB0aGUgY29udmVu dGlvbmFsIG5WSEUgbW9kZToKPiByZW1vdmUgdGhlIGFsaWdubWVudCBmcm9tIGh5cF9hbGxvY19w cml2YXRlX3ZhX3JhbmdlKCkgaW50byBhCj4gaHlwX2NyZWF0ZV9zdGFjaygpLgoKQWggeWVzLCBn b29kIGNhdGNoLCBldmVuIHRob3VnaCBpdCdsbCBiZSBsZXNzIG9mIGEgcHJvYmxlbSBmb3Igbm9u LXByb3RlY3RlZApuVkhFLCBpdCdkIHByb2JhYmx5IGJlIGEgZ29vZCB0aGluZyBvZiBhbGlnbmlu ZyBib3RoLiBNaWdodCBkbyB0aGF0IGluIGEKc2VwYXJhdGVkIHBhdGNoIHRob3VnaC4KCj4gCj4g VGhhbmtzLAo+IEthbGVzaAoKVGhhbmtzIGZvciBoYXZpbmcgYSBsb29rIQoKPiAKPiAKPiA+ICsg ICAgICAgdW5zaWduZWQgbG9uZyBhZGRyOwo+ID4gKyAgICAgICBzaXplX3Qgc2l6ZTsKPiA+ICsg ICAgICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgICAgaHlwX3NwaW5fbG9jaygmcGt2bV9wZ2Rf bG9jayk7Cj4gPiArCj4gPiArICAgICAgIC8qIE1ha2Ugcm9vbSBmb3IgdGhlIGd1YXJkIHBhZ2Ug Ki8KPiA+ICsgICAgICAgc2l6ZSA9IFBBR0VfU0laRSAqIDI7Cj4gPiArICAgICAgIGFkZHIgPSBB TElHTihfX2lvX21hcF9iYXNlLCBzaXplKTsKPiA+ICsKPiA+ICsgICAgICAgcmV0ID0gX19wa3Zt X2FsbG9jX3ByaXZhdGVfdmFfcmFuZ2UoYWRkciwgc2l6ZSk7Cj4gPiArICAgICAgIGlmICghcmV0 KSB7Cj4gPiArICAgICAgICAgICAgICAgLyoKPiA+ICsgICAgICAgICAgICAgICAgKiBTaW5jZSB0 aGUgc3RhY2sgZ3Jvd3MgZG93bndhcmRzLCBtYXAgdGhlIHN0YWNrIHRvIHRoZSBwYWdlCj4gPiAr ICAgICAgICAgICAgICAgICogYXQgdGhlIGhpZ2hlciBhZGRyZXNzIGFuZCBsZWF2ZSB0aGUgbG93 ZXIgZ3VhcmQgcGFnZQo+ID4gKyAgICAgICAgICAgICAgICAqIHVuYmFja2VkLgo+ID4gKyAgICAg ICAgICAgICAgICAqCj4gPiArICAgICAgICAgICAgICAgICogQW55IHZhbGlkIHN0YWNrIGFkZHJl c3Mgbm93IGhhcyB0aGUgUEFHRV9TSElGVCBiaXQgYXMgMQo+ID4gKyAgICAgICAgICAgICAgICAq IGFuZCBhZGRyZXNzZXMgY29ycmVzcG9uZGluZyB0byB0aGUgZ3VhcmQgcGFnZSBoYXZlIHRoZQo+ ID4gKyAgICAgICAgICAgICAgICAqIFBBR0VfU0hJRlQgYml0IGFzIDAgLSB0aGlzIGlzIHVzZWQg Zm9yIG92ZXJmbG93IGRldGVjdGlvbi4KPiA+ICsgICAgICAgICAgICAgICAgKi8KPiA+ICsgICAg ICAgICAgICAgICByZXQgPSBrdm1fcGd0YWJsZV9oeXBfbWFwKCZwa3ZtX3BndGFibGUsIGFkZHIg KyBQQUdFX1NJWkUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQUdFX1NJWkUsIHN0YWNrX3BhLCBQQUdFX0hZUCk7Cj4gPiArICAgICAgIH0KPiA+ICsgICAg ICAgaHlwX3NwaW5fdW5sb2NrKCZwa3ZtX3BnZF9sb2NrKTsKPiA+ICsKPiA+ICsgICAgICAgKnN0 YWNrX3ZhID0gYWRkciArIHNpemU7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiByZXQ7Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkICphZG1pdF9ob3N0X3BhZ2Uodm9pZCAqYXJnKQo+ID4g IHsKPiA+ICAgICAgICAgc3RydWN0IGt2bV9oeXBfbWVtY2FjaGUgKmhvc3RfbWMgPSBhcmc7Cj4g PiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvc2V0dXAuYyBiL2FyY2gvYXJt NjQva3ZtL2h5cC9udmhlL3NldHVwLmMKPiA+IGluZGV4IGJiOTg2MzBkZmVhZi4uNzgyYzhkMGZi OTA1IDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvc2V0dXAuYwo+ID4g KysrIGIvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvc2V0dXAuYwo+ID4gQEAgLTEyMSwzMyArMTIx LDExIEBAIHN0YXRpYyBpbnQgcmVjcmVhdGVfaHlwX21hcHBpbmdzKHBoeXNfYWRkcl90IHBoeXMs IHVuc2lnbmVkIGxvbmcgc2l6ZSwKPiA+ICAgICAgICAgICAgICAgICBpZiAocmV0KQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+Cj4gPiAtICAgICAgICAgICAgICAg LyoKPiA+IC0gICAgICAgICAgICAgICAgKiBBbGxvY2F0ZSBhIGNvbnRpZ3VvdXMgSFlQIHByaXZh dGUgVkEgcmFuZ2UgZm9yIHRoZSBzdGFjawo+ID4gLSAgICAgICAgICAgICAgICAqIGFuZCBndWFy ZCBwYWdlLiBUaGUgYWxsb2NhdGlvbiBpcyBhbHNvIGFsaWduZWQgYmFzZWQgb24KPiA+IC0gICAg ICAgICAgICAgICAgKiB0aGUgb3JkZXIgb2YgaXRzIHNpemUuCj4gPiAtICAgICAgICAgICAgICAg ICovCj4gPiAtICAgICAgICAgICAgICAgcmV0ID0gcGt2bV9hbGxvY19wcml2YXRlX3ZhX3Jhbmdl KFBBR0VfU0laRSAqIDIsICZoeXBfYWRkcik7Cj4gPiArICAgICAgICAgICAgICAgcmV0ID0gaHlw X2NyZWF0ZV9zdGFjayhwYXJhbXMtPnN0YWNrX3BhLCAmaHlwX2FkZHIpOwo+ID4gICAgICAgICAg ICAgICAgIGlmIChyZXQpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ ID4KPiA+IC0gICAgICAgICAgICAgICAvKgo+ID4gLSAgICAgICAgICAgICAgICAqIFNpbmNlIHRo ZSBzdGFjayBncm93cyBkb3dud2FyZHMsIG1hcCB0aGUgc3RhY2sgdG8gdGhlIHBhZ2UKPiA+IC0g ICAgICAgICAgICAgICAgKiBhdCB0aGUgaGlnaGVyIGFkZHJlc3MgYW5kIGxlYXZlIHRoZSBsb3dl ciBndWFyZCBwYWdlCj4gPiAtICAgICAgICAgICAgICAgICogdW5iYWNrZWQuCj4gPiAtICAgICAg ICAgICAgICAgICoKPiA+IC0gICAgICAgICAgICAgICAgKiBBbnkgdmFsaWQgc3RhY2sgYWRkcmVz cyBub3cgaGFzIHRoZSBQQUdFX1NISUZUIGJpdCBhcyAxCj4gPiAtICAgICAgICAgICAgICAgICog YW5kIGFkZHJlc3NlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBndWFyZCBwYWdlIGhhdmUgdGhlCj4g PiAtICAgICAgICAgICAgICAgICogUEFHRV9TSElGVCBiaXQgYXMgMCAtIHRoaXMgaXMgdXNlZCBm b3Igb3ZlcmZsb3cgZGV0ZWN0aW9uLgo+ID4gLSAgICAgICAgICAgICAgICAqLwo+ID4gLSAgICAg ICAgICAgICAgIGh5cF9zcGluX2xvY2soJnBrdm1fcGdkX2xvY2spOwo+ID4gLSAgICAgICAgICAg ICAgIHJldCA9IGt2bV9wZ3RhYmxlX2h5cF9tYXAoJnBrdm1fcGd0YWJsZSwgaHlwX2FkZHIgKyBQ QUdFX1NJWkUsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFH RV9TSVpFLCBwYXJhbXMtPnN0YWNrX3BhLCBQQUdFX0hZUCk7Cj4gPiAtICAgICAgICAgICAgICAg aHlwX3NwaW5fdW5sb2NrKCZwa3ZtX3BnZF9sb2NrKTsKPiA+IC0gICAgICAgICAgICAgICBpZiAo cmV0KQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+IC0KPiA+IC0g ICAgICAgICAgICAgICAvKiBVcGRhdGUgc3RhY2tfaHlwX3ZhIHRvIGVuZCBvZiB0aGUgc3RhY2sn cyBwcml2YXRlIFZBIHJhbmdlICovCj4gPiAtICAgICAgICAgICAgICAgcGFyYW1zLT5zdGFja19o eXBfdmEgPSBoeXBfYWRkciArICgyICogUEFHRV9TSVpFKTsKPiA+ICsgICAgICAgICAgICAgICBw YXJhbXMtPnN0YWNrX2h5cF92YSA9IGh5cF9hZGRyOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gICAg ICAgICAvKgo+ID4KPiA+IGJhc2UtY29tbWl0OiA1MmE5M2QzOWIxN2RjN2ViOThiNmFhM2VkYjkz OTQzMjQ4ZTAzYjJmCj4gPiAtLQo+ID4gMi40MS4wLjY0MC5nYTk1ZGVmNTVkMC1nb29nCj4gPgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=