x86/cleanups for v3.5
Subsystems (5)
Linus,
Please pull the latest x86-cleanups-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-cleanups-for-linus
HEAD: 74bc491795420254f8b9c782ec654c9ba005d3ac x86/pci-calgary_64.c: Remove obsoleted simple_strtoul() usage
Small cleanups.
out-of-topic modifications in x86-cleanups-for-linus:
-----------------------------------------------------Makefile # 1873e87: debug: Add CONFIG_READABLE_ASM
Thanks,
Ingo
------------------>
Andi Kleen (1):
debug: Add CONFIG_READABLE_ASM
Peter Jones (1):
x86: Don't continue booting if we can't load the specified initrd
Richard Weinberger (1):
x86: spinlock.h: Remove REG_PTR_MODE
Shuah Khan (3):
x86: kernel/check.c simple_strtoul cleanup
x86: kernel/dumpstack.c simple_strtoul cleanup x86/pci-calgary_64.c: Remove obsoleted simple_strtoul() usage
Makefile | 10 ++++++++++ arch/x86/include/asm/spinlock.h | 2 -- arch/x86/kernel/check.c | 20 ++++++++++++++------ arch/x86/kernel/dumpstack.c | 21 +++++++++++++++++++-- arch/x86/kernel/pci-calgary_64.c | 8 +++++--- arch/x86/kernel/setup.c | 7 +++---- lib/Kconfig.debug | 9 +++++++++ 7 files changed, 60 insertions(+), 17 deletions(-)
Makefile +10 -0
@@ -564,6 +564,16 @@ else KBUILD_CFLAGS += -O2 endif +ifdef CONFIG_READABLE_ASM +# Disable optimizations that make assembler listings hard to read. +# reorder blocks reorders the control in the function +# ipa clone creates specialized cloned functions +# partial inlining inlines only parts of functions +KBUILD_CFLAGS += $(call cc-option,-fno-reorder-blocks,) \ + $(call cc-option,-fno-ipa-cp-clone,) \ + $(call cc-option,-fno-partial-inlining) +endif + include $(srctree)/arch/$(SRCARCH)/Makefile ifneq ($(CONFIG_FRAME_WARN),0)
arch/x86/include/asm/spinlock.h +0 -2
@@ -20,10 +20,8 @@#ifdef CONFIG_X86_32 # define LOCK_PTR_REG "a" -# define REG_PTR_MODE "k"#else # define LOCK_PTR_REG "D" -# define REG_PTR_MODE "q"#endif #if defined(CONFIG_X86_32) && \
arch/x86/kernel/check.c +14 -6
@@ -27,21 +27,29 @@ static int num_scan_areas;static __init int set_corruption_check (char *arg) { -char *end; +ssize_t ret; +unsigned long val; - memory_corruption_check =simple_strtol (arg, &end,10 ); + ret =kstrtoul (arg,10 , &val); +if (ret) +return ret; -return (*end ==0 ) ?0 : -EINVAL ; + memory_corruption_check = val; +return 0 ; }early_param ("memory_corruption_check" , set_corruption_check);static __init int set_corruption_check_period (char *arg) { -char *end; +ssize_t ret; +unsigned long val; - corruption_check_period =simple_strtoul (arg, &end,10 ); + ret =kstrtoul (arg,10 , &val); +if (ret) +return ret; -return (*end ==0 ) ?0 : -EINVAL ; + corruption_check_period = val; +return 0 ; }early_param ("memory_corruption_check_period" , set_corruption_check_period);
arch/x86/kernel/dumpstack.c +19 -2
@@ -311,16 +311,33 @@ void die(const char *str, struct pt_regs *regs, long err)static int __init kstack_setup (char *s) { +ssize_t ret; +unsigned long val; +if (!s)return -EINVAL ; - kstack_depth_to_print =simple_strtoul (s,NULL ,0 ); + + ret =kstrtoul (s,0 , &val); +if (ret) +return ret; + kstack_depth_to_print = val;return 0 ; }early_param ("kstack" , kstack_setup);static int __init code_bytes_setup (char *s) { - code_bytes =simple_strtoul (s,NULL ,0 ); +ssize_t ret; +unsigned long val; + +if (!s) +return -EINVAL ; + + ret =kstrtoul (s,0 , &val); +if (ret) +return ret; + + code_bytes = val;if (code_bytes >8192 ) code_bytes =8192 ;
arch/x86/kernel/pci-calgary_64.c +5 -3
@@ -1479,8 +1479,9 @@ cleanup:static int __init calgary_parse_options (char *p) {unsigned int bridge; +unsigned long val;size_t len; -char * endp; +ssize_t ret;while (*p) {if (!strncmp (p,"64k" ,3 ))
@@ -1511,10 +1512,11 @@ static int __init calgary_parse_options(char *p) ++p;if (*p =='\0' )break ; - bridge =simple_strtoul (p, &endp,0 ); -if (p == endp) + ret =kstrtoul (p,0 , &val); +if (ret)break ; + bridge = val;if (bridge <MAX_PHB_BUS_NUM ) {printk (KERN_INFO "Calgary: disabling " "translation for PHB %#x\n" , bridge);
arch/x86/kernel/setup.c +3 -4
@@ -393,10 +393,9 @@ static void __init reserve_initrd(void) initrd_start =0 ;if (ramdisk_size >= (end_of_lowmem>>1 )) { -memblock_free (ramdisk_image, ramdisk_end - ramdisk_image); -printk (KERN_ERR "initrd too large to handle, " -"disabling initrd\n" ); -return ; +panic ("initrd too large to handle, " +"disabling initrd (%lld needed, %lld available)\n" , + ramdisk_size, end_of_lowmem>>1 ); } printk(KERN_INFO "RAMDISK: %08llx - %08llx\n", ramdisk_image,
lib/Kconfig.debug +9 -0
@@ -70,6 +70,15 @@ config STRIP_ASM_SYMS that look like '.Lxxx') so they don't pollute the output of get_wchan() and suchlike. +config READABLE_ASM + bool "Generate readable assembler code" + depends on DEBUG_KERNEL + help + Disable some compiler optimizations that tend to generate human unreadable + assembler output. This may make the kernel slightly slower, but it helps + to keep kernel developers who have to stare a lot at assembler listings + sane. + config UNUSED_SYMBOLS bool "Enable unused/obsolete exported symbols" default y if X86