From nobody Mon Apr 6 15:36:55 2026 Received: from mail-wm1-f74.google.com (mail-wm1-f74.google.com [209.85.128.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35B8E3AEF2F for ; Thu, 19 Mar 2026 09:06:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.74 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773911167; cv=none; b=RoRJblljF7oE/9Glfr5RiFGyl1VTJfYNfCGCHt6GQuiBJnODshLXSnLo+BKzNI37OOX4FUzS0IbfNEm/ESn06gYkaL27Q0sYbTBVYm+EYyU6ggc/ppbexCE14Ufh6B/oOXTNEDiwgsP7Uqg4P71re103C6n6qHx5x3tLy3jhOxg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773911167; c=relaxed/simple; bh=K7LzeW+1GNQObLL0mpttPEC6ObCBqOhm8uDhYnRS0oQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=hLdtnGUleKdM10I6GvG7g5479F+G5+BKb2qPNPSdFzCIZuumeE5+hczHRiFRs1PBvS6gyC28hpabmXKpANerRp412z5Vzgzh05WUikqqVfb3ZbB0XGqZxY68iqsDRJtaxpP3WSTwx1MGx6WHasL7B2cpahghAq1oFTAC+Gyput0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--ardb.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=jsiFOTtG; arc=none smtp.client-ip=209.85.128.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--ardb.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="jsiFOTtG" Received: by mail-wm1-f74.google.com with SMTP id 5b1f17b1804b1-485397788b3so3467755e9.2 for ; Thu, 19 Mar 2026 02:06:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1773911162; x=1774515962; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=VsWNL3bo4KHMv0mdy45EiTzsJhVneOBuPnWT5ACRpoE=; b=jsiFOTtGp8q4u400w/Qr6v8soCLI7YXIspFv4Cc4UtmBv9NTDcN+0nrnzV8wc0lV/a J7EtYcyOikuHo4H56Mc10VqKIbJl4GiMsCM/oPf3VtFBfUkUdOBcQ5X9OyIXBgUmXEUO cQ+1vXvSKjZBvj4DQtTxlGSWT4gfbd3QnWjEmA1iQgvdALWCtmiiAOHsgbakWMWOK2gu c4HwZaDvu6+Wi3xRHFBzH5zkXwENmsfnCHSssN5SJ+1xZ4r0l+tuqL6OfJumAMgy4co3 5gwDVmaa6dlMzb5cziNkbdbwhqDClvYlfX+l8PfFtzhYGSIuhSTxtpxzEfg3SSuDMJib cInA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773911162; x=1774515962; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VsWNL3bo4KHMv0mdy45EiTzsJhVneOBuPnWT5ACRpoE=; b=IiPTVoD1ZyBvVEuTOj25tH8ETwC/bEAmVOPbLjrvfmWG3oN5G/CVhAGFxdAhZ/4Hzm xOAKxuzceY7k6zg1ZWIxAXpSzljxvT+F/4uQDVu+lHPbKtaEdL0LXcYdQh7ANcM/v0Zw x5RKL2Lws45VFkrcvHFy4B6QNCSdAsM+NWB3Y6WodnyMPXpPXAc916ljsA3xgbqdT5Fb EL6ee+8MGXByW/DqlFhlPXukwBz5HyXmxSG+qf17B/j3J0P9zRA2ZKw+4tGbP9Zke1pb 8hYHjmb3ni0NMEkrArNzo5YMKV5KYZ2hOXuAiXcwg82lUgbCvN3DYBVKCQfdNbwebato +nBA== X-Gm-Message-State: AOJu0YzsiMSKAxadnjRpFi6PIeJrLxHzqAN8R57do8u5mpMQZMkK/ZT2 hWUmHj0GgNTLRdL+Ksn/gablGJOEoFfCp4dxH5GHtOdkDSavvav7FnKIh/yCjynP5/8bzukN495 hAnAnQXrh9cVirsU+1H4o381X6FQ4VeSU6zeO0rO7IA/o2RSz+6fu5kiCotKsH3WllvIQd5D8zK 6B2n5zsWcuge/5uw7aSeMsNQTP/wKt2fgPXg== X-Received: from wmro18.prod.google.com ([2002:a05:600c:3792:b0:485:3f57:3523]) (user=ardb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:1d10:b0:483:a27e:6706 with SMTP id 5b1f17b1804b1-486f442647bmr110126145e9.9.1773911162159; Thu, 19 Mar 2026 02:06:02 -0700 (PDT) Date: Thu, 19 Mar 2026 10:05:31 +0100 In-Reply-To: <20260319090529.1091660-21-ardb+git@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260319090529.1091660-21-ardb+git@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=2068; i=ardb@kernel.org; h=from:subject; bh=p/YATWOCB2qrU14En0xTPnxEAeYpYsyvR5e6jBr/J4s=; b=owGbwMvMwCVmkMcZplerG8N4Wi2JIXP3nmit/rWqL44+ntaztsZOhY0/z03H3OZumPCXWU/CD fp2m4h3lLIwiHExyIopsgjM/vtu5+mJUrXOs2Rh5rAygQxh4OIUgImIbmT4nzJ3kfBnE5kNvPZf 484G73UR5WNYuWfTT+PbVVe643IzlBgZDtY3aPkr7mjf0LNE3E3p3PTdN95fcbJ7mXVs8ol3f6K 9OAE= X-Mailer: git-send-email 2.53.0.851.ga537e3e6e9-goog Message-ID: <20260319090529.1091660-22-ardb+git@google.com> Subject: [PATCH v2 01/19] memblock: Permit existing reserved regions to be marked RSRV_KERN From: Ard Biesheuvel To: linux-kernel@vger.kernel.org Cc: linux-efi@vger.kernel.org, x86@kernel.org, Ard Biesheuvel , "Mike Rapoport (Microsoft)" , Benjamin Herrenschmidt Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ard Biesheuvel Permit existing memblock reservations to be marked as RSRV_KERN. This will be used by the EFI code on x86 to distinguish between reservations of boot services data regions that have actual significance to the kernel and regions that are reserved temporarily to work around buggy firmware. Acked-by: Mike Rapoport (Microsoft) Signed-off-by: Ard Biesheuvel --- include/linux/memblock.h | 1 + mm/memblock.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 6ec5e9ac0699..9eac4f268359 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -155,6 +155,7 @@ int memblock_mark_mirror(phys_addr_t base, phys_addr_t = size); int memblock_mark_nomap(phys_addr_t base, phys_addr_t size); int memblock_clear_nomap(phys_addr_t base, phys_addr_t size); int memblock_reserved_mark_noinit(phys_addr_t base, phys_addr_t size); +int memblock_reserved_mark_kern(phys_addr_t base, phys_addr_t size); int memblock_mark_kho_scratch(phys_addr_t base, phys_addr_t size); int memblock_clear_kho_scratch(phys_addr_t base, phys_addr_t size); =20 diff --git a/mm/memblock.c b/mm/memblock.c index b3ddfdec7a80..2505ce8b319c 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1115,6 +1115,21 @@ int __init_memblock memblock_reserved_mark_noinit(ph= ys_addr_t base, phys_addr_t MEMBLOCK_RSRV_NOINIT); } =20 +/** + * memblock_reserved_mark_kern - Mark a reserved memory region with flag + * MEMBLOCK_RSRV_KERN + * + * @base: the base phys addr of the region + * @size: the size of the region + * + * Return: 0 on success, -errno on failure. + */ +int __init_memblock memblock_reserved_mark_kern(phys_addr_t base, phys_add= r_t size) +{ + return memblock_setclr_flag(&memblock.reserved, base, size, 1, + MEMBLOCK_RSRV_KERN); +} + /** * memblock_mark_kho_scratch - Mark a memory region as MEMBLOCK_KHO_SCRATC= H. * @base: the base phys addr of the region --=20 2.53.0.851.ga537e3e6e9-goog