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 4A9B52459DD; Sun, 11 Jan 2026 08:27:27 +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=1768120047; cv=none; b=HqV/j9dn2EfDqKz7or7K+KtMBjnIiFMhy5JxbMAd6eOvALbcDEoSVNoNX47qXXof4KfSv6XE/6DZ4Vh3yZMWtPfO4wKAK5u3A3N/b+it1Z3YZ3JnbV6kRnbgy25FBbke+CbzI5iRikWan4SaAI+T9gH4AjRH7RCav7Olz+TiuSA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768120047; c=relaxed/simple; bh=qPTODPcny1Nd13vjfkbrdXoSEB4nW6xOAo1sS0PWL+M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EHg7JqbuPA4vVUOm9pKzvzLt+hlWzvxiCeWIWYJFvuU3mBmnUx/xzyzlbZqOCcE9JP8CB5gbJGCwfilVI5pqFD5a7uTE1af3EkjKzQBD+iLsOT2++oLNUAycQ7WmZlwaWr7t7AJiddv7OjK/eJ3Wj/uECa2FpnLHK/SXxXzH0t4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cmNUyv4m; 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="cmNUyv4m" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55CEEC16AAE; Sun, 11 Jan 2026 08:27:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768120046; bh=qPTODPcny1Nd13vjfkbrdXoSEB4nW6xOAo1sS0PWL+M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cmNUyv4mSztkOTJWaj2rzlRWD/57J9AN0HObImKZ8pJ8lyJz+gE/sw6FV+hYbRjvS ZeDggnNfc1MJY+LHzNM/WSa4Hvdln+ZFwdPuEeIes34y9UrPambdSlqMic57nB0+bd j8EAw8xE/KEe4cUeKQrbYgDE55aMN2yM1lXx0qifqentXawZsB9usslIgIfrSccrDU gWU2d7Bz4pPl5FoVLvkwP+0OATJ363zBsWPZqgk1jCDUF/WZeEdGjuyn/XLTGhTVxf rmWIrcNkoS7xM/uZdHFuqsIBT+51BT+u+sCNkujT1sknBZ8QibXSmkc5GonzGbNO+I Q5p5ixPd9qQnQ== From: Mike Rapoport To: Andrew Morton Cc: Alex Shi , Alexander Gordeev , Andreas Larsson , Borislav Petkov , Brian Cain , "Christophe Leroy (CS GROUP)" , Catalin Marinas , "David S. Miller" , Dave Hansen , David Hildenbrand , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Heiko Carstens , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , Jonathan Corbet , Klara Modin , "Liam R. Howlett" , Lorenzo Stoakes , Magnus Lindholm , Matt Turner , Max Filippov , Michael Ellerman , Michal Hocko , Michal Simek , Mike Rapoport , Muchun Song , Oscar Salvador , Palmer Dabbelt , Pratyush Yadav , Richard Weinberger , Ritesh Harjani , Russell King , Stafford Horne , Suren Baghdasaryan , Thomas Bogendoerfer , Thomas Gleixner , Vasily Gorbik , Vineet Gupta , Vlastimil Babka , Will Deacon , x86@kernel.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-openrisc@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-um@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, sparclinux@vger.kernel.org Subject: [PATCH v3 24/29] arch, mm: consolidate initialization of SPARSE memory model Date: Sun, 11 Jan 2026 10:20:58 +0200 Message-ID: <20260111082105.290734-25-rppt@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260111082105.290734-1-rppt@kernel.org> References: <20260111082105.290734-1-rppt@kernel.org> Precedence: bulk X-Mailing-List: linux-alpha@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: "Mike Rapoport (Microsoft)" Every architecture calls sparse_init() during setup_arch() although the data structures created by sparse_init() are not used until the initialization of the core MM. Beside the code duplication, calling sparse_init() from architecture specific code causes ordering differences of vmemmap and HVO initialization on different architectures. Move the call to sparse_init() from architecture specific code to free_area_init() to ensure that vmemmap and HVO initialization order is always the same. Signed-off-by: Mike Rapoport (Microsoft) --- Documentation/mm/memory-model.rst | 3 --- Documentation/translations/zh_CN/mm/memory-model.rst | 2 -- arch/alpha/kernel/setup.c | 1 - arch/arm/mm/init.c | 6 ------ arch/arm64/mm/init.c | 6 ------ arch/csky/kernel/setup.c | 2 -- arch/loongarch/kernel/setup.c | 8 -------- arch/mips/kernel/setup.c | 11 ----------- arch/parisc/mm/init.c | 2 -- arch/powerpc/include/asm/setup.h | 4 ++++ arch/powerpc/mm/mem.c | 5 ----- arch/powerpc/mm/numa.c | 2 -- arch/riscv/mm/init.c | 1 - arch/s390/mm/init.c | 1 - arch/sh/mm/init.c | 2 -- arch/sparc/mm/init_64.c | 2 -- arch/x86/mm/init_32.c | 1 - arch/x86/mm/init_64.c | 2 -- include/linux/mmzone.h | 2 -- mm/internal.h | 6 ++++++ mm/mm_init.c | 1 + 21 files changed, 11 insertions(+), 59 deletions(-) diff --git a/Documentation/mm/memory-model.rst b/Documentation/mm/memory-model.rst index 7957122039e8..199b11328f4f 100644 --- a/Documentation/mm/memory-model.rst +++ b/Documentation/mm/memory-model.rst @@ -97,9 +97,6 @@ sections: `mem_section` objects and the number of rows is calculated to fit all the memory sections. -The architecture setup code should call sparse_init() to -initialize the memory sections and the memory maps. - With SPARSEMEM there are two possible ways to convert a PFN to the corresponding `struct page` - a "classic sparse" and "sparse vmemmap". The selection is made at build time and it is determined by diff --git a/Documentation/translations/zh_CN/mm/memory-model.rst b/Documentation/translations/zh_CN/mm/memory-model.rst index 77ec149a970c..c0c5d8ecd880 100644 --- a/Documentation/translations/zh_CN/mm/memory-model.rst +++ b/Documentation/translations/zh_CN/mm/memory-model.rst @@ -83,8 +83,6 @@ SPARSEMEM模型将物理内存显示为一个部分的集合。一个区段用me 每一行包含价值 `PAGE_SIZE` 的 `mem_section` 对象,行数的计算是为了适应所有的 内存区。 -架构设置代码应该调用sparse_init()来初始化内存区和内存映射。 - 通过SPARSEMEM,有两种可能的方式将PFN转换为相应的 `struct page` --"classic sparse"和 "sparse vmemmap"。选择是在构建时进行的,它由 `CONFIG_SPARSEMEM_VMEMMAP` 的 值决定。 diff --git a/arch/alpha/kernel/setup.c b/arch/alpha/kernel/setup.c index bebdffafaee8..f0af444a69a4 100644 --- a/arch/alpha/kernel/setup.c +++ b/arch/alpha/kernel/setup.c @@ -607,7 +607,6 @@ setup_arch(char **cmdline_p) /* Find our memory. */ setup_memory(kernel_end); memblock_set_bottom_up(true); - sparse_init(); /* First guess at cpu cache sizes. Do this before init_arch. */ determine_cpu_caches(cpu->type); diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index a8f7b4084715..0cc1bf04686d 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -207,12 +207,6 @@ void __init bootmem_init(void) early_memtest((phys_addr_t)min_low_pfn << PAGE_SHIFT, (phys_addr_t)max_low_pfn << PAGE_SHIFT); - - /* - * sparse_init() tries to allocate memory from memblock, so must be - * done after the fixed reservations - */ - sparse_init(); } /* diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 3641e88ea871..9d271aff7652 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -321,12 +321,6 @@ void __init bootmem_init(void) #endif kvm_hyp_reserve(); - - /* - * sparse_init() tries to allocate memory from memblock, so must be - * done after the fixed reservations - */ - sparse_init(); dma_limits_init(); /* diff --git a/arch/csky/kernel/setup.c b/arch/csky/kernel/setup.c index 4bf3c01ead3a..45c98dcf7f50 100644 --- a/arch/csky/kernel/setup.c +++ b/arch/csky/kernel/setup.c @@ -123,8 +123,6 @@ void __init setup_arch(char **cmdline_p) setup_smp(); #endif - sparse_init(); - fixaddr_init(); #ifdef CONFIG_HIGHMEM diff --git a/arch/loongarch/kernel/setup.c b/arch/loongarch/kernel/setup.c index 708ac025db71..d6a1ff0e16f1 100644 --- a/arch/loongarch/kernel/setup.c +++ b/arch/loongarch/kernel/setup.c @@ -402,14 +402,6 @@ static void __init arch_mem_init(char **cmdline_p) check_kernel_sections_mem(); - /* - * In order to reduce the possibility of kernel panic when failed to - * get IO TLB memory under CONFIG_SWIOTLB, it is better to allocate - * low memory as small as possible before swiotlb_init(), so make - * sparse_init() using top-down allocation. - */ - memblock_set_bottom_up(false); - sparse_init(); memblock_set_bottom_up(true); swiotlb_init(true, SWIOTLB_VERBOSE); diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 11b9b6b63e19..d36d89d01fa4 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -614,7 +614,6 @@ static void __init bootcmdline_init(void) * kernel but generic memory management system is still entirely uninitialized. * * o bootmem_init() - * o sparse_init() * o paging_init() * o dma_contiguous_reserve() * @@ -665,16 +664,6 @@ static void __init arch_mem_init(char **cmdline_p) mips_parse_crashkernel(); device_tree_init(); - /* - * In order to reduce the possibility of kernel panic when failed to - * get IO TLB memory under CONFIG_SWIOTLB, it is better to allocate - * low memory as small as possible before plat_swiotlb_setup(), so - * make sparse_init() using top-down allocation. - */ - memblock_set_bottom_up(false); - sparse_init(); - memblock_set_bottom_up(true); - plat_swiotlb_setup(); dma_contiguous_reserve(PFN_PHYS(max_low_pfn)); diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index ce6f09ab7a90..6a39e031e5ff 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c @@ -706,8 +706,6 @@ void __init paging_init(void) fixmap_init(); flush_cache_all_local(); /* start with known state */ flush_tlb_all_local(NULL); - - sparse_init(); } static void alloc_btlb(unsigned long start, unsigned long end, int *slot, diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h index 50a92b24628d..6d60ea4868ab 100644 --- a/arch/powerpc/include/asm/setup.h +++ b/arch/powerpc/include/asm/setup.h @@ -20,7 +20,11 @@ extern void reloc_got2(unsigned long); void check_for_initrd(void); void mem_topology_setup(void); +#ifdef CONFIG_NUMA void initmem_init(void); +#else +static inline void initmem_init(void) {} +#endif void setup_panic(void); #define ARCH_PANIC_TIMEOUT 180 diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index b716c9cd141c..3789a51bdaae 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -182,11 +182,6 @@ void __init mem_topology_setup(void) memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); } -void __init initmem_init(void) -{ - sparse_init(); -} - /* mark pages that don't exist as nosave */ static int __init mark_nonram_nosave(void) { diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 603a0f652ba6..f4cf3ae036de 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -1213,8 +1213,6 @@ void __init initmem_init(void) setup_node_data(nid, start_pfn, end_pfn); } - sparse_init(); - /* * We need the numa_cpu_lookup_table to be accurate for all CPUs, * even before we online them, so that we can use cpu_to_{node,mem} diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 79b4792578c4..11ac4041afc0 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -1430,7 +1430,6 @@ void __init misc_mem_init(void) { early_memtest(min_low_pfn << PAGE_SHIFT, max_low_pfn << PAGE_SHIFT); arch_numa_init(); - sparse_init(); #ifdef CONFIG_SPARSEMEM_VMEMMAP /* The entire VMEMMAP region has been populated. Flush TLB for this region */ local_flush_tlb_kernel_range(VMEMMAP_START, VMEMMAP_END); diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 9ec608b5cbb1..3c20475cbee2 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c @@ -98,7 +98,6 @@ void __init arch_zone_limits_init(unsigned long *max_zone_pfns) void __init paging_init(void) { vmem_map_init(); - sparse_init(); zone_dma_limit = DMA_BIT_MASK(31); } diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c index 3edee854b755..464a3a63e2fa 100644 --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -227,8 +227,6 @@ static void __init do_init_bootmem(void) node_set_online(0); plat_mem_setup(); - - sparse_init(); } static void __init early_reserve_mem(void) diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 931f872ce84a..4f7bdb18774b 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -1615,8 +1615,6 @@ static unsigned long __init bootmem_init(unsigned long phys_base) /* XXX cpu notifier XXX */ - sparse_init(); - return end_pfn; } diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index b55172118c91..0908c44d51e6 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -654,7 +654,6 @@ void __init paging_init(void) * NOTE: at this point the bootmem allocator is fully available. */ olpc_dt_build_devicetree(); - sparse_init(); } /* diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 4daa40071c9f..df2261fa4f98 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -833,8 +833,6 @@ void __init initmem_init(void) void __init paging_init(void) { - sparse_init(); - /* * clear the default setting with node 0 * note: don't use nodes_clear here, that is really clearing when diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 75ef7c9f9307..6a7db0fee54a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -2285,9 +2285,7 @@ static inline unsigned long next_present_section_nr(unsigned long section_nr) #define pfn_to_nid(pfn) (0) #endif -void sparse_init(void); #else -#define sparse_init() do {} while (0) #define sparse_index_init(_sec, _nid) do {} while (0) #define sparse_vmemmap_init_nid_early(_nid) do {} while (0) #define sparse_vmemmap_init_nid_late(_nid) do {} while (0) diff --git a/mm/internal.h b/mm/internal.h index e430da900430..dc5316c68664 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -860,6 +860,12 @@ void memmap_init_range(unsigned long, int, unsigned long, unsigned long, unsigned long, enum meminit_context, struct vmem_altmap *, int, bool); +#ifdef CONFIG_SPARSEMEM +void sparse_init(void); +#else +static inline void sparse_init(void) {} +#endif /* CONFIG_SPARSEMEM */ + #if defined CONFIG_COMPACTION || defined CONFIG_CMA /* diff --git a/mm/mm_init.c b/mm/mm_init.c index ffc4a0f1fee9..4cfe722da062 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -1828,6 +1828,7 @@ static void __init free_area_init(void) bool descending; arch_zone_limits_init(max_zone_pfn); + sparse_init(); start_pfn = PHYS_PFN(memblock_start_of_DRAM()); descending = arch_has_descending_max_zone_pfns(); -- 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 55A04D2502F for ; Sun, 11 Jan 2026 08:27:45 +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=PbhG8+nLVIZKeVDuLFOzhGCC72jblfVLgNjGBtpNYXU=; b=tdk7eU9kGXZgPn i30NsCal9rxTcUR8LA/uNPMAqQfwRpfDkD+I5NIyVwqr/BIJUt6PcQoPT9IZyi7Ea6YTRhZjA9xJe S5a0lqMiOZSrbknb2Xiu/PYuYSh5Qj6UTpA3YXopMq3D4j5mS6Ea5osaTXxWDGXy1fUEUVXXgUT3D NBVbwcu1yGADB1vpID1Zlrc8/E0nsVMyj+sktAX2BtN9AqtoDnYEFGRUqdeSjXvVOd/BYIhK/Vcob nIyGNKRj8zfNX26a/AgmXnDj5FFgr3oFVhb55a5aeM3b4CbmEavT1e/nZwtrgqFizUASJxWS5F0sK ZmpOyc+YkWdskvmdFJnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnP-00000004133-2W7X; Sun, 11 Jan 2026 08:27:35 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnO-0000000412A-1fQG; Sun, 11 Jan 2026 08:27:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=CYkGB4B2BZVrHtzGbtWlKunn6AZVwjescYDn2kP3PfU=; b=RDtNKnjavpE40mX1nQGkz2lbwU 3f99eI3LcCTnASAdhS+xXLE5WO8LgcTzH9ZUN2YsevjTldGb0CU4w+qmlO43V6H4oycjcyoTcb6du GTn3zmIeOLCj5PIU0KiJjr47fHi/e82PNZJT+OjqQjDmgObGJDR+E/Ns3oFYTNUndBcWa++QOSjNW PilCWaXYr2B6djRsu1GSdAUCwkEYPwOrzKeEOFkSfnY/FESaLsM7WRDjEY7/WzBGmHvDpRSqZajPc 4/B8c5Wbg5SQwUZC1/3aEgCkRh1HpGEyMhOGFpoDzxcKOeXZlW53IxH/RMb44wbSkWtWZ3ogtzfzv 3MYAdxSQ==; Received: from sea.source.kernel.org ([172.234.252.31]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnI-0000000Guw3-1zn3; Sun, 11 Jan 2026 08:27:31 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 178A6409B4; Sun, 11 Jan 2026 08:27:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55CEEC16AAE; Sun, 11 Jan 2026 08:27:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768120046; bh=qPTODPcny1Nd13vjfkbrdXoSEB4nW6xOAo1sS0PWL+M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cmNUyv4mSztkOTJWaj2rzlRWD/57J9AN0HObImKZ8pJ8lyJz+gE/sw6FV+hYbRjvS ZeDggnNfc1MJY+LHzNM/WSa4Hvdln+ZFwdPuEeIes34y9UrPambdSlqMic57nB0+bd j8EAw8xE/KEe4cUeKQrbYgDE55aMN2yM1lXx0qifqentXawZsB9usslIgIfrSccrDU gWU2d7Bz4pPl5FoVLvkwP+0OATJ363zBsWPZqgk1jCDUF/WZeEdGjuyn/XLTGhTVxf rmWIrcNkoS7xM/uZdHFuqsIBT+51BT+u+sCNkujT1sknBZ8QibXSmkc5GonzGbNO+I Q5p5ixPd9qQnQ== From: Mike Rapoport To: Andrew Morton Cc: Alex Shi , Alexander Gordeev , Andreas Larsson , Borislav Petkov , Brian Cain , "Christophe Leroy (CS GROUP)" , Catalin Marinas , "David S. Miller" , Dave Hansen , David Hildenbrand , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Heiko Carstens , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , Jonathan Corbet , Klara Modin , "Liam R. Howlett" , Lorenzo Stoakes , Magnus Lindholm , Matt Turner , Max Filippov , Michael Ellerman , Michal Hocko , Michal Simek , Mike Rapoport , Muchun Song , Oscar Salvador , Palmer Dabbelt , Pratyush Yadav , Richard Weinberger , Ritesh Harjani , Russell King , Stafford Horne , Suren Baghdasaryan , Thomas Bogendoerfer , Thomas Gleixner , Vasily Gorbik , Vineet Gupta , Vlastimil Babka , Will Deacon , x86@kernel.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-openrisc@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-um@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, sparclinux@vger.kernel.org Subject: [PATCH v3 24/29] arch, mm: consolidate initialization of SPARSE memory model Date: Sun, 11 Jan 2026 10:20:58 +0200 Message-ID: <20260111082105.290734-25-rppt@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260111082105.290734-1-rppt@kernel.org> References: <20260111082105.290734-1-rppt@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260111_082728_979043_408FD97F X-CRM114-Status: GOOD ( 25.49 ) 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 RnJvbTogIk1pa2UgUmFwb3BvcnQgKE1pY3Jvc29mdCkiIDxycHB0QGtlcm5lbC5vcmc+CgpFdmVy eSBhcmNoaXRlY3R1cmUgY2FsbHMgc3BhcnNlX2luaXQoKSBkdXJpbmcgc2V0dXBfYXJjaCgpIGFs dGhvdWdoIHRoZQpkYXRhIHN0cnVjdHVyZXMgY3JlYXRlZCBieSBzcGFyc2VfaW5pdCgpIGFyZSBu b3QgdXNlZCB1bnRpbCB0aGUKaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvcmUgTU0uCgpCZXNpZGUg dGhlIGNvZGUgZHVwbGljYXRpb24sIGNhbGxpbmcgc3BhcnNlX2luaXQoKSBmcm9tIGFyY2hpdGVj dHVyZQpzcGVjaWZpYyBjb2RlIGNhdXNlcyBvcmRlcmluZyBkaWZmZXJlbmNlcyBvZiB2bWVtbWFw IGFuZCBIVk8gaW5pdGlhbGl6YXRpb24Kb24gZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMuCgpNb3Zl IHRoZSBjYWxsIHRvIHNwYXJzZV9pbml0KCkgZnJvbSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29k ZSB0bwpmcmVlX2FyZWFfaW5pdCgpIHRvIGVuc3VyZSB0aGF0IHZtZW1tYXAgYW5kIEhWTyBpbml0 aWFsaXphdGlvbiBvcmRlciBpcwphbHdheXMgdGhlIHNhbWUuCgpTaWduZWQtb2ZmLWJ5OiBNaWtl IFJhcG9wb3J0IChNaWNyb3NvZnQpIDxycHB0QGtlcm5lbC5vcmc+Ci0tLQogRG9jdW1lbnRhdGlv bi9tbS9tZW1vcnktbW9kZWwucnN0ICAgICAgICAgICAgICAgICAgICB8ICAzIC0tLQogRG9jdW1l bnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbW0vbWVtb3J5LW1vZGVsLnJzdCB8ICAyIC0tCiBh cmNoL2FscGhhL2tlcm5lbC9zZXR1cC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg LQogYXJjaC9hcm0vbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA2IC0tLS0tLQogYXJjaC9hcm02NC9tbS9pbml0LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA2IC0tLS0tLQogYXJjaC9jc2t5L2tlcm5lbC9zZXR1cC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL2xvb25nYXJjaC9rZXJuZWwvc2V0dXAuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDggLS0tLS0tLS0KIGFyY2gvbWlwcy9rZXJuZWwvc2V0 dXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSAtLS0tLS0tLS0tLQogYXJjaC9w YXJpc2MvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0tCiBh cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc2V0dXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDQg KysrKwogYXJjaC9wb3dlcnBjL21tL21lbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA1IC0tLS0tCiBhcmNoL3Bvd2VycGMvbW0vbnVtYS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgLS0KIGFyY2gvcmlzY3YvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMSAtCiBhcmNoL3MzOTAvbW0vaW5pdC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgLQogYXJjaC9zaC9tbS9pbml0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3NwYXJjL21tL2luaXRfNjQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIGFyY2gveDg2L21tL2luaXRfMzIu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSAtCiBhcmNoL3g4Ni9tbS9pbml0 XzY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIGluY2x1ZGUvbGlu dXgvbW16b25lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQogbW0vaW50 ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysr KwogbW0vbW1faW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxICsKIDIxIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdCBiL0RvY3Vt ZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdAppbmRleCA3OTU3MTIyMDM5ZTguLjE5OWIxMTMy OGY0ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9tbS9tZW1vcnktbW9kZWwucnN0CisrKyBi L0RvY3VtZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdApAQCAtOTcsOSArOTcsNiBAQCBzZWN0 aW9uczoKICAgYG1lbV9zZWN0aW9uYCBvYmplY3RzIGFuZCB0aGUgbnVtYmVyIG9mIHJvd3MgaXMg Y2FsY3VsYXRlZCB0byBmaXQKICAgYWxsIHRoZSBtZW1vcnkgc2VjdGlvbnMuCiAKLVRoZSBhcmNo aXRlY3R1cmUgc2V0dXAgY29kZSBzaG91bGQgY2FsbCBzcGFyc2VfaW5pdCgpIHRvCi1pbml0aWFs aXplIHRoZSBtZW1vcnkgc2VjdGlvbnMgYW5kIHRoZSBtZW1vcnkgbWFwcy4KLQogV2l0aCBTUEFS U0VNRU0gdGhlcmUgYXJlIHR3byBwb3NzaWJsZSB3YXlzIHRvIGNvbnZlcnQgYSBQRk4gdG8gdGhl CiBjb3JyZXNwb25kaW5nIGBzdHJ1Y3QgcGFnZWAgLSBhICJjbGFzc2ljIHNwYXJzZSIgYW5kICJz cGFyc2UKIHZtZW1tYXAiLiBUaGUgc2VsZWN0aW9uIGlzIG1hZGUgYXQgYnVpbGQgdGltZSBhbmQg aXQgaXMgZGV0ZXJtaW5lZCBieQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlv bnMvemhfQ04vbW0vbWVtb3J5LW1vZGVsLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25z L3poX0NOL21tL21lbW9yeS1tb2RlbC5yc3QKaW5kZXggNzdlYzE0OWE5NzBjLi5jMGM1ZDhlY2Q4 ODAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL21tL21lbW9y eS1tb2RlbC5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbW0vbWVt b3J5LW1vZGVsLnJzdApAQCAtODMsOCArODMsNiBAQCBTUEFSU0VNRU3mqKHlnovlsIbniannkIbl hoXlrZjmmL7npLrkuLrkuIDkuKrpg6jliIbnmoTpm4blkIjjgILkuIDkuKrljLrmrrXnlKhtZQog ICDmr4/kuIDooYzljIXlkKvku7flgLwgYFBBR0VfU0laRWAg55qEIGBtZW1fc2VjdGlvbmAg5a+5 6LGh77yM6KGM5pWw55qE6K6h566X5piv5Li65LqG6YCC5bqU5omA5pyJ55qECiAgIOWGheWtmOWM uuOAggogCi3mnrbmnoTorr7nva7ku6PnoIHlupTor6XosIPnlKhzcGFyc2VfaW5pdCgp5p2l5Yid 5aeL5YyW5YaF5a2Y5Yy65ZKM5YaF5a2Y5pig5bCE44CCCi0KIOmAmui/h1NQQVJTRU1FTe+8jOac ieS4pOenjeWPr+iDveeahOaWueW8j+WwhlBGTui9rOaNouS4uuebuOW6lOeahCBgc3RydWN0IHBh Z2VgIC0tImNsYXNzaWMgc3BhcnNlIuWSjAogICJzcGFyc2Ugdm1lbW1hcCLjgILpgInmi6nmmK/l nKjmnoTlu7rml7bov5vooYznmoTvvIzlroPnlLEgYENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUGAg 55qECiAg5YC85Yaz5a6a44CCCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9zZXR1cC5j IGIvYXJjaC9hbHBoYS9rZXJuZWwvc2V0dXAuYwppbmRleCBiZWJkZmZhZmFlZTguLmYwYWY0NDRh NjlhNCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL2Fs cGhhL2tlcm5lbC9zZXR1cC5jCkBAIC02MDcsNyArNjA3LDYgQEAgc2V0dXBfYXJjaChjaGFyICoq Y21kbGluZV9wKQogCS8qIEZpbmQgb3VyIG1lbW9yeS4gICovCiAJc2V0dXBfbWVtb3J5KGtlcm5l bF9lbmQpOwogCW1lbWJsb2NrX3NldF9ib3R0b21fdXAodHJ1ZSk7Ci0Jc3BhcnNlX2luaXQoKTsK IAogCS8qIEZpcnN0IGd1ZXNzIGF0IGNwdSBjYWNoZSBzaXplcy4gIERvIHRoaXMgYmVmb3JlIGlu aXRfYXJjaC4gICovCiAJZGV0ZXJtaW5lX2NwdV9jYWNoZXMoY3B1LT50eXBlKTsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21tL2luaXQuYyBiL2FyY2gvYXJtL21tL2luaXQuYwppbmRleCBhOGY3YjQw ODQ3MTUuLjBjYzFiZjA0Njg2ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vaW5pdC5jCisrKyBi L2FyY2gvYXJtL21tL2luaXQuYwpAQCAtMjA3LDEyICsyMDcsNiBAQCB2b2lkIF9faW5pdCBib290 bWVtX2luaXQodm9pZCkKIAogCWVhcmx5X21lbXRlc3QoKHBoeXNfYWRkcl90KW1pbl9sb3dfcGZu IDw8IFBBR0VfU0hJRlQsCiAJCSAgICAgIChwaHlzX2FkZHJfdCltYXhfbG93X3BmbiA8PCBQQUdF X1NISUZUKTsKLQotCS8qCi0JICogc3BhcnNlX2luaXQoKSB0cmllcyB0byBhbGxvY2F0ZSBtZW1v cnkgZnJvbSBtZW1ibG9jaywgc28gbXVzdCBiZQotCSAqIGRvbmUgYWZ0ZXIgdGhlIGZpeGVkIHJl c2VydmF0aW9ucwotCSAqLwotCXNwYXJzZV9pbml0KCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9h cmNoL2FybTY0L21tL2luaXQuYyBiL2FyY2gvYXJtNjQvbW0vaW5pdC5jCmluZGV4IDM2NDFlODhl YTg3MS4uOWQyNzFhZmY3NjUyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L21tL2luaXQuYworKysg Yi9hcmNoL2FybTY0L21tL2luaXQuYwpAQCAtMzIxLDEyICszMjEsNiBAQCB2b2lkIF9faW5pdCBi b290bWVtX2luaXQodm9pZCkKICNlbmRpZgogCiAJa3ZtX2h5cF9yZXNlcnZlKCk7Ci0KLQkvKgot CSAqIHNwYXJzZV9pbml0KCkgdHJpZXMgdG8gYWxsb2NhdGUgbWVtb3J5IGZyb20gbWVtYmxvY2ss IHNvIG11c3QgYmUKLQkgKiBkb25lIGFmdGVyIHRoZSBmaXhlZCByZXNlcnZhdGlvbnMKLQkgKi8K LQlzcGFyc2VfaW5pdCgpOwogCWRtYV9saW1pdHNfaW5pdCgpOwogCiAJLyoKZGlmZiAtLWdpdCBh L2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYwppbmRl eCA0YmYzYzAxZWFkM2EuLjQ1Yzk4ZGNmN2Y1MCAxMDA2NDQKLS0tIGEvYXJjaC9jc2t5L2tlcm5l bC9zZXR1cC5jCisrKyBiL2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYwpAQCAtMTIzLDggKzEyMyw2 IEBAIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKIAlzZXR1cF9zbXAo KTsKICNlbmRpZgogCi0Jc3BhcnNlX2luaXQoKTsKLQogCWZpeGFkZHJfaW5pdCgpOwogCiAjaWZk ZWYgQ09ORklHX0hJR0hNRU0KZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1 cC5jIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3NldHVwLmMKaW5kZXggNzA4YWMwMjVkYjcxLi5k NmExZmYwZTE2ZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1cC5jCisr KyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1cC5jCkBAIC00MDIsMTQgKzQwMiw2IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBhcmNoX21lbV9pbml0KGNoYXIgKipjbWRsaW5lX3ApCiAKIAljaGVj a19rZXJuZWxfc2VjdGlvbnNfbWVtKCk7CiAKLQkvKgotCSAqIEluIG9yZGVyIHRvIHJlZHVjZSB0 aGUgcG9zc2liaWxpdHkgb2Yga2VybmVsIHBhbmljIHdoZW4gZmFpbGVkIHRvCi0JICogZ2V0IElP IFRMQiBtZW1vcnkgdW5kZXIgQ09ORklHX1NXSU9UTEIsIGl0IGlzIGJldHRlciB0byBhbGxvY2F0 ZQotCSAqIGxvdyBtZW1vcnkgYXMgc21hbGwgYXMgcG9zc2libGUgYmVmb3JlIHN3aW90bGJfaW5p dCgpLCBzbyBtYWtlCi0JICogc3BhcnNlX2luaXQoKSB1c2luZyB0b3AtZG93biBhbGxvY2F0aW9u LgotCSAqLwotCW1lbWJsb2NrX3NldF9ib3R0b21fdXAoZmFsc2UpOwotCXNwYXJzZV9pbml0KCk7 CiAJbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKIAogCXN3aW90bGJfaW5pdCh0cnVlLCBT V0lPVExCX1ZFUkJPU0UpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jIGIv YXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jCmluZGV4IDExYjliNmI2M2UxOS4uZDM2ZDg5ZDAxZmE0 IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9taXBzL2tl cm5lbC9zZXR1cC5jCkBAIC02MTQsNyArNjE0LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGJvb3Rj bWRsaW5lX2luaXQodm9pZCkKICAqIGtlcm5lbCBidXQgZ2VuZXJpYyBtZW1vcnkgbWFuYWdlbWVu dCBzeXN0ZW0gaXMgc3RpbGwgZW50aXJlbHkgdW5pbml0aWFsaXplZC4KICAqCiAgKiAgbyBib290 bWVtX2luaXQoKQotICogIG8gc3BhcnNlX2luaXQoKQogICogIG8gcGFnaW5nX2luaXQoKQogICog IG8gZG1hX2NvbnRpZ3VvdXNfcmVzZXJ2ZSgpCiAgKgpAQCAtNjY1LDE2ICs2NjQsNiBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgYXJjaF9tZW1faW5pdChjaGFyICoqY21kbGluZV9wKQogCW1pcHNfcGFy c2VfY3Jhc2hrZXJuZWwoKTsKIAlkZXZpY2VfdHJlZV9pbml0KCk7CiAKLQkvKgotCSAqIEluIG9y ZGVyIHRvIHJlZHVjZSB0aGUgcG9zc2liaWxpdHkgb2Yga2VybmVsIHBhbmljIHdoZW4gZmFpbGVk IHRvCi0JICogZ2V0IElPIFRMQiBtZW1vcnkgdW5kZXIgQ09ORklHX1NXSU9UTEIsIGl0IGlzIGJl dHRlciB0byBhbGxvY2F0ZQotCSAqIGxvdyBtZW1vcnkgYXMgc21hbGwgYXMgcG9zc2libGUgYmVm b3JlIHBsYXRfc3dpb3RsYl9zZXR1cCgpLCBzbwotCSAqIG1ha2Ugc3BhcnNlX2luaXQoKSB1c2lu ZyB0b3AtZG93biBhbGxvY2F0aW9uLgotCSAqLwotCW1lbWJsb2NrX3NldF9ib3R0b21fdXAoZmFs c2UpOwotCXNwYXJzZV9pbml0KCk7Ci0JbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKLQog CXBsYXRfc3dpb3RsYl9zZXR1cCgpOwogCiAJZG1hX2NvbnRpZ3VvdXNfcmVzZXJ2ZShQRk5fUEhZ UyhtYXhfbG93X3BmbikpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbW0vaW5pdC5jIGIvYXJj aC9wYXJpc2MvbW0vaW5pdC5jCmluZGV4IGNlNmYwOWFiN2E5MC4uNmEzOWUwMzFlNWZmIDEwMDY0 NAotLS0gYS9hcmNoL3BhcmlzYy9tbS9pbml0LmMKKysrIGIvYXJjaC9wYXJpc2MvbW0vaW5pdC5j CkBAIC03MDYsOCArNzA2LDYgQEAgdm9pZCBfX2luaXQgcGFnaW5nX2luaXQodm9pZCkKIAlmaXht YXBfaW5pdCgpOwogCWZsdXNoX2NhY2hlX2FsbF9sb2NhbCgpOyAvKiBzdGFydCB3aXRoIGtub3du IHN0YXRlICovCiAJZmx1c2hfdGxiX2FsbF9sb2NhbChOVUxMKTsKLQotCXNwYXJzZV9pbml0KCk7 CiB9CiAKIHN0YXRpYyB2b2lkIGFsbG9jX2J0bGIodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWdu ZWQgbG9uZyBlbmQsIGludCAqc2xvdCwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9zZXR1cC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3NldHVwLmgKaW5kZXggNTBh OTJiMjQ2MjhkLi42ZDYwZWE0ODY4YWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9zZXR1cC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZXR1cC5oCkBAIC0y MCw3ICsyMCwxMSBAQCBleHRlcm4gdm9pZCByZWxvY19nb3QyKHVuc2lnbmVkIGxvbmcpOwogCiB2 b2lkIGNoZWNrX2Zvcl9pbml0cmQodm9pZCk7CiB2b2lkIG1lbV90b3BvbG9neV9zZXR1cCh2b2lk KTsKKyNpZmRlZiBDT05GSUdfTlVNQQogdm9pZCBpbml0bWVtX2luaXQodm9pZCk7CisjZWxzZQor c3RhdGljIGlubGluZSB2b2lkIGluaXRtZW1faW5pdCh2b2lkKSB7fQorI2VuZGlmCiB2b2lkIHNl dHVwX3BhbmljKHZvaWQpOwogI2RlZmluZSBBUkNIX1BBTklDX1RJTUVPVVQgMTgwCiAKZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9tZW0uYyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwppbmRl eCBiNzE2YzljZDE0MWMuLjM3ODlhNTFiZGFhZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21t L21lbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwpAQCAtMTgyLDExICsxODIsNiBAQCB2 b2lkIF9faW5pdCBtZW1fdG9wb2xvZ3lfc2V0dXAodm9pZCkKIAltZW1ibG9ja19zZXRfbm9kZSgw LCBQSFlTX0FERFJfTUFYLCAmbWVtYmxvY2subWVtb3J5LCAwKTsKIH0KIAotdm9pZCBfX2luaXQg aW5pdG1lbV9pbml0KHZvaWQpCi17Ci0Jc3BhcnNlX2luaXQoKTsKLX0KLQogLyogbWFyayBwYWdl cyB0aGF0IGRvbid0IGV4aXN0IGFzIG5vc2F2ZSAqLwogc3RhdGljIGludCBfX2luaXQgbWFya19u b25yYW1fbm9zYXZlKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbnVtYS5j IGIvYXJjaC9wb3dlcnBjL21tL251bWEuYwppbmRleCA2MDNhMGY2NTJiYTYuLmY0Y2YzYWUwMzZk ZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL251bWEuYworKysgYi9hcmNoL3Bvd2VycGMv bW0vbnVtYS5jCkBAIC0xMjEzLDggKzEyMTMsNiBAQCB2b2lkIF9faW5pdCBpbml0bWVtX2luaXQo dm9pZCkKIAkJc2V0dXBfbm9kZV9kYXRhKG5pZCwgc3RhcnRfcGZuLCBlbmRfcGZuKTsKIAl9CiAK LQlzcGFyc2VfaW5pdCgpOwotCiAJLyoKIAkgKiBXZSBuZWVkIHRoZSBudW1hX2NwdV9sb29rdXBf dGFibGUgdG8gYmUgYWNjdXJhdGUgZm9yIGFsbCBDUFVzLAogCSAqIGV2ZW4gYmVmb3JlIHdlIG9u bGluZSB0aGVtLCBzbyB0aGF0IHdlIGNhbiB1c2UgY3B1X3RvX3tub2RlLG1lbX0KZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKaW5kZXggNzli NDc5MjU3OGM0Li4xMWFjNDA0MWFmYzAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5j CisrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCkBAIC0xNDMwLDcgKzE0MzAsNiBAQCB2b2lkIF9f aW5pdCBtaXNjX21lbV9pbml0KHZvaWQpCiB7CiAJZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiA8 PCBQQUdFX1NISUZULCBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUKTsKIAlhcmNoX251bWFfaW5p dCgpOwotCXNwYXJzZV9pbml0KCk7CiAjaWZkZWYgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQCiAJ LyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQuIEZsdXNoIFRM QiBmb3IgdGhpcyByZWdpb24gKi8KIAlsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1N QVBfU1RBUlQsIFZNRU1NQVBfRU5EKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9pbml0LmMg Yi9hcmNoL3MzOTAvbW0vaW5pdC5jCmluZGV4IDllYzYwOGI1Y2JiMS4uM2MyMDQ3NWNiZWUyIDEw MDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vaW5pdC5jCisrKyBiL2FyY2gvczM5MC9tbS9pbml0LmMK QEAgLTk4LDcgKzk4LDYgQEAgdm9pZCBfX2luaXQgYXJjaF96b25lX2xpbWl0c19pbml0KHVuc2ln bmVkIGxvbmcgKm1heF96b25lX3BmbnMpCiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQog ewogCXZtZW1fbWFwX2luaXQoKTsKLQlzcGFyc2VfaW5pdCgpOwogCXpvbmVfZG1hX2xpbWl0ID0g RE1BX0JJVF9NQVNLKDMxKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9zaC9tbS9pbml0LmMgYi9h cmNoL3NoL21tL2luaXQuYwppbmRleCAzZWRlZTg1NGI3NTUuLjQ2NGEzYTYzZTJmYSAxMDA2NDQK LS0tIGEvYXJjaC9zaC9tbS9pbml0LmMKKysrIGIvYXJjaC9zaC9tbS9pbml0LmMKQEAgLTIyNyw4 ICsyMjcsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZG9faW5pdF9ib290bWVtKHZvaWQpCiAJbm9k ZV9zZXRfb25saW5lKDApOwogCiAJcGxhdF9tZW1fc2V0dXAoKTsKLQotCXNwYXJzZV9pbml0KCk7 CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9yZXNlcnZlX21lbSh2b2lkKQpkaWZmIC0t Z2l0IGEvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwpp bmRleCA5MzFmODcyY2U4NGEuLjRmN2JkYjE4Nzc0YiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9t bS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKQEAgLTE2MTUsOCArMTYx NSw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBib290bWVtX2luaXQodW5zaWduZWQg bG9uZyBwaHlzX2Jhc2UpCiAKIAkvKiBYWFggY3B1IG5vdGlmaWVyIFhYWCAqLwogCi0Jc3BhcnNl X2luaXQoKTsKLQogCXJldHVybiBlbmRfcGZuOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9t bS9pbml0XzMyLmMgYi9hcmNoL3g4Ni9tbS9pbml0XzMyLmMKaW5kZXggYjU1MTcyMTE4YzkxLi4w OTA4YzQ0ZDUxZTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2luaXRfMzIuYworKysgYi9hcmNo L3g4Ni9tbS9pbml0XzMyLmMKQEAgLTY1NCw3ICs2NTQsNiBAQCB2b2lkIF9faW5pdCBwYWdpbmdf aW5pdCh2b2lkKQogCSAqIE5PVEU6IGF0IHRoaXMgcG9pbnQgdGhlIGJvb3RtZW0gYWxsb2NhdG9y IGlzIGZ1bGx5IGF2YWlsYWJsZS4KIAkgKi8KIAlvbHBjX2R0X2J1aWxkX2RldmljZXRyZWUoKTsK LQlzcGFyc2VfaW5pdCgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vaW5pdF82 NC5jIGIvYXJjaC94ODYvbW0vaW5pdF82NC5jCmluZGV4IDRkYWE0MDA3MWM5Zi4uZGYyMjYxZmE0 Zjk4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC94ODYvbW0v aW5pdF82NC5jCkBAIC04MzMsOCArODMzLDYgQEAgdm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHZv aWQpCiAKIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiB7Ci0Jc3BhcnNlX2luaXQoKTsK LQogCS8qCiAJICogY2xlYXIgdGhlIGRlZmF1bHQgc2V0dGluZyB3aXRoIG5vZGUgMAogCSAqIG5v dGU6IGRvbid0IHVzZSBub2Rlc19jbGVhciBoZXJlLCB0aGF0IGlzIHJlYWxseSBjbGVhcmluZyB3 aGVuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5jbHVkZS9saW51eC9t bXpvbmUuaAppbmRleCA3NWVmN2M5ZjkzMDcuLjZhN2RiMGZlZTU0YSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9tbXpvbmUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21tem9uZS5oCkBAIC0yMjg1 LDkgKzIyODUsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbmV4dF9wcmVzZW50X3Nl Y3Rpb25fbnIodW5zaWduZWQgbG9uZyBzZWN0aW9uX25yKQogI2RlZmluZSBwZm5fdG9fbmlkKHBm bikJCSgwKQogI2VuZGlmCiAKLXZvaWQgc3BhcnNlX2luaXQodm9pZCk7CiAjZWxzZQotI2RlZmlu ZSBzcGFyc2VfaW5pdCgpCWRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBzcGFyc2VfaW5kZXhfaW5p dChfc2VjLCBfbmlkKSAgZG8ge30gd2hpbGUgKDApCiAjZGVmaW5lIHNwYXJzZV92bWVtbWFwX2lu aXRfbmlkX2Vhcmx5KF9uaWQpIGRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBzcGFyc2Vfdm1lbW1h cF9pbml0X25pZF9sYXRlKF9uaWQpIGRvIHt9IHdoaWxlICgwKQpkaWZmIC0tZ2l0IGEvbW0vaW50 ZXJuYWwuaCBiL21tL2ludGVybmFsLmgKaW5kZXggZTQzMGRhOTAwNDMwLi5kYzUzMTZjNjg2NjQg MTAwNjQ0Ci0tLSBhL21tL2ludGVybmFsLmgKKysrIGIvbW0vaW50ZXJuYWwuaApAQCAtODYwLDYg Kzg2MCwxMiBAQCB2b2lkIG1lbW1hcF9pbml0X3JhbmdlKHVuc2lnbmVkIGxvbmcsIGludCwgdW5z aWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywKIAkJdW5zaWduZWQgbG9uZywgZW51bSBtZW1pbml0 X2NvbnRleHQsIHN0cnVjdCB2bWVtX2FsdG1hcCAqLCBpbnQsCiAJCWJvb2wpOwogCisjaWZkZWYg Q09ORklHX1NQQVJTRU1FTQordm9pZCBzcGFyc2VfaW5pdCh2b2lkKTsKKyNlbHNlCitzdGF0aWMg aW5saW5lIHZvaWQgc3BhcnNlX2luaXQodm9pZCkge30KKyNlbmRpZiAvKiBDT05GSUdfU1BBUlNF TUVNICovCisKICNpZiBkZWZpbmVkIENPTkZJR19DT01QQUNUSU9OIHx8IGRlZmluZWQgQ09ORklH X0NNQQogCiAvKgpkaWZmIC0tZ2l0IGEvbW0vbW1faW5pdC5jIGIvbW0vbW1faW5pdC5jCmluZGV4 IGZmYzRhMGYxZmVlOS4uNGNmZTcyMmRhMDYyIDEwMDY0NAotLS0gYS9tbS9tbV9pbml0LmMKKysr IGIvbW0vbW1faW5pdC5jCkBAIC0xODI4LDYgKzE4MjgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg ZnJlZV9hcmVhX2luaXQodm9pZCkKIAlib29sIGRlc2NlbmRpbmc7CiAKIAlhcmNoX3pvbmVfbGlt aXRzX2luaXQobWF4X3pvbmVfcGZuKTsKKwlzcGFyc2VfaW5pdCgpOwogCiAJc3RhcnRfcGZuID0g UEhZU19QRk4obWVtYmxvY2tfc3RhcnRfb2ZfRFJBTSgpKTsKIAlkZXNjZW5kaW5nID0gYXJjaF9o YXNfZGVzY2VuZGluZ19tYXhfem9uZV9wZm5zKCk7Ci0tIAoyLjUxLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 3C58DD2502F for ; Sun, 11 Jan 2026 08:27:36 +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=F0e6DFulvUj56TAoUd+h6Wn/kTLbX6eXVFJu6UK1++I=; b=DplvxV9deKHpEX bItBfSaacc6cju/1T5itI1YucqLAbVJjy/PvMmYN+cPtrEUducava3NYc9zlJ0PfrHYQhUTs6kVm+ SfZhPSu1kdDgA0oGbHBybf9UjiWsMWPJHXqt3XZ4HpPTqfGG0F8y0cb4kDjM5yYOwSmemt9CrQPyL UOjVEbPRRtcJrpDtTib1qlTHi3z+bRwJVFvFovBpPV1u6hkeVLxKRh0e4TcaecFDUK4/SE0Zg1i/O GII9wa/8RWjKCan9TsEKaiCxQIDZgxmxHo8QFNzzklJwL/XO4cord6ROw31HJROu/JBMT909jq90I ZKG9/pclWAzVJyNUftZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnP-0000000413M-3qv8; Sun, 11 Jan 2026 08:27:35 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnO-0000000412A-1fQG; Sun, 11 Jan 2026 08:27:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=CYkGB4B2BZVrHtzGbtWlKunn6AZVwjescYDn2kP3PfU=; b=RDtNKnjavpE40mX1nQGkz2lbwU 3f99eI3LcCTnASAdhS+xXLE5WO8LgcTzH9ZUN2YsevjTldGb0CU4w+qmlO43V6H4oycjcyoTcb6du GTn3zmIeOLCj5PIU0KiJjr47fHi/e82PNZJT+OjqQjDmgObGJDR+E/Ns3oFYTNUndBcWa++QOSjNW PilCWaXYr2B6djRsu1GSdAUCwkEYPwOrzKeEOFkSfnY/FESaLsM7WRDjEY7/WzBGmHvDpRSqZajPc 4/B8c5Wbg5SQwUZC1/3aEgCkRh1HpGEyMhOGFpoDzxcKOeXZlW53IxH/RMb44wbSkWtWZ3ogtzfzv 3MYAdxSQ==; Received: from sea.source.kernel.org ([172.234.252.31]) by desiato.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1veqnI-0000000Guw3-1zn3; Sun, 11 Jan 2026 08:27:31 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 178A6409B4; Sun, 11 Jan 2026 08:27:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55CEEC16AAE; Sun, 11 Jan 2026 08:27:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768120046; bh=qPTODPcny1Nd13vjfkbrdXoSEB4nW6xOAo1sS0PWL+M=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cmNUyv4mSztkOTJWaj2rzlRWD/57J9AN0HObImKZ8pJ8lyJz+gE/sw6FV+hYbRjvS ZeDggnNfc1MJY+LHzNM/WSa4Hvdln+ZFwdPuEeIes34y9UrPambdSlqMic57nB0+bd j8EAw8xE/KEe4cUeKQrbYgDE55aMN2yM1lXx0qifqentXawZsB9usslIgIfrSccrDU gWU2d7Bz4pPl5FoVLvkwP+0OATJ363zBsWPZqgk1jCDUF/WZeEdGjuyn/XLTGhTVxf rmWIrcNkoS7xM/uZdHFuqsIBT+51BT+u+sCNkujT1sknBZ8QibXSmkc5GonzGbNO+I Q5p5ixPd9qQnQ== From: Mike Rapoport To: Andrew Morton Cc: Alex Shi , Alexander Gordeev , Andreas Larsson , Borislav Petkov , Brian Cain , "Christophe Leroy (CS GROUP)" , Catalin Marinas , "David S. Miller" , Dave Hansen , David Hildenbrand , Dinh Nguyen , Geert Uytterhoeven , Guo Ren , Heiko Carstens , Helge Deller , Huacai Chen , Ingo Molnar , Johannes Berg , John Paul Adrian Glaubitz , Jonathan Corbet , Klara Modin , "Liam R. Howlett" , Lorenzo Stoakes , Magnus Lindholm , Matt Turner , Max Filippov , Michael Ellerman , Michal Hocko , Michal Simek , Mike Rapoport , Muchun Song , Oscar Salvador , Palmer Dabbelt , Pratyush Yadav , Richard Weinberger , Ritesh Harjani , Russell King , Stafford Horne , Suren Baghdasaryan , Thomas Bogendoerfer , Thomas Gleixner , Vasily Gorbik , Vineet Gupta , Vlastimil Babka , Will Deacon , x86@kernel.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-openrisc@vger.kernel.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-um@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, sparclinux@vger.kernel.org Subject: [PATCH v3 24/29] arch, mm: consolidate initialization of SPARSE memory model Date: Sun, 11 Jan 2026 10:20:58 +0200 Message-ID: <20260111082105.290734-25-rppt@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260111082105.290734-1-rppt@kernel.org> References: <20260111082105.290734-1-rppt@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260111_082728_979043_408FD97F X-CRM114-Status: GOOD ( 25.49 ) X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+linux-snps-arc=archiver.kernel.org@lists.infradead.org RnJvbTogIk1pa2UgUmFwb3BvcnQgKE1pY3Jvc29mdCkiIDxycHB0QGtlcm5lbC5vcmc+CgpFdmVy eSBhcmNoaXRlY3R1cmUgY2FsbHMgc3BhcnNlX2luaXQoKSBkdXJpbmcgc2V0dXBfYXJjaCgpIGFs dGhvdWdoIHRoZQpkYXRhIHN0cnVjdHVyZXMgY3JlYXRlZCBieSBzcGFyc2VfaW5pdCgpIGFyZSBu b3QgdXNlZCB1bnRpbCB0aGUKaW5pdGlhbGl6YXRpb24gb2YgdGhlIGNvcmUgTU0uCgpCZXNpZGUg dGhlIGNvZGUgZHVwbGljYXRpb24sIGNhbGxpbmcgc3BhcnNlX2luaXQoKSBmcm9tIGFyY2hpdGVj dHVyZQpzcGVjaWZpYyBjb2RlIGNhdXNlcyBvcmRlcmluZyBkaWZmZXJlbmNlcyBvZiB2bWVtbWFw IGFuZCBIVk8gaW5pdGlhbGl6YXRpb24Kb24gZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMuCgpNb3Zl IHRoZSBjYWxsIHRvIHNwYXJzZV9pbml0KCkgZnJvbSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29k ZSB0bwpmcmVlX2FyZWFfaW5pdCgpIHRvIGVuc3VyZSB0aGF0IHZtZW1tYXAgYW5kIEhWTyBpbml0 aWFsaXphdGlvbiBvcmRlciBpcwphbHdheXMgdGhlIHNhbWUuCgpTaWduZWQtb2ZmLWJ5OiBNaWtl IFJhcG9wb3J0IChNaWNyb3NvZnQpIDxycHB0QGtlcm5lbC5vcmc+Ci0tLQogRG9jdW1lbnRhdGlv bi9tbS9tZW1vcnktbW9kZWwucnN0ICAgICAgICAgICAgICAgICAgICB8ICAzIC0tLQogRG9jdW1l bnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbW0vbWVtb3J5LW1vZGVsLnJzdCB8ICAyIC0tCiBh cmNoL2FscGhhL2tlcm5lbC9zZXR1cC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg LQogYXJjaC9hcm0vbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA2IC0tLS0tLQogYXJjaC9hcm02NC9tbS9pbml0LmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA2IC0tLS0tLQogYXJjaC9jc2t5L2tlcm5lbC9zZXR1cC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL2xvb25nYXJjaC9rZXJuZWwvc2V0dXAuYyAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDggLS0tLS0tLS0KIGFyY2gvbWlwcy9rZXJuZWwvc2V0 dXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSAtLS0tLS0tLS0tLQogYXJjaC9w YXJpc2MvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0tCiBh cmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vc2V0dXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDQg KysrKwogYXJjaC9wb3dlcnBjL21tL21lbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA1IC0tLS0tCiBhcmNoL3Bvd2VycGMvbW0vbnVtYS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgLS0KIGFyY2gvcmlzY3YvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMSAtCiBhcmNoL3MzOTAvbW0vaW5pdC5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgLQogYXJjaC9zaC9tbS9pbml0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3NwYXJjL21tL2luaXRfNjQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIGFyY2gveDg2L21tL2luaXRfMzIu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSAtCiBhcmNoL3g4Ni9tbS9pbml0 XzY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLS0KIGluY2x1ZGUvbGlu dXgvbW16b25lLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAtLQogbW0vaW50 ZXJuYWwuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysr KwogbW0vbW1faW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxICsKIDIxIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdCBiL0RvY3Vt ZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdAppbmRleCA3OTU3MTIyMDM5ZTguLjE5OWIxMTMy OGY0ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9tbS9tZW1vcnktbW9kZWwucnN0CisrKyBi L0RvY3VtZW50YXRpb24vbW0vbWVtb3J5LW1vZGVsLnJzdApAQCAtOTcsOSArOTcsNiBAQCBzZWN0 aW9uczoKICAgYG1lbV9zZWN0aW9uYCBvYmplY3RzIGFuZCB0aGUgbnVtYmVyIG9mIHJvd3MgaXMg Y2FsY3VsYXRlZCB0byBmaXQKICAgYWxsIHRoZSBtZW1vcnkgc2VjdGlvbnMuCiAKLVRoZSBhcmNo aXRlY3R1cmUgc2V0dXAgY29kZSBzaG91bGQgY2FsbCBzcGFyc2VfaW5pdCgpIHRvCi1pbml0aWFs aXplIHRoZSBtZW1vcnkgc2VjdGlvbnMgYW5kIHRoZSBtZW1vcnkgbWFwcy4KLQogV2l0aCBTUEFS U0VNRU0gdGhlcmUgYXJlIHR3byBwb3NzaWJsZSB3YXlzIHRvIGNvbnZlcnQgYSBQRk4gdG8gdGhl CiBjb3JyZXNwb25kaW5nIGBzdHJ1Y3QgcGFnZWAgLSBhICJjbGFzc2ljIHNwYXJzZSIgYW5kICJz cGFyc2UKIHZtZW1tYXAiLiBUaGUgc2VsZWN0aW9uIGlzIG1hZGUgYXQgYnVpbGQgdGltZSBhbmQg aXQgaXMgZGV0ZXJtaW5lZCBieQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlv bnMvemhfQ04vbW0vbWVtb3J5LW1vZGVsLnJzdCBiL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25z L3poX0NOL21tL21lbW9yeS1tb2RlbC5yc3QKaW5kZXggNzdlYzE0OWE5NzBjLi5jMGM1ZDhlY2Q4 ODAgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdHJhbnNsYXRpb25zL3poX0NOL21tL21lbW9y eS1tb2RlbC5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vbW0vbWVt b3J5LW1vZGVsLnJzdApAQCAtODMsOCArODMsNiBAQCBTUEFSU0VNRU3mqKHlnovlsIbniannkIbl hoXlrZjmmL7npLrkuLrkuIDkuKrpg6jliIbnmoTpm4blkIjjgILkuIDkuKrljLrmrrXnlKhtZQog ICDmr4/kuIDooYzljIXlkKvku7flgLwgYFBBR0VfU0laRWAg55qEIGBtZW1fc2VjdGlvbmAg5a+5 6LGh77yM6KGM5pWw55qE6K6h566X5piv5Li65LqG6YCC5bqU5omA5pyJ55qECiAgIOWGheWtmOWM uuOAggogCi3mnrbmnoTorr7nva7ku6PnoIHlupTor6XosIPnlKhzcGFyc2VfaW5pdCgp5p2l5Yid 5aeL5YyW5YaF5a2Y5Yy65ZKM5YaF5a2Y5pig5bCE44CCCi0KIOmAmui/h1NQQVJTRU1FTe+8jOac ieS4pOenjeWPr+iDveeahOaWueW8j+WwhlBGTui9rOaNouS4uuebuOW6lOeahCBgc3RydWN0IHBh Z2VgIC0tImNsYXNzaWMgc3BhcnNlIuWSjAogICJzcGFyc2Ugdm1lbW1hcCLjgILpgInmi6nmmK/l nKjmnoTlu7rml7bov5vooYznmoTvvIzlroPnlLEgYENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUGAg 55qECiAg5YC85Yaz5a6a44CCCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9zZXR1cC5j IGIvYXJjaC9hbHBoYS9rZXJuZWwvc2V0dXAuYwppbmRleCBiZWJkZmZhZmFlZTguLmYwYWY0NDRh NjlhNCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL2Fs cGhhL2tlcm5lbC9zZXR1cC5jCkBAIC02MDcsNyArNjA3LDYgQEAgc2V0dXBfYXJjaChjaGFyICoq Y21kbGluZV9wKQogCS8qIEZpbmQgb3VyIG1lbW9yeS4gICovCiAJc2V0dXBfbWVtb3J5KGtlcm5l bF9lbmQpOwogCW1lbWJsb2NrX3NldF9ib3R0b21fdXAodHJ1ZSk7Ci0Jc3BhcnNlX2luaXQoKTsK IAogCS8qIEZpcnN0IGd1ZXNzIGF0IGNwdSBjYWNoZSBzaXplcy4gIERvIHRoaXMgYmVmb3JlIGlu aXRfYXJjaC4gICovCiAJZGV0ZXJtaW5lX2NwdV9jYWNoZXMoY3B1LT50eXBlKTsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21tL2luaXQuYyBiL2FyY2gvYXJtL21tL2luaXQuYwppbmRleCBhOGY3YjQw ODQ3MTUuLjBjYzFiZjA0Njg2ZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vaW5pdC5jCisrKyBi L2FyY2gvYXJtL21tL2luaXQuYwpAQCAtMjA3LDEyICsyMDcsNiBAQCB2b2lkIF9faW5pdCBib290 bWVtX2luaXQodm9pZCkKIAogCWVhcmx5X21lbXRlc3QoKHBoeXNfYWRkcl90KW1pbl9sb3dfcGZu IDw8IFBBR0VfU0hJRlQsCiAJCSAgICAgIChwaHlzX2FkZHJfdCltYXhfbG93X3BmbiA8PCBQQUdF X1NISUZUKTsKLQotCS8qCi0JICogc3BhcnNlX2luaXQoKSB0cmllcyB0byBhbGxvY2F0ZSBtZW1v cnkgZnJvbSBtZW1ibG9jaywgc28gbXVzdCBiZQotCSAqIGRvbmUgYWZ0ZXIgdGhlIGZpeGVkIHJl c2VydmF0aW9ucwotCSAqLwotCXNwYXJzZV9pbml0KCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9h cmNoL2FybTY0L21tL2luaXQuYyBiL2FyY2gvYXJtNjQvbW0vaW5pdC5jCmluZGV4IDM2NDFlODhl YTg3MS4uOWQyNzFhZmY3NjUyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L21tL2luaXQuYworKysg Yi9hcmNoL2FybTY0L21tL2luaXQuYwpAQCAtMzIxLDEyICszMjEsNiBAQCB2b2lkIF9faW5pdCBi b290bWVtX2luaXQodm9pZCkKICNlbmRpZgogCiAJa3ZtX2h5cF9yZXNlcnZlKCk7Ci0KLQkvKgot CSAqIHNwYXJzZV9pbml0KCkgdHJpZXMgdG8gYWxsb2NhdGUgbWVtb3J5IGZyb20gbWVtYmxvY2ss IHNvIG11c3QgYmUKLQkgKiBkb25lIGFmdGVyIHRoZSBmaXhlZCByZXNlcnZhdGlvbnMKLQkgKi8K LQlzcGFyc2VfaW5pdCgpOwogCWRtYV9saW1pdHNfaW5pdCgpOwogCiAJLyoKZGlmZiAtLWdpdCBh L2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYwppbmRl eCA0YmYzYzAxZWFkM2EuLjQ1Yzk4ZGNmN2Y1MCAxMDA2NDQKLS0tIGEvYXJjaC9jc2t5L2tlcm5l bC9zZXR1cC5jCisrKyBiL2FyY2gvY3NreS9rZXJuZWwvc2V0dXAuYwpAQCAtMTIzLDggKzEyMyw2 IEBAIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkKIAlzZXR1cF9zbXAo KTsKICNlbmRpZgogCi0Jc3BhcnNlX2luaXQoKTsKLQogCWZpeGFkZHJfaW5pdCgpOwogCiAjaWZk ZWYgQ09ORklHX0hJR0hNRU0KZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1 cC5jIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3NldHVwLmMKaW5kZXggNzA4YWMwMjVkYjcxLi5k NmExZmYwZTE2ZjEgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1cC5jCisr KyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9zZXR1cC5jCkBAIC00MDIsMTQgKzQwMiw2IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBhcmNoX21lbV9pbml0KGNoYXIgKipjbWRsaW5lX3ApCiAKIAljaGVj a19rZXJuZWxfc2VjdGlvbnNfbWVtKCk7CiAKLQkvKgotCSAqIEluIG9yZGVyIHRvIHJlZHVjZSB0 aGUgcG9zc2liaWxpdHkgb2Yga2VybmVsIHBhbmljIHdoZW4gZmFpbGVkIHRvCi0JICogZ2V0IElP IFRMQiBtZW1vcnkgdW5kZXIgQ09ORklHX1NXSU9UTEIsIGl0IGlzIGJldHRlciB0byBhbGxvY2F0 ZQotCSAqIGxvdyBtZW1vcnkgYXMgc21hbGwgYXMgcG9zc2libGUgYmVmb3JlIHN3aW90bGJfaW5p dCgpLCBzbyBtYWtlCi0JICogc3BhcnNlX2luaXQoKSB1c2luZyB0b3AtZG93biBhbGxvY2F0aW9u LgotCSAqLwotCW1lbWJsb2NrX3NldF9ib3R0b21fdXAoZmFsc2UpOwotCXNwYXJzZV9pbml0KCk7 CiAJbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKIAogCXN3aW90bGJfaW5pdCh0cnVlLCBT V0lPVExCX1ZFUkJPU0UpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jIGIv YXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jCmluZGV4IDExYjliNmI2M2UxOS4uZDM2ZDg5ZDAxZmE0 IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9taXBzL2tl cm5lbC9zZXR1cC5jCkBAIC02MTQsNyArNjE0LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGJvb3Rj bWRsaW5lX2luaXQodm9pZCkKICAqIGtlcm5lbCBidXQgZ2VuZXJpYyBtZW1vcnkgbWFuYWdlbWVu dCBzeXN0ZW0gaXMgc3RpbGwgZW50aXJlbHkgdW5pbml0aWFsaXplZC4KICAqCiAgKiAgbyBib290 bWVtX2luaXQoKQotICogIG8gc3BhcnNlX2luaXQoKQogICogIG8gcGFnaW5nX2luaXQoKQogICog IG8gZG1hX2NvbnRpZ3VvdXNfcmVzZXJ2ZSgpCiAgKgpAQCAtNjY1LDE2ICs2NjQsNiBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgYXJjaF9tZW1faW5pdChjaGFyICoqY21kbGluZV9wKQogCW1pcHNfcGFy c2VfY3Jhc2hrZXJuZWwoKTsKIAlkZXZpY2VfdHJlZV9pbml0KCk7CiAKLQkvKgotCSAqIEluIG9y ZGVyIHRvIHJlZHVjZSB0aGUgcG9zc2liaWxpdHkgb2Yga2VybmVsIHBhbmljIHdoZW4gZmFpbGVk IHRvCi0JICogZ2V0IElPIFRMQiBtZW1vcnkgdW5kZXIgQ09ORklHX1NXSU9UTEIsIGl0IGlzIGJl dHRlciB0byBhbGxvY2F0ZQotCSAqIGxvdyBtZW1vcnkgYXMgc21hbGwgYXMgcG9zc2libGUgYmVm b3JlIHBsYXRfc3dpb3RsYl9zZXR1cCgpLCBzbwotCSAqIG1ha2Ugc3BhcnNlX2luaXQoKSB1c2lu ZyB0b3AtZG93biBhbGxvY2F0aW9uLgotCSAqLwotCW1lbWJsb2NrX3NldF9ib3R0b21fdXAoZmFs c2UpOwotCXNwYXJzZV9pbml0KCk7Ci0JbWVtYmxvY2tfc2V0X2JvdHRvbV91cCh0cnVlKTsKLQog CXBsYXRfc3dpb3RsYl9zZXR1cCgpOwogCiAJZG1hX2NvbnRpZ3VvdXNfcmVzZXJ2ZShQRk5fUEhZ UyhtYXhfbG93X3BmbikpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbW0vaW5pdC5jIGIvYXJj aC9wYXJpc2MvbW0vaW5pdC5jCmluZGV4IGNlNmYwOWFiN2E5MC4uNmEzOWUwMzFlNWZmIDEwMDY0 NAotLS0gYS9hcmNoL3BhcmlzYy9tbS9pbml0LmMKKysrIGIvYXJjaC9wYXJpc2MvbW0vaW5pdC5j CkBAIC03MDYsOCArNzA2LDYgQEAgdm9pZCBfX2luaXQgcGFnaW5nX2luaXQodm9pZCkKIAlmaXht YXBfaW5pdCgpOwogCWZsdXNoX2NhY2hlX2FsbF9sb2NhbCgpOyAvKiBzdGFydCB3aXRoIGtub3du IHN0YXRlICovCiAJZmx1c2hfdGxiX2FsbF9sb2NhbChOVUxMKTsKLQotCXNwYXJzZV9pbml0KCk7 CiB9CiAKIHN0YXRpYyB2b2lkIGFsbG9jX2J0bGIodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWdu ZWQgbG9uZyBlbmQsIGludCAqc2xvdCwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9zZXR1cC5oIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3NldHVwLmgKaW5kZXggNTBh OTJiMjQ2MjhkLi42ZDYwZWE0ODY4YWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRl L2FzbS9zZXR1cC5oCisrKyBiL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9zZXR1cC5oCkBAIC0y MCw3ICsyMCwxMSBAQCBleHRlcm4gdm9pZCByZWxvY19nb3QyKHVuc2lnbmVkIGxvbmcpOwogCiB2 b2lkIGNoZWNrX2Zvcl9pbml0cmQodm9pZCk7CiB2b2lkIG1lbV90b3BvbG9neV9zZXR1cCh2b2lk KTsKKyNpZmRlZiBDT05GSUdfTlVNQQogdm9pZCBpbml0bWVtX2luaXQodm9pZCk7CisjZWxzZQor c3RhdGljIGlubGluZSB2b2lkIGluaXRtZW1faW5pdCh2b2lkKSB7fQorI2VuZGlmCiB2b2lkIHNl dHVwX3BhbmljKHZvaWQpOwogI2RlZmluZSBBUkNIX1BBTklDX1RJTUVPVVQgMTgwCiAKZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9tZW0uYyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwppbmRl eCBiNzE2YzljZDE0MWMuLjM3ODlhNTFiZGFhZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21t L21lbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwpAQCAtMTgyLDExICsxODIsNiBAQCB2 b2lkIF9faW5pdCBtZW1fdG9wb2xvZ3lfc2V0dXAodm9pZCkKIAltZW1ibG9ja19zZXRfbm9kZSgw LCBQSFlTX0FERFJfTUFYLCAmbWVtYmxvY2subWVtb3J5LCAwKTsKIH0KIAotdm9pZCBfX2luaXQg aW5pdG1lbV9pbml0KHZvaWQpCi17Ci0Jc3BhcnNlX2luaXQoKTsKLX0KLQogLyogbWFyayBwYWdl cyB0aGF0IGRvbid0IGV4aXN0IGFzIG5vc2F2ZSAqLwogc3RhdGljIGludCBfX2luaXQgbWFya19u b25yYW1fbm9zYXZlKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vbnVtYS5j IGIvYXJjaC9wb3dlcnBjL21tL251bWEuYwppbmRleCA2MDNhMGY2NTJiYTYuLmY0Y2YzYWUwMzZk ZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL251bWEuYworKysgYi9hcmNoL3Bvd2VycGMv bW0vbnVtYS5jCkBAIC0xMjEzLDggKzEyMTMsNiBAQCB2b2lkIF9faW5pdCBpbml0bWVtX2luaXQo dm9pZCkKIAkJc2V0dXBfbm9kZV9kYXRhKG5pZCwgc3RhcnRfcGZuLCBlbmRfcGZuKTsKIAl9CiAK LQlzcGFyc2VfaW5pdCgpOwotCiAJLyoKIAkgKiBXZSBuZWVkIHRoZSBudW1hX2NwdV9sb29rdXBf dGFibGUgdG8gYmUgYWNjdXJhdGUgZm9yIGFsbCBDUFVzLAogCSAqIGV2ZW4gYmVmb3JlIHdlIG9u bGluZSB0aGVtLCBzbyB0aGF0IHdlIGNhbiB1c2UgY3B1X3RvX3tub2RlLG1lbX0KZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKaW5kZXggNzli NDc5MjU3OGM0Li4xMWFjNDA0MWFmYzAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5j CisrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCkBAIC0xNDMwLDcgKzE0MzAsNiBAQCB2b2lkIF9f aW5pdCBtaXNjX21lbV9pbml0KHZvaWQpCiB7CiAJZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiA8 PCBQQUdFX1NISUZULCBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUKTsKIAlhcmNoX251bWFfaW5p dCgpOwotCXNwYXJzZV9pbml0KCk7CiAjaWZkZWYgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQCiAJ LyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQuIEZsdXNoIFRM QiBmb3IgdGhpcyByZWdpb24gKi8KIAlsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1N QVBfU1RBUlQsIFZNRU1NQVBfRU5EKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9pbml0LmMg Yi9hcmNoL3MzOTAvbW0vaW5pdC5jCmluZGV4IDllYzYwOGI1Y2JiMS4uM2MyMDQ3NWNiZWUyIDEw MDY0NAotLS0gYS9hcmNoL3MzOTAvbW0vaW5pdC5jCisrKyBiL2FyY2gvczM5MC9tbS9pbml0LmMK QEAgLTk4LDcgKzk4LDYgQEAgdm9pZCBfX2luaXQgYXJjaF96b25lX2xpbWl0c19pbml0KHVuc2ln bmVkIGxvbmcgKm1heF96b25lX3BmbnMpCiB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQog ewogCXZtZW1fbWFwX2luaXQoKTsKLQlzcGFyc2VfaW5pdCgpOwogCXpvbmVfZG1hX2xpbWl0ID0g RE1BX0JJVF9NQVNLKDMxKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9zaC9tbS9pbml0LmMgYi9h cmNoL3NoL21tL2luaXQuYwppbmRleCAzZWRlZTg1NGI3NTUuLjQ2NGEzYTYzZTJmYSAxMDA2NDQK LS0tIGEvYXJjaC9zaC9tbS9pbml0LmMKKysrIGIvYXJjaC9zaC9tbS9pbml0LmMKQEAgLTIyNyw4 ICsyMjcsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZG9faW5pdF9ib290bWVtKHZvaWQpCiAJbm9k ZV9zZXRfb25saW5lKDApOwogCiAJcGxhdF9tZW1fc2V0dXAoKTsKLQotCXNwYXJzZV9pbml0KCk7 CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9yZXNlcnZlX21lbSh2b2lkKQpkaWZmIC0t Z2l0IGEvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMgYi9hcmNoL3NwYXJjL21tL2luaXRfNjQuYwpp bmRleCA5MzFmODcyY2U4NGEuLjRmN2JkYjE4Nzc0YiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9t bS9pbml0XzY0LmMKKysrIGIvYXJjaC9zcGFyYy9tbS9pbml0XzY0LmMKQEAgLTE2MTUsOCArMTYx NSw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBib290bWVtX2luaXQodW5zaWduZWQg bG9uZyBwaHlzX2Jhc2UpCiAKIAkvKiBYWFggY3B1IG5vdGlmaWVyIFhYWCAqLwogCi0Jc3BhcnNl X2luaXQoKTsKLQogCXJldHVybiBlbmRfcGZuOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9t bS9pbml0XzMyLmMgYi9hcmNoL3g4Ni9tbS9pbml0XzMyLmMKaW5kZXggYjU1MTcyMTE4YzkxLi4w OTA4YzQ0ZDUxZTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2luaXRfMzIuYworKysgYi9hcmNo L3g4Ni9tbS9pbml0XzMyLmMKQEAgLTY1NCw3ICs2NTQsNiBAQCB2b2lkIF9faW5pdCBwYWdpbmdf aW5pdCh2b2lkKQogCSAqIE5PVEU6IGF0IHRoaXMgcG9pbnQgdGhlIGJvb3RtZW0gYWxsb2NhdG9y IGlzIGZ1bGx5IGF2YWlsYWJsZS4KIAkgKi8KIAlvbHBjX2R0X2J1aWxkX2RldmljZXRyZWUoKTsK LQlzcGFyc2VfaW5pdCgpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vaW5pdF82 NC5jIGIvYXJjaC94ODYvbW0vaW5pdF82NC5jCmluZGV4IDRkYWE0MDA3MWM5Zi4uZGYyMjYxZmE0 Zjk4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKKysrIGIvYXJjaC94ODYvbW0v aW5pdF82NC5jCkBAIC04MzMsOCArODMzLDYgQEAgdm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHZv aWQpCiAKIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiB7Ci0Jc3BhcnNlX2luaXQoKTsK LQogCS8qCiAJICogY2xlYXIgdGhlIGRlZmF1bHQgc2V0dGluZyB3aXRoIG5vZGUgMAogCSAqIG5v dGU6IGRvbid0IHVzZSBub2Rlc19jbGVhciBoZXJlLCB0aGF0IGlzIHJlYWxseSBjbGVhcmluZyB3 aGVuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5jbHVkZS9saW51eC9t bXpvbmUuaAppbmRleCA3NWVmN2M5ZjkzMDcuLjZhN2RiMGZlZTU0YSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9saW51eC9tbXpvbmUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21tem9uZS5oCkBAIC0yMjg1 LDkgKzIyODUsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbmV4dF9wcmVzZW50X3Nl Y3Rpb25fbnIodW5zaWduZWQgbG9uZyBzZWN0aW9uX25yKQogI2RlZmluZSBwZm5fdG9fbmlkKHBm bikJCSgwKQogI2VuZGlmCiAKLXZvaWQgc3BhcnNlX2luaXQodm9pZCk7CiAjZWxzZQotI2RlZmlu ZSBzcGFyc2VfaW5pdCgpCWRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBzcGFyc2VfaW5kZXhfaW5p dChfc2VjLCBfbmlkKSAgZG8ge30gd2hpbGUgKDApCiAjZGVmaW5lIHNwYXJzZV92bWVtbWFwX2lu aXRfbmlkX2Vhcmx5KF9uaWQpIGRvIHt9IHdoaWxlICgwKQogI2RlZmluZSBzcGFyc2Vfdm1lbW1h cF9pbml0X25pZF9sYXRlKF9uaWQpIGRvIHt9IHdoaWxlICgwKQpkaWZmIC0tZ2l0IGEvbW0vaW50 ZXJuYWwuaCBiL21tL2ludGVybmFsLmgKaW5kZXggZTQzMGRhOTAwNDMwLi5kYzUzMTZjNjg2NjQg MTAwNjQ0Ci0tLSBhL21tL2ludGVybmFsLmgKKysrIGIvbW0vaW50ZXJuYWwuaApAQCAtODYwLDYg Kzg2MCwxMiBAQCB2b2lkIG1lbW1hcF9pbml0X3JhbmdlKHVuc2lnbmVkIGxvbmcsIGludCwgdW5z aWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywKIAkJdW5zaWduZWQgbG9uZywgZW51bSBtZW1pbml0 X2NvbnRleHQsIHN0cnVjdCB2bWVtX2FsdG1hcCAqLCBpbnQsCiAJCWJvb2wpOwogCisjaWZkZWYg Q09ORklHX1NQQVJTRU1FTQordm9pZCBzcGFyc2VfaW5pdCh2b2lkKTsKKyNlbHNlCitzdGF0aWMg aW5saW5lIHZvaWQgc3BhcnNlX2luaXQodm9pZCkge30KKyNlbmRpZiAvKiBDT05GSUdfU1BBUlNF TUVNICovCisKICNpZiBkZWZpbmVkIENPTkZJR19DT01QQUNUSU9OIHx8IGRlZmluZWQgQ09ORklH X0NNQQogCiAvKgpkaWZmIC0tZ2l0IGEvbW0vbW1faW5pdC5jIGIvbW0vbW1faW5pdC5jCmluZGV4 IGZmYzRhMGYxZmVlOS4uNGNmZTcyMmRhMDYyIDEwMDY0NAotLS0gYS9tbS9tbV9pbml0LmMKKysr IGIvbW0vbW1faW5pdC5jCkBAIC0xODI4LDYgKzE4MjgsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg ZnJlZV9hcmVhX2luaXQodm9pZCkKIAlib29sIGRlc2NlbmRpbmc7CiAKIAlhcmNoX3pvbmVfbGlt aXRzX2luaXQobWF4X3pvbmVfcGZuKTsKKwlzcGFyc2VfaW5pdCgpOwogCiAJc3RhcnRfcGZuID0g UEhZU19QRk4obWVtYmxvY2tfc3RhcnRfb2ZfRFJBTSgpKTsKIAlkZXNjZW5kaW5nID0gYXJjaF9o YXNfZGVzY2VuZGluZ19tYXhfem9uZV9wZm5zKCk7Ci0tIAoyLjUxLjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1zbnBzLWFyYyBtYWlsaW5n IGxpc3QKbGludXgtc25wcy1hcmNAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXNucHMtYXJjCg==