From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 46C862DE1E1; Tue, 17 Jun 2025 12:21:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750162915; cv=none; b=LLbFe90Sva4/702kTYWYaT2hyd3lNl4DkZunch+KbSIcGzdxZJ3kwo7njA9zdDmWkzMjzWgFqylyTyDeNPKoivJjg8OGBoiTHRl8e+1pPFqTXhzElcUTuRdAauxkNqx9jjCHmuyj9SGHBo2FcHtvdQhgttbSmeqTLa9MH7Lm9Oo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750162915; c=relaxed/simple; bh=LfNxyhUN2JsWTRujKmyyweoPVwm/To5NK4yIewPAdQA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=OwGyk/I2TFnK1TPgh/D16QNYeEdswIstPl4uZfx9QrpvpofJl52uSGrD2uwBHdkYNbyki3/+qGkqzbDKimI1JBe7SRgh34t7psI2nVSYeyYFdtWppnqQdz3LwPbGBj6/Jx4OtbA5JjdwFoLgYPN5M2s/Mork7tV90Hg9VnNb+KU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j2uHXI4o; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j2uHXI4o" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2870EC4CEE3; Tue, 17 Jun 2025 12:21:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750162914; bh=LfNxyhUN2JsWTRujKmyyweoPVwm/To5NK4yIewPAdQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j2uHXI4oohVCy5dYpRkCsuVJ3Fnk78oT9fSNbuA+e5sVbkB6qFxnD4Uxq21BiX8vl 0eZO4jyM55lexvfqfg3VkI0UGGOvdhAYyORtQoUvBII7yQPMZIBWfjzXxrDSLBfoCd yKPpF7rO+czEi1rlT4Z93mIlNrEciT+XN7Jlx+DS79jpDyXlJNBqtU5cfNMIy22Wnz zvIRrb6NLMEQ72NfM4XLt7VuxxYej/bNTfRsLDrjveBgB0tWvD6fhUErYp1s/rp5N9 2SolMiwAGtS+2mAimdPdF2qQdKpBjKJBSl7VZ2/mYU30oa65LxYQ0Yr//XGUGu09ze lEfWTzp7qsluA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Charlie Jenkins , Andrew Jones , Palmer Dabbelt , Sasha Levin , paul.walmsley@sifive.com, aou@eecs.berkeley.edu, conor.dooley@microchip.com, alexghiti@rivosinc.com, jesse@rivosinc.com, nylon.chen@sifive.com, zhangchunyan@iscas.ac.cn, evan@rivosinc.com, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.15 03/15] riscv: misaligned: declare misaligned_access_speed under CONFIG_RISCV_MISALIGNED Date: Tue, 17 Jun 2025 08:21:33 -0400 Message-Id: <20250617122147.1968355-3-sashal@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250617122147.1968355-1-sashal@kernel.org> References: <20250617122147.1968355-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.15.2 Content-Transfer-Encoding: 8bit From: Clément Léger [ Upstream commit 1317045a7d6f397904d105f6d40dc9787876a34b ] While misaligned_access_speed was defined in a file compile with CONFIG_RISCV_MISALIGNED, its definition was under CONFIG_RISCV_SCALAR_MISALIGNED. This resulted in compilation problems when using it in a file compiled with CONFIG_RISCV_MISALIGNED. Move the declaration under CONFIG_RISCV_MISALIGNED so that it can be used unconditionnally when compiled with that config and remove the check for that variable in traps_misaligned.c. Signed-off-by: Clément Léger Reviewed-by: Charlie Jenkins Tested-by: Charlie Jenkins Reviewed-by: Andrew Jones Link: https://lore.kernel.org/r/20250523101932.1594077-9-cleger@rivosinc.com Signed-off-by: Palmer Dabbelt Signed-off-by: Sasha Levin --- **YES** This commit should be backported to stable kernel trees. ## Analysis This commit fixes a **compilation configuration dependency issue** in the RISC-V architecture's misaligned access handling code. Here's my detailed analysis: ### The Problem Fixed The commit addresses a compilation issue where: 1. **Variable Declaration Mismatch**: The `misaligned_access_speed` per- CPU variable was defined in `unaligned_access_speed.c` under `CONFIG_RISCV_MISALIGNED`, but its declaration in `cpufeature.h` was under `CONFIG_RISCV_SCALAR_MISALIGNED`. 2. **Configuration Hierarchy**: From the Kconfig analysis: - `CONFIG_RISCV_MISALIGNED` is a broader umbrella config - `CONFIG_RISCV_SCALAR_MISALIGNED` selects `CONFIG_RISCV_MISALIGNED` - Both `traps_misaligned.c` and `unaligned_access_speed.c` are compiled under `CONFIG_RISCV_MISALIGNED` 3. **Compilation Failure**: When `CONFIG_RISCV_MISALIGNED` is enabled but `CONFIG_RISCV_SCALAR_MISALIGNED` is not, code in `traps_misaligned.c` tries to use `misaligned_access_speed` (line 372: `*this_cpu_ptr(&misaligned_access_speed) = RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED;`) but the variable isn't declared in the header. ### The Fix The commit makes two key changes: 1. **In `cpufeature.h`**: Moves the `DECLARE_PER_CPU(long, misaligned_access_speed);` declaration from `CONFIG_RISCV_SCALAR_MISALIGNED` to `CONFIG_RISCV_MISALIGNED` (lines 82-84 in the new version) 2. **In `traps_misaligned.c`**: Removes the conditional `#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS` guard around the assignment to `misaligned_access_speed` (line 372), making it unconditional when compiled under `CONFIG_RISCV_MISALIGNED` ### Why This Should Be Backported 1. **Fixes Compilation Errors**: This is a clear build fix for valid kernel configurations, preventing compilation failures that would break the kernel build. 2. **Small and Contained**: The changes are minimal - just moving a declaration to the correct config section and removing an unnecessary guard. 3. **No Functional Changes**: This doesn't change runtime behavior, only fixes the build system configuration dependencies. 4. **Low Risk**: The fix aligns the declaration with where the variable is actually used, making the code more consistent and correct. 5. **Matches Stable Criteria**: Similar to **Similar Commit #4** which was marked as backport candidate (YES), this fixes compilation issues in configuration management without introducing new features or architectural changes. 6. **Critical Subsystem**: Unaligned access handling is important for RISC-V platforms, and build failures in this area prevent kernel compilation for affected configurations. This is exactly the type of build fix that stable trees should include - it resolves compilation errors without changing functionality or introducing regression risks. arch/riscv/include/asm/cpufeature.h | 5 ++++- arch/riscv/kernel/traps_misaligned.c | 2 -- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/riscv/include/asm/cpufeature.h b/arch/riscv/include/asm/cpufeature.h index f56b409361fbe..7201da46694f7 100644 --- a/arch/riscv/include/asm/cpufeature.h +++ b/arch/riscv/include/asm/cpufeature.h @@ -71,7 +71,6 @@ bool __init check_unaligned_access_emulated_all_cpus(void); void check_unaligned_access_emulated(struct work_struct *work __always_unused); void unaligned_emulation_finish(void); bool unaligned_ctl_available(void); -DECLARE_PER_CPU(long, misaligned_access_speed); #else static inline bool unaligned_ctl_available(void) { @@ -79,6 +78,10 @@ static inline bool unaligned_ctl_available(void) } #endif +#if defined(CONFIG_RISCV_MISALIGNED) +DECLARE_PER_CPU(long, misaligned_access_speed); +#endif + bool __init check_vector_unaligned_access_emulated_all_cpus(void); #if defined(CONFIG_RISCV_VECTOR_MISALIGNED) void check_vector_unaligned_access_emulated(struct work_struct *work __always_unused); diff --git a/arch/riscv/kernel/traps_misaligned.c b/arch/riscv/kernel/traps_misaligned.c index 77c788660223b..fe0ab912014ba 100644 --- a/arch/riscv/kernel/traps_misaligned.c +++ b/arch/riscv/kernel/traps_misaligned.c @@ -368,9 +368,7 @@ static int handle_scalar_misaligned_load(struct pt_regs *regs) perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS, 1, regs, addr); -#ifdef CONFIG_RISCV_PROBE_UNALIGNED_ACCESS *this_cpu_ptr(&misaligned_access_speed) = RISCV_HWPROBE_MISALIGNED_SCALAR_EMULATED; -#endif if (!unaligned_enabled) return -1; -- 2.39.5 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 4EBE9C71157 for ; Tue, 17 Jun 2025 12:42:57 +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=81YefyqJbnqtlverdgZlFhJCEF1JINkg7+CFfwL5shA=; b=CFU3fGxfoRNmxm aOr8JOM0M6LKUAWyGcQAE0QxbFNhyDp96njrby/MtLjJIX9365mt8JHLUPtvRnwYxLQFjj40ltQ3Q fDmqLqaKv5GVUxbI28Yzog00ORtItPud0AwMDKtKtPSvlBNZzh/Wao7REhRN36k5Lj/tVD76hVRCP zCROUcorPViwiEd9I+6mkAeZrDQb9OH4grlQZotYJi0SfUHJN/3d1hFfkoWkJyadrUxd7LLVUzXiz HWBy0XG3NDURFO/HidfLey+toBMjj9/ecAyY7V8cqMg2ApgccIvErxFt9AnuWJz4YdCRnGdtGND1n OIwHy5mS+h6qYqlWFASA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uRVeE-00000007DWg-3QCB; Tue, 17 Jun 2025 12:42:42 +0000 Received: from nyc.source.kernel.org ([2604:1380:45d1:ec00::3]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uRVK7-00000007AbQ-3urk for linux-riscv@lists.infradead.org; Tue, 17 Jun 2025 12:21:57 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 264AFA43036; Tue, 17 Jun 2025 12:21:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2870EC4CEE3; Tue, 17 Jun 2025 12:21:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1750162914; bh=LfNxyhUN2JsWTRujKmyyweoPVwm/To5NK4yIewPAdQA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j2uHXI4oohVCy5dYpRkCsuVJ3Fnk78oT9fSNbuA+e5sVbkB6qFxnD4Uxq21BiX8vl 0eZO4jyM55lexvfqfg3VkI0UGGOvdhAYyORtQoUvBII7yQPMZIBWfjzXxrDSLBfoCd yKPpF7rO+czEi1rlT4Z93mIlNrEciT+XN7Jlx+DS79jpDyXlJNBqtU5cfNMIy22Wnz zvIRrb6NLMEQ72NfM4XLt7VuxxYej/bNTfRsLDrjveBgB0tWvD6fhUErYp1s/rp5N9 2SolMiwAGtS+2mAimdPdF2qQdKpBjKJBSl7VZ2/mYU30oa65LxYQ0Yr//XGUGu09ze lEfWTzp7qsluA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Charlie Jenkins , Andrew Jones , Palmer Dabbelt , Sasha Levin , paul.walmsley@sifive.com, aou@eecs.berkeley.edu, conor.dooley@microchip.com, alexghiti@rivosinc.com, jesse@rivosinc.com, nylon.chen@sifive.com, zhangchunyan@iscas.ac.cn, evan@rivosinc.com, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.15 03/15] riscv: misaligned: declare misaligned_access_speed under CONFIG_RISCV_MISALIGNED Date: Tue, 17 Jun 2025 08:21:33 -0400 Message-Id: <20250617122147.1968355-3-sashal@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250617122147.1968355-1-sashal@kernel.org> References: <20250617122147.1968355-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.15.2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250617_052156_114239_AE6238F7 X-CRM114-Status: GOOD ( 17.30 ) 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 RnJvbTogQ2zDqW1lbnQgTMOpZ2VyIDxjbGVnZXJAcml2b3NpbmMuY29tPgoKWyBVcHN0cmVhbSBj b21taXQgMTMxNzA0NWE3ZDZmMzk3OTA0ZDEwNWY2ZDQwZGM5Nzg3ODc2YTM0YiBdCgpXaGlsZSBt aXNhbGlnbmVkX2FjY2Vzc19zcGVlZCB3YXMgZGVmaW5lZCBpbiBhIGZpbGUgY29tcGlsZSB3aXRo CkNPTkZJR19SSVNDVl9NSVNBTElHTkVELCBpdHMgZGVmaW5pdGlvbiB3YXMgdW5kZXIKQ09ORklH X1JJU0NWX1NDQUxBUl9NSVNBTElHTkVELiBUaGlzIHJlc3VsdGVkIGluIGNvbXBpbGF0aW9uIHBy b2JsZW1zCndoZW4gdXNpbmcgaXQgaW4gYSBmaWxlIGNvbXBpbGVkIHdpdGggQ09ORklHX1JJU0NW X01JU0FMSUdORUQuCgpNb3ZlIHRoZSBkZWNsYXJhdGlvbiB1bmRlciBDT05GSUdfUklTQ1ZfTUlT QUxJR05FRCBzbyB0aGF0IGl0IGNhbiBiZQp1c2VkIHVuY29uZGl0aW9ubmFsbHkgd2hlbiBjb21w aWxlZCB3aXRoIHRoYXQgY29uZmlnIGFuZCByZW1vdmUgdGhlIGNoZWNrCmZvciB0aGF0IHZhcmlh YmxlIGluIHRyYXBzX21pc2FsaWduZWQuYy4KClNpZ25lZC1vZmYtYnk6IENsw6ltZW50IEzDqWdl ciA8Y2xlZ2VyQHJpdm9zaW5jLmNvbT4KUmV2aWV3ZWQtYnk6IENoYXJsaWUgSmVua2lucyA8Y2hh cmxpZUByaXZvc2luYy5jb20+ClRlc3RlZC1ieTogQ2hhcmxpZSBKZW5raW5zIDxjaGFybGllQHJp dm9zaW5jLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBKb25lcyA8YWpvbmVzQHZlbnRhbmFtaWNy by5jb20+Ckxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3IvMjAyNTA1MjMxMDE5MzIuMTU5 NDA3Ny05LWNsZWdlckByaXZvc2luYy5jb20KU2lnbmVkLW9mZi1ieTogUGFsbWVyIERhYmJlbHQg PHBhbG1lckBkYWJiZWx0LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBr ZXJuZWwub3JnPgotLS0KCioqWUVTKioKClRoaXMgY29tbWl0IHNob3VsZCBiZSBiYWNrcG9ydGVk IHRvIHN0YWJsZSBrZXJuZWwgdHJlZXMuCgojIyBBbmFseXNpcwoKVGhpcyBjb21taXQgZml4ZXMg YSAqKmNvbXBpbGF0aW9uIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jeSBpc3N1ZSoqIGluCnRoZSBS SVNDLVYgYXJjaGl0ZWN0dXJlJ3MgbWlzYWxpZ25lZCBhY2Nlc3MgaGFuZGxpbmcgY29kZS4gSGVy ZSdzIG15CmRldGFpbGVkIGFuYWx5c2lzOgoKIyMjIFRoZSBQcm9ibGVtIEZpeGVkClRoZSBjb21t aXQgYWRkcmVzc2VzIGEgY29tcGlsYXRpb24gaXNzdWUgd2hlcmU6CgoxLiAqKlZhcmlhYmxlIERl Y2xhcmF0aW9uIE1pc21hdGNoKio6IFRoZSBgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWRgIHBlci0K ICAgQ1BVIHZhcmlhYmxlIHdhcyBkZWZpbmVkIGluIGB1bmFsaWduZWRfYWNjZXNzX3NwZWVkLmNg IHVuZGVyCiAgIGBDT05GSUdfUklTQ1ZfTUlTQUxJR05FRGAsIGJ1dCBpdHMgZGVjbGFyYXRpb24g aW4gYGNwdWZlYXR1cmUuaGAgd2FzCiAgIHVuZGVyIGBDT05GSUdfUklTQ1ZfU0NBTEFSX01JU0FM SUdORURgLgoKMi4gKipDb25maWd1cmF0aW9uIEhpZXJhcmNoeSoqOiBGcm9tIHRoZSBLY29uZmln IGFuYWx5c2lzOgogICAtIGBDT05GSUdfUklTQ1ZfTUlTQUxJR05FRGAgaXMgYSBicm9hZGVyIHVt YnJlbGxhIGNvbmZpZwogICAtIGBDT05GSUdfUklTQ1ZfU0NBTEFSX01JU0FMSUdORURgIHNlbGVj dHMgYENPTkZJR19SSVNDVl9NSVNBTElHTkVEYAogICAtIEJvdGggYHRyYXBzX21pc2FsaWduZWQu Y2AgYW5kIGB1bmFsaWduZWRfYWNjZXNzX3NwZWVkLmNgIGFyZQogICAgIGNvbXBpbGVkIHVuZGVy IGBDT05GSUdfUklTQ1ZfTUlTQUxJR05FRGAKCjMuICoqQ29tcGlsYXRpb24gRmFpbHVyZSoqOiBX aGVuIGBDT05GSUdfUklTQ1ZfTUlTQUxJR05FRGAgaXMgZW5hYmxlZAogICBidXQgYENPTkZJR19S SVNDVl9TQ0FMQVJfTUlTQUxJR05FRGAgaXMgbm90LCBjb2RlIGluCiAgIGB0cmFwc19taXNhbGln bmVkLmNgIHRyaWVzIHRvIHVzZSBgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWRgIChsaW5lCiAgIDM3 MjogYCp0aGlzX2NwdV9wdHIoJm1pc2FsaWduZWRfYWNjZXNzX3NwZWVkKSA9CiAgIFJJU0NWX0hX UFJPQkVfTUlTQUxJR05FRF9TQ0FMQVJfRU1VTEFURUQ7YCkgYnV0IHRoZSB2YXJpYWJsZSBpc24n dAogICBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyLgoKIyMjIFRoZSBGaXgKVGhlIGNvbW1pdCBtYWtl cyB0d28ga2V5IGNoYW5nZXM6CgoxLiAqKkluIGBjcHVmZWF0dXJlLmhgKio6IE1vdmVzIHRoZSBg REVDTEFSRV9QRVJfQ1BVKGxvbmcsCiAgIG1pc2FsaWduZWRfYWNjZXNzX3NwZWVkKTtgIGRlY2xh cmF0aW9uIGZyb20KICAgYENPTkZJR19SSVNDVl9TQ0FMQVJfTUlTQUxJR05FRGAgdG8gYENPTkZJ R19SSVNDVl9NSVNBTElHTkVEYCAobGluZXMKICAgODItODQgaW4gdGhlIG5ldyB2ZXJzaW9uKQoK Mi4gKipJbiBgdHJhcHNfbWlzYWxpZ25lZC5jYCoqOiBSZW1vdmVzIHRoZSBjb25kaXRpb25hbCBg I2lmZGVmCiAgIENPTkZJR19SSVNDVl9QUk9CRV9VTkFMSUdORURfQUNDRVNTYCBndWFyZCBhcm91 bmQgdGhlIGFzc2lnbm1lbnQgdG8KICAgYG1pc2FsaWduZWRfYWNjZXNzX3NwZWVkYCAobGluZSAz NzIpLCBtYWtpbmcgaXQgdW5jb25kaXRpb25hbCB3aGVuCiAgIGNvbXBpbGVkIHVuZGVyIGBDT05G SUdfUklTQ1ZfTUlTQUxJR05FRGAKCiMjIyBXaHkgVGhpcyBTaG91bGQgQmUgQmFja3BvcnRlZAoK MS4gKipGaXhlcyBDb21waWxhdGlvbiBFcnJvcnMqKjogVGhpcyBpcyBhIGNsZWFyIGJ1aWxkIGZp eCBmb3IgdmFsaWQKICAga2VybmVsIGNvbmZpZ3VyYXRpb25zLCBwcmV2ZW50aW5nIGNvbXBpbGF0 aW9uIGZhaWx1cmVzIHRoYXQgd291bGQKICAgYnJlYWsgdGhlIGtlcm5lbCBidWlsZC4KCjIuICoq U21hbGwgYW5kIENvbnRhaW5lZCoqOiBUaGUgY2hhbmdlcyBhcmUgbWluaW1hbCAtIGp1c3QgbW92 aW5nIGEKICAgZGVjbGFyYXRpb24gdG8gdGhlIGNvcnJlY3QgY29uZmlnIHNlY3Rpb24gYW5kIHJl bW92aW5nIGFuIHVubmVjZXNzYXJ5CiAgIGd1YXJkLgoKMy4gKipObyBGdW5jdGlvbmFsIENoYW5n ZXMqKjogVGhpcyBkb2Vzbid0IGNoYW5nZSBydW50aW1lIGJlaGF2aW9yLCBvbmx5CiAgIGZpeGVz IHRoZSBidWlsZCBzeXN0ZW0gY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuCgo0LiAqKkxvdyBS aXNrKio6IFRoZSBmaXggYWxpZ25zIHRoZSBkZWNsYXJhdGlvbiB3aXRoIHdoZXJlIHRoZSB2YXJp YWJsZQogICBpcyBhY3R1YWxseSB1c2VkLCBtYWtpbmcgdGhlIGNvZGUgbW9yZSBjb25zaXN0ZW50 IGFuZCBjb3JyZWN0LgoKNS4gKipNYXRjaGVzIFN0YWJsZSBDcml0ZXJpYSoqOiBTaW1pbGFyIHRv ICoqU2ltaWxhciBDb21taXQgIzQqKiB3aGljaAogICB3YXMgbWFya2VkIGFzIGJhY2twb3J0IGNh bmRpZGF0ZSAoWUVTKSwgdGhpcyBmaXhlcyBjb21waWxhdGlvbiBpc3N1ZXMKICAgaW4gY29uZmln dXJhdGlvbiBtYW5hZ2VtZW50IHdpdGhvdXQgaW50cm9kdWNpbmcgbmV3IGZlYXR1cmVzIG9yCiAg IGFyY2hpdGVjdHVyYWwgY2hhbmdlcy4KCjYuICoqQ3JpdGljYWwgU3Vic3lzdGVtKio6IFVuYWxp Z25lZCBhY2Nlc3MgaGFuZGxpbmcgaXMgaW1wb3J0YW50IGZvcgogICBSSVNDLVYgcGxhdGZvcm1z LCBhbmQgYnVpbGQgZmFpbHVyZXMgaW4gdGhpcyBhcmVhIHByZXZlbnQga2VybmVsCiAgIGNvbXBp bGF0aW9uIGZvciBhZmZlY3RlZCBjb25maWd1cmF0aW9ucy4KClRoaXMgaXMgZXhhY3RseSB0aGUg dHlwZSBvZiBidWlsZCBmaXggdGhhdCBzdGFibGUgdHJlZXMgc2hvdWxkIGluY2x1ZGUgLQppdCBy ZXNvbHZlcyBjb21waWxhdGlvbiBlcnJvcnMgd2l0aG91dCBjaGFuZ2luZyBmdW5jdGlvbmFsaXR5 IG9yCmludHJvZHVjaW5nIHJlZ3Jlc3Npb24gcmlza3MuCgogYXJjaC9yaXNjdi9pbmNsdWRlL2Fz bS9jcHVmZWF0dXJlLmggIHwgNSArKysrLQogYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHNfbWlzYWxp Z25lZC5jIHwgMiAtLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9jcHVmZWF0dXJlLmgg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAppbmRleCBmNTZiNDA5MzYxZmJl Li43MjAxZGE0NjY5NGY3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZl YXR1cmUuaAorKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaApAQCAtNzEs NyArNzEsNiBAQCBib29sIF9faW5pdCBjaGVja191bmFsaWduZWRfYWNjZXNzX2VtdWxhdGVkX2Fs bF9jcHVzKHZvaWQpOwogdm9pZCBjaGVja191bmFsaWduZWRfYWNjZXNzX2VtdWxhdGVkKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yayBfX2Fsd2F5c191bnVzZWQpOwogdm9pZCB1bmFsaWduZWRfZW11 bGF0aW9uX2ZpbmlzaCh2b2lkKTsKIGJvb2wgdW5hbGlnbmVkX2N0bF9hdmFpbGFibGUodm9pZCk7 Ci1ERUNMQVJFX1BFUl9DUFUobG9uZywgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWQpOwogI2Vsc2UK IHN0YXRpYyBpbmxpbmUgYm9vbCB1bmFsaWduZWRfY3RsX2F2YWlsYWJsZSh2b2lkKQogewpAQCAt NzksNiArNzgsMTAgQEAgc3RhdGljIGlubGluZSBib29sIHVuYWxpZ25lZF9jdGxfYXZhaWxhYmxl KHZvaWQpCiB9CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoQ09ORklHX1JJU0NWX01JU0FMSUdORUQp CitERUNMQVJFX1BFUl9DUFUobG9uZywgbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWQpOworI2VuZGlm CisKIGJvb2wgX19pbml0IGNoZWNrX3ZlY3Rvcl91bmFsaWduZWRfYWNjZXNzX2VtdWxhdGVkX2Fs bF9jcHVzKHZvaWQpOwogI2lmIGRlZmluZWQoQ09ORklHX1JJU0NWX1ZFQ1RPUl9NSVNBTElHTkVE KQogdm9pZCBjaGVja192ZWN0b3JfdW5hbGlnbmVkX2FjY2Vzc19lbXVsYXRlZChzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmsgX19hbHdheXNfdW51c2VkKTsKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yv a2VybmVsL3RyYXBzX21pc2FsaWduZWQuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3RyYXBzX21pc2Fs aWduZWQuYwppbmRleCA3N2M3ODg2NjAyMjNiLi5mZTBhYjkxMjAxNGJhIDEwMDY0NAotLS0gYS9h cmNoL3Jpc2N2L2tlcm5lbC90cmFwc19taXNhbGlnbmVkLmMKKysrIGIvYXJjaC9yaXNjdi9rZXJu ZWwvdHJhcHNfbWlzYWxpZ25lZC5jCkBAIC0zNjgsOSArMzY4LDcgQEAgc3RhdGljIGludCBoYW5k bGVfc2NhbGFyX21pc2FsaWduZWRfbG9hZChzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAogCXBlcmZf c3dfZXZlbnQoUEVSRl9DT1VOVF9TV19BTElHTk1FTlRfRkFVTFRTLCAxLCByZWdzLCBhZGRyKTsK IAotI2lmZGVmIENPTkZJR19SSVNDVl9QUk9CRV9VTkFMSUdORURfQUNDRVNTCiAJKnRoaXNfY3B1 X3B0cigmbWlzYWxpZ25lZF9hY2Nlc3Nfc3BlZWQpID0gUklTQ1ZfSFdQUk9CRV9NSVNBTElHTkVE X1NDQUxBUl9FTVVMQVRFRDsKLSNlbmRpZgogCiAJaWYgKCF1bmFsaWduZWRfZW5hYmxlZCkKIAkJ cmV0dXJuIC0xOwotLSAKMi4zOS41CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1yaXNjdgo=