aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>2021-04-07 01:03:48 +0200
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>2021-04-07 16:11:05 +0200
commit7cba4128c2c6e9c67a819c5946ed8066c7306418 (patch)
tree11e5272b5613722a28e5f08e4d490599e0e089c7
parentMIPS: ralink: rt288x: select MIPS_AUTO_PFN_OFFSET (diff)
downloadlinux-dev-7cba4128c2c6e9c67a819c5946ed8066c7306418.tar.xz
linux-dev-7cba4128c2c6e9c67a819c5946ed8066c7306418.zip
MIPS: Fix new sparse warnings
Commit 45deb5faeb9e ("MIPS: uaccess: Remove get_fs/set_fs call sites") caused a few new sparse warnings, fix them. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
-rw-r--r--arch/mips/kernel/access-helper.h7
-rw-r--r--arch/mips/kernel/unaligned.c6
2 files changed, 7 insertions, 6 deletions
diff --git a/arch/mips/kernel/access-helper.h b/arch/mips/kernel/access-helper.h
index dd5b502813b8..590388031503 100644
--- a/arch/mips/kernel/access-helper.h
+++ b/arch/mips/kernel/access-helper.h
@@ -4,15 +4,16 @@
static inline int __get_addr(unsigned long *a, unsigned long *p, bool user)
{
- return user ? get_user(*a, p) : get_kernel_nofault(*a, p);
+ return user ? get_user(*a, (unsigned long __user *)p) :
+ get_kernel_nofault(*a, p);
}
static inline int __get_inst16(u16 *i, u16 *p, bool user)
{
- return user ? get_user(*i, p) : get_kernel_nofault(*i, p);
+ return user ? get_user(*i, (u16 __user *)p) : get_kernel_nofault(*i, p);
}
static inline int __get_inst32(u32 *i, u32 *p, bool user)
{
- return user ? get_user(*i, p) : get_kernel_nofault(*i, p);
+ return user ? get_user(*i, (u32 __user *)p) : get_kernel_nofault(*i, p);
}
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index 1f3b20a8c377..df4b708c04a9 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -109,7 +109,7 @@ static u32 unaligned_action;
extern void show_registers(struct pt_regs *regs);
static void emulate_load_store_insn(struct pt_regs *regs,
- void __user *addr, unsigned int __user *pc)
+ void __user *addr, unsigned int *pc)
{
unsigned long origpc, orig31, value;
union mips_instruction insn;
@@ -1475,7 +1475,7 @@ sigill:
asmlinkage void do_ade(struct pt_regs *regs)
{
enum ctx_state prev_state;
- unsigned int __user *pc;
+ unsigned int *pc;
prev_state = exception_enter();
perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS,
@@ -1526,7 +1526,7 @@ asmlinkage void do_ade(struct pt_regs *regs)
if (unaligned_action == UNALIGNED_ACTION_SHOW)
show_registers(regs);
- pc = (unsigned int __user *)exception_epc(regs);
+ pc = (unsigned int *)exception_epc(regs);
emulate_load_store_insn(regs, (void __user *)regs->cp0_badvaddr, pc);