From: Chao Fan <fanc.fnst@cn.fujitsu.com>
To: <linux-kernel@vger.kernel.org>, <x86@kernel.org>, <bp@alien8.de>,
<tglx@linutronix.de>, <mingo@redhat.com>, <hpa@zytor.com>,
<keescook@chromium.org>, <bhe@redhat.com>,
<msys.mizuma@gmail.com>
Cc: <indou.takao@jp.fujitsu.com>, <caoj.fnst@cn.fujitsu.com>,
<kasong@redhat.com>
Subject: Re: [PATCH v16 5/7] x86/boot: Early parse RSDP and fill in boot_params
Date: Wed, 23 Jan 2019 19:17:17 +0800 [thread overview]
Message-ID: <20190123111717.GF15754@localhost.localdomain> (raw)
In-Reply-To: <20190123110850.12433-6-fanc.fnst@cn.fujitsu.com>
On Wed, Jan 23, 2019 at 07:08:48PM +0800, Chao Fan wrote:
[...]
> #endif /* CONFIG_ACPI */
>diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
>index 8dd1d5ccae58..86fa8bf56d68 100644
>--- a/arch/x86/boot/compressed/misc.c
>+++ b/arch/x86/boot/compressed/misc.c
>@@ -382,6 +382,13 @@ asmlinkage __visible void *extract_kernel(void *rmode, memptr heap,
> debug_putaddr(trampoline_32bit);
> #endif
>
>+ /*
>+ * Very early parse RSDP and fill in boot_params.
>+ * Early parsing is only executed once, and later anyone who
>+ * needs RSDP can gain RSDP address by boot_params but not parse again.
>+ */
>+ boot_params->acpi_rsdp_addr = get_rsdp_addr();
>+
Hi Boris and Kairui,
I splite my v15 PATCH 5/6 to two patches, this v16 5/7 is new added.
Since as Boris said much code such as Kairui's need RSDP where is not
related to KASLR, but in my v15 version, the function entry is only
in kaslr.c. So I expose get_rsdp_addr() as not static, and fill in
boot_params without #ifdef KASLR issue ot MEMORY_HOTREMOVE and so on.
More code can gain the RSDP by boot_params.
Since in KALSR, we need RSDP to parse SRAT and gain memroy information,
so I put boot_params->acpi_rsdp_addr = get_rsdp_addr(); just before
choose_random_location(), in which KASLR works. Then in this version
v16 PATCH 6/7, only try to gain RSDP by boot_params and not parse again.
So I think this method can cover other people's usage, such as Kairui
Song, how do you think this change.
Thanks,
Chao Fan
> /*
> * The memory hole needed for the kernel is the larger of either
> * the entire decompressed kernel plus relocation table, or the
>diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
>index 764ad50c0119..e1dd15769cf3 100644
>--- a/arch/x86/boot/compressed/misc.h
>+++ b/arch/x86/boot/compressed/misc.h
>@@ -119,3 +119,10 @@ static inline void console_init(void)
> void set_sev_encryption_mask(void);
>
> #endif
>+
>+/* acpi.c */
>+#ifdef CONFIG_ACPI
>+acpi_physical_address get_rsdp_addr(void);
>+#else
>+static inline acpi_physical_address get_rsdp_addr(void) { return 0; }
>+#endif
>--
>2.20.1
>
next prev parent reply other threads:[~2019-01-23 11:18 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-23 11:08 [PATCH v16 0/7] Parse ACPI table and limit KASLR to choosing immovable memory Chao Fan
2019-01-23 11:08 ` [PATCH v16 1/7] x86/boot: Copy kstrtoull() to boot/string.c instead of simple_strtoull() Chao Fan
2019-02-01 10:58 ` [tip:x86/boot] x86/boot: Copy kstrtoull() to boot/string.c tip-bot for Chao Fan
2019-01-23 11:08 ` [PATCH v16 2/7] x86/boot: Introduce get_acpi_rsdp() to parse RSDP in cmdline from KEXEC Chao Fan
2019-02-01 10:59 ` [tip:x86/boot] x86/boot: Add "acpi_rsdp=" early parsing tip-bot for Chao Fan
2019-01-23 11:08 ` [PATCH v16 3/7] x86/boot: Introduce efi_get_rsdp_addr() to find RSDP from EFI table Chao Fan
2019-02-01 10:59 ` [tip:x86/boot] x86/boot: Search for RSDP in the EFI tables tip-bot for Chao Fan
2019-01-23 11:08 ` [PATCH v16 4/7] x86/boot: Introduce bios_get_rsdp_addr() to search RSDP in memory Chao Fan
2019-02-01 11:00 ` [tip:x86/boot] x86/boot: Search for " tip-bot for Chao Fan
2019-01-23 11:08 ` [PATCH v16 5/7] x86/boot: Early parse RSDP and fill in boot_params Chao Fan
2019-01-23 11:17 ` Chao Fan [this message]
2019-02-01 11:01 ` [tip:x86/boot] x86/boot: Early parse RSDP and save it " tip-bot for Chao Fan
2019-02-08 19:02 ` Guenter Roeck
2019-02-08 19:10 ` Borislav Petkov
2019-02-08 20:44 ` Guenter Roeck
2019-02-08 21:53 ` Borislav Petkov
2019-02-11 0:22 ` Borislav Petkov
2019-02-11 1:33 ` Chao Fan
2019-02-11 9:46 ` Ard Biesheuvel
2019-02-11 9:55 ` Chao Fan
2019-02-11 9:57 ` Ard Biesheuvel
2019-02-11 10:10 ` Chao Fan
2019-02-11 10:17 ` Ard Biesheuvel
2019-02-11 10:24 ` Borislav Petkov
2019-02-11 10:33 ` Ard Biesheuvel
2019-02-11 10:42 ` Borislav Petkov
2019-02-11 10:46 ` Ard Biesheuvel
2019-02-11 11:04 ` Borislav Petkov
2019-02-11 11:55 ` Ard Biesheuvel
2019-02-11 12:16 ` Borislav Petkov
2019-02-11 11:20 ` Borislav Petkov
2019-02-11 13:21 ` Chao Fan
2019-02-13 1:54 ` Chao Fan
2019-02-13 7:36 ` Boris Petkov
2019-02-13 7:58 ` Chao Fan
2019-02-13 8:01 ` Ard Biesheuvel
2019-02-13 8:12 ` Chao Fan
2019-02-13 8:50 ` Borislav Petkov
2019-02-13 8:57 ` Chao Fan
2019-02-11 1:07 ` Chao Fan
2019-02-11 9:30 ` Chao Fan
2019-02-11 10:08 ` Borislav Petkov
2019-02-11 13:03 ` Chao Fan
2019-02-11 14:08 ` Guenter Roeck
2019-02-13 9:06 ` [tip:x86/boot] x86/boot: Correct RSDP parsing with 32-bit EFI tip-bot for Borislav Petkov
2019-02-13 11:27 ` tip-bot for Borislav Petkov
2019-01-23 11:08 ` [PATCH v16 6/7] x86/boot: Parse SRAT address from RSDP and store immovable memory Chao Fan
2019-02-01 11:01 ` [tip:x86/boot] x86/boot: Parse SRAT table and count immovable memory regions tip-bot for Chao Fan
2019-01-23 11:08 ` [PATCH v16 7/7] x86/boot/KASLR: Limit KASLR to extracting kernel in immovable memory Chao Fan
2019-02-01 11:02 ` [tip:x86/boot] x86/boot/KASLR: Limit KASLR to extract the kernel in immovable memory only tip-bot for Chao Fan
2019-01-28 17:51 ` [PATCH v16 0/7] Parse ACPI table and limit KASLR to choosing immovable memory Borislav Petkov
2019-01-30 5:58 ` Chao Fan
2019-01-30 11:22 ` [PATCH] x86/boot: Build the command line parsing code unconditionally (was: Re: [PATCH v16 0/7] Parse ACPI table and limit KASLR to choosing immovable memory) Borislav Petkov
2019-02-01 10:57 ` [tip:x86/boot] x86/boot: Build the command line parsing code unconditionally tip-bot for Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190123111717.GF15754@localhost.localdomain \
--to=fanc.fnst@cn.fujitsu.com \
--cc=bhe@redhat.com \
--cc=bp@alien8.de \
--cc=caoj.fnst@cn.fujitsu.com \
--cc=hpa@zytor.com \
--cc=indou.takao@jp.fujitsu.com \
--cc=kasong@redhat.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=msys.mizuma@gmail.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox