projects/linux·commit 600b2fc2

xen: suppress abs symbol warnings for unused reloc pointers

600b2fc2 · Jeremy Fitzhardinge <[email protected]> · 2007-07-17 18:37:07 -07:00

arch/i386/xen/xen-asm.S defines some small pieces of code which are
used to implement a few paravirt_ops.  They're designed so they can be
used either in-place, or be inline patched into their callsites if
there's enough space.

Some of those operations need to make calls out (specifically, if you
re-enable events [interrupts], and there's a pending event at that
time).  These calls need the call instruction to be relocated if the
code is patched inline.  In this case xen_foo_reloc is a
section-relative symbol which points to xen_foo's required relocation.

Other operations have no need of a relocation, and so their
corresponding xen_bar_reloc is absolute 0.  These are the cases which
are triggering the warning.

This patch adds those symbols to the list of safe abs symbols.

Signed-off-by: Jeremy Fitzhardinge <[email protected]>
Cc: Adrian Bunk <[email protected]>
Commit
600b2fc242992e552e0b4e24c8c1f084b341f39b
Parents
6487673b

Changes

1 files changed · +2 −0

FileStatusAddDelContent
arch/i386/boot/compressed/relocs.cmodified+2−0View file

arch/i386/boot/compressed/relocs.c

View file
diff --git a/arch/i386/boot/compressed/relocs.c b/arch/i386/boot/compressed/relocs.c
index ce4fda2..b0e21c3 100644
--- a/arch/i386/boot/compressed/relocs.c
+++ b/arch/i386/boot/compressed/relocs.c
@@ -31,6 +31,8 @@ static const char* safe_abs_relocs[] = {
"__kernel_rt_sigreturn",
"__kernel_sigreturn",
"SYSENTER_RETURN",
+ "xen_irq_disable_direct_reloc",
+ "xen_save_fl_direct_reloc",
};
static int is_safe_abs_reloc(const char* sym_name)