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 335F6C4167D for ; Tue, 7 Nov 2023 10:56:15 +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=0EC27xNSACkGOPT77PkZXzYarW6bctF6ZV5oOPHaTS8=; b=IfbzAkSxYE+uRR ydsNPdjNunkCqsw350JFeYNpFF2MjCBAZvjS96xxfLGGgRZZMr/lyiPwglv/ViTsEn4FaWSSpcfie pkNB8qAQg1wnoRfntVItq1EaMpjYJrKmIcjn3/XRxF3N10qi+dYZ4v/4uxfwOlIcZMyWx1jI6f8sS 8m/IEnZhrRVKRhBmEfExSaqg7JnQelilbYoVs9XzBxeWSPERLljW+PbVLFF3wIdor6q6hDSqWKufF SRX9GY78+h7H00NNloZOWLPjrh0YVrVRzfThz7eITKmSb9aDXbDMI9xu1gj5KoigkHcOVxzOW6zWf h7BxSzuHnHuP31kQwFcw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r0Jkg-00199G-28; Tue, 07 Nov 2023 10:56:10 +0000 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r0Jkc-00196r-29 for linux-riscv@lists.infradead.org; Tue, 07 Nov 2023 10:56:08 +0000 Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2c508e76eb4so10239551fa.0 for ; Tue, 07 Nov 2023 02:56:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1699354564; x=1699959364; 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=884mjVBUf/B5xVe7Mn+vWmHn9PLqi2rVnCfcoQ9sUfs=; b=G6/JC/QB/U7dxWcuV6kYL+tTMBYhMYtglyIh9ncYH2PUlwL+O2GEbfhlRNc8Zrft+3 ue5uMM1kfoVGUhdrtnhbXWZkKbFVoeCsWipmNVmVMfGhHIFulQunUpURUpkVcpmjQy6l l4UstwNhkXMZA6an6EdcBMXQ5HQ9Y39DpeJUnKCLF3NypaUIB5yZI442QRpFW9fmEnF3 DlAfZlselySJlGavEv0QgvOBRH980R1cnFOY2tpffTYe7j9Z/bxGmMbtdMsVtZixLlar mqj9WiNod8PFDgtUIKhoiURjCawdmJcmYvwfsOUoqghFL0Ngl7Xx8LRW27L49L5ffNhZ 0mSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699354564; x=1699959364; 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=884mjVBUf/B5xVe7Mn+vWmHn9PLqi2rVnCfcoQ9sUfs=; b=rMEYmuVxBHJ31R9JYFoeVeKEWWpQkRgX/xeeh8bK2R1Lnr2jEHRwZz3lJbJ6RWQCbR 9jgeq7pREkTeRAcPjcEPqfduWPSpIxPlINkjPFPIh+0juKe211kjqh7M0w/KTam4ADMQ n4YHwtKrqfdK+Cwu2DwerKg9WuvLME5bJ2Lr9wmbks/NE/LxQ6geVxfh75JRHLHykMnP jBn4pPC1OBb01EenVjdJFQ1o51ifQpPp4ALnnBfIBSCXFNxpAa9PTD0L3yOAcqrZJ4mq DgI5Q+xYlgt9PeFDsf6vewg1cUdiruGFXJUz/KNi8OWhcZrcDp6k8So+nRqKVzk53W2u KSLg== X-Gm-Message-State: AOJu0YwzG7zMnsBA7q+Nrv+bLLxMLuIJokEalmYaEnhgecMcnJfPeWeh SGyCn028PAPRmsHv5KFjfBcj6Afx2mWLX7BV7V0eow== X-Google-Smtp-Source: AGHT+IHXvy/dIISU7g85YMpjpEsVNYZwgjK7rpkPblu9B0vYp48kVxXXr9Iu/Jk+bQRG62RXowl+sg== X-Received: by 2002:a2e:7a19:0:b0:2c0:196c:e38f with SMTP id v25-20020a2e7a19000000b002c0196ce38fmr23575551ljc.1.1699354564263; Tue, 07 Nov 2023 02:56:04 -0800 (PST) Received: from carbon-x1.. ([2a01:e0a:999:a3a0:7db3:bdd9:4cab:2ee3]) by smtp.gmail.com with ESMTPSA id n30-20020a05600c501e00b00405442edc69sm15396853wmr.14.2023.11.07.02.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 02:56:03 -0800 (PST) From: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= To: linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Palmer Dabbelt , Paul Walmsley , Rob Herring , Krzysztof Kozlowski , Albert Ou , Jonathan Corbet , Andrew Jones , Evan Green , Conor Dooley , Samuel Ortiz , Conor Dooley Subject: [PATCH v3 03/20] riscv: add ISA extension parsing for scalar crypto Date: Tue, 7 Nov 2023 11:55:39 +0100 Message-ID: <20231107105556.517187-4-cleger@rivosinc.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231107105556.517187-1-cleger@rivosinc.com> References: <20231107105556.517187-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231107_025606_706023_0475916A X-CRM114-Status: GOOD ( 20.99 ) 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 RnJvbTogRXZhbiBHcmVlbiA8ZXZhbkByaXZvc2luYy5jb20+CgpUaGUgU2NhbGFyIENyeXB0byBz cGVjaWZpY2F0aW9uIGRlZmluZXMgWmsgYXMgYSBzaG9ydGhhbmQgZm9yIHRoZQpaa24sIFprciBh bmQgWmt0IGV4dGVuc2lvbnMuIFRoZSBzYW1lIGZvbGxvd3MgZm9yIGJvdGggWmtuLCBaa3MgYW5k IFpiaywKd2hpY2ggYXJlIGFsbCBzaG9ydGhhbmRzIGZvciB2YXJpb3VzIG90aGVyIGV4dGVuc2lv bnMuIFRoZSBkZXRhaWxlZApicmVha2Rvd24gY2FuIGJlIGZvdW5kIGluIHRoZWlyIGR0LWJpbmRp bmcgZW50cmllcy4KClNpbmNlIFprbiBhbHNvIGltcGxpZXMgdGhlIFpia2IsIFpia2MgYW5kIFpi a3ggZXh0ZW5zaW9ucywgc2ltcGx5IHBhc3NpbmcKInprIiB0aHJvdWdoIGEgRFQgc2hvdWxkIGVu YWJsZSBhbGwgb2YgWmJrYiwgWmJrYywgWmJreCwgWmtuLCBaa3IgYW5kIFprdC4KRm9yIGV4YW1w bGUsIHNldHRpbmcgdGhlICJyaXNjdixpc2EiIERUIHByb3BlcnR5IHRvICJydjY0aW1hZmRjX3pr IgpzaG91bGQgZ2VuZXJhdGUgdGhlIGZvbGxvd2luZyBjcHVpbmZvIG91dHB1dDoKInJ2NjRpbWFm ZGNfemljbnRyX3ppY3NyX3ppZmVuY2VpX3ppaHBtX3pia2JfemJrY196Ymt4X3prbmRfemtuZV96 a25oX3prcl96a3QiCgpyaXNjdl9pc2FfZXh0X2RhdGEgZ3Jvd3MgYSBwYWlyIG9mIG5ldyBtZW1i ZXJzLCB0byBwZXJtaXQgc2V0dGluZyB0aGUKcmVsZXZhbnQgYml0cyBmb3IgImJ1bmRsZWQiIGV4 dGVuc2lvbnMsIGJvdGggd2hpbGUgcGFyc2luZyB0aGUgSVNBIHN0cmluZwphbmQgdGhlIG5ldyBk ZWRpY2F0ZWQgZXh0ZW5zaW9uIHByb3BlcnRpZXMuCgpDby1kZXZlbG9wZWQtYnk6IENvbm9yIERv b2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbm9yIERv b2xleSA8Y29ub3IuZG9vbGV5QG1pY3JvY2hpcC5jb20+ClNpZ25lZC1vZmYtYnk6IEV2YW4gR3Jl ZW4gPGV2YW5Acml2b3NpbmMuY29tPgpTaWduZWQtb2ZmLWJ5OiBDbMOpbWVudCBMw6lnZXIgPGNs ZWdlckByaXZvc2luYy5jb20+Ci0tLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5oIHwg IDE2ICsrKystCiBhcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMgfCAxMTUgKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25z KCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2h3Y2FwLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmgKaW5kZXggNmZjNTFjMWIz NGNmLi42OWNjNjU5Y2Y2NWUgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdj YXAuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmgKQEAgLTYwLDggKzYwLDIw IEBACiAjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWklIUE0JCTQyCiAjZGVmaW5lIFJJU0NWX0lTQV9F WFRfU01TVEFURUVOCQk0MwogI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pJQ09ORAkJNDQKKyNkZWZp bmUgUklTQ1ZfSVNBX0VYVF9aQkMJCTQ1CisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWkJLQgkJNDYK KyNkZWZpbmUgUklTQ1ZfSVNBX0VYVF9aQktDCQk0NworI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pC S1gJCTQ4CisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWktORAkJNDkKKyNkZWZpbmUgUklTQ1ZfSVNB X0VYVF9aS05FCQk1MAorI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pLTkgJCTUxCisjZGVmaW5lIFJJ U0NWX0lTQV9FWFRfWktSCQk1MgorI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pLU0VECQk1MworI2Rl ZmluZSBSSVNDVl9JU0FfRVhUX1pLU0gJCTU0CisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWktUCQk1 NQogCiAjZGVmaW5lIFJJU0NWX0lTQV9FWFRfTUFYCQk2NAorI2RlZmluZSBSSVNDVl9JU0FfRVhU X0lOVkFMSUQJCVUzMl9NQVgKIAogI2lmZGVmIENPTkZJR19SSVNDVl9NX01PREUKICNkZWZpbmUg UklTQ1ZfSVNBX0VYVF9TeEFJQQkJUklTQ1ZfSVNBX0VYVF9TTUFJQQpAQCAtNzksNiArOTEsOCBA QCBzdHJ1Y3QgcmlzY3ZfaXNhX2V4dF9kYXRhIHsKIAljb25zdCB1bnNpZ25lZCBpbnQgaWQ7CiAJ Y29uc3QgY2hhciAqbmFtZTsKIAljb25zdCBjaGFyICpwcm9wZXJ0eTsKKwljb25zdCB1bnNpZ25l ZCBpbnQgKnN1YnNldF9leHRfaWRzOworCWNvbnN0IHVuc2lnbmVkIGludCBzdWJzZXRfZXh0X3Np emU7CiB9OwogCiBleHRlcm4gY29uc3Qgc3RydWN0IHJpc2N2X2lzYV9leHRfZGF0YSByaXNjdl9p c2FfZXh0W107CkBAIC04OSw3ICsxMDMsNyBAQCB1bnNpZ25lZCBsb25nIHJpc2N2X2lzYV9leHRl bnNpb25fYmFzZShjb25zdCB1bnNpZ25lZCBsb25nICppc2FfYml0bWFwKTsKIAogI2RlZmluZSBy aXNjdl9pc2FfZXh0ZW5zaW9uX21hc2soZXh0KSBCSVRfTUFTSyhSSVNDVl9JU0FfRVhUXyMjZXh0 KQogCi1ib29sIF9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFpbGFibGUoY29uc3QgdW5zaWduZWQg bG9uZyAqaXNhX2JpdG1hcCwgaW50IGJpdCk7Citib29sIF9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9h dmFpbGFibGUoY29uc3QgdW5zaWduZWQgbG9uZyAqaXNhX2JpdG1hcCwgdW5zaWduZWQgaW50IGJp dCk7CiAjZGVmaW5lIHJpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKGlzYV9iaXRtYXAsIGV4 dCkJXAogCV9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFpbGFibGUoaXNhX2JpdG1hcCwgUklTQ1Zf SVNBX0VYVF8jI2V4dCkKIApkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVy ZS5jIGIvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jCmluZGV4IGUzODAzODIyYWI1YS4u MGQ3ODc5MTI4OGRhIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMK KysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvY3B1ZmVhdHVyZS5jCkBAIC02OCw3ICs2OCw3IEBAIEVY UE9SVF9TWU1CT0xfR1BMKHJpc2N2X2lzYV9leHRlbnNpb25fYmFzZSk7CiAgKgogICogTk9URTog SWYgaXNhX2JpdG1hcCBpcyBOVUxMIHRoZW4gSG9zdCBJU0EgYml0bWFwIHdpbGwgYmUgdXNlZC4K ICAqLwotYm9vbCBfX3Jpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKGNvbnN0IHVuc2lnbmVk IGxvbmcgKmlzYV9iaXRtYXAsIGludCBiaXQpCitib29sIF9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9h dmFpbGFibGUoY29uc3QgdW5zaWduZWQgbG9uZyAqaXNhX2JpdG1hcCwgdW5zaWduZWQgaW50IGJp dCkKIHsKIAljb25zdCB1bnNpZ25lZCBsb25nICpibWFwID0gKGlzYV9iaXRtYXApID8gaXNhX2Jp dG1hcCA6IHJpc2N2X2lzYTsKIApAQCAtMTAwLDE3ICsxMDAsNTMgQEAgc3RhdGljIGJvb2wgcmlz Y3ZfaXNhX2V4dGVuc2lvbl9jaGVjayhpbnQgaWQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJCX0KIAkJ cmV0dXJuIHRydWU7CisJY2FzZSBSSVNDVl9JU0FfRVhUX0lOVkFMSUQ6CisJCXJldHVybiBmYWxz ZTsKIAl9CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotI2RlZmluZSBfX1JJU0NWX0lTQV9FWFRfREFU QShfbmFtZSwgX2lkKSB7CVwKLQkubmFtZSA9ICNfbmFtZSwJCQkJXAotCS5wcm9wZXJ0eSA9ICNf bmFtZSwJCQlcCi0JLmlkID0gX2lkLAkJCQlcCisjZGVmaW5lIF9SSVNDVl9JU0FfRVhUX0RBVEEo X25hbWUsIF9pZCwgX3N1YnNldF9leHRzLCBfc3Vic2V0X2V4dHNfc2l6ZSkgewlcCisJLm5hbWUg PSAjX25hbWUsCQkJCQkJCQlcCisJLnByb3BlcnR5ID0gI19uYW1lLAkJCQkJCQlcCisJLmlkID0g X2lkLAkJCQkJCQkJXAorCS5zdWJzZXRfZXh0X2lkcyA9IF9zdWJzZXRfZXh0cywJCQkJCQlcCisJ LnN1YnNldF9leHRfc2l6ZSA9IF9zdWJzZXRfZXh0c19zaXplCQkJCQlcCiB9CiAKKyNkZWZpbmUg X19SSVNDVl9JU0FfRVhUX0RBVEEoX25hbWUsIF9pZCkgX1JJU0NWX0lTQV9FWFRfREFUQShfbmFt ZSwgX2lkLCBOVUxMLCAwKQorCisvKiBVc2VkIHRvIGRlY2xhcmUgcHVyZSAibGFzc28iIGV4dGVu c2lvbiAoWmsgZm9yIGluc3RhbmNlKSAqLworI2RlZmluZSBfX1JJU0NWX0lTQV9FWFRfQlVORExF KF9uYW1lLCBfYnVuZGxlZF9leHRzKSBcCisJX1JJU0NWX0lTQV9FWFRfREFUQShfbmFtZSwgUklT Q1ZfSVNBX0VYVF9JTlZBTElELCBfYnVuZGxlZF9leHRzLCBBUlJBWV9TSVpFKF9idW5kbGVkX2V4 dHMpKQorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHJpc2N2X3prX2J1bmRsZWRfZXh0c1td ID0geworCVJJU0NWX0lTQV9FWFRfWkJLQiwKKwlSSVNDVl9JU0FfRVhUX1pCS0MsCisJUklTQ1Zf SVNBX0VYVF9aQktYLAorCVJJU0NWX0lTQV9FWFRfWktORCwKKwlSSVNDVl9JU0FfRVhUX1pLTkUs CisJUklTQ1ZfSVNBX0VYVF9aS1IsCisJUklTQ1ZfSVNBX0VYVF9aS1QsCit9OworCitzdGF0aWMg Y29uc3QgdW5zaWduZWQgaW50IHJpc2N2X3prbl9idW5kbGVkX2V4dHNbXSA9IHsKKwlSSVNDVl9J U0FfRVhUX1pCS0IsCisJUklTQ1ZfSVNBX0VYVF9aQktDLAorCVJJU0NWX0lTQV9FWFRfWkJLWCwK KwlSSVNDVl9JU0FfRVhUX1pLTkQsCisJUklTQ1ZfSVNBX0VYVF9aS05FLAorCVJJU0NWX0lTQV9F WFRfWktOSCwKK307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcmlzY3ZfemtzX2J1bmRs ZWRfZXh0c1tdID0geworCVJJU0NWX0lTQV9FWFRfWkJLQiwKKwlSSVNDVl9JU0FfRVhUX1pCS0Ms CisJUklTQ1ZfSVNBX0VYVF9aS1NFRCwKKwlSSVNDVl9JU0FfRVhUX1pLU0gKK307CisKIC8qCiAg KiBUaGUgY2Fub25pY2FsIG9yZGVyIG9mIElTQSBleHRlbnNpb24gbmFtZXMgaW4gdGhlIElTQSBz dHJpbmcgaXMgZGVmaW5lZCBpbgogICogY2hhcHRlciAyNyBvZiB0aGUgdW5wcml2aWxlZ2VkIHNw ZWNpZmljYXRpb24uCkBAIC0xNzQsNyArMjEwLDIxIEBAIGNvbnN0IHN0cnVjdCByaXNjdl9pc2Ff ZXh0X2RhdGEgcmlzY3ZfaXNhX2V4dFtdID0gewogCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHppaHBt LCBSSVNDVl9JU0FfRVhUX1pJSFBNKSwKIAlfX1JJU0NWX0lTQV9FWFRfREFUQSh6YmEsIFJJU0NW X0lTQV9FWFRfWkJBKSwKIAlfX1JJU0NWX0lTQV9FWFRfREFUQSh6YmIsIFJJU0NWX0lTQV9FWFRf WkJCKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFUQSh6YmMsIFJJU0NWX0lTQV9FWFRfWkJDKSwKKwlf X1JJU0NWX0lTQV9FWFRfREFUQSh6YmtiLCBSSVNDVl9JU0FfRVhUX1pCS0IpLAorCV9fUklTQ1Zf SVNBX0VYVF9EQVRBKHpia2MsIFJJU0NWX0lTQV9FWFRfWkJLQyksCisJX19SSVNDVl9JU0FfRVhU X0RBVEEoemJreCwgUklTQ1ZfSVNBX0VYVF9aQktYKSwKIAlfX1JJU0NWX0lTQV9FWFRfREFUQSh6 YnMsIFJJU0NWX0lTQV9FWFRfWkJTKSwKKwlfX1JJU0NWX0lTQV9FWFRfQlVORExFKHprLCByaXNj dl96a19idW5kbGVkX2V4dHMpLAorCV9fUklTQ1ZfSVNBX0VYVF9CVU5ETEUoemtuLCByaXNjdl96 a25fYnVuZGxlZF9leHRzKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFUQSh6a25kLCBSSVNDVl9JU0Ff RVhUX1pLTkQpLAorCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHprbmUsIFJJU0NWX0lTQV9FWFRfWktO RSksCisJX19SSVNDVl9JU0FfRVhUX0RBVEEoemtuaCwgUklTQ1ZfSVNBX0VYVF9aS05IKSwKKwlf X1JJU0NWX0lTQV9FWFRfREFUQSh6a3IsIFJJU0NWX0lTQV9FWFRfWktSKSwKKwlfX1JJU0NWX0lT QV9FWFRfQlVORExFKHprcywgcmlzY3ZfemtzX2J1bmRsZWRfZXh0cyksCisJX19SSVNDVl9JU0Ff RVhUX0RBVEEoemt0LCBSSVNDVl9JU0FfRVhUX1pLVCksCisJX19SSVNDVl9JU0FfRVhUX0RBVEEo emtzZWQsIFJJU0NWX0lTQV9FWFRfWktTRUQpLAorCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHprc2gs IFJJU0NWX0lTQV9FWFRfWktTSCksCiAJX19SSVNDVl9JU0FfRVhUX0RBVEEoc21haWEsIFJJU0NW X0lTQV9FWFRfU01BSUEpLAogCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHNtc3RhdGVlbiwgUklTQ1Zf SVNBX0VYVF9TTVNUQVRFRU4pLAogCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHNzYWlhLCBSSVNDVl9J U0FfRVhUX1NTQUlBKSwKQEAgLTE4Nyw2ICsyMzcsMjcgQEAgY29uc3Qgc3RydWN0IHJpc2N2X2lz YV9leHRfZGF0YSByaXNjdl9pc2FfZXh0W10gPSB7CiAKIGNvbnN0IHNpemVfdCByaXNjdl9pc2Ff ZXh0X2NvdW50ID0gQVJSQVlfU0laRShyaXNjdl9pc2FfZXh0KTsKIAorc3RhdGljIHZvaWQgX19p bml0IG1hdGNoX2lzYV9leHQoY29uc3Qgc3RydWN0IHJpc2N2X2lzYV9leHRfZGF0YSAqZXh0LCBj b25zdCBjaGFyICpuYW1lLAorCQkJCSBjb25zdCBjaGFyICpuYW1lX2VuZCwgc3RydWN0IHJpc2N2 X2lzYWluZm8gKmlzYWluZm8pCit7CisJaWYgKChuYW1lX2VuZCAtIG5hbWUgPT0gc3RybGVuKGV4 dC0+bmFtZSkpICYmCisJICAgICAhc3RybmNhc2VjbXAobmFtZSwgZXh0LT5uYW1lLCBuYW1lX2Vu ZCAtIG5hbWUpKSB7CisJCS8qCisJCSAqIElmIHRoaXMgaXMgYSBidW5kbGUsIGVuYWJsZSBhbGwg dGhlIElTQSBleHRlbnNpb25zIHRoYXQKKwkJICogY29tcHJpc2UgdGhlIGJ1bmRsZS4KKwkJICov CisJCWlmIChleHQtPnN1YnNldF9leHRfc2l6ZSkgeworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBl eHQtPnN1YnNldF9leHRfc2l6ZTsgaSsrKSB7CisJCQkJaWYgKHJpc2N2X2lzYV9leHRlbnNpb25f Y2hlY2soZXh0LT5zdWJzZXRfZXh0X2lkc1tpXSkpCisJCQkJCXNldF9iaXQoZXh0LT5zdWJzZXRf ZXh0X2lkc1tpXSwgaXNhaW5mby0+aXNhKTsKKwkJCX0KKwkJfQorCisJCWlmIChyaXNjdl9pc2Ff ZXh0ZW5zaW9uX2NoZWNrKGV4dC0+aWQpKQorCQkJc2V0X2JpdChleHQtPmlkLCBpc2FpbmZvLT5p c2EpOworCX0KK30KKwogc3RhdGljIHZvaWQgX19pbml0IHJpc2N2X3BhcnNlX2lzYV9zdHJpbmco dW5zaWduZWQgbG9uZyAqdGhpc19od2NhcCwgc3RydWN0IHJpc2N2X2lzYWluZm8gKmlzYWluZm8s CiAJCQkJCSAgdW5zaWduZWQgbG9uZyAqaXNhMmh3Y2FwLCBjb25zdCBjaGFyICppc2EpCiB7CkBA IC0zMTgsMTQgKzM4OSw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByaXNjdl9wYXJzZV9pc2Ffc3Ry aW5nKHVuc2lnbmVkIGxvbmcgKnRoaXNfaHdjYXAsIHN0cnVjdCByaXNjCiAJCWlmICgqaXNhID09 ICdfJykKIAkJCSsraXNhOwogCi0jZGVmaW5lIFNFVF9JU0FfRVhUX01BUChuYW1lLCBiaXQpCQkJ CQkJXAotCQlkbyB7CQkJCQkJCQlcCi0JCQlpZiAoKGV4dF9lbmQgLSBleHQgPT0gc3RybGVuKG5h bWUpKSAmJgkJCVwKLQkJCSAgICAgIXN0cm5jYXNlY21wKGV4dCwgbmFtZSwgc3RybGVuKG5hbWUp KSAmJgkJXAotCQkJICAgICByaXNjdl9pc2FfZXh0ZW5zaW9uX2NoZWNrKGJpdCkpCQkJXAotCQkJ CXNldF9iaXQoYml0LCBpc2FpbmZvLT5pc2EpOwkJCVwKLQkJfSB3aGlsZSAoZmFsc2UpCQkJCQkJ CVwKLQogCQlpZiAodW5saWtlbHkoZXh0X2VycikpCiAJCQljb250aW51ZTsKIAkJaWYgKCFleHRf bG9uZykgewpAQCAtMzM3LDEwICs0MDAsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcmlzY3ZfcGFy c2VfaXNhX3N0cmluZyh1bnNpZ25lZCBsb25nICp0aGlzX2h3Y2FwLCBzdHJ1Y3QgcmlzYwogCQkJ fQogCQl9IGVsc2UgewogCQkJZm9yIChpbnQgaSA9IDA7IGkgPCByaXNjdl9pc2FfZXh0X2NvdW50 OyBpKyspCi0JCQkJU0VUX0lTQV9FWFRfTUFQKHJpc2N2X2lzYV9leHRbaV0ubmFtZSwKLQkJCQkJ CXJpc2N2X2lzYV9leHRbaV0uaWQpOworCQkJCW1hdGNoX2lzYV9leHQoJnJpc2N2X2lzYV9leHRb aV0sIGV4dCwgZXh0X2VuZCwgaXNhaW5mbyk7CiAJCX0KLSN1bmRlZiBTRVRfSVNBX0VYVF9NQVAK IAl9CiB9CiAKQEAgLTQzOSwxOCArNTAwLDI2IEBAIHN0YXRpYyBpbnQgX19pbml0IHJpc2N2X2Zp bGxfaHdjYXBfZnJvbV9leHRfbGlzdCh1bnNpZ25lZCBsb25nICppc2EyaHdjYXApCiAJCX0KIAog CQlmb3IgKGludCBpID0gMDsgaSA8IHJpc2N2X2lzYV9leHRfY291bnQ7IGkrKykgeworCQkJY29u c3Qgc3RydWN0IHJpc2N2X2lzYV9leHRfZGF0YSBleHQgPSByaXNjdl9pc2FfZXh0W2ldOworCiAJ CQlpZiAob2ZfcHJvcGVydHlfbWF0Y2hfc3RyaW5nKGNwdV9ub2RlLCAicmlzY3YsaXNhLWV4dGVu c2lvbnMiLAotCQkJCQkJICAgICByaXNjdl9pc2FfZXh0W2ldLnByb3BlcnR5KSA8IDApCisJCQkJ CQkgICAgIGV4dC5wcm9wZXJ0eSkgPCAwKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoIXJpc2N2 X2lzYV9leHRlbnNpb25fY2hlY2socmlzY3ZfaXNhX2V4dFtpXS5pZCkpCi0JCQkJY29udGludWU7 CisJCQlpZiAoZXh0LnN1YnNldF9leHRfc2l6ZSkgeworCQkJCWZvciAoaW50IGogPSAwOyBqIDwg ZXh0LnN1YnNldF9leHRfc2l6ZTsgaisrKSB7CisJCQkJCWlmIChyaXNjdl9pc2FfZXh0ZW5zaW9u X2NoZWNrKGV4dC5zdWJzZXRfZXh0X2lkc1tpXSkpCisJCQkJCQlzZXRfYml0KGV4dC5zdWJzZXRf ZXh0X2lkc1tqXSwgaXNhaW5mby0+aXNhKTsKKwkJCQl9CisJCQl9CiAKLQkJCS8qIE9ubHkgc2lu Z2xlIGxldHRlciBleHRlbnNpb25zIGdldCBzZXQgaW4gaHdjYXAgKi8KLQkJCWlmIChzdHJubGVu KHJpc2N2X2lzYV9leHRbaV0ubmFtZSwgMikgPT0gMSkKLQkJCQl0aGlzX2h3Y2FwIHw9IGlzYTJo d2NhcFtyaXNjdl9pc2FfZXh0W2ldLmlkXTsKKwkJCWlmIChyaXNjdl9pc2FfZXh0ZW5zaW9uX2No ZWNrKGV4dC5pZCkpIHsKKwkJCQlzZXRfYml0KGV4dC5pZCwgaXNhaW5mby0+aXNhKTsKIAotCQkJ c2V0X2JpdChyaXNjdl9pc2FfZXh0W2ldLmlkLCBpc2FpbmZvLT5pc2EpOworCQkJCS8qIE9ubHkg c2luZ2xlIGxldHRlciBleHRlbnNpb25zIGdldCBzZXQgaW4gaHdjYXAgKi8KKwkJCQlpZiAoc3Ry bmxlbihyaXNjdl9pc2FfZXh0W2ldLm5hbWUsIDIpID09IDEpCisJCQkJCXRoaXNfaHdjYXAgfD0g aXNhMmh3Y2FwW3Jpc2N2X2lzYV9leHRbaV0uaWRdOworCQkJfQogCQl9CiAKIAkJb2Zfbm9kZV9w dXQoY3B1X25vZGUpOwotLSAKMi40Mi4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1yaXNjdgo=