From patchwork Sat Feb 1 17:21:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 861939 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 57B161CAA6B for ; Sat, 1 Feb 2025 17:21:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738430507; cv=none; b=U1khDo67iyfUKOiqnSuBYlTlVgihyRjGOxhtHOXcSskrikEbIArDWjyG+xJi+g9ZQHKpgAG70DCIqGIpL8bQqTqQ1e83iiXSIux/iysnDhXizFQeuAeIE6Cuxm+xINFGVZrlc1k5LPzGqB8QnfTiF7AjWycm2u7n/i2Bt+KsSTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738430507; c=relaxed/simple; bh=esqqEYo0++dYji/MtqD/F6i+A6z6+qF0OS2a7BNstg8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=X8Gp7oGfwTLsm75UkZdpjuVHh+svaOIJGDYYPEHcK52fNKwQ6DEzLeLf/wgnnokTH8GNdJIqAuQF9socnMkybiLsHshrHA0PHyrGWw8xqKW4QSMnvu5ip0k44Gr0dofnhAnU8lM32q/KH92wRlj67vdonLZ6XzxAEG6MuIp7nko= 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=XwdPMfhE; arc=none smtp.client-ip=209.85.128.73 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="XwdPMfhE" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-43623bf2a83so22923195e9.0 for ; Sat, 01 Feb 2025 09:21:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738430503; x=1739035303; 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=u+/I2FOukc3Dk/asy1e7U9EZH1wtrOizoGOwl5SdtH4=; b=XwdPMfhEOhQhS38ol2WNJPz4Zu74+kQAXwT3cTKHhjms1GkbLAD/XZInKPIQ1TYH01 wmW5NPfY++GKcbfJLp+52AOxspXzhwxM7bCOrvc5YCa8a7EB5SnLqkGArisTLzY4C5kg B3dxTZ/dgzbu1BS0JGEA1qu+zlkyoS611YG/Edhy0Ym/vRDWPpeAI+jboo0putl+GJ9i Z/AsZJrJTlra2q36EvW15vnmcNKRPDYuf42ofPtgh4QsET9hkTiKDWHRsDatuIyxBSx5 mVwJjzRsfLmYKadCPNNSRNMCuj/HkpI7i5x27V2S5sM7S4f8z94An9NIOdtxBWFtsjxr Aakw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738430503; x=1739035303; 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=u+/I2FOukc3Dk/asy1e7U9EZH1wtrOizoGOwl5SdtH4=; b=YfUvFIw8RyM6lKY7ledRLvtkPktEZ3ZMgbQfmAEC/JYkoyb2UiT/NuvueEzp0pVJaG /B0/EC9rsuFFX/ra/T+fWPnvW9DvES2+J506ORvSp5Uv9c5QLT6kApmTv55d0iF4IKMg jurzANpplhkCywTJyscbVnKfq2dr/8cMIZcM1lkV7a6GMIyYu/GFkwLU2WxJKliYky9C Zmmd4e6u768Sl+31kEDXWNh9rCfIsSVJn7F/RzO5btD50j6wm3AupJgrecTftgyy5U/E mgi0iZxetDUzN37hxmuAGvPrDhNElMOpbebfj2I4wulqRtt06MRtnu3M0lG7Oi+px3R0 DOqQ== X-Gm-Message-State: AOJu0YybfUyffxA5Gp95aBzRdD5uXZzB8/nCfNMY2YrhPh0vSejsfK/Y N65kCt0T4595OEM9y8q1Te0xELbDR8WlVtvX+lJvfBIkfjdzsLpklDxNrItMtSK6PPAzLu/KpW6 cMC5hNZrzcFI5fbBGk1kPp2LDk5uQr3icJPCuImgMoDxGDxIcJyik9vvFvWShWzS0tUXxjF9RBf ibA/X0xWUdfXiLUlZVXILAm7Rf9A== X-Google-Smtp-Source: AGHT+IH4Sk//KUgQXbsaN7PuwigW7TIUt60j0OUYDwXcBLIFBYQIS6PTHwK/yF3wuAJQ2njkwqWraLJl X-Received: from wmgg2.prod.google.com ([2002:a05:600d:2:b0:434:a7ab:5eea]) (user=ardb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:c17:b0:438:a290:3ce0 with SMTP id 5b1f17b1804b1-438dc3be2efmr142365605e9.8.1738430503789; Sat, 01 Feb 2025 09:21:43 -0800 (PST) Date: Sat, 1 Feb 2025 18:21:35 +0100 In-Reply-To: <20250201172133.3592112-4-ardb+git@google.com> Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250201172133.3592112-4-ardb+git@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=4536; i=ardb@kernel.org; h=from:subject; bh=sIXXXHX/WANPcyo/QtzvHZEcmMFcszZ6NY8ZNAqvLco=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JIX1ehILt1oaPSlPdDVk12a/7nBCrzZdSmPytp37mgcXZq UIddhYdpSwMYhwMsmKKLAKz/77beXqiVK3zLFmYOaxMIEMYuDgFYCJNGxn+5xpsvem/oGOpWIha 86SHIv1WNTmdK2IOXzsT16vjlFPqx8gwoblTSD52xq3Dpts+20xWMHx3vuJ3Iv+/9L4rEsscYiO 4AA== X-Mailer: git-send-email 2.48.1.362.g079036d154-goog Message-ID: <20250201172133.3592112-5-ardb+git@google.com> Subject: [PATCH 1/2] efi: Avoid cold plugged memory for placing the kernel From: Ard Biesheuvel To: linux-efi@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel , stable@vger.kernel.org From: Ard Biesheuvel UEFI 2.11 introduced EFI_MEMORY_HOT_PLUGGABLE to annotate system memory regions that are 'cold plugged' at boot, i.e., hot pluggable memory that is available from early boot, and described as system RAM by the firmware. Existing loaders and EFI applications running in the boot context will happily use this memory for allocating data structures that cannot be freed or moved at runtime, and this prevents the memory from being unplugged. Going forward, the new EFI_MEMORY_HOT_PLUGGABLE attribute should be tested, and memory annotated as such should be avoided for such allocations. In the EFI stub, there are a couple of occurrences where, instead of the high-level AllocatePages() UEFI boot service, a low-level code sequence is used that traverses the EFI memory map and carves out the requested number of pages from a free region. This is needed, e.g., for allocating as low as possible, or for allocating pages at random. While AllocatePages() should presumably avoid special purpose memory and cold plugged regions, this manual approach needs to incorporate this logic itself, in order to prevent the kernel itself from ending up in a hot unpluggable region, preventing it from being unplugged. So add the EFI_MEMORY_HOTPLUGGABLE macro definition, and check for it where appropriate. Cc: Signed-off-by: Ard Biesheuvel --- drivers/firmware/efi/efi.c | 6 ++++-- drivers/firmware/efi/libstub/randomalloc.c | 3 +++ drivers/firmware/efi/libstub/relocate.c | 3 +++ include/linux/efi.h | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 8296bf985d1d..7309394b8fc9 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -934,13 +934,15 @@ char * __init efi_md_typeattr_format(char *buf, size_t size, EFI_MEMORY_WB | EFI_MEMORY_UCE | EFI_MEMORY_RO | EFI_MEMORY_WP | EFI_MEMORY_RP | EFI_MEMORY_XP | EFI_MEMORY_NV | EFI_MEMORY_SP | EFI_MEMORY_CPU_CRYPTO | - EFI_MEMORY_RUNTIME | EFI_MEMORY_MORE_RELIABLE)) + EFI_MEMORY_MORE_RELIABLE | EFI_MEMORY_HOT_PLUGGABLE | + EFI_MEMORY_RUNTIME)) snprintf(pos, size, "|attr=0x%016llx]", (unsigned long long)attr); else snprintf(pos, size, - "|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]", + "|%3s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%2s|%3s|%2s|%2s|%2s|%2s]", attr & EFI_MEMORY_RUNTIME ? "RUN" : "", + attr & EFI_MEMORY_HOT_PLUGGABLE ? "HP" : "", attr & EFI_MEMORY_MORE_RELIABLE ? "MR" : "", attr & EFI_MEMORY_CPU_CRYPTO ? "CC" : "", attr & EFI_MEMORY_SP ? "SP" : "", diff --git a/drivers/firmware/efi/libstub/randomalloc.c b/drivers/firmware/efi/libstub/randomalloc.c index e5872e38d9a4..5a732018be36 100644 --- a/drivers/firmware/efi/libstub/randomalloc.c +++ b/drivers/firmware/efi/libstub/randomalloc.c @@ -25,6 +25,9 @@ static unsigned long get_entry_num_slots(efi_memory_desc_t *md, if (md->type != EFI_CONVENTIONAL_MEMORY) return 0; + if (md->attribute & EFI_MEMORY_HOT_PLUGGABLE) + return 0; + if (efi_soft_reserve_enabled() && (md->attribute & EFI_MEMORY_SP)) return 0; diff --git a/drivers/firmware/efi/libstub/relocate.c b/drivers/firmware/efi/libstub/relocate.c index 99b45d1cd624..d4264bfb6dc1 100644 --- a/drivers/firmware/efi/libstub/relocate.c +++ b/drivers/firmware/efi/libstub/relocate.c @@ -53,6 +53,9 @@ efi_status_t efi_low_alloc_above(unsigned long size, unsigned long align, if (desc->type != EFI_CONVENTIONAL_MEMORY) continue; + if (desc->attribute & EFI_MEMORY_HOT_PLUGGABLE) + continue; + if (efi_soft_reserve_enabled() && (desc->attribute & EFI_MEMORY_SP)) continue; diff --git a/include/linux/efi.h b/include/linux/efi.h index 053c57e61869..db293d7de686 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -128,6 +128,7 @@ typedef struct { #define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */ #define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */ #define EFI_MEMORY_CPU_CRYPTO ((u64)0x0000000000080000ULL) /* supports encryption */ +#define EFI_MEMORY_HOT_PLUGGABLE BIT_ULL(20) /* supports unplugging at runtime */ #define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ #define EFI_MEMORY_DESCRIPTOR_VERSION 1 From patchwork Sat Feb 1 17:21:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 861338 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 497F21CAA8D for ; Sat, 1 Feb 2025 17:21:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738430509; cv=none; b=MtAKtrTpD73Jhz4ww0g5uMqsj/T7MXkJcJzXyerREZFI+vOlfqJLgrl0+K76HAXqylQfiNzmMtnWeRoQGW80VmI6y80XgkHcscFe8TeVTIlzsxnHONYKn1JGCRoM98kLhybTc1fc3IAWkkPzSx+91pnsAuGJbf8e3G8tuXDjBt0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738430509; c=relaxed/simple; bh=w2yE63sC9zTFdtn+p5RI02eYUbqFYisRzY88vTigVQ8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=Y17pn2lHbchNYVeQfiDd2uQCel+3R+9EnYHZPKEcJemNbVcEGeVqw0M0fwK/LiXbBkS1zC7vBb7chEsh9f5pm2NiE3aWbYQJyupuOBpT8quHA8A2z1Cngpz1FYqg8h/VhRSr2v4tafwYvll9sX+mMv0/K70EmUG11TpLL84Z5Pk= 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=3HnG7SsI; arc=none smtp.client-ip=209.85.128.73 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="3HnG7SsI" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-4362b9c15d8so14425265e9.3 for ; Sat, 01 Feb 2025 09:21:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1738430505; x=1739035305; 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=QKhrV4FS3BfHHv6JJTxTRxWjSBLuqt9pDuTg8aZsHJY=; b=3HnG7SsIWIsRo9+jKmIuReiOuRYnWgQ/WuSOsUMI8DqP/TpCPKxzohpo8fBFFcZZlp lTYg9cgvDofn6mC2W0nD39vGBKqqPIKa+hS1qAyjoQg27X47JmAp3aJtvGsqoZf7vrE4 gnyrUMmxZjCzl9WD8ntjiaMpLJHpCtnXYySmOrqJTa2SXqvFNd9u2z1Lp+SS4wI+2sUo 6jvsR1fyYcR0jUnFLANH+DKxPfdYDU4agbKderV/qiNtnkGSl/ldJGVHGWV5bmw9VkQA sKu2VNVYJwGpp65v4vXNBVrBjP9y94toBDtznzYOAyQYoULzJmlC9cmEzRNZHo9T5WVk uewQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738430505; x=1739035305; 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=QKhrV4FS3BfHHv6JJTxTRxWjSBLuqt9pDuTg8aZsHJY=; b=LapIPG01QNZM856rdCQoOrh4U4Xy4B7kaTCFRSt89U49a1beU6+SywzS0Sx5b+qIgj hImGmwDLpExF2IPxoo4Vc9I4+j6IRB8/jJeY1kYwYE1G3W45lo9jEQVw8aoPjW0iFanx phc5odLo1TjtzJUFNVavQNGKr0pS7oxFdhEO5QthQ70kDC78QMstfom4m1ufJ2PVNxoE 9+zAWRN1UVWNHzOFObhjh4vnFFIrQWdZNywPoBAPqJaF9CGUAs3hJWGneHoO+rjZY1dP ZjNmtyERfS5xOPu0+Eu0RzDIF2cw9etUSiMJYw+U4BC6uuhjQELgpNRrQEemDB0ZGNu8 tziw== X-Gm-Message-State: AOJu0YxDX5SFK8V22rwB2vVkK+p2SyZCj/9vu1O1bfOwXFMnn7J3qnGI 1Vi4QE0U9DhFUgr0xKxyr4dER6Dnfj6aFKcUAV5mD0RBBhRPcpfgUOeiz4F/Q+dCdZsPQAVqusZ wkqAZ6i8tqNEPk3n7B7sUwvaWf/YEDl27STfFBoXPlYJYRaWh1SDj2VRyByuZOXff9mtm5xjgy3 HUrBuzpeLzhpd39k675RqguibmWQ== X-Google-Smtp-Source: AGHT+IGl49RmvVvO8Sge+Xfhu5Xb697EHYs3pjwLnJJB9vvdkzBIhC9IKEmbhFm4+dhHZDqj4Kiz8Dwm X-Received: from wmqa17.prod.google.com ([2002:a05:600c:3491:b0:436:1796:9989]) (user=ardb job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:5119:b0:434:f917:2b11 with SMTP id 5b1f17b1804b1-438dc40bd8dmr126035295e9.21.1738430505708; Sat, 01 Feb 2025 09:21:45 -0800 (PST) Date: Sat, 1 Feb 2025 18:21:36 +0100 In-Reply-To: <20250201172133.3592112-4-ardb+git@google.com> Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250201172133.3592112-4-ardb+git@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=2648; i=ardb@kernel.org; h=from:subject; bh=ATsogwx9msMMPfBwlwd/1Ve/e6sf91DL+ruiHYM3nIk=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JIX1ehGLFp8w1E/O2M52LujTDf2ON7vl3m2dttKjJlwn02 d1yVqG0o5SFQYyDQVZMkUVg9t93O09PlKp1niULM4eVCWQIAxenAEzk1BmGX0yi+V2zeVdcW1pn POuBeZbQ9k0dkmuWu0/JPtydySNcycvI8FeLOW1XONMtU9eGKStmzDVp+Vn7eOeHYC/mdq0uqQe HWAE= X-Mailer: git-send-email 2.48.1.362.g079036d154-goog Message-ID: <20250201172133.3592112-6-ardb+git@google.com> Subject: [PATCH 2/2] efi: Use BIT_ULL() constants for memory attributes From: Ard Biesheuvel To: linux-efi@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Ard Biesheuvel From: Ard Biesheuvel For legibility, use the existing BIT_ULL() to generate the u64 type EFI memory attribute macros. Signed-off-by: Ard Biesheuvel --- include/linux/efi.h | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/include/linux/efi.h b/include/linux/efi.h index db293d7de686..7d63d1d75f22 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -114,22 +114,22 @@ typedef struct { #define EFI_MAX_MEMORY_TYPE 16 /* Attribute values: */ -#define EFI_MEMORY_UC ((u64)0x0000000000000001ULL) /* uncached */ -#define EFI_MEMORY_WC ((u64)0x0000000000000002ULL) /* write-coalescing */ -#define EFI_MEMORY_WT ((u64)0x0000000000000004ULL) /* write-through */ -#define EFI_MEMORY_WB ((u64)0x0000000000000008ULL) /* write-back */ -#define EFI_MEMORY_UCE ((u64)0x0000000000000010ULL) /* uncached, exported */ -#define EFI_MEMORY_WP ((u64)0x0000000000001000ULL) /* write-protect */ -#define EFI_MEMORY_RP ((u64)0x0000000000002000ULL) /* read-protect */ -#define EFI_MEMORY_XP ((u64)0x0000000000004000ULL) /* execute-protect */ -#define EFI_MEMORY_NV ((u64)0x0000000000008000ULL) /* non-volatile */ -#define EFI_MEMORY_MORE_RELIABLE \ - ((u64)0x0000000000010000ULL) /* higher reliability */ -#define EFI_MEMORY_RO ((u64)0x0000000000020000ULL) /* read-only */ -#define EFI_MEMORY_SP ((u64)0x0000000000040000ULL) /* soft reserved */ -#define EFI_MEMORY_CPU_CRYPTO ((u64)0x0000000000080000ULL) /* supports encryption */ +#define EFI_MEMORY_UC BIT_ULL(0) /* uncached */ +#define EFI_MEMORY_WC BIT_ULL(1) /* write-coalescing */ +#define EFI_MEMORY_WT BIT_ULL(2) /* write-through */ +#define EFI_MEMORY_WB BIT_ULL(3) /* write-back */ +#define EFI_MEMORY_UCE BIT_ULL(4) /* uncached, exported */ +#define EFI_MEMORY_WP BIT_ULL(12) /* write-protect */ +#define EFI_MEMORY_RP BIT_ULL(13) /* read-protect */ +#define EFI_MEMORY_XP BIT_ULL(14) /* execute-protect */ +#define EFI_MEMORY_NV BIT_ULL(15) /* non-volatile */ +#define EFI_MEMORY_MORE_RELIABLE BIT_ULL(16) /* higher reliability */ +#define EFI_MEMORY_RO BIT_ULL(17) /* read-only */ +#define EFI_MEMORY_SP BIT_ULL(18) /* soft reserved */ +#define EFI_MEMORY_CPU_CRYPTO BIT_ULL(19) /* supports encryption */ #define EFI_MEMORY_HOT_PLUGGABLE BIT_ULL(20) /* supports unplugging at runtime */ -#define EFI_MEMORY_RUNTIME ((u64)0x8000000000000000ULL) /* range requires runtime mapping */ +#define EFI_MEMORY_RUNTIME BIT_ULL(63) /* range requires runtime mapping */ + #define EFI_MEMORY_DESCRIPTOR_VERSION 1 #define EFI_PAGE_SHIFT 12