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 9E747C04FF8 for ; Thu, 18 Apr 2024 15:31:44 +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=G5PLPjKZmL5t+3Q/INm6qSfYFfRU5KOrsRxMKXpvrU8=; b=QGWWnUZdPLw2CO gDxjKR5omsuz0DYqgnQpuYRvGQsQzTSXLFWVAryPkFC0n/TgOKDzP0kfoOXTc5vo8Aev9TWaHaPIE 9v6JjTYcQEqbqSAc7xZGEKmqdrnKaVDevO1UgnKKzy9YIWKHbemJxJbNsSjj5Pzrg9tf83vuohVvR Msg9Eons0Di6zuOtMUe/7UlU66kTRa0NQtsV8EQGVhDPPZmG4RRjgdmq6mnnH3llJAPKryAP7MhfU jj5rcL6tsYd+Gd288C7MyTAGKVLr+SqyhotzIXzzB4yzLpj4rgZwo5Up1kD+cHz98k5R1vsOHEYwc 6W1bAM105hPDzLb2hMAQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxTjf-00000002nqK-2yHk; Thu, 18 Apr 2024 15:31:39 +0000 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rxSjI-00000002cUb-3jll for linux-riscv@lists.infradead.org; Thu, 18 Apr 2024 14:27:14 +0000 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-345606e8ac0so124132f8f.0 for ; Thu, 18 Apr 2024 07:27:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1713450431; x=1714055231; 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=pjYeEsui4m5xv1lGH5o6mH+W8BXsONKsbiY648bn26Q=; b=pWiBDltWStBv3aLGMSulCoNwdd09Z6iZ/l0/ypNJ/N/9Whenxp188oiqqFaaZwk80z BVmA5+g4dSqKA/vWDglKmuDJDjSUSkypWQ0ilunXRTe5fLXtRoUaBI7ZrpbRV7wQaFF3 WhDfl/UWT49RZjWWipzeiruOu+D6WmtaK5lihxtok91fKoivC1j0RLxrCR6X+e8lspi9 NVsrptZBjsUl3akPc5Yf/ZBl/2O+hvUSfSIhNJNdjT1M3oHD8XOIyKmOnbYvLBu1GMqZ voeXGbjsWHARD4QCjNOVnkojWDOSV0SM6Rn0yMESeVw8BtSyVc5fRg7rpJ9E8Lz+vR4D 4aBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713450431; x=1714055231; 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=pjYeEsui4m5xv1lGH5o6mH+W8BXsONKsbiY648bn26Q=; b=VH60Atrpcp6lPf0b77Zrb1ZLzui68bhBm3nDzZ1JjRfgIPGyHglPY3jakz5VfysbEQ iKuQd6crZT7lhGokZgMZanBgLKOc51xcsWCSfXhz0SgFRiNXkQ0aQMlRGmzSr0YczVrW WXsAYUDfEeyskJfgzV0pqEDT1AES2Fg3913fo3oQcvi6BG+7zt7CiZzVKlH6zns0gFPh zh4bGogqdB+pVE6LK0TYbkL3qrFMBTyha0eZUojXE6fmfqfnFJtll7r1MVBOw47CSRn7 /+kpXTQUE6kNyRt9n+6svmy6L2Td+vcgapfIlOO9USAcv76QRhTr8fJOtbRJ9aLrIfu+ 2XLg== X-Forwarded-Encrypted: i=1; AJvYcCXlsY2GJTdaTGDzHYO3N9spxAOGNbofLhlpuDDHOaIakiFkFXfZIpQCVhThrNvdtTfB1AmteRlW7Q/Y4MrQmm7VRucqrh5AZ4YKwVAzXQtc X-Gm-Message-State: AOJu0Yzt+sNv3yl4UXBW06qBZ5Y6pux1Z34CNVptFho+Ee1mYpXf8ed3 EYvdPdmNzwtHsDX8ow1X/OPwQNNMmrq7O0i/keehBIIL0wfe2Hf9tZ+VmC2BuOc= X-Google-Smtp-Source: AGHT+IFFwaascQCVwSoWuecZs0QNk4WI1qD1KbtUyisTXBvH15F7tw1GRlm2dKuVmVzvSHfB6Uh8Ag== X-Received: by 2002:a05:600c:3554:b0:416:7b2c:df05 with SMTP id i20-20020a05600c355400b004167b2cdf05mr2100856wmq.1.1713450431422; Thu, 18 Apr 2024 07:27:11 -0700 (PDT) Received: from carbon-x1.. ([2a01:e0a:999:a3a0:7b64:4d1d:16d8:e38b]) by smtp.gmail.com with ESMTPSA id v10-20020a05600c470a00b00418a386c059sm2873645wmo.42.2024.04.18.07.27.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Apr 2024 07:27:10 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Anup Patel , Atish Patra Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvm-riscv@lists.infradead.org, Ved Shanbhogue Subject: [RFC PATCH 1/7] riscv: kvm: add support for FWFT SBI extension Date: Thu, 18 Apr 2024 16:26:40 +0200 Message-ID: <20240418142701.1493091-2-cleger@rivosinc.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240418142701.1493091-1-cleger@rivosinc.com> References: <20240418142701.1493091-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240418_072712_981299_4F55412B X-CRM114-Status: GOOD ( 24.78 ) 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 QWRkIHN1cHBvcnQgZm9yIEZXRlQgZXh0ZW5zaW9uIGluIEtWTQoKU2lnbmVkLW9mZi1ieTogQ2zD qW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgotLS0KIGFyY2gvcmlzY3YvaW5jbHVk ZS9hc20va3ZtX2hvc3QuaCAgICAgICAgICB8ICAgNSArCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2t2bV92Y3B1X3NiaS5oICAgICAgfCAgIDEgKwogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9rdm1f dmNwdV9zYmlfZndmdC5oIHwgIDM3ICsrKysrKwogYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkvYXNt L2t2bS5oICAgICAgICAgIHwgICAxICsKIGFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBhcmNoL3Jpc2N2L2t2bS92Y3B1LmMgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKwogYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmkuYyAgICAgICAgICAgICAgICAg IHwgICA0ICsKIGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX2Z3ZnQuYyAgICAgICAgICAgICB8IDEz NiArKysrKysrKysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTkwIGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3Ni aV9md2Z0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0 LmMKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggNDg0ZDA0YTkyZmE2Li5iZTYwYWFh MDdmNTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAorKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE5LDYgKzE5LDcgQEAKICNp bmNsdWRlIDxhc20va3ZtX3ZjcHVfZnAuaD4KICNpbmNsdWRlIDxhc20va3ZtX3ZjcHVfaW5zbi5o PgogI2luY2x1ZGUgPGFzbS9rdm1fdmNwdV9zYmkuaD4KKyNpbmNsdWRlIDxhc20va3ZtX3ZjcHVf c2JpX2Z3ZnQuaD4KICNpbmNsdWRlIDxhc20va3ZtX3ZjcHVfdGltZXIuaD4KICNpbmNsdWRlIDxh c20va3ZtX3ZjcHVfcG11Lmg+CiAKQEAgLTE2OSw2ICsxNzAsNyBAQCBzdHJ1Y3Qga3ZtX3ZjcHVf Y3NyIHsKIHN0cnVjdCBrdm1fdmNwdV9jb25maWcgewogCXU2NCBoZW52Y2ZnOwogCXU2NCBoc3Rh dGVlbjA7CisJdTY0IGhlZGVsZWc7CiB9OwogCiBzdHJ1Y3Qga3ZtX3ZjcHVfc21zdGF0ZWVuX2Nz ciB7CkBAIC0yNjEsNiArMjYzLDkgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCS8qIFBlcmZv cm1hbmNlIG1vbml0b3JpbmcgY29udGV4dCAqLwogCXN0cnVjdCBrdm1fcG11IHBtdV9jb250ZXh0 OwogCisJLyogRmlybXdhcmUgZmVhdHVyZSBTQkkgZXh0ZW5zaW9uIGNvbnRleHQgKi8KKwlzdHJ1 Y3Qga3ZtX3NiaV9md2Z0IGZ3ZnRfY29udGV4dDsKKwogCS8qICdzdGF0aWMnIGNvbmZpZ3VyYXRp b25zIHdoaWNoIGFyZSBzZXQgb25seSBvbmNlICovCiAJc3RydWN0IGt2bV92Y3B1X2NvbmZpZyBj Zmc7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmgg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92Y3B1X3NiaS5oCmluZGV4IGI5NjcwNTI1OGNm OS4uM2EzM2JiYWNjMjMzIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2t2bV92 Y3B1X3NiaS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpLmgKQEAg LTg2LDYgKzg2LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBrdm1fdmNwdV9zYmlfZXh0ZW5zaW9u IHZjcHVfc2JpX2V4dF9zcnN0OwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBrdm1fdmNwdV9zYmlfZXh0 ZW5zaW9uIHZjcHVfc2JpX2V4dF9oc207CiBleHRlcm4gY29uc3Qgc3RydWN0IGt2bV92Y3B1X3Ni aV9leHRlbnNpb24gdmNwdV9zYmlfZXh0X2RiY247CiBleHRlcm4gY29uc3Qgc3RydWN0IGt2bV92 Y3B1X3NiaV9leHRlbnNpb24gdmNwdV9zYmlfZXh0X3N0YTsKK2V4dGVybiBjb25zdCBzdHJ1Y3Qg a3ZtX3ZjcHVfc2JpX2V4dGVuc2lvbiB2Y3B1X3NiaV9leHRfZndmdDsKIGV4dGVybiBjb25zdCBz dHJ1Y3Qga3ZtX3ZjcHVfc2JpX2V4dGVuc2lvbiB2Y3B1X3NiaV9leHRfZXhwZXJpbWVudGFsOwog ZXh0ZXJuIGNvbnN0IHN0cnVjdCBrdm1fdmNwdV9zYmlfZXh0ZW5zaW9uIHZjcHVfc2JpX2V4dF92 ZW5kb3I7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2Jp X2Z3ZnQuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpX2Z3ZnQuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjdkYzFiODBjN2U2YwotLS0gL2Rl di9udWxsCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20va3ZtX3ZjcHVfc2JpX2Z3ZnQuaApA QCAtMCwwICsxLDM3IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5 ICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDIzIFJpdm9zIEluYworICoKKyAqIEF1dGhvcnM6 CisgKiAgICAgQXRpc2ggUGF0cmEgPGF0aXNocEByaXZvc2luYy5jb20+CisgKi8KKworI2lmbmRl ZiBfX0tWTV9WQ1BVX1JJU0NWX0ZXRlRfSAorI2RlZmluZSBfX0tWTV9WQ1BVX1JJU0NWX0ZXRlRf SAorCisjaW5jbHVkZSA8YXNtL3NiaS5oPgorCisjZGVmaW5lIEtWTV9TQklfRldGVF9GRUFUVVJF X0NPVU5UCTEKKworc3RydWN0IGt2bV9zYmlfZndmdF9jb25maWc7CitzdHJ1Y3Qga3ZtX3ZjcHU7 CisKK3N0cnVjdCBrdm1fc2JpX2Z3ZnRfZmVhdHVyZSB7CisJZW51bSBzYmlfZndmdF9mZWF0dXJl X3QgaWQ7CisJaW50ICgqc2V0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fc2Jp X2Z3ZnRfY29uZmlnICpjb25mLCB1bnNpZ25lZCBsb25nIHZhbHVlKTsKKwlpbnQgKCpnZXQpKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsIHVu c2lnbmVkIGxvbmcgKnZhbHVlKTsKK307CisKK3N0cnVjdCBrdm1fc2JpX2Z3ZnRfY29uZmlnIHsK Kwljb25zdCBzdHJ1Y3Qga3ZtX3NiaV9md2Z0X2ZlYXR1cmUgKmZlYXR1cmU7CisJdW5zaWduZWQg bG9uZyBmbGFnczsKK307CisKKy8qIEZXRlQgZGF0YSBzdHJ1Y3R1cmUgcGVyIHZjcHUgKi8KK3N0 cnVjdCBrdm1fc2JpX2Z3ZnQgeworCXN0cnVjdCBrdm1fc2JpX2Z3ZnRfY29uZmlnIGNvbmZpZ3Nb S1ZNX1NCSV9GV0ZUX0ZFQVRVUkVfQ09VTlRdOworfTsKKworI2RlZmluZSB2Y3B1X3RvX2Z3ZnQo dmNwdSkgKCYodmNwdSktPmFyY2guZndmdF9jb250ZXh0KQorCisjZW5kaWYgLyogIV9fS1ZNX1ZD UFVfUklTQ1ZfRldGVF9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9h c20va3ZtLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKaW5kZXggNzQ5OWU4 OGE5NDdjLi5mYTMwOTdkYTkxYzAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBp L2FzbS9rdm0uaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20va3ZtLmgKQEAgLTE4 NSw2ICsxODUsNyBAQCBlbnVtIEtWTV9SSVNDVl9TQklfRVhUX0lEIHsKIAlLVk1fUklTQ1ZfU0JJ X0VYVF9WRU5ET1IsCiAJS1ZNX1JJU0NWX1NCSV9FWFRfREJDTiwKIAlLVk1fUklTQ1ZfU0JJX0VY VF9TVEEsCisJS1ZNX1JJU0NWX1NCSV9FWFRfRldGVCwKIAlLVk1fUklTQ1ZfU0JJX0VYVF9NQVgs CiB9OwogCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZSBiL2FyY2gvcmlzY3Yv a3ZtL01ha2VmaWxlCmluZGV4IGM5NjQ2NTIxZjExMy4uMTkxNzViZDViNDBhIDEwMDY0NAotLS0g YS9hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZQorKysgYi9hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZQpA QCAtMjcsNiArMjcsNyBAQCBrdm0teSArPSB2Y3B1X3NiaV9iYXNlLm8KIGt2bS15ICs9IHZjcHVf c2JpX3JlcGxhY2Uubwoga3ZtLXkgKz0gdmNwdV9zYmlfaHNtLm8KIGt2bS15ICs9IHZjcHVfc2Jp X3N0YS5vCitrdm0teSArPSB2Y3B1X3NiaV9md2Z0Lm8KIGt2bS15ICs9IHZjcHVfdGltZXIubwog a3ZtLSQoQ09ORklHX1JJU0NWX1BNVV9TQkkpICs9IHZjcHVfcG11Lm8gdmNwdV9zYmlfcG11Lm8K IGt2bS15ICs9IGFpYS5vCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1LmMgYi9hcmNo L3Jpc2N2L2t2bS92Y3B1LmMKaW5kZXggYjVjYTlmMmU5OGFjLi40NjFlZjYwZDRlZGEgMTAwNjQ0 Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHUuYworKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1LmMK QEAgLTUwNSw2ICs1MDUsOCBAQCBzdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV9zZXR1cF9jb25m aWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQlpZiAocmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFp bGFibGUoaXNhLCBTTVNUQVRFRU4pKQogCQkJY2ZnLT5oc3RhdGVlbjAgfD0gU01TVEFURUVOMF9T U1RBVEVFTjA7CiAJfQorCisJY2ZnLT5oZWRlbGVnID0gY3NyX3JlYWQoQ1NSX0hFREVMRUcpOwog fQogCiB2b2lkIGt2bV9hcmNoX3ZjcHVfbG9hZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBj cHUpCkBAIC01MjEsNiArNTIzLDcgQEAgdm9pZCBrdm1fYXJjaF92Y3B1X2xvYWQoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1LCBpbnQgY3B1KQogCWNzcl93cml0ZShDU1JfVlNUVkFMLCBjc3ItPnZzdHZh bCk7CiAJY3NyX3dyaXRlKENTUl9IVklQLCBjc3ItPmh2aXApOwogCWNzcl93cml0ZShDU1JfVlNB VFAsIGNzci0+dnNhdHApOworCWNzcl93cml0ZShDU1JfSEVERUxFRywgY2ZnLT5oZWRlbGVnKTsK IAljc3Jfd3JpdGUoQ1NSX0hFTlZDRkcsIGNmZy0+aGVudmNmZyk7CiAJaWYgKElTX0VOQUJMRUQo Q09ORklHXzMyQklUKSkKIAkJY3NyX3dyaXRlKENTUl9IRU5WQ0ZHSCwgY2ZnLT5oZW52Y2ZnID4+ IDMyKTsKQEAgLTU1MSw2ICs1NTQsNyBAQCB2b2lkIGt2bV9hcmNoX3ZjcHVfbG9hZChzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUsIGludCBjcHUpCiB2b2lkIGt2bV9hcmNoX3ZjcHVfcHV0KHN0cnVjdCBr dm1fdmNwdSAqdmNwdSkKIHsKIAlzdHJ1Y3Qga3ZtX3ZjcHVfY3NyICpjc3IgPSAmdmNwdS0+YXJj aC5ndWVzdF9jc3I7CisJc3RydWN0IGt2bV92Y3B1X2NvbmZpZyAqY2ZnID0gJnZjcHUtPmFyY2gu Y2ZnOwogCiAJdmNwdS0+Y3B1ID0gLTE7CiAKQEAgLTU3NCw2ICs1NzgsNyBAQCB2b2lkIGt2bV9h cmNoX3ZjcHVfcHV0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAljc3ItPnZzdHZhbCA9IGNzcl9y ZWFkKENTUl9WU1RWQUwpOwogCWNzci0+aHZpcCA9IGNzcl9yZWFkKENTUl9IVklQKTsKIAljc3It PnZzYXRwID0gY3NyX3JlYWQoQ1NSX1ZTQVRQKTsKKwljZmctPmhlZGVsZWcgPSBjc3JfcmVhZChD U1JfSEVERUxFRyk7CiB9CiAKIHN0YXRpYyB2b2lkIGt2bV9yaXNjdl9jaGVja192Y3B1X3JlcXVl c3RzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3Zj cHVfc2JpLmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaS5jCmluZGV4IDcyYTJmZmI4ZGNkMS4u NzY5MDFmMGYzNGI3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaS5jCisrKyBi L2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpLmMKQEAgLTc0LDYgKzc0LDEwIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qga3ZtX3Jpc2N2X3NiaV9leHRlbnNpb25fZW50cnkgc2JpX2V4dFtdID0gewogCQku ZXh0X2lkeCA9IEtWTV9SSVNDVl9TQklfRVhUX1NUQSwKIAkJLmV4dF9wdHIgPSAmdmNwdV9zYmlf ZXh0X3N0YSwKIAl9LAorCXsKKwkJLmV4dF9pZHggPSBLVk1fUklTQ1ZfU0JJX0VYVF9GV0ZULAor CQkuZXh0X3B0ciA9ICZ2Y3B1X3NiaV9leHRfZndmdCwKKwl9LAogCXsKIAkJLmV4dF9pZHggPSBL Vk1fUklTQ1ZfU0JJX0VYVF9FWFBFUklNRU5UQUwsCiAJCS5leHRfcHRyID0gJnZjcHVfc2JpX2V4 dF9leHBlcmltZW50YWwsCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0 LmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5iOWI3ZjhmYTZkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNo L3Jpc2N2L2t2bS92Y3B1X3NiaV9md2Z0LmMKQEAgLTAsMCArMSwxMzYgQEAKKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIFdlc3Rl cm4gRGlnaXRhbCBDb3Jwb3JhdGlvbiBvciBpdHMgYWZmaWxpYXRlcy4KKyAqCisgKiBBdXRob3Jz OgorICogICAgIEF0aXNoIFBhdHJhIDxhdGlzaC5wYXRyYUB3ZGMuY29tPgorICovCisKKyNpbmNs dWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxp bnV4L2t2bV9ob3N0Lmg+CisjaW5jbHVkZSA8YXNtL3NiaS5oPgorI2luY2x1ZGUgPGFzbS9rdm1f dmNwdV9zYmkuaD4KKyNpbmNsdWRlIDxhc20va3ZtX3ZjcHVfc2JpX2Z3ZnQuaD4KKworI2RlZmlu ZSBNSVNfREVMRUcgKDFVTCA8PCBFWENfTE9BRF9NSVNBTElHTkVEIHwgMVVMIDw8IEVYQ19TVE9S RV9NSVNBTElHTkVEKQorCitzdGF0aWMgaW50IGt2bV9zYmlfZndmdF9zZXRfbWlzYWxpZ25lZF9k ZWxlZ2F0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCQkJc3RydWN0IGt2bV9zYmlfZndm dF9jb25maWcgKmNvbmYsCisJCQkJCXVuc2lnbmVkIGxvbmcgdmFsdWUpCit7CisJaWYgKHZhbHVl KQorCQljc3Jfc2V0KENTUl9IRURFTEVHLCBNSVNfREVMRUcpOworCWVsc2UKKwkJY3NyX2NsZWFy KENTUl9IRURFTEVHLCBNSVNfREVMRUcpOworCisJcmV0dXJuIFNCSV9TVUNDRVNTOworfQorCitz dGF0aWMgaW50IGt2bV9zYmlfZndmdF9nZXRfbWlzYWxpZ25lZF9kZWxlZ2F0aW9uKHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwKKwkJCQkJc3RydWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYsCisJ CQkJCXVuc2lnbmVkIGxvbmcgKnZhbHVlKQoreworCSp2YWx1ZSA9IChjc3JfcmVhZChDU1JfSEVE RUxFRykgJiBNSVNfREVMRUcpICE9IDA7CisKKwlyZXR1cm4gU0JJX1NVQ0NFU1M7Cit9CisKK3N0 YXRpYyBzdHJ1Y3Qga3ZtX3NiaV9md2Z0X2NvbmZpZyAqCitrdm1fc2JpX2Z3ZnRfZ2V0X2NvbmZp ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGVudW0gc2JpX2Z3ZnRfZmVhdHVyZV90IGZlYXR1cmUp Cit7CisJaW50IGkgPSAwOworCXN0cnVjdCBrdm1fc2JpX2Z3ZnQgKmZ3ZnQgPSB2Y3B1X3RvX2Z3 ZnQodmNwdSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgS1ZNX1NCSV9GV0ZUX0ZFQVRVUkVfQ09VTlQ7 IGkrKykgeworCQlpZiAoZndmdC0+Y29uZmlnc1tpXS5mZWF0dXJlLT5pZCA9PSBmZWF0dXJlKQor CQkJcmV0dXJuICZmd2Z0LT5jb25maWdzW2ldOworCX0KKworCXJldHVybiBOVUxMOworfQorCitz dGF0aWMgaW50IGt2bV9zYmlfZndmdF9zZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAorCQkJICAg IGVudW0gc2JpX2Z3ZnRfZmVhdHVyZV90IGZlYXR1cmUsCisJCQkgICAgdW5zaWduZWQgbG9uZyB2 YWx1ZSwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3Qga3ZtX3NiaV9md2Z0X2NvbmZp ZyAqY29uZiA9IGt2bV9zYmlfZndmdF9nZXRfY29uZmlnKHZjcHUsCisJCQkJCQkJCSAgIGZlYXR1 cmUpOworCWlmICghY29uZikKKwkJcmV0dXJuIFNCSV9FUlJfREVOSUVEOworCisJaWYgKChmbGFn cyAmIH5TQklfRldGVF9TRVRfRkxBR19MT0NLKSAhPSAwKQorCQlyZXR1cm4gU0JJX0VSUl9JTlZB TElEX1BBUkFNOworCisJaWYgKGNvbmYtPmZsYWdzICYgU0JJX0ZXRlRfU0VUX0ZMQUdfTE9DSykK KwkJcmV0dXJuIFNCSV9FUlJfREVOSUVEOworCisJY29uZi0+ZmxhZ3MgPSBmbGFnczsKKworCXJl dHVybiBjb25mLT5mZWF0dXJlLT5zZXQodmNwdSwgY29uZiwgdmFsdWUpOworfQorCitzdGF0aWMg aW50IGt2bV9zYmlfZndmdF9nZXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAorCQkJICAgIGVudW0g c2JpX2Z3ZnRfZmVhdHVyZV90IGZlYXR1cmUsCisJCQkgICAgdW5zaWduZWQgbG9uZyAqdmFsdWUp Cit7CisJc3RydWN0IGt2bV9zYmlfZndmdF9jb25maWcgKmNvbmYgPSBrdm1fc2JpX2Z3ZnRfZ2V0 X2NvbmZpZyh2Y3B1LAorCQkJCQkJCQkgICBmZWF0dXJlKTsKKwlpZiAoIWNvbmYpCisJCXJldHVy biBTQklfRVJSX0RFTklFRDsKKworCXJldHVybiBjb25mLT5mZWF0dXJlLT5nZXQodmNwdSwgY29u ZiwgdmFsdWUpOworfQorCitzdGF0aWMgaW50IGt2bV9zYmlfZXh0X2Z3ZnRfaGFuZGxlcihzdHJ1 Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4sCisJCQkJICAgIHN0cnVjdCBr dm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBr dm1fY3B1X2NvbnRleHQgKmNwID0gJnZjcHUtPmFyY2guZ3Vlc3RfY29udGV4dDsKKwl1bnNpZ25l ZCBsb25nIGZ1bmNpZCA9IGNwLT5hNjsKKworCXN3aXRjaCAoZnVuY2lkKSB7CisJY2FzZSBTQklf RVhUX0ZXRlRfU0VUOgorCQlyZXQgPSBrdm1fc2JpX2Z3ZnRfc2V0KHZjcHUsIGNwLT5hMCwgY3At PmExLCBjcC0+YTIpOworCQlicmVhazsKKwljYXNlIFNCSV9FWFRfRldGVF9HRVQ6CisJCXJldCA9 IGt2bV9zYmlfZndmdF9nZXQodmNwdSwgY3AtPmEwLCAmcmV0ZGF0YS0+b3V0X3ZhbCk7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXJldCA9IFNCSV9FUlJfTk9UX1NVUFBPUlRFRDsKKwkJYnJlYWs7 CisJfQorCisJcmV0ZGF0YS0+ZXJyX3ZhbCA9IHJldDsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGt2bV9zYmlfZndmdF9mZWF0dXJlIGZlYXR1cmVzW10gPSB7CisJewor CQkuaWQgPSBTQklfRldGVF9NSVNBTElHTkVEX0RFTEVHLAorCQkuc2V0ID0ga3ZtX3NiaV9md2Z0 X3NldF9taXNhbGlnbmVkX2RlbGVnYXRpb24sCisJCS5nZXQgPSBrdm1fc2JpX2Z3ZnRfZ2V0X21p c2FsaWduZWRfZGVsZWdhdGlvbiwKKwl9Cit9OworCitzdGF0aWNfYXNzZXJ0KEFSUkFZX1NJWkUo ZmVhdHVyZXMpID09IEtWTV9TQklfRldGVF9GRUFUVVJFX0NPVU5UKTsKKworCitzdGF0aWMgdW5z aWduZWQgbG9uZyBrdm1fc2JpX2V4dF9md2Z0X3Byb2JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK K3sKKwlzdHJ1Y3Qga3ZtX3NiaV9md2Z0ICpmd2Z0ID0gdmNwdV90b19md2Z0KHZjcHUpOworCWlu dCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmVhdHVyZXMpOyBpKyspCisJCWZ3 ZnQtPmNvbmZpZ3NbaV0uZmVhdHVyZSA9ICZmZWF0dXJlc1tpXTsKKworCXJldHVybiAxOworfQor Citjb25zdCBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX2V4dGVuc2lvbiB2Y3B1X3NiaV9leHRfZndmdCA9 IHsKKwkuZXh0aWRfc3RhcnQgPSBTQklfRVhUX0ZXRlQsCisJLmV4dGlkX2VuZCA9IFNCSV9FWFRf RldGVCwKKwkuaGFuZGxlciA9IGt2bV9zYmlfZXh0X2Z3ZnRfaGFuZGxlciwKKwkucHJvYmUgPSBr dm1fc2JpX2V4dF9md2Z0X3Byb2JlLAorfTsKLS0gCjIuNDMuMAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdAps aW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK