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 8858E21CC43; Thu, 2 Oct 2025 15:30:43 +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=1759419043; cv=none; b=n1FkY0OiYNCmJX8ANMnWna9c1ZSHhMaveonrV0ZoLuoelYGSA7gVFY6xoh6jOhl6aKJYMXvYxo5SVzPhz9f1M3oC5qYovC4WEbkNUa9SGPr7MII91QIxjmw/7Seuxx6ewhlBe8hcVsoGSnepq2YbCdgPm7utJnuHUteRiOEGeaI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1759419043; c=relaxed/simple; bh=h6k+Nnl7KCqJB4WMcYNUaBEbIVUSbrYTxL/+Vy0+N8g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ktPjy1qtCoanboCtSM1P1SAn0EuNE/sEagidMjGXiWQ//KomcHVHjqXVl36WpMY+nOnVo9h1/6bz40EOYbW/JF0Lvi7VMB/hMINVg/h3LNM1HadIIuNPeQ3bKt4zrSn9QnCJqweG/5HcZ53WLu5bwuURtV6zCbGZ+mQWwUEePgc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kYAIEwPM; 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="kYAIEwPM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A27DC4CEF4; Thu, 2 Oct 2025 15:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759419043; bh=h6k+Nnl7KCqJB4WMcYNUaBEbIVUSbrYTxL/+Vy0+N8g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kYAIEwPMqqRUEsVSKjSI0JDkm/dHUoxELDumfNytlToq8UYAVuNybxwjhpahwlYDY Kh/dN1cSvGjjm+e2U9uwSgaMNVLaXOOb35m1LtD1JxUGl1BJqtMHGt9uWKpq0Z7xuW fvvNh7l4vweKExbK3HHRFZn4iZSo9FRu4pSjljvq5eT2yDnDeZppvLm+kszKb01CTx cWwcpUsdWy7sJ4BdMo7qifDkJv3o5RXnkJxiNx1Zf5FHaJu1PgWWGLzsVASfR/YSHh hqIm5OGD1QGm0UeBS+EOWT/jHXRklzjRUDpt2SyhiDuZFVTI0+XyQ/fDmyfPJVxlxB FMyOqMSEFq+yA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Junhui Liu , Alexandre Ghiti , Nutty Liu , Paul Walmsley , Sasha Levin , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.17-6.16] riscv: mm: Return intended SATP mode for noXlvl options Date: Thu, 2 Oct 2025 11:30:00 -0400 Message-ID: <20251002153025.2209281-13-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251002153025.2209281-1-sashal@kernel.org> References: <20251002153025.2209281-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Junhui Liu [ Upstream commit f3243bed39c26ce0f13e6392a634f91d409b2d02 ] Change the return value of match_noXlvl() to return the SATP mode that will be used, rather than the mode being disabled. This enables unified logic for return value judgement with the function that obtains mmu-type from the fdt, avoiding extra conversion. This only changes the naming, with no functional impact. Signed-off-by: Junhui Liu Reviewed-by: Alexandre Ghiti Reviewed-by: Nutty Liu Link: https://lore.kernel.org/r/20250722-satp-from-fdt-v1-1-5ba22218fa5f@pigmoral.tech Signed-off-by: Paul Walmsley Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: Based on my comprehensive investigation of this commit and its context, here is my analysis: ## Analysis Summary **Backport Status: YES** ## Detailed Explanation ### 1. **This is a prerequisite for an important bug fix** While the commit message states "This only changes the naming, with no functional impact," this refactoring is **part 1 of a 2-patch series**. The follow-up commit (17e9521044c9b "riscv: mm: Use mmu-type from FDT to limit SATP mode") fixes a real hardware issue: > "Some RISC-V implementations may hang when attempting to write an unsupported SATP mode, even though the latest RISC-V specification states such writes should have no effect." The bug fix depends on this refactoring to work correctly. ### 2. **Code changes are functionally equivalent** Examining the specific changes: **In `arch/riscv/kernel/pi/cmdline_early.c`:** - OLD: `no4lvl` returns `SATP_MODE_48` (the mode being disabled) - NEW: `no4lvl` returns `SATP_MODE_39` (the mode to actually use) - OLD: `no5lvl` returns `SATP_MODE_57` (the mode being disabled) - NEW: `no5lvl` returns `SATP_MODE_48` (the mode to actually use) **In `arch/riscv/mm/init.c`:** - The comparison logic changes accordingly to match the new semantics - OLD: `if (satp_mode_cmdline == SATP_MODE_57)` → disable L5 - NEW: `if (satp_mode_cmdline == SATP_MODE_48)` → disable L5 The end result is identical - both code paths result in the same page table configuration. ### 3. **Enables unified logic with FDT mmu-type** The refactoring allows the follow-up patch to use `min_not_zero(__pi_set_satp_mode_from_cmdline(), __pi_set_satp_mode_from_fdt())` to combine both sources of SATP mode limits. This unified approach prevents writing unsupported SATP modes that cause hardware hangs. ### 4. **Low regression risk** - Self-contained changes to only 2 files - Both files modified consistently with matching semantics - No change to external APIs or behavior - Simple, straightforward logic transformation ### 5. **Affects stable kernels 6.4+** The `no4lvl`/`no5lvl` command line options were introduced in v6.4 (commit 26e7aacb83dfd), so any stable kernel from 6.4 onwards would benefit from having both patches backported together. ### 6. **Already being backported together** I can confirm that both commits are already being backported to 6.17-stable as a pair: - f3243bed39c26 → b222a93bf5294 (this refactoring) - 17e9521044c9b → f64e5a29ae1a2 (the bug fix) This indicates the maintainers recognized these should be backported together. ## Conclusion **YES**, this commit should be backported to stable trees because: 1. It's a necessary prerequisite for fixing hardware hangs on some RISC-V implementations 2. The refactoring is functionally equivalent with no behavior change 3. It has minimal regression risk 4. It should be backported together with its follow-up patch 17e9521044c9b 5. It benefits all stable kernels 6.4+ that have the no4lvl/no5lvl feature arch/riscv/kernel/pi/cmdline_early.c | 4 ++-- arch/riscv/mm/init.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/riscv/kernel/pi/cmdline_early.c b/arch/riscv/kernel/pi/cmdline_early.c index fbcdc9e4e1432..389d086a07187 100644 --- a/arch/riscv/kernel/pi/cmdline_early.c +++ b/arch/riscv/kernel/pi/cmdline_early.c @@ -41,9 +41,9 @@ static char *get_early_cmdline(uintptr_t dtb_pa) static u64 match_noXlvl(char *cmdline) { if (strstr(cmdline, "no4lvl")) - return SATP_MODE_48; + return SATP_MODE_39; else if (strstr(cmdline, "no5lvl")) - return SATP_MODE_57; + return SATP_MODE_48; return 0; } diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 15683ae13fa5d..054265b3f2680 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -864,9 +864,9 @@ static __init void set_satp_mode(uintptr_t dtb_pa) kernel_map.page_offset = PAGE_OFFSET_L5; - if (satp_mode_cmdline == SATP_MODE_57) { + if (satp_mode_cmdline == SATP_MODE_48) { disable_pgtable_l5(); - } else if (satp_mode_cmdline == SATP_MODE_48) { + } else if (satp_mode_cmdline == SATP_MODE_39) { disable_pgtable_l5(); disable_pgtable_l4(); return; -- 2.51.0 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 532D1CAC5B0 for ; Thu, 2 Oct 2025 15:30:56 +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=uUijZB3tlIqG5VO0IMPza763fidZYSSHMoA+2GugANY=; b=2GWnOnJZPv3pSo DcsDafemAMlBj19VUGLLuNR1eZlqvGXk8bXkq9svAvzWa3fiyDchkE3DHmnksGKeLQv4tfaUvFK3z n/bX3VuLclp0V38Vh+vloVKdi8ugxyAo6gCQ5XHNoIo75LFHxQUxBXJqUINGmuzL/k8Q25dvV4Ty+ qAP4p3rBXBmtsv11cAzoZv0mDWbwv7WgWMaOSy82HhWtsAKdvfRg/9Tqjzx7BhD2ZE5+7TjPrTUrG M0CQDoBhQwH1b9o0GVO1VCUUYirbIpPyN/Vsv6rYNkDGyYN4g5P8IcEpjO00YY62QS8Nee7VXYgTA Gb0LoI8U/JedsTV9DXoQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGZ-0000000Aj3P-3kMj; Thu, 02 Oct 2025 15:30:47 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1v4LGW-0000000Aj2f-2TXO for linux-riscv@lists.infradead.org; Thu, 02 Oct 2025 15:30:45 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 8374E40ACC; Thu, 2 Oct 2025 15:30:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3A27DC4CEF4; Thu, 2 Oct 2025 15:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1759419043; bh=h6k+Nnl7KCqJB4WMcYNUaBEbIVUSbrYTxL/+Vy0+N8g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kYAIEwPMqqRUEsVSKjSI0JDkm/dHUoxELDumfNytlToq8UYAVuNybxwjhpahwlYDY Kh/dN1cSvGjjm+e2U9uwSgaMNVLaXOOb35m1LtD1JxUGl1BJqtMHGt9uWKpq0Z7xuW fvvNh7l4vweKExbK3HHRFZn4iZSo9FRu4pSjljvq5eT2yDnDeZppvLm+kszKb01CTx cWwcpUsdWy7sJ4BdMo7qifDkJv3o5RXnkJxiNx1Zf5FHaJu1PgWWGLzsVASfR/YSHh hqIm5OGD1QGm0UeBS+EOWT/jHXRklzjRUDpt2SyhiDuZFVTI0+XyQ/fDmyfPJVxlxB FMyOqMSEFq+yA== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Junhui Liu , Alexandre Ghiti , Nutty Liu , Paul Walmsley , Sasha Levin , paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org Subject: [PATCH AUTOSEL 6.17-6.16] riscv: mm: Return intended SATP mode for noXlvl options Date: Thu, 2 Oct 2025 11:30:00 -0400 Message-ID: <20251002153025.2209281-13-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251002153025.2209281-1-sashal@kernel.org> References: <20251002153025.2209281-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251002_083044_672129_F6CA68E3 X-CRM114-Status: GOOD ( 18.09 ) 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 RnJvbTogSnVuaHVpIExpdSA8anVuaHVpLmxpdUBwaWdtb3JhbC50ZWNoPgoKWyBVcHN0cmVhbSBj b21taXQgZjMyNDNiZWQzOWMyNmNlMGYxM2U2MzkyYTYzNGY5MWQ0MDliMmQwMiBdCgpDaGFuZ2Ug dGhlIHJldHVybiB2YWx1ZSBvZiBtYXRjaF9ub1hsdmwoKSB0byByZXR1cm4gdGhlIFNBVFAgbW9k ZSB0aGF0CndpbGwgYmUgdXNlZCwgcmF0aGVyIHRoYW4gdGhlIG1vZGUgYmVpbmcgZGlzYWJsZWQu IFRoaXMgZW5hYmxlcyB1bmlmaWVkCmxvZ2ljIGZvciByZXR1cm4gdmFsdWUganVkZ2VtZW50IHdp dGggdGhlIGZ1bmN0aW9uIHRoYXQgb2J0YWlucyBtbXUtdHlwZQpmcm9tIHRoZSBmZHQsIGF2b2lk aW5nIGV4dHJhIGNvbnZlcnNpb24uIFRoaXMgb25seSBjaGFuZ2VzIHRoZSBuYW1pbmcsCndpdGgg bm8gZnVuY3Rpb25hbCBpbXBhY3QuCgpTaWduZWQtb2ZmLWJ5OiBKdW5odWkgTGl1IDxqdW5odWku bGl1QHBpZ21vcmFsLnRlY2g+ClJldmlld2VkLWJ5OiBBbGV4YW5kcmUgR2hpdGkgPGFsZXhnaGl0 aUByaXZvc2luYy5jb20+ClJldmlld2VkLWJ5OiBOdXR0eSBMaXUgPGxpdWppbmdxaUBsYW54aW5j b21wdXRpbmcuY29tPgpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjUwNzIyLXNh dHAtZnJvbS1mZHQtdjEtMS01YmEyMjIxOGZhNWZAcGlnbW9yYWwudGVjaApTaWduZWQtb2ZmLWJ5 OiBQYXVsIFdhbG1zbGV5IDxwandAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2 aW4gPHNhc2hhbEBrZXJuZWwub3JnPgotLS0KCkxMTSBHZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBt YXkgYmUgY29tcGxldGVseSBib2d1czoKCkJhc2VkIG9uIG15IGNvbXByZWhlbnNpdmUgaW52ZXN0 aWdhdGlvbiBvZiB0aGlzIGNvbW1pdCBhbmQgaXRzIGNvbnRleHQsCmhlcmUgaXMgbXkgYW5hbHlz aXM6CgojIyBBbmFseXNpcyBTdW1tYXJ5CgoqKkJhY2twb3J0IFN0YXR1czogWUVTKioKCiMjIERl dGFpbGVkIEV4cGxhbmF0aW9uCgojIyMgMS4gKipUaGlzIGlzIGEgcHJlcmVxdWlzaXRlIGZvciBh biBpbXBvcnRhbnQgYnVnIGZpeCoqCgpXaGlsZSB0aGUgY29tbWl0IG1lc3NhZ2Ugc3RhdGVzICJU aGlzIG9ubHkgY2hhbmdlcyB0aGUgbmFtaW5nLCB3aXRoIG5vCmZ1bmN0aW9uYWwgaW1wYWN0LCIg dGhpcyByZWZhY3RvcmluZyBpcyAqKnBhcnQgMSBvZiBhIDItcGF0Y2ggc2VyaWVzKiouClRoZSBm b2xsb3ctdXAgY29tbWl0ICgxN2U5NTIxMDQ0YzliICJyaXNjdjogbW06IFVzZSBtbXUtdHlwZSBm cm9tIEZEVCB0bwpsaW1pdCBTQVRQIG1vZGUiKSBmaXhlcyBhIHJlYWwgaGFyZHdhcmUgaXNzdWU6 Cgo+ICJTb21lIFJJU0MtViBpbXBsZW1lbnRhdGlvbnMgbWF5IGhhbmcgd2hlbiBhdHRlbXB0aW5n IHRvIHdyaXRlIGFuCnVuc3VwcG9ydGVkIFNBVFAgbW9kZSwgZXZlbiB0aG91Z2ggdGhlIGxhdGVz dCBSSVNDLVYgc3BlY2lmaWNhdGlvbgpzdGF0ZXMgc3VjaCB3cml0ZXMgc2hvdWxkIGhhdmUgbm8g ZWZmZWN0LiIKClRoZSBidWcgZml4IGRlcGVuZHMgb24gdGhpcyByZWZhY3RvcmluZyB0byB3b3Jr IGNvcnJlY3RseS4KCiMjIyAyLiAqKkNvZGUgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2 YWxlbnQqKgoKRXhhbWluaW5nIHRoZSBzcGVjaWZpYyBjaGFuZ2VzOgoKKipJbiBgYXJjaC9yaXNj di9rZXJuZWwvcGkvY21kbGluZV9lYXJseS5jYDoqKgotIE9MRDogYG5vNGx2bGAgcmV0dXJucyBg U0FUUF9NT0RFXzQ4YCAodGhlIG1vZGUgYmVpbmcgZGlzYWJsZWQpCi0gTkVXOiBgbm80bHZsYCBy ZXR1cm5zIGBTQVRQX01PREVfMzlgICh0aGUgbW9kZSB0byBhY3R1YWxseSB1c2UpCi0gT0xEOiBg bm81bHZsYCByZXR1cm5zIGBTQVRQX01PREVfNTdgICh0aGUgbW9kZSBiZWluZyBkaXNhYmxlZCkK LSBORVc6IGBubzVsdmxgIHJldHVybnMgYFNBVFBfTU9ERV80OGAgKHRoZSBtb2RlIHRvIGFjdHVh bGx5IHVzZSkKCioqSW4gYGFyY2gvcmlzY3YvbW0vaW5pdC5jYDoqKgotIFRoZSBjb21wYXJpc29u IGxvZ2ljIGNoYW5nZXMgYWNjb3JkaW5nbHkgdG8gbWF0Y2ggdGhlIG5ldyBzZW1hbnRpY3MKLSBP TEQ6IGBpZiAoc2F0cF9tb2RlX2NtZGxpbmUgPT0gU0FUUF9NT0RFXzU3KWAg4oaSIGRpc2FibGUg TDUKLSBORVc6IGBpZiAoc2F0cF9tb2RlX2NtZGxpbmUgPT0gU0FUUF9NT0RFXzQ4KWAg4oaSIGRp c2FibGUgTDUKClRoZSBlbmQgcmVzdWx0IGlzIGlkZW50aWNhbCAtIGJvdGggY29kZSBwYXRocyBy ZXN1bHQgaW4gdGhlIHNhbWUgcGFnZQp0YWJsZSBjb25maWd1cmF0aW9uLgoKIyMjIDMuICoqRW5h YmxlcyB1bmlmaWVkIGxvZ2ljIHdpdGggRkRUIG1tdS10eXBlKioKClRoZSByZWZhY3RvcmluZyBh bGxvd3MgdGhlIGZvbGxvdy11cCBwYXRjaCB0byB1c2UKYG1pbl9ub3RfemVybyhfX3BpX3NldF9z YXRwX21vZGVfZnJvbV9jbWRsaW5lKCksCl9fcGlfc2V0X3NhdHBfbW9kZV9mcm9tX2ZkdCgpKWAg dG8gY29tYmluZSBib3RoIHNvdXJjZXMgb2YgU0FUUCBtb2RlCmxpbWl0cy4gVGhpcyB1bmlmaWVk IGFwcHJvYWNoIHByZXZlbnRzIHdyaXRpbmcgdW5zdXBwb3J0ZWQgU0FUUCBtb2Rlcwp0aGF0IGNh dXNlIGhhcmR3YXJlIGhhbmdzLgoKIyMjIDQuICoqTG93IHJlZ3Jlc3Npb24gcmlzayoqCgotIFNl bGYtY29udGFpbmVkIGNoYW5nZXMgdG8gb25seSAyIGZpbGVzCi0gQm90aCBmaWxlcyBtb2RpZmll ZCBjb25zaXN0ZW50bHkgd2l0aCBtYXRjaGluZyBzZW1hbnRpY3MKLSBObyBjaGFuZ2UgdG8gZXh0 ZXJuYWwgQVBJcyBvciBiZWhhdmlvcgotIFNpbXBsZSwgc3RyYWlnaHRmb3J3YXJkIGxvZ2ljIHRy YW5zZm9ybWF0aW9uCgojIyMgNS4gKipBZmZlY3RzIHN0YWJsZSBrZXJuZWxzIDYuNCsqKgoKVGhl IGBubzRsdmxgL2BubzVsdmxgIGNvbW1hbmQgbGluZSBvcHRpb25zIHdlcmUgaW50cm9kdWNlZCBp biB2Ni40Cihjb21taXQgMjZlN2FhY2I4M2RmZCksIHNvIGFueSBzdGFibGUga2VybmVsIGZyb20g Ni40IG9ud2FyZHMgd291bGQKYmVuZWZpdCBmcm9tIGhhdmluZyBib3RoIHBhdGNoZXMgYmFja3Bv cnRlZCB0b2dldGhlci4KCiMjIyA2LiAqKkFscmVhZHkgYmVpbmcgYmFja3BvcnRlZCB0b2dldGhl cioqCgpJIGNhbiBjb25maXJtIHRoYXQgYm90aCBjb21taXRzIGFyZSBhbHJlYWR5IGJlaW5nIGJh Y2twb3J0ZWQgdG8KNi4xNy1zdGFibGUgYXMgYSBwYWlyOgotIGYzMjQzYmVkMzljMjYg4oaSIGIy MjJhOTNiZjUyOTQgKHRoaXMgcmVmYWN0b3JpbmcpCi0gMTdlOTUyMTA0NGM5YiDihpIgZjY0ZTVh MjlhZTFhMiAodGhlIGJ1ZyBmaXgpCgpUaGlzIGluZGljYXRlcyB0aGUgbWFpbnRhaW5lcnMgcmVj b2duaXplZCB0aGVzZSBzaG91bGQgYmUgYmFja3BvcnRlZAp0b2dldGhlci4KCiMjIENvbmNsdXNp b24KCioqWUVTKiosIHRoaXMgY29tbWl0IHNob3VsZCBiZSBiYWNrcG9ydGVkIHRvIHN0YWJsZSB0 cmVlcyBiZWNhdXNlOgoxLiBJdCdzIGEgbmVjZXNzYXJ5IHByZXJlcXVpc2l0ZSBmb3IgZml4aW5n IGhhcmR3YXJlIGhhbmdzIG9uIHNvbWUKICAgUklTQy1WIGltcGxlbWVudGF0aW9ucwoyLiBUaGUg cmVmYWN0b3JpbmcgaXMgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgd2l0aCBubyBiZWhhdmlvciBj aGFuZ2UKMy4gSXQgaGFzIG1pbmltYWwgcmVncmVzc2lvbiByaXNrCjQuIEl0IHNob3VsZCBiZSBi YWNrcG9ydGVkIHRvZ2V0aGVyIHdpdGggaXRzIGZvbGxvdy11cCBwYXRjaAogICAxN2U5NTIxMDQ0 YzliCjUuIEl0IGJlbmVmaXRzIGFsbCBzdGFibGUga2VybmVscyA2LjQrIHRoYXQgaGF2ZSB0aGUg bm80bHZsL25vNWx2bAogICBmZWF0dXJlCgogYXJjaC9yaXNjdi9rZXJuZWwvcGkvY21kbGluZV9l YXJseS5jIHwgNCArKy0tCiBhcmNoL3Jpc2N2L21tL2luaXQuYyAgICAgICAgICAgICAgICAgfCA0 ICsrLS0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3BpL2NtZGxpbmVfZWFybHkuYyBiL2FyY2gv cmlzY3Yva2VybmVsL3BpL2NtZGxpbmVfZWFybHkuYwppbmRleCBmYmNkYzllNGUxNDMyLi4zODlk MDg2YTA3MTg3IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9waS9jbWRsaW5lX2Vhcmx5 LmMKKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwvcGkvY21kbGluZV9lYXJseS5jCkBAIC00MSw5ICs0 MSw5IEBAIHN0YXRpYyBjaGFyICpnZXRfZWFybHlfY21kbGluZSh1aW50cHRyX3QgZHRiX3BhKQog c3RhdGljIHU2NCBtYXRjaF9ub1hsdmwoY2hhciAqY21kbGluZSkKIHsKIAlpZiAoc3Ryc3RyKGNt ZGxpbmUsICJubzRsdmwiKSkKLQkJcmV0dXJuIFNBVFBfTU9ERV80ODsKKwkJcmV0dXJuIFNBVFBf TU9ERV8zOTsKIAllbHNlIGlmIChzdHJzdHIoY21kbGluZSwgIm5vNWx2bCIpKQotCQlyZXR1cm4g U0FUUF9NT0RFXzU3OworCQlyZXR1cm4gU0FUUF9NT0RFXzQ4OwogCiAJcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCmlu ZGV4IDE1NjgzYWUxM2ZhNWQuLjA1NDI2NWIzZjI2ODAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yv bW0vaW5pdC5jCisrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCkBAIC04NjQsOSArODY0LDkgQEAg c3RhdGljIF9faW5pdCB2b2lkIHNldF9zYXRwX21vZGUodWludHB0cl90IGR0Yl9wYSkKIAogCWtl cm5lbF9tYXAucGFnZV9vZmZzZXQgPSBQQUdFX09GRlNFVF9MNTsKIAotCWlmIChzYXRwX21vZGVf Y21kbGluZSA9PSBTQVRQX01PREVfNTcpIHsKKwlpZiAoc2F0cF9tb2RlX2NtZGxpbmUgPT0gU0FU UF9NT0RFXzQ4KSB7CiAJCWRpc2FibGVfcGd0YWJsZV9sNSgpOwotCX0gZWxzZSBpZiAoc2F0cF9t b2RlX2NtZGxpbmUgPT0gU0FUUF9NT0RFXzQ4KSB7CisJfSBlbHNlIGlmIChzYXRwX21vZGVfY21k bGluZSA9PSBTQVRQX01PREVfMzkpIHsKIAkJZGlzYWJsZV9wZ3RhYmxlX2w1KCk7CiAJCWRpc2Fi bGVfcGd0YWJsZV9sNCgpOwogCQlyZXR1cm47Ci0tIAoyLjUxLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QK bGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==