Commit 61f54461 authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

x86, realmode: Move end signature into header.S



The end signature was defined in wakeup_asm.S as it originally came
from the ACPI wakeup code.  However, we rely on the existence of the
.signature section to expand .bss, otherwise we would have to include
code to explicitly zero the .bss depending on the configuration.
Since the expanded .bss is just in .init.data anyway, it's easier to
always have it expanded.

This fixes failures when compiled without CONFIG_ACPI_SLEEP.

Reported-by: default avatarIngo Molnar <mingo@kernel.org>
Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
Cc: Jarkko Sakkinen <jarkko.sakkinen@intel.com>
parent 8a3b947c
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@
#include <linux/linkage.h>
#include <asm/page_types.h>

#include "realmode.h"
	
	.section ".header", "a"

	.balign	16
@@ -30,3 +32,10 @@ GLOBAL(real_mode_header)
	.long	pa_machine_real_restart_asm
#endif
END(real_mode_header)

	/* End signature, used to verify integrity */
	.section ".signature","a"
	.balign 4
GLOBAL(end_signature)
	.long	REALMODE_END_SIGNATURE
END(end_signature)
+5 −0
Original line number Diff line number Diff line
@@ -13,4 +13,9 @@

#endif /* __ASSEMBLY__ */

/*
 * Signature at the end of the realmode region
 */
#define REALMODE_END_SIGNATURE	0x65a22c82

#endif /* ARCH_X86_REALMODE_RM_REALMODE_H */
+0 −1
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ extern struct wakeup_header wakeup_header;

#define WAKEUP_HEADER_OFFSET	8
#define WAKEUP_HEADER_SIGNATURE 0x51ee1111
#define WAKEUP_END_SIGNATURE	0x65a22c82

/* Wakeup behavior bits */
#define WAKEUP_BEHAVIOR_RESTORE_MISC_ENABLE     0
+1 −5
Original line number Diff line number Diff line
@@ -85,7 +85,7 @@ ENTRY(wakeup_start)

	/* Check we really have everything... */
	movl	end_signature, %eax
	cmpl	$WAKEUP_END_SIGNATURE, %eax
	cmpl	$REALMODE_END_SIGNATURE, %eax
	jne	bogus_real_magic

	/* Call the C code */
@@ -175,7 +175,3 @@ GLOBAL(wakeup_idt)
	.long	0		/* address */
	.word	0
END(wakeup_idt)

	.section ".signature","a"
end_signature:
	.long	WAKEUP_END_SIGNATURE