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 C73B3C3ABC5 for ; Fri, 9 May 2025 00:28:22 +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=3suN6pt5FnJPd1cpVO5f2KsE80ZMgjJuZe7Nvj2VIno=; b=iKGG0kMw8Q7Qnb FnxPYihGuE32nLOVtOJT0RYKpQKAoX7M4cWjZL6w40+Yoau1rOJRfMdJGDtZUdReN1xMS/qya9ikt 2VMALlYBEU7HcKoJKQm3N52oik2tGy8COTCH20R4wzHV0oiXhsIilrtvyrgpdN3ICa98ZWmogHES7 7SxezV2fCj4n8HD4YB/IQkTMFQom9GkCrhQ2amq0OQVVnFAshqrkmobV5dLvgkmKqMttxI6WzUDho HANB9kHcwn3kEVCvjGJePiMq9nAgA16X3GRuN8R6DwlpnuKZ+FZAp/HPCDI1TOODlqQWWx6QExqC8 23o4YJmElFDTajTk32sQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDBbC-000000025r2-2QDG; Fri, 09 May 2025 00:28:22 +0000 Received: from out-189.mta0.migadu.com ([2001:41d0:1004:224b::bd]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDBb9-000000025o2-2nmE for kvm-riscv@lists.infradead.org; Fri, 09 May 2025 00:28:21 +0000 Message-ID: <736362de-d7b8-43f7-bffc-ccc65b1502ff@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1746750496; 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=xpDyd9m4f0VTtTwqCI5FJLDJbDxqQDx4DRnCSO33TkU=; b=AIoIe5iLR0x6PodTEqjsX7siYT6h8X8eIyrcgi4FEeAW38xa0HOvnxgJgYH85Rqo6C8VcG NhdmPGJ6BgEuo973WzHrbciKCCY5dVAodsfj97nSf+buOLWOegwZSYutB9mGCg3xmSavCf +lKwl7t/GeIDVFsYsFg8gsSuq+AyP4c= Date: Thu, 8 May 2025 17:28:11 -0700 MIME-Version: 1.0 Subject: Re: [PATCH v6 12/14] RISC-V: KVM: add SBI extension reset callback To: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= , Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: Samuel Holland , Andrew Jones , Deepak Gupta References: <20250424173204.1948385-1-cleger@rivosinc.com> <20250424173204.1948385-13-cleger@rivosinc.com> 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: <20250424173204.1948385-13-cleger@rivosinc.com> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250508_172819_984657_D2C86E42 X-CRM114-Status: GOOD ( 20.75 ) X-BeenThere: kvm-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: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org T24gNC8yNC8yNSAxMDozMSBBTSwgQ2zDg8KpbWVudCBMw4PCqWdlciB3cm90ZToKPiBDdXJyZW50 bHksIG9ubHkgdGhlIFNUQSBleHRlbnNpb24gbmVlZGVkIGEgcmVzZXQgZnVuY3Rpb24gYnV0IHRo YXQncwo+IGdvaW5nIHRvIGJlIHRoZSBjYXNlIGZvciBGV0ZUIGFzIHdlbGwuIEFkZCBhIHJlc2V0 IGNhbGxiYWNrIHRoYXQgY2FuIGJlCj4gaW1wbGVtZW50ZWQgYnkgU0JJIGV4dGVuc2lvbnMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgo+ IFJldmlld2VkLWJ5OiBBbmRyZXcgSm9uZXMgPGFqb25lc0B2ZW50YW5hbWljcm8uY29tPgo+IC0t LQo+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1faG9zdC5oICAgICB8ICAxIC0KPiAgIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggfCAgMiArKwo+ICAgYXJjaC9yaXNj di9rdm0vdmNwdS5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gICBhcmNoL3Jpc2N2L2t2bS92 Y3B1X3NiaS5jICAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBh cmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEuYyAgICAgICAgIHwgIDMgKystCj4gICA1IGZpbGVz IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20va3ZtX2hvc3QuaAo+IGluZGV4IDBlOWMyZmFiNjM3OC4uNGZhMDJlMDgyMTQyIDEwMDY0 NAo+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+ICsrKyBiL2FyY2gv cmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+IEBAIC00MDcsNyArNDA3LDYgQEAgdm9pZCBf X2t2bV9yaXNjdl92Y3B1X3Bvd2VyX29uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICB2b2lk IGt2bV9yaXNjdl92Y3B1X3Bvd2VyX29uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICBib29s IGt2bV9yaXNjdl92Y3B1X3N0b3BwZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAo+IC12 b2lkIGt2bV9yaXNjdl92Y3B1X3NiaV9zdGFfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsK PiAgIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfcmVjb3JkX3N0ZWFsX3RpbWUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KTsKPiAgIAo+ICAgI2VuZGlmIC8qIF9fUklTQ1ZfS1ZNX0hPU1RfSF9fICovCj4gZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaS5oCj4gaW5kZXggYmNiOTA3NTdiMTQ5Li5jYjY4 YjNhNTdjOGYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fdmNwdV9z YmkuaAo+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmgKPiBAQCAt NTcsNiArNTcsNyBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX2V4dGVuc2lvbiB7Cj4gICAJICovCj4g ICAJaW50ICgqaW5pdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAl2b2lkICgqZGVpbml0 KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwo+ICsJdm9pZCAoKnJlc2V0KShzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUpOwo+ICAgfTsKPiAgIAo+ICAgdm9pZCBrdm1fcmlzY3ZfdmNwdV9zYmlfZm9yd2Fy ZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4pOwo+IEBAIC03OCw2 ICs3OSw3IEBAIGJvb2wgcmlzY3ZfdmNwdV9zdXBwb3J0c19zYmlfZXh0KHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwgaW50IGlkeCk7Cj4gICBpbnQga3ZtX3Jpc2N2X3ZjcHVfc2JpX2VjYWxsKHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bik7Cj4gICB2b2lkIGt2bV9yaXNj dl92Y3B1X3NiaV9pbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICB2b2lkIGt2bV9yaXNj dl92Y3B1X3NiaV9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiArdm9pZCBrdm1fcmlz Y3ZfdmNwdV9zYmlfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAo+ICAgaW50IGt2 bV9yaXNjdl92Y3B1X2dldF9yZWdfc2JpX3N0YShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2ln bmVkIGxvbmcgcmVnX251bSwKPiAgIAkJCQkgICB1bnNpZ25lZCBsb25nICpyZWdfdmFsKTsKPiBk aWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdS5j Cj4gaW5kZXggODc3YmNjODVjMDY3Li41NDI3NDdlMmM3ZjUgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9y aXNjdi9rdm0vdmNwdS5jCj4gKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdS5jCj4gQEAgLTk0LDcg Kzk0LDcgQEAgc3RhdGljIHZvaWQga3ZtX3Jpc2N2X3Jlc2V0X3ZjcHUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KQo+ICAgCXZjcHUtPmFyY2guaGZlbmNlX3RhaWwgPSAwOwo+ICAgCW1lbXNldCh2Y3B1 LT5hcmNoLmhmZW5jZV9xdWV1ZSwgMCwgc2l6ZW9mKHZjcHUtPmFyY2guaGZlbmNlX3F1ZXVlKSk7 Cj4gICAKPiAtCWt2bV9yaXNjdl92Y3B1X3NiaV9zdGFfcmVzZXQodmNwdSk7Cj4gKwlrdm1fcmlz Y3ZfdmNwdV9zYmlfcmVzZXQodmNwdSk7Cj4gICAKPiAgIAkvKiBSZXNldCB0aGUgZ3Vlc3QgQ1NS cyBmb3IgaG90cGx1ZyB1c2VjYXNlICovCj4gICAJaWYgKGxvYWRlZCkKPiBkaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpLmMKPiBp bmRleCAzMTM5ZjE3MWMyMGYuLjUwYmUwNzliNTUyOCAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2 L2t2bS92Y3B1X3NiaS5jCj4gKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYwo+IEBAIC01 MzYsMyArNTM2LDI3IEBAIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfc2JpX2RlaW5pdChzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpCj4gICAJCWV4dC0+ZGVpbml0KHZjcHUpOwo+ICAgCX0KPiAgIH0KPiArCj4g K3ZvaWQga3ZtX3Jpc2N2X3ZjcHVfc2JpX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAr ewo+ICsJc3RydWN0IGt2bV92Y3B1X3NiaV9jb250ZXh0ICpzY29udGV4dCA9ICZ2Y3B1LT5hcmNo LnNiaV9jb250ZXh0Owo+ICsJY29uc3Qgc3RydWN0IGt2bV9yaXNjdl9zYmlfZXh0ZW5zaW9uX2Vu dHJ5ICplbnRyeTsKPiArCWNvbnN0IHN0cnVjdCBrdm1fdmNwdV9zYmlfZXh0ZW5zaW9uICpleHQ7 Cj4gKwlpbnQgaWR4LCBpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNiaV9l eHQpOyBpKyspIHsKPiArCQllbnRyeSA9ICZzYmlfZXh0W2ldOwo+ICsJCWV4dCA9IGVudHJ5LT5l eHRfcHRyOwo+ICsJCWlkeCA9IGVudHJ5LT5leHRfaWR4Owo+ICsKPiArCQlpZiAoaWR4IDwgMCB8 fCBpZHggPj0gQVJSQVlfU0laRShzY29udGV4dC0+ZXh0X3N0YXR1cykpCj4gKwkJCWNvbnRpbnVl Owo+ICsKPiArCQlpZiAoc2NvbnRleHQtPmV4dF9zdGF0dXNbaWR4XSAhPSBLVk1fUklTQ1ZfU0JJ X0VYVF9TVEFUVVNfRU5BQkxFRCB8fAo+ICsJCSAgICAhZXh0LT5yZXNldCkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCWV4dC0+cmVzZXQodmNwdSk7Cj4gKwl9Cj4gK30KPiArCj4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3N0YS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9z Ymlfc3RhLmMKPiBpbmRleCA1ZjM1NDI3MTE0YzEuLmNjNmNiN2M4ZjBlNCAxMDA2NDQKPiAtLS0g YS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva3ZtL3Zj cHVfc2JpX3N0YS5jCj4gQEAgLTE2LDcgKzE2LDcgQEAKPiAgICNpbmNsdWRlIDxhc20vc2JpLmg+ Cj4gICAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KPiAgIAo+IC12b2lkIGt2bV9yaXNjdl92Y3B1 X3NiaV9zdGFfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICtzdGF0aWMgdm9pZCBrdm1f cmlzY3ZfdmNwdV9zYmlfc3RhX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAgIHsKPiAg IAl2Y3B1LT5hcmNoLnN0YS5zaG1lbSA9IElOVkFMSURfR1BBOwo+ICAgCXZjcHUtPmFyY2guc3Rh Lmxhc3Rfc3RlYWwgPSAwOwo+IEBAIC0xNTYsNiArMTU2LDcgQEAgY29uc3Qgc3RydWN0IGt2bV92 Y3B1X3NiaV9leHRlbnNpb24gdmNwdV9zYmlfZXh0X3N0YSA9IHsKPiAgIAkuZXh0aWRfZW5kID0g U0JJX0VYVF9TVEEsCj4gICAJLmhhbmRsZXIgPSBrdm1fc2JpX2V4dF9zdGFfaGFuZGxlciwKPiAg IAkucHJvYmUgPSBrdm1fc2JpX2V4dF9zdGFfcHJvYmUsCj4gKwkucmVzZXQgPSBrdm1fcmlzY3Zf dmNwdV9zYmlfc3RhX3Jlc2V0LAo+ICAgfTsKPiAgIAo+ICAgaW50IGt2bV9yaXNjdl92Y3B1X2dl dF9yZWdfc2JpX3N0YShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCgpMR1RNLgpSZXZpZXdlZC1ieTog QXRpc2ggUGF0cmEgPGF0aXNocEByaXZvc2luYy5jb20+CgotLSAKa3ZtLXJpc2N2IG1haWxpbmcg bGlzdAprdm0tcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2t2bS1yaXNjdgo= From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-171.mta0.migadu.com (out-171.mta0.migadu.com [91.218.175.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FCCA946C for ; Fri, 9 May 2025 00:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746750502; cv=none; b=isuN1ffyILhZVV0gdSXXiMU5iTnLxB8MY0LaKXsNbt7J/xS2tSDMuQBT3RvOm8Mt/4WrV+bDv3vJPm8locriCyQNvpoLsJsaUD5TCTFB4lCX18PSSTYNjznE4wvSfLG9xKUGvIXCiAAgM00RhFtxZfTX6Ht4Ztr04Zlhb8Q8YQI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746750502; c=relaxed/simple; bh=qvaw1+bpkz9e/S+v0MFjOEMz7rE+X3NJg6ZLCOtv09g=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=i+6XVP5bVOfI5sJNZ+kvmLegvhSC2Qk7YxGXISkTjYFfVSvlFjUmPK0u95TWLeMGcEwHBuOShzlPKeUanakHyEyP4sgd2Z4xK8BnWVgG2IR3asg8t7ALlhXumous9RquNokSYJTdTey8z99yw7K7Xwvby7quHZVWVyomapEaHFQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=AIoIe5iL; arc=none smtp.client-ip=91.218.175.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="AIoIe5iL" Message-ID: <736362de-d7b8-43f7-bffc-ccc65b1502ff@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1746750496; 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=xpDyd9m4f0VTtTwqCI5FJLDJbDxqQDx4DRnCSO33TkU=; b=AIoIe5iLR0x6PodTEqjsX7siYT6h8X8eIyrcgi4FEeAW38xa0HOvnxgJgYH85Rqo6C8VcG NhdmPGJ6BgEuo973WzHrbciKCCY5dVAodsfj97nSf+buOLWOegwZSYutB9mGCg3xmSavCf +lKwl7t/GeIDVFsYsFg8gsSuq+AyP4c= Date: Thu, 8 May 2025 17:28:11 -0700 Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Subject: Re: [PATCH v6 12/14] RISC-V: KVM: add SBI extension reset callback To: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= , Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: Samuel Holland , Andrew Jones , Deepak Gupta References: <20250424173204.1948385-1-cleger@rivosinc.com> <20250424173204.1948385-13-cleger@rivosinc.com> 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: <20250424173204.1948385-13-cleger@rivosinc.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT On 4/24/25 10:31 AM, Clément Léger wrote: > Currently, only the STA extension needed a reset function but that's > going to be the case for FWFT as well. Add a reset callback that can be > implemented by SBI extensions. > > Signed-off-by: Clément Léger > Reviewed-by: Andrew Jones > --- > arch/riscv/include/asm/kvm_host.h | 1 - > arch/riscv/include/asm/kvm_vcpu_sbi.h | 2 ++ > arch/riscv/kvm/vcpu.c | 2 +- > arch/riscv/kvm/vcpu_sbi.c | 24 ++++++++++++++++++++++++ > arch/riscv/kvm/vcpu_sbi_sta.c | 3 ++- > 5 files changed, 29 insertions(+), 3 deletions(-) > > diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h > index 0e9c2fab6378..4fa02e082142 100644 > --- a/arch/riscv/include/asm/kvm_host.h > +++ b/arch/riscv/include/asm/kvm_host.h > @@ -407,7 +407,6 @@ void __kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu); > void kvm_riscv_vcpu_power_on(struct kvm_vcpu *vcpu); > bool kvm_riscv_vcpu_stopped(struct kvm_vcpu *vcpu); > > -void kvm_riscv_vcpu_sbi_sta_reset(struct kvm_vcpu *vcpu); > void kvm_riscv_vcpu_record_steal_time(struct kvm_vcpu *vcpu); > > #endif /* __RISCV_KVM_HOST_H__ */ > diff --git a/arch/riscv/include/asm/kvm_vcpu_sbi.h b/arch/riscv/include/asm/kvm_vcpu_sbi.h > index bcb90757b149..cb68b3a57c8f 100644 > --- a/arch/riscv/include/asm/kvm_vcpu_sbi.h > +++ b/arch/riscv/include/asm/kvm_vcpu_sbi.h > @@ -57,6 +57,7 @@ struct kvm_vcpu_sbi_extension { > */ > int (*init)(struct kvm_vcpu *vcpu); > void (*deinit)(struct kvm_vcpu *vcpu); > + void (*reset)(struct kvm_vcpu *vcpu); > }; > > void kvm_riscv_vcpu_sbi_forward(struct kvm_vcpu *vcpu, struct kvm_run *run); > @@ -78,6 +79,7 @@ bool riscv_vcpu_supports_sbi_ext(struct kvm_vcpu *vcpu, int idx); > int kvm_riscv_vcpu_sbi_ecall(struct kvm_vcpu *vcpu, struct kvm_run *run); > void kvm_riscv_vcpu_sbi_init(struct kvm_vcpu *vcpu); > void kvm_riscv_vcpu_sbi_deinit(struct kvm_vcpu *vcpu); > +void kvm_riscv_vcpu_sbi_reset(struct kvm_vcpu *vcpu); > > int kvm_riscv_vcpu_get_reg_sbi_sta(struct kvm_vcpu *vcpu, unsigned long reg_num, > unsigned long *reg_val); > diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c > index 877bcc85c067..542747e2c7f5 100644 > --- a/arch/riscv/kvm/vcpu.c > +++ b/arch/riscv/kvm/vcpu.c > @@ -94,7 +94,7 @@ static void kvm_riscv_reset_vcpu(struct kvm_vcpu *vcpu) > vcpu->arch.hfence_tail = 0; > memset(vcpu->arch.hfence_queue, 0, sizeof(vcpu->arch.hfence_queue)); > > - kvm_riscv_vcpu_sbi_sta_reset(vcpu); > + kvm_riscv_vcpu_sbi_reset(vcpu); > > /* Reset the guest CSRs for hotplug usecase */ > if (loaded) > diff --git a/arch/riscv/kvm/vcpu_sbi.c b/arch/riscv/kvm/vcpu_sbi.c > index 3139f171c20f..50be079b5528 100644 > --- a/arch/riscv/kvm/vcpu_sbi.c > +++ b/arch/riscv/kvm/vcpu_sbi.c > @@ -536,3 +536,27 @@ void kvm_riscv_vcpu_sbi_deinit(struct kvm_vcpu *vcpu) > ext->deinit(vcpu); > } > } > + > +void kvm_riscv_vcpu_sbi_reset(struct kvm_vcpu *vcpu) > +{ > + struct kvm_vcpu_sbi_context *scontext = &vcpu->arch.sbi_context; > + const struct kvm_riscv_sbi_extension_entry *entry; > + const struct kvm_vcpu_sbi_extension *ext; > + int idx, i; > + > + for (i = 0; i < ARRAY_SIZE(sbi_ext); i++) { > + entry = &sbi_ext[i]; > + ext = entry->ext_ptr; > + idx = entry->ext_idx; > + > + if (idx < 0 || idx >= ARRAY_SIZE(scontext->ext_status)) > + continue; > + > + if (scontext->ext_status[idx] != KVM_RISCV_SBI_EXT_STATUS_ENABLED || > + !ext->reset) > + continue; > + > + ext->reset(vcpu); > + } > +} > + > diff --git a/arch/riscv/kvm/vcpu_sbi_sta.c b/arch/riscv/kvm/vcpu_sbi_sta.c > index 5f35427114c1..cc6cb7c8f0e4 100644 > --- a/arch/riscv/kvm/vcpu_sbi_sta.c > +++ b/arch/riscv/kvm/vcpu_sbi_sta.c > @@ -16,7 +16,7 @@ > #include > #include > > -void kvm_riscv_vcpu_sbi_sta_reset(struct kvm_vcpu *vcpu) > +static void kvm_riscv_vcpu_sbi_sta_reset(struct kvm_vcpu *vcpu) > { > vcpu->arch.sta.shmem = INVALID_GPA; > vcpu->arch.sta.last_steal = 0; > @@ -156,6 +156,7 @@ const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_sta = { > .extid_end = SBI_EXT_STA, > .handler = kvm_sbi_ext_sta_handler, > .probe = kvm_sbi_ext_sta_probe, > + .reset = kvm_riscv_vcpu_sbi_sta_reset, > }; > > int kvm_riscv_vcpu_get_reg_sbi_sta(struct kvm_vcpu *vcpu, LGTM. Reviewed-by: Atish Patra 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 34345C3ABC5 for ; Fri, 9 May 2025 00:28:27 +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=SW2QZ6xYL1luTf03txPBtlVgxXahN+pwScWVG6IKmVs=; b=q4X3P9UhmfRQvc LEu1qYm9CZ2xOIsxobv8PcAPlwSg5gFU4YSKfS0/+crAJUNCDzszEs7tUkDWbD3iKqXGrezRXN/5e wjJ9qBlwz2TPUquajv5y/uEBrt2xT6XD5F24kPrAI3joAArM22H2Tv1E2GVPA2v98RzfyQEKmEn+a r8msJ3Nyln4SsHiGObgaFck5Tt39NksF9VSVFosvetN41y9wnfPn6m7itubu/ZHExn1k+brMntaBd 5kySP8WASIaRNSiSgQmExlN0v+sEVYD/rEQPfKLyvcYe6mPp3mgk4Cz06LzQRjPlYHkpnYEATNgFX aKX1BggFuQdB81dfbYpg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDBbC-000000025rI-3mCR; Fri, 09 May 2025 00:28:22 +0000 Received: from out-172.mta0.migadu.com ([2001:41d0:1004:224b::ac]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uDBb9-000000025o3-2nho for linux-riscv@lists.infradead.org; Fri, 09 May 2025 00:28:21 +0000 Message-ID: <736362de-d7b8-43f7-bffc-ccc65b1502ff@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1746750496; 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=xpDyd9m4f0VTtTwqCI5FJLDJbDxqQDx4DRnCSO33TkU=; b=AIoIe5iLR0x6PodTEqjsX7siYT6h8X8eIyrcgi4FEeAW38xa0HOvnxgJgYH85Rqo6C8VcG NhdmPGJ6BgEuo973WzHrbciKCCY5dVAodsfj97nSf+buOLWOegwZSYutB9mGCg3xmSavCf +lKwl7t/GeIDVFsYsFg8gsSuq+AyP4c= Date: Thu, 8 May 2025 17:28:11 -0700 MIME-Version: 1.0 Subject: Re: [PATCH v6 12/14] RISC-V: KVM: add SBI extension reset callback To: =?UTF-8?B?Q2zDqW1lbnQgTMOpZ2Vy?= , Paul Walmsley , Palmer Dabbelt , Anup Patel , Atish Patra , Shuah Khan , Jonathan Corbet , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org Cc: Samuel Holland , Andrew Jones , Deepak Gupta References: <20250424173204.1948385-1-cleger@rivosinc.com> <20250424173204.1948385-13-cleger@rivosinc.com> 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: <20250424173204.1948385-13-cleger@rivosinc.com> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250508_172819_989374_145E9767 X-CRM114-Status: GOOD ( 20.75 ) 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 T24gNC8yNC8yNSAxMDozMSBBTSwgQ2zDg8KpbWVudCBMw4PCqWdlciB3cm90ZToKPiBDdXJyZW50 bHksIG9ubHkgdGhlIFNUQSBleHRlbnNpb24gbmVlZGVkIGEgcmVzZXQgZnVuY3Rpb24gYnV0IHRo YXQncwo+IGdvaW5nIHRvIGJlIHRoZSBjYXNlIGZvciBGV0ZUIGFzIHdlbGwuIEFkZCBhIHJlc2V0 IGNhbGxiYWNrIHRoYXQgY2FuIGJlCj4gaW1wbGVtZW50ZWQgYnkgU0JJIGV4dGVuc2lvbnMuCj4g Cj4gU2lnbmVkLW9mZi1ieTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgo+ IFJldmlld2VkLWJ5OiBBbmRyZXcgSm9uZXMgPGFqb25lc0B2ZW50YW5hbWljcm8uY29tPgo+IC0t LQo+ICAgYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1faG9zdC5oICAgICB8ICAxIC0KPiAgIGFy Y2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggfCAgMiArKwo+ICAgYXJjaC9yaXNj di9rdm0vdmNwdS5jICAgICAgICAgICAgICAgICB8ICAyICstCj4gICBhcmNoL3Jpc2N2L2t2bS92 Y3B1X3NiaS5jICAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBh cmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEuYyAgICAgICAgIHwgIDMgKystCj4gICA1IGZpbGVz IGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvcmlzY3YvaW5jbHVk ZS9hc20va3ZtX2hvc3QuaAo+IGluZGV4IDBlOWMyZmFiNjM3OC4uNGZhMDJlMDgyMTQyIDEwMDY0 NAo+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+ICsrKyBiL2FyY2gv cmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+IEBAIC00MDcsNyArNDA3LDYgQEAgdm9pZCBf X2t2bV9yaXNjdl92Y3B1X3Bvd2VyX29uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICB2b2lk IGt2bV9yaXNjdl92Y3B1X3Bvd2VyX29uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICBib29s IGt2bV9yaXNjdl92Y3B1X3N0b3BwZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAo+IC12 b2lkIGt2bV9yaXNjdl92Y3B1X3NiaV9zdGFfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsK PiAgIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfcmVjb3JkX3N0ZWFsX3RpbWUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KTsKPiAgIAo+ICAgI2VuZGlmIC8qIF9fUklTQ1ZfS1ZNX0hPU1RfSF9fICovCj4gZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmggYi9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaS5oCj4gaW5kZXggYmNiOTA3NTdiMTQ5Li5jYjY4 YjNhNTdjOGYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1fdmNwdV9z YmkuaAo+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmgKPiBAQCAt NTcsNiArNTcsNyBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX2V4dGVuc2lvbiB7Cj4gICAJICovCj4g ICAJaW50ICgqaW5pdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAl2b2lkICgqZGVpbml0 KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwo+ICsJdm9pZCAoKnJlc2V0KShzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUpOwo+ICAgfTsKPiAgIAo+ICAgdm9pZCBrdm1fcmlzY3ZfdmNwdV9zYmlfZm9yd2Fy ZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4pOwo+IEBAIC03OCw2 ICs3OSw3IEBAIGJvb2wgcmlzY3ZfdmNwdV9zdXBwb3J0c19zYmlfZXh0KHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwgaW50IGlkeCk7Cj4gICBpbnQga3ZtX3Jpc2N2X3ZjcHVfc2JpX2VjYWxsKHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bik7Cj4gICB2b2lkIGt2bV9yaXNj dl92Y3B1X3NiaV9pbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cj4gICB2b2lkIGt2bV9yaXNj dl92Y3B1X3NiaV9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiArdm9pZCBrdm1fcmlz Y3ZfdmNwdV9zYmlfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKPiAgIAo+ICAgaW50IGt2 bV9yaXNjdl92Y3B1X2dldF9yZWdfc2JpX3N0YShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2ln bmVkIGxvbmcgcmVnX251bSwKPiAgIAkJCQkgICB1bnNpZ25lZCBsb25nICpyZWdfdmFsKTsKPiBk aWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdS5j Cj4gaW5kZXggODc3YmNjODVjMDY3Li41NDI3NDdlMmM3ZjUgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9y aXNjdi9rdm0vdmNwdS5jCj4gKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdS5jCj4gQEAgLTk0LDcg Kzk0LDcgQEAgc3RhdGljIHZvaWQga3ZtX3Jpc2N2X3Jlc2V0X3ZjcHUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KQo+ICAgCXZjcHUtPmFyY2guaGZlbmNlX3RhaWwgPSAwOwo+ICAgCW1lbXNldCh2Y3B1 LT5hcmNoLmhmZW5jZV9xdWV1ZSwgMCwgc2l6ZW9mKHZjcHUtPmFyY2guaGZlbmNlX3F1ZXVlKSk7 Cj4gICAKPiAtCWt2bV9yaXNjdl92Y3B1X3NiaV9zdGFfcmVzZXQodmNwdSk7Cj4gKwlrdm1fcmlz Y3ZfdmNwdV9zYmlfcmVzZXQodmNwdSk7Cj4gICAKPiAgIAkvKiBSZXNldCB0aGUgZ3Vlc3QgQ1NS cyBmb3IgaG90cGx1ZyB1c2VjYXNlICovCj4gICAJaWYgKGxvYWRlZCkKPiBkaWZmIC0tZ2l0IGEv YXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpLmMKPiBp bmRleCAzMTM5ZjE3MWMyMGYuLjUwYmUwNzliNTUyOCAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2 L2t2bS92Y3B1X3NiaS5jCj4gKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYwo+IEBAIC01 MzYsMyArNTM2LDI3IEBAIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfc2JpX2RlaW5pdChzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpCj4gICAJCWV4dC0+ZGVpbml0KHZjcHUpOwo+ICAgCX0KPiAgIH0KPiArCj4g K3ZvaWQga3ZtX3Jpc2N2X3ZjcHVfc2JpX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAr ewo+ICsJc3RydWN0IGt2bV92Y3B1X3NiaV9jb250ZXh0ICpzY29udGV4dCA9ICZ2Y3B1LT5hcmNo LnNiaV9jb250ZXh0Owo+ICsJY29uc3Qgc3RydWN0IGt2bV9yaXNjdl9zYmlfZXh0ZW5zaW9uX2Vu dHJ5ICplbnRyeTsKPiArCWNvbnN0IHN0cnVjdCBrdm1fdmNwdV9zYmlfZXh0ZW5zaW9uICpleHQ7 Cj4gKwlpbnQgaWR4LCBpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNiaV9l eHQpOyBpKyspIHsKPiArCQllbnRyeSA9ICZzYmlfZXh0W2ldOwo+ICsJCWV4dCA9IGVudHJ5LT5l eHRfcHRyOwo+ICsJCWlkeCA9IGVudHJ5LT5leHRfaWR4Owo+ICsKPiArCQlpZiAoaWR4IDwgMCB8 fCBpZHggPj0gQVJSQVlfU0laRShzY29udGV4dC0+ZXh0X3N0YXR1cykpCj4gKwkJCWNvbnRpbnVl Owo+ICsKPiArCQlpZiAoc2NvbnRleHQtPmV4dF9zdGF0dXNbaWR4XSAhPSBLVk1fUklTQ1ZfU0JJ X0VYVF9TVEFUVVNfRU5BQkxFRCB8fAo+ICsJCSAgICAhZXh0LT5yZXNldCkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCWV4dC0+cmVzZXQodmNwdSk7Cj4gKwl9Cj4gK30KPiArCj4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3N0YS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9z Ymlfc3RhLmMKPiBpbmRleCA1ZjM1NDI3MTE0YzEuLmNjNmNiN2M4ZjBlNCAxMDA2NDQKPiAtLS0g YS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9zdGEuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva3ZtL3Zj cHVfc2JpX3N0YS5jCj4gQEAgLTE2LDcgKzE2LDcgQEAKPiAgICNpbmNsdWRlIDxhc20vc2JpLmg+ Cj4gICAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KPiAgIAo+IC12b2lkIGt2bV9yaXNjdl92Y3B1 X3NiaV9zdGFfcmVzZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+ICtzdGF0aWMgdm9pZCBrdm1f cmlzY3ZfdmNwdV9zYmlfc3RhX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKPiAgIHsKPiAg IAl2Y3B1LT5hcmNoLnN0YS5zaG1lbSA9IElOVkFMSURfR1BBOwo+ICAgCXZjcHUtPmFyY2guc3Rh Lmxhc3Rfc3RlYWwgPSAwOwo+IEBAIC0xNTYsNiArMTU2LDcgQEAgY29uc3Qgc3RydWN0IGt2bV92 Y3B1X3NiaV9leHRlbnNpb24gdmNwdV9zYmlfZXh0X3N0YSA9IHsKPiAgIAkuZXh0aWRfZW5kID0g U0JJX0VYVF9TVEEsCj4gICAJLmhhbmRsZXIgPSBrdm1fc2JpX2V4dF9zdGFfaGFuZGxlciwKPiAg IAkucHJvYmUgPSBrdm1fc2JpX2V4dF9zdGFfcHJvYmUsCj4gKwkucmVzZXQgPSBrdm1fcmlzY3Zf dmNwdV9zYmlfc3RhX3Jlc2V0LAo+ICAgfTsKPiAgIAo+ICAgaW50IGt2bV9yaXNjdl92Y3B1X2dl dF9yZWdfc2JpX3N0YShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCgpMR1RNLgpSZXZpZXdlZC1ieTog QXRpc2ggUGF0cmEgPGF0aXNocEByaXZvc2luYy5jb20+CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgt cmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==