From patchwork Wed Mar 19 12:23:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Rapoport X-Patchwork-Id: 14022540 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 555C3C35FFA for ; Wed, 19 Mar 2025 12:23:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3340280002; Wed, 19 Mar 2025 08:23:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE351280001; Wed, 19 Mar 2025 08:23:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DAC0C280002; Wed, 19 Mar 2025 08:23:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id BE7A6280001 for ; Wed, 19 Mar 2025 08:23:46 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 3DC785989A for ; Wed, 19 Mar 2025 12:23:47 +0000 (UTC) X-FDA: 83238216894.19.E50FD31 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf23.hostedemail.com (Postfix) with ESMTP id B51EC140009 for ; Wed, 19 Mar 2025 12:23:45 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ScrZ32LJ; spf=pass (imf23.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742387025; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=fdDD9DniCl/6PMIbh6LrlOpwk+37XtHI80zeVMyEEr0=; b=RnBPpuceAYsGENCr5wZRaPIuHpLMnqLpHW6vAA7izoJwx7lZHoTvSP43lOCbMOWBP6iGyO 4vJBSm3+90uag2gnk0m8I9II7ftDAOhvk0qPq1/2Yfc3Zxc+hbVeRwcUvErnrhA4a/rlhA N9G9fwN13cyrcUA2Hx9l8orUd5an1RE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742387025; a=rsa-sha256; cv=none; b=8sBWEAtnsW+K1PhInLK/Y2YuaCCkp2yJLVlnuKeWh51wwwNevtJ1rtiFcWrg0MEW7diT9T MH0fFCldzqcAOQwkszbovXNx7atERWQuSbi6Lqt7U7pQTyQIh1tXRC4t3SMiCT0IyAjo02 08CzDVxL/7u4jyGQ1mUcuvYbLQNzD68= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=ScrZ32LJ; spf=pass (imf23.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 7F364629B7; Wed, 19 Mar 2025 12:23:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 713CCC4CEE9; Wed, 19 Mar 2025 12:23:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1742387024; bh=hNFl32LCeGeA501PNntP8FtpjSqRnIpS4NJTM3v5P28=; h=From:To:Cc:Subject:Date:From; b=ScrZ32LJZUhOdZyhp8qOjdoI3eTXhdJ+dz1KpqA8EJDXsRMc/CIPaYi/OsJ42e00o j2m/H7jqZbgz6DEi1/+ZjJsrcJ2UOgQvQpqZ1nJuvJDcemfRwignNzJpXmycU6lKAV +lDxlAUNzbv4WsxBms7Agm6wnk9u9cBK/fgw6bN+yVqhNzfUOJ02vi33XdtolXMa/C o9q5lW5MtvHupf6Aib7Wk2f49EczVkTW7A07Y9QqwgMOnU04YdRfzDKChXXl3Tey8y 3RJHpj+LeL3496JsqYnFUBcnm0yX6xuj0nIf+R5hxnBeqAysKaiPNfuQupMJkf2nOr XZbnOUQ8IzIaA== From: Mike Rapoport To: Andrew Morton Cc: Andy Lutomirski , Borislav Petkov , Dave Hansen , Ingo Molnar , Mike Rapoport , "H. Peter Anvin" , Peter Zijlstra , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, kernel test robot Subject: [PATCH] x86/mm: restore early initialization of high_memory for 32-bits Date: Wed, 19 Mar 2025 14:23:37 +0200 Message-ID: <20250319122337.1538924-1-rppt@kernel.org> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: B51EC140009 X-Stat-Signature: jwk3bpp4t69fm79czqw9o3u4dfpneqcw X-HE-Tag: 1742387025-157354 X-HE-Meta: U2FsdGVkX1+2w2Uu3vUguunLd8T2HSQM4HNX+cJSe6HzzUmTBTQ2I/efLuSwwz7WE3TF+23L2ZGuF2cHdApWQxrE9tKbAbHy/2DX2bWZBHicV8mU/KuOgQnmCA75km+KOQ2uNCAe7MVmfHyAQXRfKdIQDlzU+t5eEX2/L1RwGuDp2pCnLgjU+RZony7IMdrZyv7tPx8YQ6fqzbRMf9osYvnlU0ghgloUGTDEysOP2cmf4nLs1zYd1YZkEFyZivdUxMsdPZlINLgJ39aS3osw6eLvK9yXZJYbhc+aelTVJnzhDGgzc4QfSJgc8Cdp+np16zqYRLu+dgAkU8/gAMpO652hLa7+1C2jJrSbinvcNLFCOvqFYGW282AJQh1qTb7+yBG79IKyPYOtapXjMKJA/94OFRHf8PIojdShKQp3z42ho4eF1OhkdT2y7ViA39fOo6AAt4Jqdi2hOdrnQ2cMKOuT2o0AZfcga5bwLTjTCPv76e261HxkIDQhD4jTAf/GtcTzc6hxAjqFhJpruk1Eq14rmiW57N5pj1JPx7nmcuVSIVl8S9S9DjNgM2+AVwRoQe+hC1Ly0x0DH5YbXzNiPQVwEZ9Vr2nUaPgLVT4xj/NlYuqGkMt/zQyhxDkdm71YwFRRCvfLaQbF8vXip7nhEF28RQnndYLeyDMPWrV9+TjZDDps+HJbMGRcqLS7DC6MceIiil/A7heoVIn0f3MfGGSgVGykKWY2d44NPlMn0oUiS0byZ/ZDCWO+h8gIceLNEAb2JAtQYO/bZnWobRyUFm3JzimXZiQu127jJXZYqg+QItlHYwe9Y6W6qnhAeBINPknlBgCxx0CYfHHkNyPeEEyH3pgep9dk5Z1QVVGT5SC5PCdGWraQK3YKogxzOqDr/oNMjG+F2aRBkIzYPTAcVFtpQeI2VD9G+8Tf7YjSL6gPy26dFbmnqC1v8IFAhswyGTg4zgok+vK4m+0kK58 J7bXYvJE y6UWj/r6AkSdGUETUZ7H+YAAu86m9MxtPok+OQJmqK8K7tnsIONdaGsOr4cAbds/BOIO1/EZ9tTj1YC4Iz36q6Yuq1YgI86n6iWlEeFXyFAU8rCNA/qr5cuPZrTF6O08jmPQp4seJz3jz0cnbLM/lmbEpo4xBxawt6J94nrsTbxI5fsJ9lOFFI1qtGp/h3JoxStDwcMPuJG4fLul7iqbzQ/bvZpOwExSWnyw1td/uQfoBALYl6GKU32xWe9YR4Ktz1bUn5Z6HW4KBA0ikW0dSq4o+VTeiJvrGFxrxofsn7lgx4csmSq6hS3t87A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: "Mike Rapoport (Microsoft)" Kernel test robot reports the following crash on 32-bit system with HIGHMEM and DEBUG_VIRTUAL: [ 0.056128][ T0] kernel BUG at arch/x86/mm/physaddr.c:77! PANIC: early exception 0x06 IP 60:c116539d error 0 cr2 0x0 [ 0.056916][ T0] CPU: 0 UID: 0 PID: 0 Comm: swapper Not tainted 6.14.0-rc4-00010-ga4dbe5c71817 #1 [ 0.057570][ T0] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 0.058299][ T0] EIP: __phys_addr (arch/x86/mm/physaddr.c:77) [ 0.058633][ T0] Code: 00 74 33 89 f0 e8 d3 8b 2e 00 89 c3 0f b6 d0 b8 58 bb 4b c5 31 c9 6a 00 e8 70 f5 15 00 83 c4 04 84 db 74 25 ff 05 78 de 5d c5 <0f> 0b b8 c8 91 ea c4 e8 e7 6e ea ff b8 58 bb 4b c5 31 d2 31 c9 6a All code [ 0.060017][ T0] EAX: 00000000 EBX: c61f7001 ECX: 00000000 EDX: 00000000 [ 0.060519][ T0] ESI: c61f7000 EDI: 061f7000 EBP: c4e31f04 ESP: c61f7000 [ 0.061016][ T0] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: cff4 EFLAGS: 00210002 [ 0.061560][ T0] CR0: 80050033 CR2: 00000000 CR3: 059fc000 CR4: 00000090 [ 0.062060][ T0] Call Trace: [ 0.062288][ T0] ? show_regs (arch/x86/kernel/dumpstack.c:478) [ 0.062588][ T0] ? early_fixup_exception (arch/x86/include/asm/nospec-branch.h:595) [ 0.062968][ T0] ? early_idt_handler_common (arch/x86/kernel/head_32.S:352) [ 0.063360][ T0] ? __phys_addr (arch/x86/mm/physaddr.c:77) [ 0.063677][ T0] ? one_page_table_init (arch/x86/mm/init_32.c:100) [ 0.064037][ T0] ? page_table_range_init (arch/x86/mm/init_32.c:227) [ 0.064411][ T0] ? permanent_kmaps_init (include/linux/pgtable.h:191 include/linux/pgtable.h:196 arch/x86/mm/init_32.c:395) [ 0.064814][ T0] ? paging_init (arch/x86/mm/init_32.c:677) [ 0.065118][ T0] ? native_pagetable_init (arch/x86/mm/init_32.c:481) [ 0.065503][ T0] ? setup_arch (arch/x86/kernel/setup.c:1131) [ 0.065819][ T0] ? start_kernel (include/linux/jump_label.h:267 init/main.c:920) [ 0.066143][ T0] ? i386_start_kernel (arch/x86/kernel/head32.c:79) [ 0.066501][ T0] ? startup_32_smp (arch/x86/kernel/head_32.S:292) The crash happens because commit e120d1bc12da ("arch, mm: set high_memory in free_area_init()") moved initialization of high_memory after __vmalloc_start_set and with high_memory still set to 0 any address passes is_vmalloc_addr() check. Restore early initialization of high_memory on 32-bit systems in initmem_init(). Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-lkp/202503191442.112e954f-lkp@intel.com Fixes: e120d1bc12da ("arch, mm: set high_memory in free_area_init()") Signed-off-by: Mike Rapoport (Microsoft) --- @Andrew, if it's still possible would be great to fold it into e120d1bc12da ("arch, mm: set high_memory in free_area_init()"). I think it can be fixed without restoring high_memory initialization in initmem_init(), but I didn't want to try anything less straightforward arch/x86/mm/init_32.c | 3 +++ arch/x86/mm/numa_32.c | 3 +++ 2 files changed, 6 insertions(+) base-commit: a211c6550efcc87aa2459ca347bda10721c7a46a diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 95b2758b4e4d..f69d2436d780 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -626,6 +626,9 @@ void __init initmem_init(void) highstart_pfn = max_low_pfn; printk(KERN_NOTICE "%ldMB HIGHMEM available.\n", pages_to_mb(highend_pfn - highstart_pfn)); + high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1; +#else + high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1; #endif memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0); diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c index 442ef3facff0..65fda406e6f2 100644 --- a/arch/x86/mm/numa_32.c +++ b/arch/x86/mm/numa_32.c @@ -41,6 +41,9 @@ void __init initmem_init(void) highstart_pfn = max_low_pfn; printk(KERN_NOTICE "%ldMB HIGHMEM available.\n", pages_to_mb(highend_pfn - highstart_pfn)); + high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1; +#else + high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1; #endif printk(KERN_NOTICE "%ldMB LOWMEM available.\n", pages_to_mb(max_low_pfn));