mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 04:10:18 +09:00
Merge tag 'arc-5.12-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc
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
This commit is contained in:
@@ -16,7 +16,7 @@
|
|||||||
memory {
|
memory {
|
||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
/* CONFIG_LINUX_RAM_BASE needs to match low mem start */
|
/* 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 */
|
0x1 0x00000000 0x0 0x40000000>; /* 1 GB highmem */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ stash_usr_regs(struct rt_sigframe __user *sf, struct pt_regs *regs,
|
|||||||
sizeof(sf->uc.uc_mcontext.regs.scratch));
|
sizeof(sf->uc.uc_mcontext.regs.scratch));
|
||||||
err |= __copy_to_user(&sf->uc.uc_sigmask, set, sizeof(sigset_t));
|
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)
|
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),
|
&(sf->uc.uc_mcontext.regs.scratch),
|
||||||
sizeof(sf->uc.uc_mcontext.regs.scratch));
|
sizeof(sf->uc.uc_mcontext.regs.scratch));
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return -EFAULT;
|
||||||
|
|
||||||
set_current_blocked(&set);
|
set_current_blocked(&set);
|
||||||
regs->bta = uregs.scratch.bta;
|
regs->bta = uregs.scratch.bta;
|
||||||
|
|||||||
@@ -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 void *table_start, unsigned long table_size,
|
||||||
const u8 *header_start, unsigned long header_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.pc = (unsigned long)core_start;
|
||||||
table->core.range = core_size;
|
table->core.range = core_size;
|
||||||
table->init.pc = (unsigned long)init_start;
|
table->init.pc = (unsigned long)init_start;
|
||||||
table->init.range = init_size;
|
table->init.range = init_size;
|
||||||
table->address = table_start;
|
table->address = table_start;
|
||||||
table->size = table_size;
|
table->size = table_size;
|
||||||
|
/* To avoid the pointer addition with NULL pointer.*/
|
||||||
/* See if the linker provided table looks valid. */
|
if (header_start != NULL) {
|
||||||
if (header_size <= 4
|
const u8 *ptr = header_start + 4;
|
||||||
|| header_start[0] != 1
|
const u8 *end = header_start + header_size;
|
||||||
|| (void *)read_pointer(&ptr, end, header_start[1]) != table_start
|
/* See if the linker provided table looks valid. */
|
||||||
|| header_start[2] == DW_EH_PE_omit
|
if (header_size <= 4
|
||||||
|| read_pointer(&ptr, end, header_start[2]) <= 0
|
|| header_start[0] != 1
|
||||||
|| header_start[3] == DW_EH_PE_omit)
|
|| (void *)read_pointer(&ptr, end, header_start[1])
|
||||||
header_start = NULL;
|
!= 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;
|
table->hdrsz = header_size;
|
||||||
smp_wmb();
|
smp_wmb();
|
||||||
table->header = header_start;
|
table->header = header_start;
|
||||||
|
|||||||
Reference in New Issue
Block a user