[tip:x86/urgent] x86, relocs: Add jiffies and jiffies_64 to the relative whitelist

From: tip-bot for H. Peter Anvin
Date: Thu May 24 2012 - 12:10:03 EST


Commit-ID: ea17e7414bc62e8d3bde8d08e3df1d921c518c17
Gitweb: http://git.kernel.org/tip/ea17e7414bc62e8d3bde8d08e3df1d921c518c17
Author: H. Peter Anvin <hpa@xxxxxxxxx>
AuthorDate: Thu, 24 May 2012 07:01:38 -0700
Committer: H. Peter Anvin <hpa@xxxxxxxxx>
CommitDate: Thu, 24 May 2012 07:16:18 -0700

x86, relocs: Add jiffies and jiffies_64 to the relative whitelist

The symbol jiffies is created in the linker script as an alias to
jiffies_64. Unfortunately this is done outside any section, and
apparently GNU ld 2.21 doesn't carry the section with it, so we end up
with an absolute symbol and therefore a broken kernel.

Add jiffies and jiffies_64 to the whitelist.

The most disturbing bit with this discovery is that it shows that we
have had multiple linker bugs in this area crossing multiple
generations, and have been silently building bad kernels for some time.

Link: http://lkml.kernel.org/r/20120524171604.0d98284f3affc643e9714470@xxxxxxxxxxxxxxxx
Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> v3.4
---
arch/x86/tools/relocs.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
index b8f7c65..b685296 100644
--- a/arch/x86/tools/relocs.c
+++ b/arch/x86/tools/relocs.c
@@ -71,6 +71,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
"__(start|stop)_notes|"
"__end_rodata|"
"__initramfs_start|"
+ "(jiffies|jiffies_64)|"
"_end)$"
};

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/