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 AD799C71157 for ; Wed, 18 Jun 2025 06:42:31 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=g/REpmCIXRbDQU8sShAIZdBbBmDQFsRF6yG52iIaYVw=; b=Vjjf731UreVA3s +C8GUI4patATFiVzY2yEXlHoDOXx+f0nxhGxJ3F6BPDAJcR7+OyJTlo5uxBhy3XuxHcHHoD6bFjJM MurkIkIp24IsRPIlgV4C+gd90YjQxHfR3vSTSCFbOxQSnsOd4LPw/SWxbKbFUA7o0aB04FfI+eUEy u1OAJz4/eAlTqT7CmmuArClNasUFQUVtM196qhJqaOV6rahjI6fEajLllgfO4B/VqEAeuQgHDaj7c nNjrnQWrug7KfBBZKZdFSyyeDqj2YaJBpV+iONzjS6dRY3HBUM88G10kbeetHdc7225mXyAuKxOyQ Xc16vYrkfem3m/vlKfxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uRmV6-00000009Chy-2tl4; Wed, 18 Jun 2025 06:42:24 +0000 Received: from out-171.mta0.migadu.com ([2001:41d0:1004:224b::ab]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uRmTB-00000009CQD-3EOZ for linux-riscv@lists.infradead.org; Wed, 18 Jun 2025 06:40:27 +0000 Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1750228813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a2EpeT8uyS39AQCUZ40+mzIecTKyuERmuR6OYfojs1Y=; b=Yj1GQVlNCF29Gkk355kcp9q6mJ5BBxZaOL7l8jg2kh7Ly0TL5lgUYPJpMXttygev6a4/oz wXcSy1/cM22jWKHdOG9WeBYbUfu9Aoz1ACRLLI3sGWt8QN3bsh9M3xIL7U/6QyOp6B67Ht LM4HVAboE7AF/cuDQ0e7HY+YYxql76s= Date: Tue, 17 Jun 2025 23:40:08 -0700 MIME-Version: 1.0 Subject: Re: [PATCH v2 12/12] RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIs To: Anup Patel Cc: Palmer Dabbelt , Paul Walmsley , Alexandre Ghiti , Andrew Jones , Anup Patel , kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org References: <20250613065743.737102-1-apatel@ventanamicro.com> <20250613065743.737102-13-apatel@ventanamicro.com> <63b76a34-7475-4a3c-b86d-c355ff928091@linux.dev> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Atish Patra In-Reply-To: X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250617_234026_084500_73A7AD5F X-CRM114-Status: GOOD ( 16.04 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDYvMTYvMjUgMTA6MTEgUE0sIEFudXAgUGF0ZWwgd3JvdGU6Cj4gT24gU3VuLCBKdW4gMTUs IDIwMjUgYXQgMTI6NDjigK9BTSBBdGlzaCBQYXRyYSA8YXRpc2gucGF0cmFAbGludXguZGV2PiB3 cm90ZToKPj4KPj4KPj4gT24gNi8xNC8yNSAxMjoxMiBQTSwgQXRpc2ggUGF0cmEgd3JvdGU6Cj4+ PiBPbiA2LzEyLzI1IDExOjU3IFBNLCBBbnVwIFBhdGVsIHdyb3RlOgo+Pj4+IEN1cnJlbnRseSwg YWxsIGt2bV9yaXNjdl9oZmVuY2VfeHl6KCkgQVBJcyBhc3N1bWUgVk1JRCB0byBiZSB0aGUKPj4+ PiBob3N0IFZNSUQgb2YgdGhlIEd1ZXN0L1ZNIHdoaWNoIHJlc3RpY3RzIHVzZSBvZiB0aGVzZSBB UElzIG9ubHkKPj4+PiBmb3IgaG9zdCBUTEIgbWFpbnRlbmFuY2UuIExldCdzIGFsbG93IHBhc3Np bmcgVk1JRCBhcyBhIHBhcmFtZXRlcgo+Pj4+IHRvIGFsbCBrdm1fcmlzY3ZfaGZlbmNlX3h5eigp IEFQSXMgc28gdGhhdCB0aGV5IGNhbiBiZSByZS11c2VkCj4+Pj4gZm9yIG5lc3RlZCB2aXJ0dWFs aXphdGlvbiByZWxhdGVkIFRMQiBtYWludGVuYW5jZS4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6 IEFudXAgUGF0ZWwgPGFwYXRlbEB2ZW50YW5hbWljcm8uY29tPgo+Pj4+IC0tLQo+Pj4+ICAgIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3RsYi5oICB8IDE3ICsrKysrKy0tLQo+Pj4+ICAgIGFy Y2gvcmlzY3Yva3ZtL2dzdGFnZS5jICAgICAgICAgICB8ICAzICstCj4+Pj4gICAgYXJjaC9yaXNj di9rdm0vdGxiLmMgICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLQo+Pj4+ICAgIGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3JlcGxhY2UuYyB8IDE3ICsrKysr LS0tLQo+Pj4+ICAgIGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3YwMS5jICAgICB8IDI1ICsrKysr Ky0tLS0tLS0KPj4+PiAgICA1IGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDUwIGRl bGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v a3ZtX3RsYi5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlLwo+Pj4+IGFzbS9rdm1fdGxiLmgKPj4+PiBp bmRleCBmNjdlMDNlZGVhZWMuLjM4YTJmOTMzYWQzYSAxMDA2NDQKPj4+PiAtLS0gYS9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL2t2bV90bGIuaAo+Pj4+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9h c20va3ZtX3RsYi5oCj4+Pj4gQEAgLTExLDkgKzExLDExIEBACj4+Pj4gICAgZW51bSBrdm1fcmlz Y3ZfaGZlbmNlX3R5cGUgewo+Pj4+ICAgICAgICBLVk1fUklTQ1ZfSEZFTkNFX1VOS05PV04gPSAw LAo+Pj4+ICAgICAgICBLVk1fUklTQ1ZfSEZFTkNFX0dWTUFfVk1JRF9HUEEsCj4+Pj4gKyAgICBL Vk1fUklTQ1ZfSEZFTkNFX0dWTUFfVk1JRF9BTEwsCj4+Pj4gICAgICAgIEtWTV9SSVNDVl9IRkVO Q0VfVlZNQV9BU0lEX0dWQSwKPj4+PiAgICAgICAgS1ZNX1JJU0NWX0hGRU5DRV9WVk1BX0FTSURf QUxMLAo+Pj4+ICAgICAgICBLVk1fUklTQ1ZfSEZFTkNFX1ZWTUFfR1ZBLAo+Pj4+ICsgICAgS1ZN X1JJU0NWX0hGRU5DRV9WVk1BX0FMTAo+Pj4+ICAgIH07Cj4+Pj4gICAgc3RydWN0IGt2bV9yaXNj dl9oZmVuY2Ugewo+Pj4+IEBAIC01OSwyMSArNjEsMjQgQEAgdm9pZCBrdm1fcmlzY3ZfZmVuY2Vf aShzdHJ1Y3Qga3ZtICprdm0sCj4+Pj4gICAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX2d2bWFfdm1p ZF9ncGEoc3RydWN0IGt2bSAqa3ZtLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBoYmFzZSwgdW5zaWduZWQgbG9uZyBobWFzaywKPj4+PiAgICAgICAgICAgICAgICAg ICAgICAgIGdwYV90IGdwYSwgZ3BhX3QgZ3BzeiwKPj4+PiAtICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG9yZGVyKTsKPj4+PiArICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIG9yZGVyLCB1bnNpZ25lZCBsb25nIHZtaWQpOwo+Pj4+ICAgIHZvaWQga3ZtX3Jpc2N2X2hm ZW5jZV9ndm1hX3ZtaWRfYWxsKHN0cnVjdCBrdm0gKmt2bSwKPj4+PiAtICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGhiYXNlLCB1bnNpZ25lZCBsb25nIGhtYXNrKTsKPj4+PiArICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGhiYXNlLCB1bnNpZ25lZCBsb25nIGhtYXNr LAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdm1pZCk7Cj4+Pj4gICAg dm9pZCBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9ndmEoc3RydWN0IGt2bSAqa3ZtLAo+Pj4+ ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBoYmFzZSwgdW5zaWduZWQgbG9u ZyBobWFzaywKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ3ZhLCB1 bnNpZ25lZCBsb25nIGd2c3osCj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBvcmRlciwgdW5zaWduZWQgbG9uZyBhc2lkKTsKPj4+PiArICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG9yZGVyLCB1bnNpZ25lZCBsb25nIGFzaWQsCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyB2bWlkKTsKPj4+PiAgICB2b2lkIGt2bV9yaXNjdl9oZmVu Y2VfdnZtYV9hc2lkX2FsbChzdHJ1Y3Qga3ZtICprdm0sCj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGhiYXNlLCB1bnNpZ25lZCBsb25nIGhtYXNrLAo+Pj4+IC0gICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYXNpZCk7Cj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyBhc2lkLCB1bnNpZ25lZCBsb25nIHZtaWQpOwo+Pj4+ICAgIHZv aWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YShzdHJ1Y3Qga3ZtICprdm0sCj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGJhc2UsIHVuc2lnbmVkIGxvbmcgaG1hc2ss Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ3ZhLCB1bnNpZ25lZCBs b25nIGd2c3osCj4+Pj4gLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG9yZGVyKTsK Pj4+PiArICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb3JkZXIsIHVuc2lnbmVkIGxv bmcgdm1pZCk7Cj4+Pj4gICAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYWxsKHN0cnVjdCBr dm0gKmt2bSwKPj4+PiAtICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGJhc2UsIHVu c2lnbmVkIGxvbmcgaG1hc2spOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBoYmFzZSwgdW5zaWduZWQgbG9uZyBobWFzaywKPj4+PiArICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgdm1pZCk7Cj4+Pj4gICAgI2VuZGlmCj4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gv cmlzY3Yva3ZtL2dzdGFnZS5jIGIvYXJjaC9yaXNjdi9rdm0vZ3N0YWdlLmMKPj4+PiBpbmRleCA5 YzdjNDRmMDliMDUuLjI0YzI3MGQ2ZDBlMiAxMDA2NDQKPj4+PiAtLS0gYS9hcmNoL3Jpc2N2L2t2 bS9nc3RhZ2UuYwo+Pj4+ICsrKyBiL2FyY2gvcmlzY3Yva3ZtL2dzdGFnZS5jCj4+Pj4gQEAgLTEx Nyw3ICsxMTcsOCBAQCBzdGF0aWMgdm9pZCBnc3RhZ2VfdGxiX2ZsdXNoKHN0cnVjdCBrdm1fZ3N0 YWdlCj4+Pj4gKmdzdGFnZSwgdTMyIGxldmVsLCBncGFfdCBhZGRyKQo+Pj4+ICAgICAgICBpZiAo Z3N0YWdlLT5mbGFncyAmIEtWTV9HU1RBR0VfRkxBR1NfTE9DQUwpCj4+Pj4gICAgICAgICAgICBr dm1fcmlzY3ZfbG9jYWxfaGZlbmNlX2d2bWFfdm1pZF9ncGEoZ3N0YWdlLT52bWlkLCBhZGRyLAo+ Pj4+IEJJVChvcmRlciksIG9yZGVyKTsKPj4+PiAgICAgICAgZWxzZQo+Pj4+IC0gICAgICAgIGt2 bV9yaXNjdl9oZmVuY2VfZ3ZtYV92bWlkX2dwYShnc3RhZ2UtPmt2bSwgLTFVTCwgMCwgYWRkciwK Pj4+PiBCSVQob3JkZXIpLCBvcmRlcik7Cj4+Pj4gKyAgICAgICAga3ZtX3Jpc2N2X2hmZW5jZV9n dm1hX3ZtaWRfZ3BhKGdzdGFnZS0+a3ZtLCAtMVVMLCAwLCBhZGRyLAo+Pj4+IEJJVChvcmRlciks IG9yZGVyLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3RhZ2UtPnZtaWQpOwo+ Pj4+ICAgIH0KPj4+PiAgICBpbnQga3ZtX3Jpc2N2X2dzdGFnZV9zZXRfcHRlKHN0cnVjdCBrdm1f Z3N0YWdlICpnc3RhZ2UsCj4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3RsYi5jIGIv YXJjaC9yaXNjdi9rdm0vdGxiLmMKPj4+PiBpbmRleCAzNDlmY2ZjOTNmNTQuLjNjNWE3MGEyYjky NyAxMDA2NDQKPj4+PiAtLS0gYS9hcmNoL3Jpc2N2L2t2bS90bGIuYwo+Pj4+ICsrKyBiL2FyY2gv cmlzY3Yva3ZtL3RsYi5jCj4+Pj4gQEAgLTI1MSw2ICsyNTEsMTIgQEAgdm9pZCBrdm1fcmlzY3Zf aGZlbmNlX3Byb2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+Pj4+ICAgICAgICAgICAgICAg ICAgICBrdm1fcmlzY3ZfbG9jYWxfaGZlbmNlX2d2bWFfdm1pZF9ncGEoZC52bWlkLCBkLmFkZHIs Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQuc2l6ZSwgZC5v cmRlcik7Cj4+Pj4gICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gKyAgICAgICAgY2FzZSBLVk1f UklTQ1ZfSEZFTkNFX0dWTUFfVk1JRF9BTEw6Cj4+Pj4gKyAgICAgICAgICAgIGlmIChrdm1fcmlz Y3ZfbmFjbF9hdmFpbGFibGUoKSkKPj4+PiArICAgICAgICAgICAgICAgIG5hY2xfaGZlbmNlX2d2 bWFfdm1pZF9hbGwobmFjbF9zaG1lbSgpLCBkLnZtaWQpOwo+Pj4+ICsgICAgICAgICAgICBlbHNl Cj4+Pj4gKyAgICAgICAgICAgICAgICBrdm1fcmlzY3ZfbG9jYWxfaGZlbmNlX2d2bWFfdm1pZF9h bGwoZC52bWlkKTsKPj4+PiArICAgICAgICAgICAgYnJlYWs7Cj4+Pj4gICAgICAgICAgICBjYXNl IEtWTV9SSVNDVl9IRkVOQ0VfVlZNQV9BU0lEX0dWQToKPj4+PiAgICAgICAgICAgICAgICBrdm1f cmlzY3ZfdmNwdV9wbXVfaW5jcl9mdyh2Y3B1LAo+Pj4+IFNCSV9QTVVfRldfSEZFTkNFX1ZWTUFf QVNJRF9SQ1ZEKTsKPj4+PiAgICAgICAgICAgICAgICBpZiAoa3ZtX3Jpc2N2X25hY2xfYXZhaWxh YmxlKCkpCj4+Pj4gQEAgLTI3Niw2ICsyODIsMTMgQEAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX3By b2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+Pj4+ICAgICAgICAgICAgICAgICAgICBrdm1f cmlzY3ZfbG9jYWxfaGZlbmNlX3Z2bWFfZ3ZhKGQudm1pZCwgZC5hZGRyLAo+Pj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5zaXplLCBkLm9yZGVyKTsKPj4+PiAgICAgICAg ICAgICAgICBicmVhazsKPj4+PiArICAgICAgICBjYXNlIEtWTV9SSVNDVl9IRkVOQ0VfVlZNQV9B TEw6Cj4+Pj4gKyAgICAgICAgICAgIGt2bV9yaXNjdl92Y3B1X3BtdV9pbmNyX2Z3KHZjcHUsCj4+ Pj4gU0JJX1BNVV9GV19IRkVOQ0VfVlZNQV9SQ1ZEKTsKPj4+PiArICAgICAgICAgICAgaWYgKGt2 bV9yaXNjdl9uYWNsX2F2YWlsYWJsZSgpKQo+Pj4+ICsgICAgICAgICAgICAgICAgbmFjbF9oZmVu Y2VfdnZtYV9hbGwobmFjbF9zaG1lbSgpLCBkLnZtaWQpOwo+Pj4+ICsgICAgICAgICAgICBlbHNl Cj4+Pj4gKyAgICAgICAgICAgICAgICBrdm1fcmlzY3ZfbG9jYWxfaGZlbmNlX3Z2bWFfYWxsKGQu dm1pZCk7Cj4+Pj4gKyAgICAgICAgICAgIGJyZWFrOwo+Pj4+ICAgICAgICAgICAgZGVmYXVsdDoK Pj4+PiAgICAgICAgICAgICAgICBicmVhazsKPj4+PiAgICAgICAgICAgIH0KPj4+PiBAQCAtMzI4 LDE0ICszNDEsMTMgQEAgdm9pZCBrdm1fcmlzY3ZfZmVuY2VfaShzdHJ1Y3Qga3ZtICprdm0sCj4+ Pj4gICAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX2d2bWFfdm1pZF9ncGEoc3RydWN0IGt2bSAqa3Zt LAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBoYmFzZSwgdW5zaWdu ZWQgbG9uZyBobWFzaywKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGdwYV90IGdwYSwgZ3Bh X3QgZ3BzeiwKPj4+PiAtICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG9yZGVyKQo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb3JkZXIsIHVuc2lnbmVkIGxv bmcgdm1pZCkKPj4+PiAgICB7Cj4+Pj4gLSAgICBzdHJ1Y3Qga3ZtX3ZtaWQgKnYgPSAma3ZtLT5h cmNoLnZtaWQ7Cj4+Pj4gICAgICAgIHN0cnVjdCBrdm1fcmlzY3ZfaGZlbmNlIGRhdGE7Cj4+Pj4g ICAgICAgIGRhdGEudHlwZSA9IEtWTV9SSVNDVl9IRkVOQ0VfR1ZNQV9WTUlEX0dQQTsKPj4+PiAg ICAgICAgZGF0YS5hc2lkID0gMDsKPj4+PiAtICAgIGRhdGEudm1pZCA9IFJFQURfT05DRSh2LT52 bWlkKTsKPj4+PiArICAgIGRhdGEudm1pZCA9IHZtaWQ7Cj4+Pj4gICAgICAgIGRhdGEuYWRkciA9 IGdwYTsKPj4+PiAgICAgICAgZGF0YS5zaXplID0gZ3BzejsKPj4+PiAgICAgICAgZGF0YS5vcmRl ciA9IG9yZGVyOwo+Pj4+IEBAIC0zNDQsMjMgKzM1NiwyOCBAQCB2b2lkIGt2bV9yaXNjdl9oZmVu Y2VfZ3ZtYV92bWlkX2dwYShzdHJ1Y3Qga3ZtCj4+Pj4gKmt2bSwKPj4+PiAgICB9Cj4+Pj4gICAg dm9pZCBrdm1fcmlzY3ZfaGZlbmNlX2d2bWFfdm1pZF9hbGwoc3RydWN0IGt2bSAqa3ZtLAo+Pj4+ IC0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGJhc2UsIHVuc2lnbmVkIGxvbmcg aG1hc2spCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBoYmFzZSwgdW5z aWduZWQgbG9uZyBobWFzaywKPj4+PiArICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IHZtaWQpCj4+Pj4gICAgewo+Pj4+IC0gICAgbWFrZV94ZmVuY2VfcmVxdWVzdChrdm0sIGhiYXNl LCBobWFzaywgS1ZNX1JFUV9UTEJfRkxVU0gsCj4+Pj4gLSAgICAgICAgICAgICAgICBLVk1fUkVR X1RMQl9GTFVTSCwgTlVMTCk7Cj4+Pj4gKyAgICBzdHJ1Y3Qga3ZtX3Jpc2N2X2hmZW5jZSBkYXRh ID0gezB9Owo+Pj4+ICsKPj4+PiArICAgIGRhdGEudHlwZSA9IEtWTV9SSVNDVl9IRkVOQ0VfR1ZN QV9WTUlEX0FMTDsKPj4+PiArICAgIGRhdGEudm1pZCA9IHZtaWQ7Cj4+Pj4gKyAgICBtYWtlX3hm ZW5jZV9yZXF1ZXN0KGt2bSwgaGJhc2UsIGhtYXNrLCBLVk1fUkVRX0hGRU5DRSwKPj4+PiArICAg ICAgICAgICAgICAgIEtWTV9SRVFfVExCX0ZMVVNILCAmZGF0YSk7Cj4+Pj4gICAgfQo+Pj4+ICAg IHZvaWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHN0cnVjdCBrdm0gKmt2bSwKPj4+ PiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGJhc2UsIHVuc2lnbmVkIGxv bmcgaG1hc2ssCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGd2YSwg dW5zaWduZWQgbG9uZyBndnN6LAo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgb3JkZXIsIHVuc2lnbmVkIGxvbmcgYXNpZCkKPj4+PiArICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG9yZGVyLCB1bnNpZ25lZCBsb25nIGFzaWQsCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyB2bWlkKQo+Pj4+ICAgIHsKPj4+PiAtICAgIHN0cnVjdCBr dm1fdm1pZCAqdiA9ICZrdm0tPmFyY2gudm1pZDsKPj4+PiAgICAgICAgc3RydWN0IGt2bV9yaXNj dl9oZmVuY2UgZGF0YTsKPj4+PiAgICAgICAgZGF0YS50eXBlID0gS1ZNX1JJU0NWX0hGRU5DRV9W Vk1BX0FTSURfR1ZBOwo+Pj4+ICAgICAgICBkYXRhLmFzaWQgPSBhc2lkOwo+Pj4+IC0gICAgZGF0 YS52bWlkID0gUkVBRF9PTkNFKHYtPnZtaWQpOwo+Pj4+ICsgICAgZGF0YS52bWlkID0gdm1pZDsK Pj4+PiAgICAgICAgZGF0YS5hZGRyID0gZ3ZhOwo+Pj4+ICAgICAgICBkYXRhLnNpemUgPSBndnN6 Owo+Pj4+ICAgICAgICBkYXRhLm9yZGVyID0gb3JkZXI7Cj4+Pj4gQEAgLTM3MCwxNSArMzg3LDEz IEBAIHZvaWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfZ3ZhKHN0cnVjdCBrdm0KPj4+PiAq a3ZtLAo+Pj4+ICAgIHZvaWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FzaWRfYWxsKHN0cnVjdCBr dm0gKmt2bSwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgaGJhc2Us IHVuc2lnbmVkIGxvbmcgaG1hc2ssCj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBhc2lkKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYXNpZCwg dW5zaWduZWQgbG9uZyB2bWlkKQo+Pj4+ICAgIHsKPj4+PiAtICAgIHN0cnVjdCBrdm1fdm1pZCAq diA9ICZrdm0tPmFyY2gudm1pZDsKPj4+PiAtICAgIHN0cnVjdCBrdm1fcmlzY3ZfaGZlbmNlIGRh dGE7Cj4+Pj4gKyAgICBzdHJ1Y3Qga3ZtX3Jpc2N2X2hmZW5jZSBkYXRhID0gezB9Owo+Pj4+ICAg ICAgICBkYXRhLnR5cGUgPSBLVk1fUklTQ1ZfSEZFTkNFX1ZWTUFfQVNJRF9BTEw7Cj4+Pj4gICAg ICAgIGRhdGEuYXNpZCA9IGFzaWQ7Cj4+Pj4gLSAgICBkYXRhLnZtaWQgPSBSRUFEX09OQ0Uodi0+ dm1pZCk7Cj4+Pj4gLSAgICBkYXRhLmFkZHIgPSBkYXRhLnNpemUgPSBkYXRhLm9yZGVyID0gMDsK Pj4+PiArICAgIGRhdGEudm1pZCA9IHZtaWQ7Cj4+Pj4gICAgICAgIG1ha2VfeGZlbmNlX3JlcXVl c3Qoa3ZtLCBoYmFzZSwgaG1hc2ssIEtWTV9SRVFfSEZFTkNFLAo+Pj4+ICAgICAgICAgICAgICAg ICAgICBLVk1fUkVRX0hGRU5DRV9WVk1BX0FMTCwgJmRhdGEpOwo+Pj4+ICAgIH0KPj4+PiBAQCAt Mzg2LDE0ICs0MDEsMTMgQEAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwoc3Ry dWN0IGt2bQo+Pj4+ICprdm0sCj4+Pj4gICAgdm9pZCBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfZ3Zh KHN0cnVjdCBrdm0gKmt2bSwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBoYmFzZSwgdW5zaWduZWQgbG9uZyBobWFzaywKPj4+PiAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgbG9uZyBndmEsIHVuc2lnbmVkIGxvbmcgZ3ZzeiwKPj4+PiAtICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgb3JkZXIpCj4+Pj4gKyAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG9yZGVyLCB1bnNpZ25lZCBsb25nIHZtaWQpCj4+Pj4gICAgewo+Pj4+IC0gICAg c3RydWN0IGt2bV92bWlkICp2ID0gJmt2bS0+YXJjaC52bWlkOwo+Pj4+ICAgICAgICBzdHJ1Y3Qg a3ZtX3Jpc2N2X2hmZW5jZSBkYXRhOwo+Pj4+ICAgICAgICBkYXRhLnR5cGUgPSBLVk1fUklTQ1Zf SEZFTkNFX1ZWTUFfR1ZBOwo+Pj4+ICAgICAgICBkYXRhLmFzaWQgPSAwOwo+Pj4+IC0gICAgZGF0 YS52bWlkID0gUkVBRF9PTkNFKHYtPnZtaWQpOwo+Pj4+ICsgICAgZGF0YS52bWlkID0gdm1pZDsK Pj4+PiAgICAgICAgZGF0YS5hZGRyID0gZ3ZhOwo+Pj4+ICAgICAgICBkYXRhLnNpemUgPSBndnN6 Owo+Pj4+ICAgICAgICBkYXRhLm9yZGVyID0gb3JkZXI7Cj4+Pj4gQEAgLTQwMiwxNiArNDE2LDIx IEBAIHZvaWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2d2YShzdHJ1Y3Qga3ZtICprdm0sCj4+Pj4g ICAgfQo+Pj4+ICAgIHZvaWQga3ZtX3Jpc2N2X2hmZW5jZV92dm1hX2FsbChzdHJ1Y3Qga3ZtICpr dm0sCj4+Pj4gLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGhiYXNlLCB1bnNpZ25l ZCBsb25nIGhtYXNrKQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBoYmFz ZSwgdW5zaWduZWQgbG9uZyBobWFzaywKPj4+PiArICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgdm1pZCkKPj4+PiAgICB7Cj4+Pj4gLSAgICBtYWtlX3hmZW5jZV9yZXF1ZXN0KGt2bSwg aGJhc2UsIGhtYXNrLCBLVk1fUkVRX0hGRU5DRV9WVk1BX0FMTCwKPj4+PiAtICAgICAgICAgICAg ICAgIEtWTV9SRVFfSEZFTkNFX1ZWTUFfQUxMLCBOVUxMKTsKPj4+PiArICAgIHN0cnVjdCBrdm1f cmlzY3ZfaGZlbmNlIGRhdGEgPSB7MH07Cj4+Pj4gKwo+Pj4+ICsgICAgZGF0YS50eXBlID0gS1ZN X1JJU0NWX0hGRU5DRV9WVk1BX0FMTDsKPj4+PiArICAgIGRhdGEudm1pZCA9IHZtaWQ7Cj4+Pj4g KyAgICBtYWtlX3hmZW5jZV9yZXF1ZXN0KGt2bSwgaGJhc2UsIGhtYXNrLCBLVk1fUkVRX0hGRU5D RSwKPj4+PiArICAgICAgICAgICAgICAgIEtWTV9SRVFfSEZFTkNFX1ZWTUFfQUxMLCAmZGF0YSk7 Cj4+Pj4gICAgfQo+Pj4+ICAgIGludCBrdm1fYXJjaF9mbHVzaF9yZW1vdGVfdGxic19yYW5nZShz dHJ1Y3Qga3ZtICprdm0sIGdmbl90IGdmbiwgdTY0Cj4+Pj4gbnJfcGFnZXMpCj4+Pj4gICAgewo+ Pj4+ICAgICAgICBrdm1fcmlzY3ZfaGZlbmNlX2d2bWFfdm1pZF9ncGEoa3ZtLCAtMVVMLCAwLAo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuIDw8IFBBR0VfU0hJRlQsIG5yX3BhZ2Vz IDw8IFBBR0VfU0hJRlQsCj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9TSElGVCk7 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9TSElGVCwgUkVBRF9PTkNFKGt2bS0+ YXJjaC52bWlkLnZtaWQpKTsKPj4+PiAgICAgICAgcmV0dXJuIDA7Cj4+Pj4gICAgfQo+Pj4+IGRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9yZXBsYWNlLmMgYi9hcmNoL3Jpc2N2 L2t2bS8KPj4+PiB2Y3B1X3NiaV9yZXBsYWNlLmMKPj4+PiBpbmRleCBiMTdmYWQwOTFiYWIuLmI0 OTBlZDE0MjhhNiAxMDA2NDQKPj4+PiAtLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9yZXBs YWNlLmMKPj4+PiArKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9yZXBsYWNlLmMKPj4+PiBA QCAtOTYsNiArOTYsNyBAQCBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3JmZW5jZV9oYW5kbGVyKHN0 cnVjdAo+Pj4+IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuCj4+Pj4gICAgICAg IHVuc2lnbmVkIGxvbmcgaG1hc2sgPSBjcC0+YTA7Cj4+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcg aGJhc2UgPSBjcC0+YTE7Cj4+Pj4gICAgICAgIHVuc2lnbmVkIGxvbmcgZnVuY2lkID0gY3AtPmE2 Owo+Pj4+ICsgICAgdW5zaWduZWQgbG9uZyB2bWlkOwo+Pj4+ICAgICAgICBzd2l0Y2ggKGZ1bmNp ZCkgewo+Pj4+ICAgICAgICBjYXNlIFNCSV9FWFRfUkZFTkNFX1JFTU9URV9GRU5DRV9JOgo+Pj4+ IEBAIC0xMDMsMjIgKzEwNCwyMiBAQCBzdGF0aWMgaW50IGt2bV9zYmlfZXh0X3JmZW5jZV9oYW5k bGVyKHN0cnVjdAo+Pj4+IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuCj4+Pj4g ICAgICAgICAgICBrdm1fcmlzY3ZfdmNwdV9wbXVfaW5jcl9mdyh2Y3B1LCBTQklfUE1VX0ZXX0ZF TkNFX0lfU0VOVCk7Cj4+Pj4gICAgICAgICAgICBicmVhazsKPj4+PiAgICAgICAgY2FzZSBTQklf RVhUX1JGRU5DRV9SRU1PVEVfU0ZFTkNFX1ZNQToKPj4+PiArICAgICAgICB2bWlkID0gUkVBRF9P TkNFKHZjcHUtPmt2bS0+YXJjaC52bWlkLnZtaWQpOwo+Pj4+ICAgICAgICAgICAgaWYgKChjcC0+ YTIgPT0gMCAmJiBjcC0+YTMgPT0gMCkgfHwgY3AtPmEzID09IC0xVUwpCj4+Pj4gLSAgICAgICAg ICAgIGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0+a3ZtLCBoYmFzZSwgaG1hc2spOwo+ Pj4+ICsgICAgICAgICAgICBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYWxsKHZjcHUtPmt2bSwgaGJh c2UsIGhtYXNrLCB2bWlkKTsKPj4+IFRoaXMgcGF0Y2ggZG9lc24ndCBhcHBseSBjbGVhbmx5IG9u IDYuMTYtcmMxLgo+Pj4KPj4+IDw8PDw8PDwgSEVBRAo+Pj4gICAgICAgICAgICAgICAgICAgaWYg KGNwLT5hMiA9PSAwICYmIGNwLT5hMyA9PSAwKQo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYWxsKHZjcHUtPmt2bSwgaGJhc2UsCj4+PiBobWFzayk7 Cj4+PiA9PT09PT09Cj4+PiAgICAgICAgICAgICAgICAgICB2bWlkID0gUkVBRF9PTkNFKHZjcHUt Pmt2bS0+YXJjaC52bWlkLnZtaWQpOwo+Pj4gICAgICAgICAgICAgICAgICAgaWYgKChjcC0+YTIg PT0gMCAmJiBjcC0+YTMgPT0gMCkgfHwgY3AtPmEzID09IC0xVUwpCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgIGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hbGwodmNwdS0+a3ZtLCBoYmFzZSwK Pj4+IGhtYXNrLCB2bWlkKTsKPj4+ICAgPj4+Pj4+PiA1N2VjNjExOThjYzEgKFJJU0MtVjogS1ZN OiBQYXNzIFZNSUQgYXMgcGFyYW1ldGVyIHRvCj4+PiBrdm1fcmlzY3ZfaGZlbmNlX3h5eigpIEFQ SXMpCj4+PiBlbHNlCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIGt2bV9yaXNjdl9oZmVu Y2VfdnZtYV9ndmEodmNwdS0+a3ZtLCBoYmFzZSwgaG1hc2ssCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3AtPmEyLCBjcC0+YTMsCj4+PiBQ QUdFX1NISUZULCB2bWlkKTsKPj4+ICAgICAgICAgICAgICAgICAgIGt2bV9yaXNjdl92Y3B1X3Bt dV9pbmNyX2Z3KHZjcHUsCj4+PiBTQklfUE1VX0ZXX0hGRU5DRV9WVk1BX1NFTlQpOwo+Pj4gYnJl YWs7Cj4+PiAgICAgICAgICAgY2FzZSBTQklfRVhUX1JGRU5DRV9SRU1PVEVfU0ZFTkNFX1ZNQV9B U0lEOgo+Pj4gPDw8PDw8PCBIRUFECj4+PiAgICAgICAgICAgICAgICAgICBpZiAoY3AtPmEyID09 IDAgJiYgY3AtPmEzID09IDApCj4+PiBrdm1fcmlzY3ZfaGZlbmNlX3Z2bWFfYXNpZF9hbGwodmNw dS0+a3ZtLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGJhc2UsIGhtYXNrLAo+Pj4gY3AtPmE0KTsKPj4+ID09PT09PT0KPj4+ICAg ICAgICAgICAgICAgICAgIHZtaWQgPSBSRUFEX09OQ0UodmNwdS0+a3ZtLT5hcmNoLnZtaWQudm1p ZCk7Cj4+PiAgICAgICAgICAgICAgICAgICBpZiAoKGNwLT5hMiA9PSAwICYmIGNwLT5hMyA9PSAw KSB8fCBjcC0+YTMgPT0gLTFVTCkKPj4+IGt2bV9yaXNjdl9oZmVuY2VfdnZtYV9hc2lkX2FsbCh2 Y3B1LT5rdm0sIGhiYXNlLCBobWFzaywKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwLT5hNCwgdm1pZCk7Cj4+PiAgID4+Pj4+Pj4g NTdlYzYxMTk4Y2MxIChSSVNDLVY6IEtWTTogUGFzcyBWTUlEIGFzIHBhcmFtZXRlciB0bwo+Pj4g a3ZtX3Jpc2N2X2hmZW5jZV94eXooKSBBUElzKQo+Pj4KPj4+Cj4+IG9oaCB5b3UgYWxyZWFkeSBx dWV1ZWQgdGhlIFBBVENIMSBmcm9tIHYxIG9mIHRoaXMgc2VyaWVzLiBJZiBJIHRyeSB0bwo+PiBy ZWJhc2Ugb24gdG9wIG9mIHJpc2N2X2t2bV9xdWV1ZSwgSSBzZWUgdGhlIGZvbGxvd2luZyBlcnJv ciBpbiBiNCBzaGF6YW0uCj4+Cj4+IC0tLQo+PiBQYXRjaCBmYWlsZWQgYXQgMDAwOCBSSVNDLVY6 IEtWTTogRmFjdG9yLW91dCBNTVUgcmVsYXRlZCBkZWNsYXJhdGlvbnMKPj4gaW50byBzZXBhcmF0 ZSBoZWFkZXJzLgo+PiAtLS0tCj4+Cj4gWWVzLCBmaXJzdCB0d28gcGF0Y2hlcyBhcmUgZml4ZXMg Zm9yIExpbnV4LTYuMTYKQWhoIEkgc2VlIHRoZSBmaXhlcyBicmFuY2ggd2FzIHVwZGF0ZWQgeWVz dGVyZGF5LiBUaGUgcmViYXNlIHdvcmtzIApjbGVhbmx5IG5vdy4gVGhhbmtzLgo+IFJlZ2FyZHMs Cj4gQW51cAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcK aHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=