[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <tip-07e83dbb75865b016f6493c119a30aac7c25051a@git.kernel.org>
Date: Mon, 22 Feb 2016 04:14:55 -0800
From: tip-bot for Ard Biesheuvel <tipbot@...or.com>@zytor.com
To: linux-tip-commits@...r.kernel.org@...or.com
Cc: ard.biesheuvel@...aro.org, mark.rutland@....com,
matt@...eblueprint.co.uk, mingo@...nel.org,
torvalds@...ux-foundation.org, hpa@...or.com, peterz@...radead.org,
linux-kernel@...r.kernel.org, tglx@...utronix.de
Subject: [tip:efi/core] efi/efistub: Prevent __init annotations from being used
Commit-ID: 07e83dbb75865b016f6493c119a30aac7c25051a
Gitweb: http://git.kernel.org/tip/07e83dbb75865b016f6493c119a30aac7c25051a
Author: Ard Biesheuvel <ard.biesheuvel@...aro.org>
AuthorDate: Wed, 17 Feb 2016 12:35:59 +0000
Committer: Ingo Molnar <mingo@...nel.org>
CommitDate: Mon, 22 Feb 2016 08:26:26 +0100
efi/efistub: Prevent __init annotations from being used
__init annotations should not be used in the EFI stub, since the code is
either included in the decompressor (x86, ARM) where they have no effect,
or the whole stub is __init annotated at the section level (arm64), by
renaming the sections.
In the second case the __init annotations will be redundant, and will
result in section names like .init.init.text, and our linker script does
not expect that.
So un-#define __init so that its inadvertent use will force a build error.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@...aro.org>
Signed-off-by: Matt Fleming <matt@...eblueprint.co.uk>
Acked-by: Mark Rutland <mark.rutland@....com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-efi@...r.kernel.org
Link: http://lkml.kernel.org/r/1455712566-16727-7-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@...nel.org>
---
drivers/firmware/efi/libstub/efistub.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
index 6b6548f..86ff7bf 100644
--- a/drivers/firmware/efi/libstub/efistub.h
+++ b/drivers/firmware/efi/libstub/efistub.h
@@ -5,6 +5,16 @@
/* error code which can't be mistaken for valid address */
#define EFI_ERROR (~0UL)
+/*
+ * __init annotations should not be used in the EFI stub, since the code is
+ * either included in the decompressor (x86, ARM) where they have no effect,
+ * or the whole stub is __init annotated at the section level (arm64), by
+ * renaming the sections, in which case the __init annotation will be
+ * redundant, and will result in section names like .init.init.text, and our
+ * linker script does not expect that.
+ */
+#undef __init
+
void efi_char16_printk(efi_system_table_t *, efi_char16_t *);
efi_status_t efi_open_volume(efi_system_table_t *sys_table_arg, void *__image,
Powered by blists - more mailing lists