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 0D862C07545 for ; Tue, 14 Nov 2023 14:13:50 +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=1Xy31Mck8jw8NAYAE/eFXXGHj6ZkLJHV5ATkj3cOr2U=; b=iAnIb9rwaXhJIq ITvrC3DyxBQJiLoX1vCogM2B95GXkjGYmpy/I/O0QNyBMPkzYLZKILPe9pJtZmtZhdPjZmAJPU7We cYKrdgg0pgAXGMNpDGu5aEroUSOVWDr7mJgE1rSMzQb1sNLNpnjzQfDaI4zn0kOd95qzZ27pu2KPn rK6ERr7HN8fojSg7eJCjCst7MUCBwhdgL8d9A3cswatgAPs/AI/bjXr4Gw/ixfsmVSq7H4JbClkVw oMqZDctkTcF94z1YpKOp6X+0XMxOk0tuLF2Tbur+1+h/w5ngaJAJsqKJva6DZHvljf5ydpxeQ0gSf jlqy98887+gyQbEyCtpw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r2uAg-00G8sj-2j; Tue, 14 Nov 2023 14:13:42 +0000 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r2uAb-00G8nL-0f for linux-riscv@lists.infradead.org; Tue, 14 Nov 2023 14:13:39 +0000 Received: by mail-qk1-x736.google.com with SMTP id af79cd13be357-77bbe4702a1so4532985a.0 for ; Tue, 14 Nov 2023 06:13:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1699971214; x=1700576014; 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=SU/g700ZLyLiX8R4aH7M4U3AIKizV9KTngI03z4llSI=; b=tdnM5pfW79Gfeu6XEhsVIIBnZYjRLcFBma8V5G8AoviIuLLwRrBu0nTgKSguEnXmbj JknUTzkY84TdwsiJkKSEwuvB6o419cXQXuxN5jdjiH5sTGIwqsryHxkDUoD7nt7+rWSy UsNNDCMAUQp8PHCkjVnNVjrMhZQArh28WQ4zwdpkGpdHnohHS5rAlKF/pAO0BOdfpLp/ 1TBnzyrD8VqepzY8faofNo9pwll0hkBYoHtr0QinIwtfif/BPUAWK1kAqaFgrSV9uXCU 8zTWcYlOfafYh731zH/2lPWjAPlW5y8Ut9aQNFjM/HuXKrP3/ngTHKY6IXvpuGdHXkTT T40A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699971214; x=1700576014; 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=SU/g700ZLyLiX8R4aH7M4U3AIKizV9KTngI03z4llSI=; b=wT+YN9HFcA2FY/PduJwnz/hV98vKSM38yvKcaZ1is2jJcWy4fEXCJkHGvLXd1wDw9R QcxNBhHmKJ8X+VKmY5R/Lo82AQP4IFP58jPQz2YuQfYDV/OkjclFTPrELgrGV/XPiFG1 JNmqI22j3UeMzGvLQ3b9Lz+BW6jnOVSosBgkPZ64S/4tCRwQHh3ua1GZ4OH7ZisEJXjS geXX6f4UvwZSSyue4o3ZBOqP2uHLl5KmaylBA0hivAw+jTtL/Dzyd1SOX5TKg3FHqvf6 ds+cKZtwsLbLGNUemCVrPmBChm4g11rxCXu5vWw8NVv8cNJWyZVMVC97jpIZqdDtSUtl /2OQ== X-Gm-Message-State: AOJu0Yy7wJ9IBHCyxCZB/ru3+iqqdzO+WBzNtHQKA07SfB7bE7v85LUP qoETVstF+2sqbG63HqA5UGlaLei2SM84Au9GMx4FdA== X-Google-Smtp-Source: AGHT+IEsx2T25BKdVYtuC6/nOhv4dKk0otBx5lnACq1YF4ozL1VqFHzj8lfYhBmRkEJIwgc5CSdyeg== X-Received: by 2002:a05:620a:458b:b0:76e:f686:cad5 with SMTP id bp11-20020a05620a458b00b0076ef686cad5mr2470951qkb.5.1699971214316; Tue, 14 Nov 2023 06:13:34 -0800 (PST) Received: from carbon-x1.. ([12.186.190.2]) by smtp.gmail.com with ESMTPSA id m2-20020a05620a220200b00777611164c5sm2701263qkh.106.2023.11.14.06.13.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Nov 2023 06:13:33 -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 , Jerry Shih , Conor Dooley Subject: [PATCH v4 03/20] riscv: add ISA extension parsing for scalar crypto Date: Tue, 14 Nov 2023 09:12:39 -0500 Message-ID: <20231114141256.126749-4-cleger@rivosinc.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231114141256.126749-1-cleger@rivosinc.com> References: <20231114141256.126749-1-cleger@rivosinc.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231114_061337_245906_415354E8 X-CRM114-Status: GOOD ( 22.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-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+CkFja2VkLWJ5OiBDb25vciBEb29sZXkgPGNvbm9yLmRvb2xleUBt aWNyb2NoaXAuY29tPgotLS0KIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oIHwg ICA0ICstCiBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3Y2FwLmggICAgICB8ICAxMSArKysKIGFy Y2gvcmlzY3Yva2VybmVsL2NwdWZlYXR1cmUuYyAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKysr KysrKystLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDI0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5o IGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgKaW5kZXggYTQxOGMzMTEyY2Q2 Li5mYmRkZThiOGE0N2UgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3B1ZmVh dHVyZS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZS5oCkBAIC01OSw2 ICs1OSw4IEBAIHN0cnVjdCByaXNjdl9pc2FfZXh0X2RhdGEgewogCWNvbnN0IHVuc2lnbmVkIGlu dCBpZDsKIAljb25zdCBjaGFyICpuYW1lOwogCWNvbnN0IGNoYXIgKnByb3BlcnR5OworCWNvbnN0 IHVuc2lnbmVkIGludCAqc3Vic2V0X2V4dF9pZHM7CisJY29uc3QgdW5zaWduZWQgaW50IHN1YnNl dF9leHRfc2l6ZTsKIH07CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgcmlzY3ZfaXNhX2V4dF9kYXRh IHJpc2N2X2lzYV9leHRbXTsKQEAgLTY3LDcgKzY5LDcgQEAgZXh0ZXJuIGJvb2wgcmlzY3ZfaXNh X2ZhbGxiYWNrOwogCiB1bnNpZ25lZCBsb25nIHJpc2N2X2lzYV9leHRlbnNpb25fYmFzZShjb25z dCB1bnNpZ25lZCBsb25nICppc2FfYml0bWFwKTsKIAotYm9vbCBfX3Jpc2N2X2lzYV9leHRlbnNp b25fYXZhaWxhYmxlKGNvbnN0IHVuc2lnbmVkIGxvbmcgKmlzYV9iaXRtYXAsIGludCBiaXQpOwor Ym9vbCBfX3Jpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKGNvbnN0IHVuc2lnbmVkIGxvbmcg KmlzYV9iaXRtYXAsIHVuc2lnbmVkIGludCBiaXQpOwogI2RlZmluZSByaXNjdl9pc2FfZXh0ZW5z aW9uX2F2YWlsYWJsZShpc2FfYml0bWFwLCBleHQpCVwKIAlfX3Jpc2N2X2lzYV9leHRlbnNpb25f YXZhaWxhYmxlKGlzYV9iaXRtYXAsIFJJU0NWX0lTQV9FWFRfIyNleHQpCiAKZGlmZiAtLWdpdCBh L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vaHdjYXAuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v aHdjYXAuaAppbmRleCBhZmE5YWJjMWEwYjAuLmIwODU3YzY0YmY2ZSAxMDA2NDQKLS0tIGEvYXJj aC9yaXNjdi9pbmNsdWRlL2FzbS9od2NhcC5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20v aHdjYXAuaApAQCAtNTgsOCArNTgsMTkgQEAKICNkZWZpbmUgUklTQ1ZfSVNBX0VYVF9TTVNUQVRF RU4JCTQzCiAjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWklDT05ECQk0NAogI2RlZmluZSBSSVNDVl9J U0FfRVhUX1pCQwkJNDUKKyNkZWZpbmUgUklTQ1ZfSVNBX0VYVF9aQktCCQk0NgorI2RlZmluZSBS SVNDVl9JU0FfRVhUX1pCS0MJCTQ3CisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWkJLWAkJNDgKKyNk ZWZpbmUgUklTQ1ZfSVNBX0VYVF9aS05ECQk0OQorI2RlZmluZSBSSVNDVl9JU0FfRVhUX1pLTkUJ CTUwCisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWktOSAkJNTEKKyNkZWZpbmUgUklTQ1ZfSVNBX0VY VF9aS1IJCTUyCisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfWktTRUQJCTUzCisjZGVmaW5lIFJJU0NW X0lTQV9FWFRfWktTSAkJNTQKKyNkZWZpbmUgUklTQ1ZfSVNBX0VYVF9aS1QJCTU1CiAKICNkZWZp bmUgUklTQ1ZfSVNBX0VYVF9NQVgJCTY0CisjZGVmaW5lIFJJU0NWX0lTQV9FWFRfSU5WQUxJRAkJ VTMyX01BWAogCiAjaWZkZWYgQ09ORklHX1JJU0NWX01fTU9ERQogI2RlZmluZSBSSVNDVl9JU0Ff RVhUX1N4QUlBCQlSSVNDVl9JU0FfRVhUX1NNQUlBCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tl cm5lbC9jcHVmZWF0dXJlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKaW5kZXgg ZWFlMTRkYWE1YTc1Li5hMjg3MWJjZWFhZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVs L2NwdWZlYXR1cmUuYworKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9jcHVmZWF0dXJlLmMKQEAgLTcw LDcgKzcwLDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocmlzY3ZfaXNhX2V4dGVuc2lvbl9iYXNlKTsK ICAqCiAgKiBOT1RFOiBJZiBpc2FfYml0bWFwIGlzIE5VTEwgdGhlbiBIb3N0IElTQSBiaXRtYXAg d2lsbCBiZSB1c2VkLgogICovCi1ib29sIF9fcmlzY3ZfaXNhX2V4dGVuc2lvbl9hdmFpbGFibGUo Y29uc3QgdW5zaWduZWQgbG9uZyAqaXNhX2JpdG1hcCwgaW50IGJpdCkKK2Jvb2wgX19yaXNjdl9p c2FfZXh0ZW5zaW9uX2F2YWlsYWJsZShjb25zdCB1bnNpZ25lZCBsb25nICppc2FfYml0bWFwLCB1 bnNpZ25lZCBpbnQgYml0KQogewogCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmJtYXAgPSAoaXNhX2Jp dG1hcCkgPyBpc2FfYml0bWFwIDogcmlzY3ZfaXNhOwogCkBAIC0xMDIsMTcgKzEwMiw1MyBAQCBz dGF0aWMgYm9vbCByaXNjdl9pc2FfZXh0ZW5zaW9uX2NoZWNrKGludCBpZCkKIAkJCXJldHVybiBm YWxzZTsKIAkJfQogCQlyZXR1cm4gdHJ1ZTsKKwljYXNlIFJJU0NWX0lTQV9FWFRfSU5WQUxJRDoK KwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCXJldHVybiB0cnVlOwogfQogCi0jZGVmaW5lIF9fUklT Q1ZfSVNBX0VYVF9EQVRBKF9uYW1lLCBfaWQpIHsJXAotCS5uYW1lID0gI19uYW1lLAkJCQlcCi0J LnByb3BlcnR5ID0gI19uYW1lLAkJCVwKLQkuaWQgPSBfaWQsCQkJCVwKKyNkZWZpbmUgX1JJU0NW X0lTQV9FWFRfREFUQShfbmFtZSwgX2lkLCBfc3Vic2V0X2V4dHMsIF9zdWJzZXRfZXh0c19zaXpl KSB7CVwKKwkubmFtZSA9ICNfbmFtZSwJCQkJCQkJCVwKKwkucHJvcGVydHkgPSAjX25hbWUsCQkJ CQkJCVwKKwkuaWQgPSBfaWQsCQkJCQkJCQlcCisJLnN1YnNldF9leHRfaWRzID0gX3N1YnNldF9l eHRzLAkJCQkJCVwKKwkuc3Vic2V0X2V4dF9zaXplID0gX3N1YnNldF9leHRzX3NpemUJCQkJCVwK IH0KIAorI2RlZmluZSBfX1JJU0NWX0lTQV9FWFRfREFUQShfbmFtZSwgX2lkKSBfUklTQ1ZfSVNB X0VYVF9EQVRBKF9uYW1lLCBfaWQsIE5VTEwsIDApCisKKy8qIFVzZWQgdG8gZGVjbGFyZSBwdXJl ICJsYXNzbyIgZXh0ZW5zaW9uIChaayBmb3IgaW5zdGFuY2UpICovCisjZGVmaW5lIF9fUklTQ1Zf SVNBX0VYVF9CVU5ETEUoX25hbWUsIF9idW5kbGVkX2V4dHMpIFwKKwlfUklTQ1ZfSVNBX0VYVF9E QVRBKF9uYW1lLCBSSVNDVl9JU0FfRVhUX0lOVkFMSUQsIF9idW5kbGVkX2V4dHMsIEFSUkFZX1NJ WkUoX2J1bmRsZWRfZXh0cykpCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcmlzY3Zfemtf YnVuZGxlZF9leHRzW10gPSB7CisJUklTQ1ZfSVNBX0VYVF9aQktCLAorCVJJU0NWX0lTQV9FWFRf WkJLQywKKwlSSVNDVl9JU0FfRVhUX1pCS1gsCisJUklTQ1ZfSVNBX0VYVF9aS05ELAorCVJJU0NW X0lTQV9FWFRfWktORSwKKwlSSVNDVl9JU0FfRVhUX1pLUiwKKwlSSVNDVl9JU0FfRVhUX1pLVCwK K307CisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcmlzY3ZfemtuX2J1bmRsZWRfZXh0c1td ID0geworCVJJU0NWX0lTQV9FWFRfWkJLQiwKKwlSSVNDVl9JU0FfRVhUX1pCS0MsCisJUklTQ1Zf SVNBX0VYVF9aQktYLAorCVJJU0NWX0lTQV9FWFRfWktORCwKKwlSSVNDVl9JU0FfRVhUX1pLTkUs CisJUklTQ1ZfSVNBX0VYVF9aS05ILAorfTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBy aXNjdl96a3NfYnVuZGxlZF9leHRzW10gPSB7CisJUklTQ1ZfSVNBX0VYVF9aQktCLAorCVJJU0NW X0lTQV9FWFRfWkJLQywKKwlSSVNDVl9JU0FfRVhUX1pLU0VELAorCVJJU0NWX0lTQV9FWFRfWktT SAorfTsKKwogLyoKICAqIFRoZSBjYW5vbmljYWwgb3JkZXIgb2YgSVNBIGV4dGVuc2lvbiBuYW1l cyBpbiB0aGUgSVNBIHN0cmluZyBpcyBkZWZpbmVkIGluCiAgKiBjaGFwdGVyIDI3IG9mIHRoZSB1 bnByaXZpbGVnZWQgc3BlY2lmaWNhdGlvbi4KQEAgLTE3Nyw3ICsyMTMsMjAgQEAgY29uc3Qgc3Ry dWN0IHJpc2N2X2lzYV9leHRfZGF0YSByaXNjdl9pc2FfZXh0W10gPSB7CiAJX19SSVNDVl9JU0Ff RVhUX0RBVEEoemJhLCBSSVNDVl9JU0FfRVhUX1pCQSksCiAJX19SSVNDVl9JU0FfRVhUX0RBVEEo emJiLCBSSVNDVl9JU0FfRVhUX1pCQiksCiAJX19SSVNDVl9JU0FfRVhUX0RBVEEoemJjLCBSSVND Vl9JU0FfRVhUX1pCQyksCisJX19SSVNDVl9JU0FfRVhUX0RBVEEoemJrYiwgUklTQ1ZfSVNBX0VY VF9aQktCKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFUQSh6YmtjLCBSSVNDVl9JU0FfRVhUX1pCS0Mp LAorCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHpia3gsIFJJU0NWX0lTQV9FWFRfWkJLWCksCiAJX19S SVNDVl9JU0FfRVhUX0RBVEEoemJzLCBSSVNDVl9JU0FfRVhUX1pCUyksCisJX19SSVNDVl9JU0Ff RVhUX0JVTkRMRSh6aywgcmlzY3ZfemtfYnVuZGxlZF9leHRzKSwKKwlfX1JJU0NWX0lTQV9FWFRf QlVORExFKHprbiwgcmlzY3ZfemtuX2J1bmRsZWRfZXh0cyksCisJX19SSVNDVl9JU0FfRVhUX0RB VEEoemtuZCwgUklTQ1ZfSVNBX0VYVF9aS05EKSwKKwlfX1JJU0NWX0lTQV9FWFRfREFUQSh6a25l LCBSSVNDVl9JU0FfRVhUX1pLTkUpLAorCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHprbmgsIFJJU0NW X0lTQV9FWFRfWktOSCksCisJX19SSVNDVl9JU0FfRVhUX0RBVEEoemtyLCBSSVNDVl9JU0FfRVhU X1pLUiksCisJX19SSVNDVl9JU0FfRVhUX0JVTkRMRSh6a3MsIHJpc2N2X3prc19idW5kbGVkX2V4 dHMpLAorCV9fUklTQ1ZfSVNBX0VYVF9EQVRBKHprdCwgUklTQ1ZfSVNBX0VYVF9aS1QpLAorCV9f UklTQ1ZfSVNBX0VYVF9EQVRBKHprc2VkLCBSSVNDVl9JU0FfRVhUX1pLU0VEKSwKKwlfX1JJU0NW X0lTQV9FWFRfREFUQSh6a3NoLCBSSVNDVl9JU0FfRVhUX1pLU0gpLAogCV9fUklTQ1ZfSVNBX0VY VF9EQVRBKHNtYWlhLCBSSVNDVl9JU0FfRVhUX1NNQUlBKSwKIAlfX1JJU0NWX0lTQV9FWFRfREFU QShzbXN0YXRlZW4sIFJJU0NWX0lTQV9FWFRfU01TVEFURUVOKSwKIAlfX1JJU0NWX0lTQV9FWFRf REFUQShzc2FpYSwgUklTQ1ZfSVNBX0VYVF9TU0FJQSksCkBAIC0xOTAsNiArMjM5LDMxIEBAIGNv bnN0IHN0cnVjdCByaXNjdl9pc2FfZXh0X2RhdGEgcmlzY3ZfaXNhX2V4dFtdID0gewogCiBjb25z dCBzaXplX3QgcmlzY3ZfaXNhX2V4dF9jb3VudCA9IEFSUkFZX1NJWkUocmlzY3ZfaXNhX2V4dCk7 CiAKK3N0YXRpYyB2b2lkIF9faW5pdCBtYXRjaF9pc2FfZXh0KGNvbnN0IHN0cnVjdCByaXNjdl9p c2FfZXh0X2RhdGEgKmV4dCwgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkgY29uc3QgY2hhciAqbmFt ZV9lbmQsIHN0cnVjdCByaXNjdl9pc2FpbmZvICppc2FpbmZvKQoreworCWlmICgobmFtZV9lbmQg LSBuYW1lID09IHN0cmxlbihleHQtPm5hbWUpKSAmJgorCSAgICAgIXN0cm5jYXNlY21wKG5hbWUs IGV4dC0+bmFtZSwgbmFtZV9lbmQgLSBuYW1lKSkgeworCQkvKgorCQkgKiBJZiB0aGlzIGlzIGEg YnVuZGxlLCBlbmFibGUgYWxsIHRoZSBJU0EgZXh0ZW5zaW9ucyB0aGF0CisJCSAqIGNvbXByaXNl IHRoZSBidW5kbGUuCisJCSAqLworCQlpZiAoZXh0LT5zdWJzZXRfZXh0X3NpemUpIHsKKwkJCWZv ciAoaW50IGkgPSAwOyBpIDwgZXh0LT5zdWJzZXRfZXh0X3NpemU7IGkrKykgeworCQkJCWlmIChy aXNjdl9pc2FfZXh0ZW5zaW9uX2NoZWNrKGV4dC0+c3Vic2V0X2V4dF9pZHNbaV0pKQorCQkJCQlz ZXRfYml0KGV4dC0+c3Vic2V0X2V4dF9pZHNbaV0sIGlzYWluZm8tPmlzYSk7CisJCQl9CisJCX0K KworCQkvKgorCQkgKiBUaGlzIGlzIHZhbGlkIGV2ZW4gZm9yIGJ1bmRsZSBleHRlbnNpb25zIHdo aWNoIHVzZXMgdGhlIFJJU0NWX0lTQV9FWFRfSU5WQUxJRCBpZAorCQkgKiAocmVqZWN0ZWQgYnkg cmlzY3ZfaXNhX2V4dGVuc2lvbl9jaGVjaygpKS4KKwkJICovCisJCWlmIChyaXNjdl9pc2FfZXh0 ZW5zaW9uX2NoZWNrKGV4dC0+aWQpKQorCQkJc2V0X2JpdChleHQtPmlkLCBpc2FpbmZvLT5pc2Ep OworCX0KK30KKwogc3RhdGljIHZvaWQgX19pbml0IHJpc2N2X3BhcnNlX2lzYV9zdHJpbmcodW5z aWduZWQgbG9uZyAqdGhpc19od2NhcCwgc3RydWN0IHJpc2N2X2lzYWluZm8gKmlzYWluZm8sCiAJ CQkJCSAgdW5zaWduZWQgbG9uZyAqaXNhMmh3Y2FwLCBjb25zdCBjaGFyICppc2EpCiB7CkBAIC0z MjIsMTQgKzM5Niw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByaXNjdl9wYXJzZV9pc2Ffc3RyaW5n KHVuc2lnbmVkIGxvbmcgKnRoaXNfaHdjYXAsIHN0cnVjdCByaXNjCiAJCWlmICgqaXNhID09ICdf JykKIAkJCSsraXNhOwogCi0jZGVmaW5lIFNFVF9JU0FfRVhUX01BUChuYW1lLCBiaXQpCQkJCQkJ XAotCQlkbyB7CQkJCQkJCQlcCi0JCQlpZiAoKGV4dF9lbmQgLSBleHQgPT0gc3RybGVuKG5hbWUp KSAmJgkJCVwKLQkJCSAgICAgIXN0cm5jYXNlY21wKGV4dCwgbmFtZSwgc3RybGVuKG5hbWUpKSAm JgkJXAotCQkJICAgICByaXNjdl9pc2FfZXh0ZW5zaW9uX2NoZWNrKGJpdCkpCQkJXAotCQkJCXNl dF9iaXQoYml0LCBpc2FpbmZvLT5pc2EpOwkJCVwKLQkJfSB3aGlsZSAoZmFsc2UpCQkJCQkJCVwK LQogCQlpZiAodW5saWtlbHkoZXh0X2VycikpCiAJCQljb250aW51ZTsKIAkJaWYgKCFleHRfbG9u ZykgewpAQCAtMzQxLDEwICs0MDcsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcmlzY3ZfcGFyc2Vf aXNhX3N0cmluZyh1bnNpZ25lZCBsb25nICp0aGlzX2h3Y2FwLCBzdHJ1Y3QgcmlzYwogCQkJfQog CQl9IGVsc2UgewogCQkJZm9yIChpbnQgaSA9IDA7IGkgPCByaXNjdl9pc2FfZXh0X2NvdW50OyBp KyspCi0JCQkJU0VUX0lTQV9FWFRfTUFQKHJpc2N2X2lzYV9leHRbaV0ubmFtZSwKLQkJCQkJCXJp c2N2X2lzYV9leHRbaV0uaWQpOworCQkJCW1hdGNoX2lzYV9leHQoJnJpc2N2X2lzYV9leHRbaV0s IGV4dCwgZXh0X2VuZCwgaXNhaW5mbyk7CiAJCX0KLSN1bmRlZiBTRVRfSVNBX0VYVF9NQVAKIAl9 CiB9CiAKQEAgLTQ0MywxOCArNTA3LDI2IEBAIHN0YXRpYyBpbnQgX19pbml0IHJpc2N2X2ZpbGxf aHdjYXBfZnJvbV9leHRfbGlzdCh1bnNpZ25lZCBsb25nICppc2EyaHdjYXApCiAJCX0KIAogCQlm b3IgKGludCBpID0gMDsgaSA8IHJpc2N2X2lzYV9leHRfY291bnQ7IGkrKykgeworCQkJY29uc3Qg c3RydWN0IHJpc2N2X2lzYV9leHRfZGF0YSAqZXh0ID0gJnJpc2N2X2lzYV9leHRbaV07CisKIAkJ CWlmIChvZl9wcm9wZXJ0eV9tYXRjaF9zdHJpbmcoY3B1X25vZGUsICJyaXNjdixpc2EtZXh0ZW5z aW9ucyIsCi0JCQkJCQkgICAgIHJpc2N2X2lzYV9leHRbaV0ucHJvcGVydHkpIDwgMCkKKwkJCQkJ CSAgICAgZXh0LT5wcm9wZXJ0eSkgPCAwKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoIXJpc2N2 X2lzYV9leHRlbnNpb25fY2hlY2socmlzY3ZfaXNhX2V4dFtpXS5pZCkpCi0JCQkJY29udGludWU7 CisJCQlpZiAoZXh0LT5zdWJzZXRfZXh0X3NpemUpIHsKKwkJCQlmb3IgKGludCBqID0gMDsgaiA8 IGV4dC0+c3Vic2V0X2V4dF9zaXplOyBqKyspIHsKKwkJCQkJaWYgKHJpc2N2X2lzYV9leHRlbnNp b25fY2hlY2soZXh0LT5zdWJzZXRfZXh0X2lkc1tpXSkpCisJCQkJCQlzZXRfYml0KGV4dC0+c3Vi c2V0X2V4dF9pZHNbal0sIGlzYWluZm8tPmlzYSk7CisJCQkJfQorCQkJfQogCi0JCQkvKiBPbmx5 IHNpbmdsZSBsZXR0ZXIgZXh0ZW5zaW9ucyBnZXQgc2V0IGluIGh3Y2FwICovCi0JCQlpZiAoc3Ry bmxlbihyaXNjdl9pc2FfZXh0W2ldLm5hbWUsIDIpID09IDEpCi0JCQkJdGhpc19od2NhcCB8PSBp c2EyaHdjYXBbcmlzY3ZfaXNhX2V4dFtpXS5pZF07CisJCQlpZiAocmlzY3ZfaXNhX2V4dGVuc2lv bl9jaGVjayhleHQtPmlkKSkgeworCQkJCXNldF9iaXQoZXh0LT5pZCwgaXNhaW5mby0+aXNhKTsK IAotCQkJc2V0X2JpdChyaXNjdl9pc2FfZXh0W2ldLmlkLCBpc2FpbmZvLT5pc2EpOworCQkJCS8q IE9ubHkgc2luZ2xlIGxldHRlciBleHRlbnNpb25zIGdldCBzZXQgaW4gaHdjYXAgKi8KKwkJCQlp ZiAoc3RybmxlbihyaXNjdl9pc2FfZXh0W2ldLm5hbWUsIDIpID09IDEpCisJCQkJCXRoaXNfaHdj YXAgfD0gaXNhMmh3Y2FwW3Jpc2N2X2lzYV9leHRbaV0uaWRdOworCQkJfQogCQl9CiAKIAkJb2Zf bm9kZV9wdXQoY3B1X25vZGUpOwotLSAKMi40Mi4wCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJp c2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1yaXNjdgo=