* [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile
@ 2022-06-16 7:24 Masahiro Yamada
2022-06-16 7:24 ` [PATCH 2/2] x86/purgatory: Omit use of bin2c Masahiro Yamada
2022-07-24 15:11 ` [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
0 siblings, 2 replies; 4+ messages in thread
From: Masahiro Yamada @ 2022-06-16 7:24 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, x86,
H . Peter Anvin
Cc: linux-kernel, Masahiro Yamada
arch/x86/Kbuild guards the entire purgatory/ directory, and
CONFIG_KEXEC_FILE is bool type.
$(CONFIG_KEXEC_FILE) is always 'y' when this directory is being built.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
arch/x86/purgatory/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile
index ae53d54d7959..248b009c4061 100644
--- a/arch/x86/purgatory/Makefile
+++ b/arch/x86/purgatory/Makefile
@@ -81,4 +81,4 @@ quiet_cmd_bin2c = BIN2C $@
$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro $(obj)/purgatory.chk FORCE
$(call if_changed,bin2c)
-obj-$(CONFIG_KEXEC_FILE) += kexec-purgatory.o
+obj-y += kexec-purgatory.o
--
2.32.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] x86/purgatory: Omit use of bin2c
2022-06-16 7:24 [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
@ 2022-06-16 7:24 ` Masahiro Yamada
2022-07-24 15:11 ` [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
1 sibling, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2022-06-16 7:24 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen, x86,
H . Peter Anvin
Cc: linux-kernel, Masahiro Yamada
The .incbin assembler directive is much faster than bin2c + $(CC).
Do similar refactoring as in commit 4c0f032d4963 ("s390/purgatory:
Omit use of bin2c").
Please note the .quad directive matches to size_t in C (both 8 byte)
because the purgatory is compiled only for the 64-bit kernel.
(KEXEC_FILE depends on X86_64).
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---
arch/x86/.gitignore | 2 --
arch/x86/Kconfig | 1 -
arch/x86/purgatory/Makefile | 8 +-------
arch/x86/purgatory/kexec-purgatory.S | 14 ++++++++++++++
scripts/remove-stale-files | 2 ++
5 files changed, 17 insertions(+), 10 deletions(-)
create mode 100644 arch/x86/purgatory/kexec-purgatory.S
diff --git a/arch/x86/.gitignore b/arch/x86/.gitignore
index 677111acbaa3..f2e1d6c347fb 100644
--- a/arch/x86/.gitignore
+++ b/arch/x86/.gitignore
@@ -3,6 +3,4 @@ boot/compressed/vmlinux
tools/test_get_len
tools/insn_sanity
tools/insn_decoder_test
-purgatory/kexec-purgatory.c
purgatory/purgatory.ro
-
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index be0b95e51df6..2c1d37cd479f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2032,7 +2032,6 @@ config KEXEC
config KEXEC_FILE
bool "kexec file based system call"
select KEXEC_CORE
- select BUILD_BIN2C
depends on X86_64
depends on CRYPTO=y
depends on CRYPTO_SHA256=y
diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile
index 248b009c4061..31c634a22818 100644
--- a/arch/x86/purgatory/Makefile
+++ b/arch/x86/purgatory/Makefile
@@ -73,12 +73,6 @@ $(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
$(obj)/purgatory.chk: $(obj)/purgatory.ro FORCE
$(call if_changed,ld)
-targets += kexec-purgatory.c
-
-quiet_cmd_bin2c = BIN2C $@
- cmd_bin2c = $(objtree)/scripts/bin2c kexec_purgatory < $< > $@
-
-$(obj)/kexec-purgatory.c: $(obj)/purgatory.ro $(obj)/purgatory.chk FORCE
- $(call if_changed,bin2c)
+$(obj)/kexec-purgatory.o: $(obj)/purgatory.ro $(obj)/purgatory.chk
obj-y += kexec-purgatory.o
diff --git a/arch/x86/purgatory/kexec-purgatory.S b/arch/x86/purgatory/kexec-purgatory.S
new file mode 100644
index 000000000000..1a1abf6268bc
--- /dev/null
+++ b/arch/x86/purgatory/kexec-purgatory.S
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+ .section .rodata, "a"
+
+ .align 8
+kexec_purgatory:
+ .globl kexec_purgatory
+ .incbin "arch/x86/purgatory/purgatory.ro"
+.Lkexec_purgatroy_end:
+
+ .align 8
+kexec_purgatory_size:
+ .globl kexec_purgatory_size
+ .quad .Lkexec_purgatroy_end - kexec_purgatory
diff --git a/scripts/remove-stale-files b/scripts/remove-stale-files
index 7adab4618035..379e86c71bed 100755
--- a/scripts/remove-stale-files
+++ b/scripts/remove-stale-files
@@ -41,3 +41,5 @@ if [ -n "${building_out_of_srctree}" ]; then
fi
rm -f scripts/extract-cert
+
+rm -f arch/x86/purgatory/kexec-purgatory.c
--
2.32.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile
2022-06-16 7:24 [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
2022-06-16 7:24 ` [PATCH 2/2] x86/purgatory: Omit use of bin2c Masahiro Yamada
@ 2022-07-24 15:11 ` Masahiro Yamada
2022-07-25 2:01 ` Masahiro Yamada
1 sibling, 1 reply; 4+ messages in thread
From: Masahiro Yamada @ 2022-07-24 15:11 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen,
X86 ML, H . Peter Anvin
Cc: Linux Kernel Mailing List
On Thu, Jun 16, 2022 at 4:25 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> arch/x86/Kbuild guards the entire purgatory/ directory, and
> CONFIG_KEXEC_FILE is bool type.
>
> $(CONFIG_KEXEC_FILE) is always 'y' when this directory is being built.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
Ping?
>
> arch/x86/purgatory/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile
> index ae53d54d7959..248b009c4061 100644
> --- a/arch/x86/purgatory/Makefile
> +++ b/arch/x86/purgatory/Makefile
> @@ -81,4 +81,4 @@ quiet_cmd_bin2c = BIN2C $@
> $(obj)/kexec-purgatory.c: $(obj)/purgatory.ro $(obj)/purgatory.chk FORCE
> $(call if_changed,bin2c)
>
> -obj-$(CONFIG_KEXEC_FILE) += kexec-purgatory.o
> +obj-y += kexec-purgatory.o
> --
> 2.32.0
>
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile
2022-07-24 15:11 ` [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
@ 2022-07-25 2:01 ` Masahiro Yamada
0 siblings, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2022-07-25 2:01 UTC (permalink / raw)
To: Thomas Gleixner, Ingo Molnar, Borislav Petkov, Dave Hansen,
X86 ML, H . Peter Anvin
Cc: Linux Kernel Mailing List
On Mon, Jul 25, 2022 at 12:11 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> On Thu, Jun 16, 2022 at 4:25 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
> >
> > arch/x86/Kbuild guards the entire purgatory/ directory, and
> > CONFIG_KEXEC_FILE is bool type.
> >
> > $(CONFIG_KEXEC_FILE) is always 'y' when this directory is being built.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
>
> Ping?
There is a typo.
I will send v2.
>
>
> >
> > arch/x86/purgatory/Makefile | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile
> > index ae53d54d7959..248b009c4061 100644
> > --- a/arch/x86/purgatory/Makefile
> > +++ b/arch/x86/purgatory/Makefile
> > @@ -81,4 +81,4 @@ quiet_cmd_bin2c = BIN2C $@
> > $(obj)/kexec-purgatory.c: $(obj)/purgatory.ro $(obj)/purgatory.chk FORCE
> > $(call if_changed,bin2c)
> >
> > -obj-$(CONFIG_KEXEC_FILE) += kexec-purgatory.o
> > +obj-y += kexec-purgatory.o
> > --
> > 2.32.0
> >
>
>
> --
> Best Regards
> Masahiro Yamada
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-25 2:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-16 7:24 [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
2022-06-16 7:24 ` [PATCH 2/2] x86/purgatory: Omit use of bin2c Masahiro Yamada
2022-07-24 15:11 ` [PATCH 1/2] x86/purgatory: hard-code obj-y in Makefile Masahiro Yamada
2022-07-25 2:01 ` Masahiro Yamada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).