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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 67E5DC71148 for ; Fri, 13 Jun 2025 20:11:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0C1146B0095; Fri, 13 Jun 2025 16:11:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 072036B0096; Fri, 13 Jun 2025 16:11:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC99C6B0098; Fri, 13 Jun 2025 16:11:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D34506B0095 for ; Fri, 13 Jun 2025 16:11:53 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 788BC1205BE for ; Fri, 13 Jun 2025 20:11:53 +0000 (UTC) X-FDA: 83551473306.21.33CA30E Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) by imf28.hostedemail.com (Postfix) with ESMTP id 7DE19C0004 for ; Fri, 13 Jun 2025 20:11:51 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=neon.tech header.s=google header.b=A7KAQf7E; dmarc=pass (policy=reject) header.from=neon.tech; spf=pass (imf28.hostedemail.com: domain of sharnoff@neon.tech designates 209.85.208.49 as permitted sender) smtp.mailfrom=sharnoff@neon.tech ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749845511; a=rsa-sha256; cv=none; b=K2Gs4T9qzFWpe7QWEaTAUIu0dQT+Cpanxj8AdToC6t1AlKGgrhHFuHbxdg79EaTVpGaSWR fSeAqXvPSVs3ldB5Uzq2/OTExg5YDj4exGXLsnQ+aF0DiyK3K0dfNJx9nl36KNiCP9/jA1 rgg6uDUlDQKo++sVpAEgIOQEJWBwRI4= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=neon.tech header.s=google header.b=A7KAQf7E; dmarc=pass (policy=reject) header.from=neon.tech; spf=pass (imf28.hostedemail.com: domain of sharnoff@neon.tech designates 209.85.208.49 as permitted sender) smtp.mailfrom=sharnoff@neon.tech ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749845511; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=SZyPhDp3clF+2nAcuBvrsAf8X3aSjPmMQy6JJ8napoM=; b=GzoyzwQXL3UHsjrCr0BjXT5CE+pqUDJrpNgJcXVL+t8F7+ra2mNnIMpG05XTwvtiPuChtc G5oa3z7Qo8PI6hjTL2JEiGM46wmBxgGoYjedt2fLMOcdWTESrmIn5Hz+p5dlBW7Qo9yIWc KpZoMY2ys46SNDJ23b1Jm467vkSpdH8= Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-6070293103cso4300146a12.0 for ; Fri, 13 Jun 2025 13:11:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=neon.tech; s=google; t=1749845510; x=1750450310; darn=kvack.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=SZyPhDp3clF+2nAcuBvrsAf8X3aSjPmMQy6JJ8napoM=; b=A7KAQf7E8PyIC775C3SEBW8wjN7p2DDf4zx+96OEi8B+2IuebBV2wqWQDGHHuqb9Vc e1Xh1VMjJqfv4K7HUGmLaPXXFDrKN1vvf+YyH1D9irYpZbTZaKWm5f4RtTThETpTKNV/ IBuNjTW1qIPwndCEqhxth3myuObQXeQq77pYw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749845510; x=1750450310; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SZyPhDp3clF+2nAcuBvrsAf8X3aSjPmMQy6JJ8napoM=; b=dhDjpT/papZWXf1/M0i3cpzH/ywSUuxketb0US3Dc1XhmdYzhE9hnCks4zN7JFR+vb OR/VynQwj9xZjJqwz8kh56ThZkqz0vd0f4lmaets7HAtwPJgwDgCoPXq6jdnQ1F5Xmqr 83CZVpe91xUtNXW633jwM4G/AGKfcsqafOdA1TVSn0ZEBGnEJ6B7CXmBYzHEsfsEPsRy 5ZDrZeoH5Vb41vfeh/9/NL2W/lwZuDmqXdzeJddQDmXSJz0cWg59PZNjtY1V+U6665qB 5r9lo3LPW7imt092IDknoN+JNIGQvbanL5JrqEqzc38HH2QRC8VEAByTgik+8rqqzd5s TO9Q== X-Forwarded-Encrypted: i=1; AJvYcCW4jRcFdnH5aAIsapfKEtXqlRtFiUESSZb/+SLb43Jg90th5Nn9kIrqH3PIV2IwftlNdS5AgqwHMA==@kvack.org X-Gm-Message-State: AOJu0Yw+2bYTRxn1V4AufpQxpFIPJYRk8/jKTLIzCywUZXgts56WcwWa rt6Sq8Zp94D28ZzOp9S6vNL9lsdMBYXogUjYGFIrqmx8O6WpLvbOIKVgseD+ik/bjZI= X-Gm-Gg: ASbGncvYHvqXyKRtAt3zvCRA44EBHRDruRvnvLKxnUxlbEiTXuYomqIrm3Y2abUQM4c UdTOWZFFE3wVNMVX39M9d0mkN3SuC1DSb7LAyapBgYKxRHaPv+L8fn+H/BtGZMg0yUz9L7VyJ/s L7L0frADeYr1iKPVOmCZSVMvitG1C0KJt0aOZXVoc6v3PmI8IQnygh2LE+Vhx6CKzfVb1pFCwsN lHDwKlesezx0+CvGyGrxGAukg0Rm0O7jb9GhEkpwEKEuA6+exPAf+3BWuzeysqMEH1Ped7v/+/h Y+Cs0+pVqxpT/aTstL8S9c8ea8yOwsJof8hitFabO2KwHt/pr4atxr+PvD9bx1TLSw== X-Google-Smtp-Source: AGHT+IEPRO9S3H+OVVnpMZsQTJUxr/PZCZ8mq86dBJISkt9MMHMssWxJk3y2H9thIDYzD1Iua45FeA== X-Received: by 2002:a17:907:1c0c:b0:ade:3b16:faa9 with SMTP id a640c23a62f3a-adfad5c771bmr52408266b.29.1749845509990; Fri, 13 Jun 2025 13:11:49 -0700 (PDT) Received: from [192.168.86.142] ([84.65.228.220]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec88fed6esm178736366b.103.2025.06.13.13.11.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 13 Jun 2025 13:11:49 -0700 (PDT) Message-ID: <062402c3-e640-4578-b1b1-318a0a728a93@neon.tech> Date: Fri, 13 Jun 2025 21:11:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v4 3/4] x86/mm: Handle alloc failure in phys_*_init() From: Em Sharnoff To: linux-kernel@vger.kernel.org, x86@kernel.org, linux-mm@kvack.org Cc: Ingo Molnar , "H. Peter Anvin" , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Borislav Petkov , "Edgecombe, Rick P" , Oleg Vasilev , Arthur Petukhovsky , Stefan Radig , Misha Sakhnov References: <7d0d307d-71eb-4913-8023-bccc7a8a4a3d@neon.tech> Content-Language: en-US In-Reply-To: <7d0d307d-71eb-4913-8023-bccc7a8a4a3d@neon.tech> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam01 X-Stat-Signature: d9f4jfxh9gft7nj8nckzjmhnee9ubad4 X-Rspamd-Queue-Id: 7DE19C0004 X-Rspam-User: X-HE-Tag: 1749845511-123510 X-HE-Meta: U2FsdGVkX1+yDLGU2OCiM3Q+9bnUUQIcbElODwH++I3YRzRXrIJWiyJJpGidjj/RQ1+sfUT3E6rZMc7fUtmdJz/UG/9DHtpZgB5QfT06zksoi1jTqlPZ4NUKYL4p9raurAFnMX83+cDEJ9OLa7EFBbdc7GW0PXOivyEYcDhFdiGn/HarjS512UHIJz9ALpkJbTMWNSk8fZLSDd6xag2hEnmHCpc+tu0bYv6H1lEwkqwm0jtr2ql0PrENQjPNZqoGNr3OWKYgbrfFd8n8l7ozWAmF7WKW7zzqYu+Jx9n4AeThcsetpCl0F3Rl/bkUvF3G7xJYMW5xDplBuisdUzrxnkVgjK44w8CQtOG32xqXXTto6V0+CAsHMKhaRmsrhkq9KKtqvtMgTxnO8zhiZBg2oRrESC5+SeRG66nZTdI5aQgL3MPNGRT4ODJhTfwKfFFmwwlgtIOF7PPVg6avYroMNwnc/kD2KkvV3zypjRpoyz8F3QoM5oMauHAviK/cX0BWNurriJOnvxoLmwNPsQ7WRCcrTEtZepTy7iOqSkvhYm0RFCRrJab/h3KiOIJY20dOGf03S6FIhx4VAOQMx71L50Mif8gm8qNMHeQF16ndC2KKrwM3v2rRc3L5DV+7KWOshpXD2Syvz2o2A97BhE5GeMb6hoikSb0YzpiPo/vcygwqb3MCm9rusJr+WL+7MfY6098f4sUQAsU7Kg+h6ikUpCeF0nN+k/uhGp/5dDCrJE8dwCz8vkp3zK1NjQsh8A8ZV8QZ0Z4iMev33gpEqJd7w+sGqBe6fg817jDPJ0QYNVky/n68lCnWTJf+xS+5Q95xGSN1V0A4YjJA21tlnnCaro9TM2M90rE70udHvqxB5wgWmuD4NZytC85852RSgVuyc8HphS9aVLIb3Ug0Vg/xORhEtrw6XseCBxbh6X/Mi0fil6dcaPcot3Ovctdjjzq0efQaUudFEqM15qI6unl ipxQENL5 zKnDs+LYjbKOOJgWmXKo8DAQzeUkig+AKy8uS2Dj5IRS0OD10LwI3it+JB/3IJPZDv+WpoFz5OztS8ih0aWqlF6rvX+nP8WM2hmCQwOB7HAkC3RDI5noEQARhIPIXyhZ6KoFUEbqiQBY9hIsp4mKYIAgIlN9cWI2DYXxdeTmc9G4e5Kv/oHud7eGFkvsULmOL0omNPbiMldgXktGhxmazo42d2CnEdCY45hacoDHlFSw7hW+MvvSgkkjnrY0oCfsr8fYBJVwibW7usILokOaZjD/VOhJv5yX5k6wtj7SUaWjPnQL6lbduhaRmQLnU1QuZORNYwt6dSzejSgmdY8YaB0krf68NcJVLZ9brd5OLcCXpJKcZa9/ZUlHJsWMjYoMdJA7zSn9napao5viTZs+IJjI58sMHgksSZ3ZB18EdxhPT/Kj1uSe0DUmPjHiWLDyISQD5EUGb3861yd4= 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: During memory hotplug, allocation failures in phys_*_init() aren't handled, which results in a null pointer dereference if they occur. This patch depends on the previous patch ("x86/mm: Allow error returns from phys_*_init()"). Signed-off-by: Em Sharnoff --- Changelog: - v4: Split this patch out from the error handling changes --- arch/x86/mm/init_64.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index b18ab2dcc799..a585daa76d69 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -572,6 +572,8 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long paddr, unsigned long paddr_end, } pte = alloc_low_page(); + if (!pte) + return -ENOMEM; paddr_last = phys_pte_init(pte, paddr, paddr_end, new_prot, init); spin_lock(&init_mm.page_table_lock); @@ -664,6 +666,8 @@ phys_pud_init(pud_t *pud_page, unsigned long paddr, unsigned long paddr_end, } pmd = alloc_low_page(); + if (!pmd) + return -ENOMEM; ret = phys_pmd_init(pmd, paddr, paddr_end, page_size_mask, prot, init); @@ -726,6 +730,8 @@ phys_p4d_init(p4d_t *p4d_page, unsigned long paddr, unsigned long paddr_end, } pud = alloc_low_page(); + if (!pud) + return -ENOMEM; ret = phys_pud_init(pud, paddr, __pa(vaddr_end), page_size_mask, prot, init); @@ -774,6 +780,8 @@ __kernel_physical_mapping_init(unsigned long paddr_start, } p4d = alloc_low_page(); + if (!p4d) + return -ENOMEM; ret = phys_p4d_init(p4d, __pa(vaddr), __pa(vaddr_end), page_size_mask, prot, init); -- 2.39.5