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 5EFA8C28B2E for ; Mon, 10 Mar 2025 17:50: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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=AjceFRzyq4043WEcwNEZVHenHLzzUW5y+7KlGgsCT4A=; b=GQ9aVX8ha728ad zaJvLPoeXUObECeLznIel/FF7x2tvUgtC6bk71HHwMa7lIgmsiBQHyVplmHlktgi1duNkHVxEQ+oy 896QT4ixCq6tOxhqtFsVHlhHoUqF9EWXJ0/1jMh3e6pofhKpN8lYtFa/eFDRrs1n76nACHn5oBLcS SbOsNb1hi8hxLojYN1pTzGZr7PGN/IcOCGPoihhjYnf9QOMYaIenemCp0G0Li/LTbRES/tbUcy+tX m345TzRpJmGHn9aoDac4SdMaUF32mz/85Bs1yeNIMU/64h+748X+R7OvJefQAVBEAByMtdiHyLs4a Otiu1mNLua00hgeQArZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trhGs-00000003WvU-0PtJ; Mon, 10 Mar 2025 17:50:34 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1treqb-000000038Mx-0s1f for kvm-riscv@bombadil.infradead.org; Mon, 10 Mar 2025 15:15:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=BAq2HZKEJ7W3vzC17kMRUNLaw3 FrklBQm0Xo7ZikqDcE04xXuuG4eNUEL1sMGCxH6nR6trnIsL6lIwV+LmvJOJxQ53bKO/g+PmITyth 7ZFYXJsrLTdC+5tapqUWUOA3iR25cT7ZgbBI6isjJVsgpAS79QpUUn2XKW6pQFhvPm3zFpHw/whQg 5mjQxQTFsluY5FXXkbfwMuSUiDNnAQIybmmcZAJibCZTOKiNKj6OKbdBCTHU93SJ8fYo/pbKejoi3 sNldHJQv9mW0Zw9pcvFMaGEf15lQLOF48Mn9zk7xEZlFF5lXokubK8sAmggm8elA+9fK8AydH8juO kxZBbErw==; Received: from mail-pl1-x62b.google.com ([2607:f8b0:4864:20::62b]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1treqY-00000001sqb-1GKq for kvm-riscv@lists.infradead.org; Mon, 10 Mar 2025 15:15:16 +0000 Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-22438c356c8so47871575ad.1 for ; Mon, 10 Mar 2025 08:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619712; x=1742224512; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=RaGZcgSuyZaRNK4dg61HdT9HjX4hr6meHTJ+jGQExnA8MoqybDS3qmzSZ9bjMWRydP dzsU9/9+xdi5pmJnkQWEP2hEIXjE1WLeMnpvNHsnd9/aXvVls74A3IioZyxnc9fWF+8u yYUYYAYhJ4xlqASg+4tgPSuhaOdvg7gNQUYZjk16yVEYGodkPCgJ+uhdBNhLlSfsnMfr 5+B8ZGDBUZcWekg2I5qHpv/8aJrnF2enrFNnwira7tIrs2F1rCHi1bQls+0KXur/7lnR 6U29yCFvnfHGZQXRO49X+XnrlA0NAuk1bsTg2ZO40TMSSa13axjbbsX6AjxmJ3Zyza3d luew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619712; x=1742224512; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=YbVHkRxytUTllIuzHSILecvjLezFQFBil943gKzdRTXJz95LD8gIQ2j7eQeS+1zjD/ YBeAT98XcmbNq9Oh55JiCbd9xL0k4omFW0jHAswakfy5oWAAX+iQiAKI2m3Fed9bWhLz +LrXVIx7gGrK/LQftXECOU59HznQd6B9QUkYiCYPqIERQOOgg+AMDM8Nc6UAQqkXH1H/ OChcDh8LnrIF+RsokXbJR0dIYbCcXnbdkpbgXfYsII75PV6+mw+RKoGc21WIwIrytQII y40g3qGCqXfEv6zvSHLAa0dobwJqXcrnVCAJxDibRD0Ee0IjqOLwq0CB1B0G+glJwyC4 spTg== X-Forwarded-Encrypted: i=1; AJvYcCUzCi/FjlnelarkllkCMS7uHwDDNHC+iNbdMGRT7dv2DTgqWjgSLI2ufemBLOCngpho6d9o59rlBIY=@lists.infradead.org X-Gm-Message-State: AOJu0YyEKbv0CSbM1jWazQHy7e0WtFKyuEt6n6fVP6eExsK1/l0yaQ1d ibhZFrJB2XYfZ3mf+bKxVZ3Jw5kcYSfZ594mf4VEAoBOzwRSNVkX4y3nsu9yn9Q= X-Gm-Gg: ASbGnctBcEccuMqfVst3VfFHT+j9KRBYgWhHRxeiwEv+wdh+KxzOulRc8n/GSYzWfHs ZRVZyR87Q2n4qdJyp123Q5E8bzAKi8fl7A6gAhD9do0/zaPM2WMq7/4tbKKzFnf+vg5Lz53C41J iAVuIed4GV9Sv6a3hFGVhI54mZf7Li10q4uWARUdHWOwyDpC6Mze1xl5nnL0sGVYh0KG0HHLaOY xrCNL8vxBoFhNw42b/O4Z9HGyiRMZaCqvZMO228gHzw60Yn3KdKqNkUvP5wRSw6GbjKf3Uzbp+q RxjbHCU2Qf82EPmR3ZQh7xVLBmAPWl5ZsoXjfQoCMbnP0A== X-Google-Smtp-Source: AGHT+IFwcAES82fPdZN2juakD/f3DtxEXqN8fLDByuuUWFv0PrmjGf+tQ1Z8z/EN2hDCjCyy0IsnJg== X-Received: by 2002:a17:903:2b0f:b0:21f:8453:7484 with SMTP id d9443c01a7336-22428a9d15dmr204592905ad.30.1741619710747; Mon, 10 Mar 2025 08:15:10 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:15:10 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: 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: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland , Deepak Gupta Subject: [PATCH v3 17/17] RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG Date: Mon, 10 Mar 2025 16:12:24 +0100 Message-ID: <20250310151229.2365992-18-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250310151229.2365992-1-cleger@rivosinc.com> References: <20250310151229.2365992-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_151514_427625_55915C28 X-CRM114-Status: GOOD ( 13.24 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "kvm-riscv" Errors-To: kvm-riscv-bounces+kvm-riscv=archiver.kernel.org@lists.infradead.org U0JJX0ZXRlRfTUlTQUxJR05FRF9ERUxFRyBuZWVkcyBoZWRlbGVnIHRvIGJlIG1vZGlmaWVkIHRv IGRlbGVnYXRlCm1pc2FsaWduZWQgbG9hZC9zdG9yZSBleGNlcHRpb25zLiBTYXZlIGFuZCByZXN0 b3JlIGl0IGR1cmluZyBDUFUKbG9hZC9wdXQuCgpTaWduZWQtb2ZmLWJ5OiBDbMOpbWVudCBMw6ln ZXIgPGNsZWdlckByaXZvc2luYy5jb20+ClJldmlld2VkLWJ5OiBEZWVwYWsgR3VwdGEgPGRlYnVn QHJpdm9zaW5jLmNvbT4KLS0tCiBhcmNoL3Jpc2N2L2t2bS92Y3B1LmMgICAgICAgICAgfCAgMyAr KysKIGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQuYyB8IDM5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYwpp bmRleCA1NDI3NDdlMmM3ZjUuLmQ5OGUzNzk5NDVjMyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9r dm0vdmNwdS5jCisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYwpAQCAtNjQ2LDYgKzY0Niw3IEBA IHZvaWQga3ZtX2FyY2hfdmNwdV9wdXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXZvaWQg Km5zaDsKIAlzdHJ1Y3Qga3ZtX3ZjcHVfY3NyICpjc3IgPSAmdmNwdS0+YXJjaC5ndWVzdF9jc3I7 CisJc3RydWN0IGt2bV92Y3B1X2NvbmZpZyAqY2ZnID0gJnZjcHUtPmFyY2guY2ZnOwogCiAJdmNw dS0+Y3B1ID0gLTE7CiAKQEAgLTY3MSw2ICs2NzIsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcHV0 KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJY3NyLT52c3R2YWwgPSBuYWNsX2Nzcl9yZWFkKG5z aCwgQ1NSX1ZTVFZBTCk7CiAJCWNzci0+aHZpcCA9IG5hY2xfY3NyX3JlYWQobnNoLCBDU1JfSFZJ UCk7CiAJCWNzci0+dnNhdHAgPSBuYWNsX2Nzcl9yZWFkKG5zaCwgQ1NSX1ZTQVRQKTsKKwkJY2Zn LT5oZWRlbGVnID0gbmFjbF9jc3JfcmVhZChuc2gsIENTUl9IRURFTEVHKTsKIAl9IGVsc2Ugewog CQljc3ItPnZzc3RhdHVzID0gY3NyX3JlYWQoQ1NSX1ZTU1RBVFVTKTsKIAkJY3NyLT52c2llID0g Y3NyX3JlYWQoQ1NSX1ZTSUUpOwpAQCAtNjgxLDYgKzY4Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNw dV9wdXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQljc3ItPnZzdHZhbCA9IGNzcl9yZWFkKENT Ul9WU1RWQUwpOwogCQljc3ItPmh2aXAgPSBjc3JfcmVhZChDU1JfSFZJUCk7CiAJCWNzci0+dnNh dHAgPSBjc3JfcmVhZChDU1JfVlNBVFApOworCQljZmctPmhlZGVsZWcgPSBjc3JfcmVhZChDU1Jf SEVERUxFRyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9m d2Z0LmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKaW5kZXggY2NlMWU0MWQ1NDkw Li43NTZmZGExY2YyZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQu YworKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKQEAgLTE0LDYgKzE0LDggQEAK ICNpbmNsdWRlIDxhc20va3ZtX3ZjcHVfc2JpLmg+CiAjaW5jbHVkZSA8YXNtL2t2bV92Y3B1X3Ni aV9md2Z0Lmg+CiAKKyNkZWZpbmUgTUlTX0RFTEVHIChCSVRfVUxMKEVYQ19MT0FEX01JU0FMSUdO RUQpIHwgQklUX1VMTChFWENfU1RPUkVfTUlTQUxJR05FRCkpCisKIHN0cnVjdCBrdm1fc2JpX2Z3 ZnRfZmVhdHVyZSB7CiAJLyoqCiAJICogQGlkOiBGZWF0dXJlIElECkBAIC02NCw3ICs2Niw0NCBA QCBzdGF0aWMgYm9vbCBrdm1fZndmdF9pc19kZWZpbmVkX2ZlYXR1cmUoZW51bSBzYmlfZndmdF9m ZWF0dXJlX3QgZmVhdHVyZSkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGt2bV9z YmlfZndmdF9taXNhbGlnbmVkX2RlbGVnYXRpb25fc3VwcG9ydGVkKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSkKK3sKKwlpZiAoIW1pc2FsaWduZWRfdHJhcHNfY2FuX2RlbGVnYXRlKCkpCisJCXJldHVy biBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IGt2bV9zYmlfZndmdF9z ZXRfbWlzYWxpZ25lZF9kZWxlZ2F0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCQkJc3Ry dWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsCisJCQkJCXVuc2lnbmVkIGxvbmcgdmFsdWUp Cit7CisJaWYgKHZhbHVlID09IDEpCisJCWNzcl9zZXQoQ1NSX0hFREVMRUcsIE1JU19ERUxFRyk7 CisJZWxzZSBpZiAodmFsdWUgPT0gMCkKKwkJY3NyX2NsZWFyKENTUl9IRURFTEVHLCBNSVNfREVM RUcpOworCWVsc2UKKwkJcmV0dXJuIFNCSV9FUlJfSU5WQUxJRF9QQVJBTTsKKworCXJldHVybiBT QklfU1VDQ0VTUzsKK30KKworc3RhdGljIGludCBrdm1fc2JpX2Z3ZnRfZ2V0X21pc2FsaWduZWRf ZGVsZWdhdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCisJCQkJCXN0cnVjdCBrdm1fc2JpX2Z3 ZnRfY29uZmlnICpjb25mLAorCQkJCQl1bnNpZ25lZCBsb25nICp2YWx1ZSkKK3sKKwkqdmFsdWUg PSAoY3NyX3JlYWQoQ1NSX0hFREVMRUcpICYgTUlTX0RFTEVHKSAhPSAwOworCisJcmV0dXJuIFNC SV9TVUNDRVNTOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGt2bV9zYmlfZndmdF9mZWF0dXJl IGZlYXR1cmVzW10gPSB7CisJeworCQkuaWQgPSBTQklfRldGVF9NSVNBTElHTkVEX0VYQ19ERUxF RywKKwkJLnN1cHBvcnRlZCA9IGt2bV9zYmlfZndmdF9taXNhbGlnbmVkX2RlbGVnYXRpb25fc3Vw cG9ydGVkLAorCQkuc2V0ID0ga3ZtX3NiaV9md2Z0X3NldF9taXNhbGlnbmVkX2RlbGVnYXRpb24s CisJCS5nZXQgPSBrdm1fc2JpX2Z3ZnRfZ2V0X21pc2FsaWduZWRfZGVsZWdhdGlvbiwKKwl9LAog fTsKIAogc3RhdGljIHN0cnVjdCBrdm1fc2JpX2Z3ZnRfY29uZmlnICoKLS0gCjIuNDcuMgoKCi0t IAprdm0tcmlzY3YgbWFpbGluZyBsaXN0Cmt2bS1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8va3ZtLXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F222523372F for ; Mon, 10 Mar 2025 15:15:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741619714; cv=none; b=LpDAJ2QVSPsScjvzKBzpA40gKFZKUM8mnY2emGO9y1CNvo+66jUDwYi8lYZsTjiq/fViMSwZPkLvpmVXGmrNI9qYMfJatcKYcrNdi1C1a5C5smuqpGRFypetdYhWQZCqmzEMO+ORGreKpYDEu05D4Vdw5RcvCaHdhrOHit5o9ew= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741619714; c=relaxed/simple; bh=3H55FORtmwscKRH5SzHI+X59iFLs94AL05N994sGaPc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t0aobcB4CV9Umaxj0wS7lCYhOgJqDJH8ysgvGwmWZ9LdY0uHi+xOmpICrLWMBqgcEia5uKmY/wyLf2UcKz3Pp+5SpZrGhAVG+bbpTIxWTx/8wIHX31gzQc0NlqFx15IT823szfYIRHqe8Zx5k6ZYXfm+61llwmet1vLookh3ZkQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=F3f9iuDZ; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="F3f9iuDZ" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-22403cbb47fso82410195ad.0 for ; Mon, 10 Mar 2025 08:15:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619712; x=1742224512; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=F3f9iuDZ1gOqc3bM+g71TDUDFrV5Wy9sxXs9cJY0K2EbYAMPyrkJC+UiSz8LIDVbFv J0/B1JUSX7Z2WkFNIf6ZKynschBkvbKEGje0HL2xDZ3MQvqiU5+h2zyg0w7RqLZxqBfp ja+pS5WGrVwDHiCrYtGtPYfHtkDbX0Dv2CUl8QBv15kaVhWCH1e3zj2mFBfTD+uEMYhy dR8961lSy7MeQiKgauCfV+z/0sBVx+wwv4ZBOOcXmqTw8eopHTryxz862AUA3sH2m6iU QXBTSLXOkHkQKKTXvUkGeICoE0bqxqLe32VTrW3opBh4e5DN7+NkFup8vKoep06R2adb 9i+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619712; x=1742224512; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=ndGHhgVX/G0UDCu7jCGvBZ6dsalaG2dY0Fe5opBXhzRBT4ZGKs1ioqBwnfZidvmhg/ sXfv1TmQbioo+OFvk6Y3QOiwIOsL9g5goZ9jm9VGJgc6htEZvMFtv1E2tPAJRYvxdV2x RXRTJ/eCRnH4gSlT1s+coDJcN28ofZ132LFY9zcltxmFvDGcfNR890CFM0K8H8whSVXj 46EPljCL6TycIqfUlsJ66rrDVlfpPwKMgAlwh+yJF+xLab9PPmEaWU7eJQGHOkxJxdtW AT0IBgyhiTMUM+WOpY37eBbfilFoammBrhhJ7soIGPaqgCjFIygCNlBpi59mgKV1ruD4 y5Lw== X-Forwarded-Encrypted: i=1; AJvYcCUZrBKOp2Q4G7pID1fn7Vl94ZGbeRhBSdOLbENClc41QstqAcZMQ61bJa4pTa4GMtBa0qE=@vger.kernel.org X-Gm-Message-State: AOJu0YzpnzJi9w0r2ibnWt7igii9BEvLOOZz9oH2S0KgCobuY5d/X9Nr az3bR3b9BjNo0/Oom09AHudYfOOLyNxlho8Qeqe11BSal8mixj75U2AKOVIIY7s= X-Gm-Gg: ASbGncvRtk8B9Ua8ULl0tNpdceqyP5giP1X6klzdVJ9lCe0HwY7frWQFn+7NOefXRsa gQAjKwcvLmN5Qswb25VykQMGgMwDNDvHeW5MJ7dAOzIICUWleGWp2kbo+dVw/rm0TPuWuknPndp 2wRL25NxQ1PIXjIEnRYRe+OXszJsGmt0vE5iYx711dMZ9fTZu4c13uPTaj5/Xcqnbv5qzrTUzZQ 6q+hwDxJRZSN/tmTGotHMMbyyi5kIvgQsh8YVnnPsDeCGctBbeu0CDbbtz5tKEIRdmO6wZXyW7U mIlJEmC7Je/jHQmL9Rqr0GqtIV9gZqhdcng2+Hfmuxfuaw== X-Google-Smtp-Source: AGHT+IFwcAES82fPdZN2juakD/f3DtxEXqN8fLDByuuUWFv0PrmjGf+tQ1Z8z/EN2hDCjCyy0IsnJg== X-Received: by 2002:a17:903:2b0f:b0:21f:8453:7484 with SMTP id d9443c01a7336-22428a9d15dmr204592905ad.30.1741619710747; Mon, 10 Mar 2025 08:15:10 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:15:10 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: 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: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland , Deepak Gupta Subject: [PATCH v3 17/17] RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG Date: Mon, 10 Mar 2025 16:12:24 +0100 Message-ID: <20250310151229.2365992-18-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250310151229.2365992-1-cleger@rivosinc.com> References: <20250310151229.2365992-1-cleger@rivosinc.com> Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SBI_FWFT_MISALIGNED_DELEG needs hedeleg to be modified to delegate misaligned load/store exceptions. Save and restore it during CPU load/put. Signed-off-by: Clément Léger Reviewed-by: Deepak Gupta --- arch/riscv/kvm/vcpu.c | 3 +++ arch/riscv/kvm/vcpu_sbi_fwft.c | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index 542747e2c7f5..d98e379945c3 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -646,6 +646,7 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) { void *nsh; struct kvm_vcpu_csr *csr = &vcpu->arch.guest_csr; + struct kvm_vcpu_config *cfg = &vcpu->arch.cfg; vcpu->cpu = -1; @@ -671,6 +672,7 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) csr->vstval = nacl_csr_read(nsh, CSR_VSTVAL); csr->hvip = nacl_csr_read(nsh, CSR_HVIP); csr->vsatp = nacl_csr_read(nsh, CSR_VSATP); + cfg->hedeleg = nacl_csr_read(nsh, CSR_HEDELEG); } else { csr->vsstatus = csr_read(CSR_VSSTATUS); csr->vsie = csr_read(CSR_VSIE); @@ -681,6 +683,7 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) csr->vstval = csr_read(CSR_VSTVAL); csr->hvip = csr_read(CSR_HVIP); csr->vsatp = csr_read(CSR_VSATP); + cfg->hedeleg = csr_read(CSR_HEDELEG); } } diff --git a/arch/riscv/kvm/vcpu_sbi_fwft.c b/arch/riscv/kvm/vcpu_sbi_fwft.c index cce1e41d5490..756fda1cf2e7 100644 --- a/arch/riscv/kvm/vcpu_sbi_fwft.c +++ b/arch/riscv/kvm/vcpu_sbi_fwft.c @@ -14,6 +14,8 @@ #include #include +#define MIS_DELEG (BIT_ULL(EXC_LOAD_MISALIGNED) | BIT_ULL(EXC_STORE_MISALIGNED)) + struct kvm_sbi_fwft_feature { /** * @id: Feature ID @@ -64,7 +66,44 @@ static bool kvm_fwft_is_defined_feature(enum sbi_fwft_feature_t feature) return false; } +static bool kvm_sbi_fwft_misaligned_delegation_supported(struct kvm_vcpu *vcpu) +{ + if (!misaligned_traps_can_delegate()) + return false; + + return true; +} + +static int kvm_sbi_fwft_set_misaligned_delegation(struct kvm_vcpu *vcpu, + struct kvm_sbi_fwft_config *conf, + unsigned long value) +{ + if (value == 1) + csr_set(CSR_HEDELEG, MIS_DELEG); + else if (value == 0) + csr_clear(CSR_HEDELEG, MIS_DELEG); + else + return SBI_ERR_INVALID_PARAM; + + return SBI_SUCCESS; +} + +static int kvm_sbi_fwft_get_misaligned_delegation(struct kvm_vcpu *vcpu, + struct kvm_sbi_fwft_config *conf, + unsigned long *value) +{ + *value = (csr_read(CSR_HEDELEG) & MIS_DELEG) != 0; + + return SBI_SUCCESS; +} + static const struct kvm_sbi_fwft_feature features[] = { + { + .id = SBI_FWFT_MISALIGNED_EXC_DELEG, + .supported = kvm_sbi_fwft_misaligned_delegation_supported, + .set = kvm_sbi_fwft_set_misaligned_delegation, + .get = kvm_sbi_fwft_get_misaligned_delegation, + }, }; static struct kvm_sbi_fwft_config * -- 2.47.2 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 D263DC35FF3 for ; Mon, 10 Mar 2025 17:50:46 +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:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vOYddS0MakKJ5bdhP3oC/Jbfb4xHitJWRosG6hvbjbs=; b=VHvbCF3JNPuGkh 5KmRVeQ1qynt9ZnRhSH2vCJ35s7RJbWlUKL2BoCgQ/jaGwKvpNKwV/eR44l+y79amsKsYesklMHtS kuvQxT1Va+jtmj5PCDbP9hSh9hUmSoOYkSQYIDKso4cahj54IKolo8ocAiO3ycTTC9vd7ByEoiH5V 2S5m5eOfskk4qxblgClPK3/YR0MqsTmSKklgEL2p5f48u5L6ncPz5Da5Rli7dSo5B0/0MlIAw28cO 4wHNlyV1veX03JT7y5soxEEGoowNby+KU4qj6LhCRGHecO48ifpyKTUZvrPUlHsmm3NCgn/dRycMp KLZId+r3QVcOcq/HzPFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trhGr-00000003WuG-2Cy5; Mon, 10 Mar 2025 17:50:33 +0000 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1treqW-000000038LD-3Gb4 for linux-riscv@lists.infradead.org; Mon, 10 Mar 2025 15:15:14 +0000 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-22438c356c8so47871565ad.1 for ; Mon, 10 Mar 2025 08:15:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1741619712; x=1742224512; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=RaGZcgSuyZaRNK4dg61HdT9HjX4hr6meHTJ+jGQExnA8MoqybDS3qmzSZ9bjMWRydP dzsU9/9+xdi5pmJnkQWEP2hEIXjE1WLeMnpvNHsnd9/aXvVls74A3IioZyxnc9fWF+8u yYUYYAYhJ4xlqASg+4tgPSuhaOdvg7gNQUYZjk16yVEYGodkPCgJ+uhdBNhLlSfsnMfr 5+B8ZGDBUZcWekg2I5qHpv/8aJrnF2enrFNnwira7tIrs2F1rCHi1bQls+0KXur/7lnR 6U29yCFvnfHGZQXRO49X+XnrlA0NAuk1bsTg2ZO40TMSSa13axjbbsX6AjxmJ3Zyza3d luew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741619712; x=1742224512; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OfJ3/5A+8eTTKYRN2eD83evjq8eHQRgBJnaNQ4fOKIc=; b=RhZfKuYYEuyGyziSjOYu91rV5Bakzl11oWLzXimU4icC1mUmlH3xl9RLwWFJthL6jv gI/YD0qm5T09CBq70VFLU530ib/XbIGATf3Rt74sCBJtPbqvveo85o1H2bB+51+j/ICK 1ZeRT0clCjh2n2MG/whIdk+/y/ugbCqwM2pJblKLKM7/yW76R4IlK40vsy723wF5Vg3F xKVVVm/Rnyy0NP6T5oCybdDqZdembqf6le6ZhQkKL7Uul7V/B/ivDbTxhWvom3mufcQ/ 1I004Q6QaKsX8alpVQbweEV7AGnObjFk3sDLLFR7JHWQek1k2Rrjq0K7tG+RH9K4/N77 DTEg== X-Forwarded-Encrypted: i=1; AJvYcCXSL9nO61TNv966TV5xfV9caAWet2w3ZnjlDkiD/6np+ppfTM2VXQp5NAXTN/GS79UrC6C607DjzK6qzQ==@lists.infradead.org X-Gm-Message-State: AOJu0YxsSbjkaG9yPbCxyLMG+qRF477Oqwpfre6Mt6qQbkBN6W0iPGCV z24tGur1RaLtp9DrrKmipNR4GvOtSnepv2D+ViivZb/Nff4xWxOureOGbNauq9w= X-Gm-Gg: ASbGncuV3VmauImPdp+jnjr+hhcoDMH6RTkrIcwENWP9N7/s63RE1REgX5c6ko6MmOy kRBxCfpzDsxp10GdgnnkUag+k1VLfYqWiuXlguwdZZYaDevrRsqkIiGIpyUbHRF7xT8kac/i6iO DKj+8syIqjorm7hS8louqvzC5PXbOtRmgVC/xgV0Xo7yF8ZZfyjs7IZtSl8BzqKpqoPJ7tnZV8D DjiJonX0KpvxV5ANnUurcy986MOnHC6I2xTcP7he3UgVLzPjF6l+EPwe3hm5VnIeYhORMz5WbGq 5qCMi1uDW2WB1RrYJfmlkJ5rs1F8n/2gaTN675AshJEmKQ== X-Google-Smtp-Source: AGHT+IFwcAES82fPdZN2juakD/f3DtxEXqN8fLDByuuUWFv0PrmjGf+tQ1Z8z/EN2hDCjCyy0IsnJg== X-Received: by 2002:a17:903:2b0f:b0:21f:8453:7484 with SMTP id d9443c01a7336-22428a9d15dmr204592905ad.30.1741619710747; Mon, 10 Mar 2025 08:15:10 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:e17:9700:16d2:7456:6634:9626]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-224109e99dfsm79230515ad.91.2025.03.10.08.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Mar 2025 08:15:10 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: 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: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Samuel Holland , Deepak Gupta Subject: [PATCH v3 17/17] RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG Date: Mon, 10 Mar 2025 16:12:24 +0100 Message-ID: <20250310151229.2365992-18-cleger@rivosinc.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250310151229.2365992-1-cleger@rivosinc.com> References: <20250310151229.2365992-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_081512_845122_AEF7965C X-CRM114-Status: GOOD ( 13.29 ) 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 U0JJX0ZXRlRfTUlTQUxJR05FRF9ERUxFRyBuZWVkcyBoZWRlbGVnIHRvIGJlIG1vZGlmaWVkIHRv IGRlbGVnYXRlCm1pc2FsaWduZWQgbG9hZC9zdG9yZSBleGNlcHRpb25zLiBTYXZlIGFuZCByZXN0 b3JlIGl0IGR1cmluZyBDUFUKbG9hZC9wdXQuCgpTaWduZWQtb2ZmLWJ5OiBDbMOpbWVudCBMw6ln ZXIgPGNsZWdlckByaXZvc2luYy5jb20+ClJldmlld2VkLWJ5OiBEZWVwYWsgR3VwdGEgPGRlYnVn QHJpdm9zaW5jLmNvbT4KLS0tCiBhcmNoL3Jpc2N2L2t2bS92Y3B1LmMgICAgICAgICAgfCAgMyAr KysKIGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQuYyB8IDM5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYwpp bmRleCA1NDI3NDdlMmM3ZjUuLmQ5OGUzNzk5NDVjMyAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9r dm0vdmNwdS5jCisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYwpAQCAtNjQ2LDYgKzY0Niw3IEBA IHZvaWQga3ZtX2FyY2hfdmNwdV9wdXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXZvaWQg Km5zaDsKIAlzdHJ1Y3Qga3ZtX3ZjcHVfY3NyICpjc3IgPSAmdmNwdS0+YXJjaC5ndWVzdF9jc3I7 CisJc3RydWN0IGt2bV92Y3B1X2NvbmZpZyAqY2ZnID0gJnZjcHUtPmFyY2guY2ZnOwogCiAJdmNw dS0+Y3B1ID0gLTE7CiAKQEAgLTY3MSw2ICs2NzIsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfcHV0 KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAkJY3NyLT52c3R2YWwgPSBuYWNsX2Nzcl9yZWFkKG5z aCwgQ1NSX1ZTVFZBTCk7CiAJCWNzci0+aHZpcCA9IG5hY2xfY3NyX3JlYWQobnNoLCBDU1JfSFZJ UCk7CiAJCWNzci0+dnNhdHAgPSBuYWNsX2Nzcl9yZWFkKG5zaCwgQ1NSX1ZTQVRQKTsKKwkJY2Zn LT5oZWRlbGVnID0gbmFjbF9jc3JfcmVhZChuc2gsIENTUl9IRURFTEVHKTsKIAl9IGVsc2Ugewog CQljc3ItPnZzc3RhdHVzID0gY3NyX3JlYWQoQ1NSX1ZTU1RBVFVTKTsKIAkJY3NyLT52c2llID0g Y3NyX3JlYWQoQ1NSX1ZTSUUpOwpAQCAtNjgxLDYgKzY4Myw3IEBAIHZvaWQga3ZtX2FyY2hfdmNw dV9wdXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQljc3ItPnZzdHZhbCA9IGNzcl9yZWFkKENT Ul9WU1RWQUwpOwogCQljc3ItPmh2aXAgPSBjc3JfcmVhZChDU1JfSFZJUCk7CiAJCWNzci0+dnNh dHAgPSBjc3JfcmVhZChDU1JfVlNBVFApOworCQljZmctPmhlZGVsZWcgPSBjc3JfcmVhZChDU1Jf SEVERUxFRyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9m d2Z0LmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKaW5kZXggY2NlMWU0MWQ1NDkw Li43NTZmZGExY2YyZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQu YworKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKQEAgLTE0LDYgKzE0LDggQEAK ICNpbmNsdWRlIDxhc20va3ZtX3ZjcHVfc2JpLmg+CiAjaW5jbHVkZSA8YXNtL2t2bV92Y3B1X3Ni aV9md2Z0Lmg+CiAKKyNkZWZpbmUgTUlTX0RFTEVHIChCSVRfVUxMKEVYQ19MT0FEX01JU0FMSUdO RUQpIHwgQklUX1VMTChFWENfU1RPUkVfTUlTQUxJR05FRCkpCisKIHN0cnVjdCBrdm1fc2JpX2Z3 ZnRfZmVhdHVyZSB7CiAJLyoqCiAJICogQGlkOiBGZWF0dXJlIElECkBAIC02NCw3ICs2Niw0NCBA QCBzdGF0aWMgYm9vbCBrdm1fZndmdF9pc19kZWZpbmVkX2ZlYXR1cmUoZW51bSBzYmlfZndmdF9m ZWF0dXJlX3QgZmVhdHVyZSkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGt2bV9z YmlfZndmdF9taXNhbGlnbmVkX2RlbGVnYXRpb25fc3VwcG9ydGVkKHN0cnVjdCBrdm1fdmNwdSAq dmNwdSkKK3sKKwlpZiAoIW1pc2FsaWduZWRfdHJhcHNfY2FuX2RlbGVnYXRlKCkpCisJCXJldHVy biBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IGt2bV9zYmlfZndmdF9z ZXRfbWlzYWxpZ25lZF9kZWxlZ2F0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCQkJc3Ry dWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsCisJCQkJCXVuc2lnbmVkIGxvbmcgdmFsdWUp Cit7CisJaWYgKHZhbHVlID09IDEpCisJCWNzcl9zZXQoQ1NSX0hFREVMRUcsIE1JU19ERUxFRyk7 CisJZWxzZSBpZiAodmFsdWUgPT0gMCkKKwkJY3NyX2NsZWFyKENTUl9IRURFTEVHLCBNSVNfREVM RUcpOworCWVsc2UKKwkJcmV0dXJuIFNCSV9FUlJfSU5WQUxJRF9QQVJBTTsKKworCXJldHVybiBT QklfU1VDQ0VTUzsKK30KKworc3RhdGljIGludCBrdm1fc2JpX2Z3ZnRfZ2V0X21pc2FsaWduZWRf ZGVsZWdhdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCisJCQkJCXN0cnVjdCBrdm1fc2JpX2Z3 ZnRfY29uZmlnICpjb25mLAorCQkJCQl1bnNpZ25lZCBsb25nICp2YWx1ZSkKK3sKKwkqdmFsdWUg PSAoY3NyX3JlYWQoQ1NSX0hFREVMRUcpICYgTUlTX0RFTEVHKSAhPSAwOworCisJcmV0dXJuIFNC SV9TVUNDRVNTOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGt2bV9zYmlfZndmdF9mZWF0dXJl IGZlYXR1cmVzW10gPSB7CisJeworCQkuaWQgPSBTQklfRldGVF9NSVNBTElHTkVEX0VYQ19ERUxF RywKKwkJLnN1cHBvcnRlZCA9IGt2bV9zYmlfZndmdF9taXNhbGlnbmVkX2RlbGVnYXRpb25fc3Vw cG9ydGVkLAorCQkuc2V0ID0ga3ZtX3NiaV9md2Z0X3NldF9taXNhbGlnbmVkX2RlbGVnYXRpb24s CisJCS5nZXQgPSBrdm1fc2JpX2Z3ZnRfZ2V0X21pc2FsaWduZWRfZGVsZWdhdGlvbiwKKwl9LAog fTsKIAogc3RhdGljIHN0cnVjdCBrdm1fc2JpX2Z3ZnRfY29uZmlnICoKLS0gCjIuNDcuMgoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2 IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK