Commit 454859c5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ARC fixlets from Vineet Gupta:
 "A few straggler fixes for ARC"

* tag 'arc-5.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
  ARC: treewide: avoid the pointer addition with NULL pointer
  arc: kernel: Return -EFAULT if copy_to_user() fails
  ARC: haps: bump memory to 1 GB
parents 3a229812 83520d62
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@
	memory {
		device_type = "memory";
		/* CONFIG_LINUX_RAM_BASE needs to match low mem start */
		reg = <0x0 0x80000000 0x0 0x20000000	/* 512 MB low mem */
		reg = <0x0 0x80000000 0x0 0x40000000	/* 1 GB low mem */
		       0x1 0x00000000 0x0 0x40000000>;	/* 1 GB highmem */
	};

+2 −2
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
			     sizeof(sf->uc.uc_mcontext.regs.scratch));
	err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));

	return err;
	return err ? -EFAULT : 0;
}

static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
@@ -110,7 +110,7 @@ static int restore_usr_regs(struct pt_regs *regs, struct rt_sigframe __user *sf)
				&(sf->uc.uc_mcontext.regs.scratch),
				sizeof(sf->uc.uc_mcontext.regs.scratch));
	if (err)
		return err;
		return -EFAULT;

	set_current_blocked(&set);
	regs->bta	= uregs.scratch.bta;
+14 −13
Original line number Diff line number Diff line
@@ -187,25 +187,26 @@ static void init_unwind_table(struct unwind_table *table, const char *name,
			      const void *table_start, unsigned long table_size,
			      const u8 *header_start, unsigned long header_size)
{
	const u8 *ptr = header_start + 4;
	const u8 *end = header_start + header_size;

	table->core.pc = (unsigned long)core_start;
	table->core.range = core_size;
	table->init.pc = (unsigned long)init_start;
	table->init.range = init_size;
	table->address = table_start;
	table->size = table_size;

	/* To avoid the pointer addition with NULL pointer.*/
	if (header_start != NULL) {
		const u8 *ptr = header_start + 4;
		const u8 *end = header_start + header_size;
		/* See if the linker provided table looks valid. */
		if (header_size <= 4
		|| header_start[0] != 1
	    || (void *)read_pointer(&ptr, end, header_start[1]) != table_start
		|| (void *)read_pointer(&ptr, end, header_start[1])
				!= table_start
		|| header_start[2] == DW_EH_PE_omit
		|| read_pointer(&ptr, end, header_start[2]) <= 0
		|| header_start[3] == DW_EH_PE_omit)
			header_start = NULL;

	}
	table->hdrsz = header_size;
	smp_wmb();
	table->header = header_start;