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
This commit is contained in:
@@ -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
|
|||||||
# 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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
"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 */
|
||||||
|
Reference in New Issue
Block a user