Commit 5dee8721 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm

Pull ARM fixes from Russell King:

 - avoid unnecessary rebuilds for library objects

 - fix return value of __setup handlers

 - fix invalid input check for "crashkernel=" kernel option

 - silence KASAN warnings in unwind_frame

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
  ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame()
  ARM: 9190/1: kdump: add invalid input check for 'crashkernel=0'
  ARM: 9187/1: JIVE: fix return value of __setup handler
  ARM: 9189/1: decompressor: fix unneeded rebuilds of library objects
parents be2d3ece de4fb176
...@@ -92,6 +92,8 @@ ifeq ($(CONFIG_USE_OF),y) ...@@ -92,6 +92,8 @@ ifeq ($(CONFIG_USE_OF),y)
OBJS += $(libfdt_objs) fdt_check_mem_start.o OBJS += $(libfdt_objs) fdt_check_mem_start.o
endif endif
OBJS += lib1funcs.o ashldi3.o bswapsdi2.o
targets := vmlinux vmlinux.lds piggy_data piggy.o \ targets := vmlinux vmlinux.lds piggy_data piggy.o \
head.o $(OBJS) head.o $(OBJS)
...@@ -126,8 +128,6 @@ endif ...@@ -126,8 +128,6 @@ endif
# Next argument is a linker script # Next argument is a linker script
LDFLAGS_vmlinux += -T LDFLAGS_vmlinux += -T
OBJS += lib1funcs.o ashldi3.o bswapsdi2.o
# We need to prevent any GOTOFF relocs being used with references # We need to prevent any GOTOFF relocs being used with references
# to symbols in the .bss section since we cannot relocate them # to symbols in the .bss section since we cannot relocate them
# independently from the rest at run time. This can be achieved by # independently from the rest at run time. This can be achieved by
......
...@@ -1004,7 +1004,8 @@ static void __init reserve_crashkernel(void) ...@@ -1004,7 +1004,8 @@ static void __init reserve_crashkernel(void)
total_mem = get_total_mem(); total_mem = get_total_mem();
ret = parse_crashkernel(boot_command_line, total_mem, ret = parse_crashkernel(boot_command_line, total_mem,
&crash_size, &crash_base); &crash_size, &crash_base);
if (ret) /* invalid value specified or crashkernel=0 */
if (ret || !crash_size)
return; return;
if (crash_base <= 0) { if (crash_base <= 0) {
......
...@@ -54,17 +54,17 @@ int notrace unwind_frame(struct stackframe *frame) ...@@ -54,17 +54,17 @@ int notrace unwind_frame(struct stackframe *frame)
return -EINVAL; return -EINVAL;
frame->sp = frame->fp; frame->sp = frame->fp;
frame->fp = *(unsigned long *)(fp); frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp));
frame->pc = *(unsigned long *)(fp + 4); frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 4));
#else #else
/* check current frame pointer is within bounds */ /* check current frame pointer is within bounds */
if (fp < low + 12 || fp > high - 4) if (fp < low + 12 || fp > high - 4)
return -EINVAL; return -EINVAL;
/* restore the registers from the stack frame */ /* restore the registers from the stack frame */
frame->fp = *(unsigned long *)(fp - 12); frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 12));
frame->sp = *(unsigned long *)(fp - 8); frame->sp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 8));
frame->pc = *(unsigned long *)(fp - 4); frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 4));
#endif #endif
#ifdef CONFIG_KRETPROBES #ifdef CONFIG_KRETPROBES
if (is_kretprobe_trampoline(frame->pc)) if (is_kretprobe_trampoline(frame->pc))
......
...@@ -236,11 +236,11 @@ static int __init jive_mtdset(char *options) ...@@ -236,11 +236,11 @@ static int __init jive_mtdset(char *options)
unsigned long set; unsigned long set;
if (options == NULL || options[0] == '\0') if (options == NULL || options[0] == '\0')
return 0; return 1;
if (kstrtoul(options, 10, &set)) { if (kstrtoul(options, 10, &set)) {
printk(KERN_ERR "failed to parse mtdset=%s\n", options); printk(KERN_ERR "failed to parse mtdset=%s\n", options);
return 0; return 1;
} }
switch (set) { switch (set) {
...@@ -256,7 +256,7 @@ static int __init jive_mtdset(char *options) ...@@ -256,7 +256,7 @@ static int __init jive_mtdset(char *options)
"using default.", set); "using default.", set);
} }
return 0; return 1;
} }
/* parse the mtdset= option given to the kernel command line */ /* parse the mtdset= option given to the kernel command line */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment