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

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
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -92,6 +92,8 @@ ifeq ($(CONFIG_USE_OF),y)
OBJS	+= $(libfdt_objs) fdt_check_mem_start.o
endif

OBJS	+= lib1funcs.o ashldi3.o bswapsdi2.o

targets       := vmlinux vmlinux.lds piggy_data piggy.o \
		 head.o $(OBJS)

@@ -126,8 +128,6 @@ endif
# Next argument is a linker script
LDFLAGS_vmlinux += -T

OBJS	+= lib1funcs.o ashldi3.o bswapsdi2.o

# We need to prevent any GOTOFF relocs being used with references
# to symbols in the .bss section since we cannot relocate them
# independently from the rest at run time.  This can be achieved by
+2 −1
Original line number Diff line number Diff line
@@ -1004,7 +1004,8 @@ static void __init reserve_crashkernel(void)
	total_mem = get_total_mem();
	ret = parse_crashkernel(boot_command_line, total_mem,
				&crash_size, &crash_base);
	if (ret)
	/* invalid value specified or crashkernel=0 */
	if (ret || !crash_size)
		return;

	if (crash_base <= 0) {
+5 −5
Original line number Diff line number Diff line
@@ -54,17 +54,17 @@ int notrace unwind_frame(struct stackframe *frame)
		return -EINVAL;

	frame->sp = frame->fp;
	frame->fp = *(unsigned long *)(fp);
	frame->pc = *(unsigned long *)(fp + 4);
	frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp));
	frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 4));
#else
	/* check current frame pointer is within bounds */
	if (fp < low + 12 || fp > high - 4)
		return -EINVAL;

	/* restore the registers from the stack frame */
	frame->fp = *(unsigned long *)(fp - 12);
	frame->sp = *(unsigned long *)(fp - 8);
	frame->pc = *(unsigned long *)(fp - 4);
	frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 12));
	frame->sp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 8));
	frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 4));
#endif
#ifdef CONFIG_KRETPROBES
	if (is_kretprobe_trampoline(frame->pc))
+3 −3
Original line number Diff line number Diff line
@@ -236,11 +236,11 @@ static int __init jive_mtdset(char *options)
	unsigned long set;

	if (options == NULL || options[0] == '\0')
		return 0;
		return 1;

	if (kstrtoul(options, 10, &set)) {
		printk(KERN_ERR "failed to parse mtdset=%s\n", options);
		return 0;
		return 1;
	}

	switch (set) {
@@ -256,7 +256,7 @@ static int __init jive_mtdset(char *options)
		       "using default.", set);
	}

	return 0;
	return 1;
}

/* parse the mtdset= option given to the kernel command line */