[PATCH v2 0/8] Mark literal strings in __init / __exit code

From: Mathias Krause
Date: Sat Jul 12 2014 - 10:45:15 EST


This is v2 of the patch series initially posted here:

https://lkml.org/lkml/2014/6/22/149

I've integrated Joe's idea of also providing printk_init() /
printk_exit() wrappers for code that cannot (or doesn't want to) be
converted to the pi_*() / pe_*() wrappers.

Patches 4 and 5 are cleanup patches I stumbled over while changing the
corresponding code to make use of the new pi_*() helpers.

This version addresses the symbol filtering issue, by filtering the
pseudo symbols in kallsyms (patch 8). This removes them even in the
KALLSYMS_ALL case.

I've changed a few more files, pushing up the memory moved from .rodata
to .init.rodata to ~3 kB. This should free up a page after init for
almost any x86 system.

Comments?


Mathias Krause (8):
init.h: Add __init_str / __exit_str macros
printk: Provide pi_<level> / pe_<level> macros for __init / __exit
code
x86, acpi: Mark __init strings as such
x86, mm: Make x86_init.memory_setup() return a const char *
x86, mm: early_panic() - pass on the message as string
x86, mm: e820 - mark __init strings as such
x86: setup - mark __init strings as such
kallsyms: exclude pseudo symbols for __init / __exit strings

arch/x86/include/asm/e820.h | 4 +-
arch/x86/include/asm/x86_init.h | 2 +-
arch/x86/kernel/acpi/boot.c | 162 ++++++++++++++++++---------------------
arch/x86/kernel/acpi/sleep.c | 17 ++--
arch/x86/kernel/e820.c | 95 +++++++++++------------
arch/x86/kernel/setup.c | 70 ++++++++---------
arch/x86/lguest/boot.c | 2 +-
arch/x86/xen/setup.c | 4 +-
arch/x86/xen/xen-ops.h | 4 +-
include/linux/init.h | 23 ++++++
include/linux/printk.h | 59 ++++++++++++++
scripts/kallsyms.c | 13 ++++
12 files changed, 267 insertions(+), 188 deletions(-)

--
1.7.10.4

--
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/