MIPS: Fix new sparse warnings
Commit 45deb5faeb
("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>
This commit is contained in:
parent
7f028bff8a
commit
7cba4128c2
@ -4,15 +4,16 @@
|
|||||||
|
|
||||||
static inline int __get_addr(unsigned long *a, unsigned long *p, bool user)
|
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)
|
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)
|
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);
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ static u32 unaligned_action;
|
|||||||
extern void show_registers(struct pt_regs *regs);
|
extern void show_registers(struct pt_regs *regs);
|
||||||
|
|
||||||
static void emulate_load_store_insn(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;
|
unsigned long origpc, orig31, value;
|
||||||
union mips_instruction insn;
|
union mips_instruction insn;
|
||||||
@ -1475,7 +1475,7 @@ sigill:
|
|||||||
asmlinkage void do_ade(struct pt_regs *regs)
|
asmlinkage void do_ade(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
enum ctx_state prev_state;
|
enum ctx_state prev_state;
|
||||||
unsigned int __user *pc;
|
unsigned int *pc;
|
||||||
|
|
||||||
prev_state = exception_enter();
|
prev_state = exception_enter();
|
||||||
perf_sw_event(PERF_COUNT_SW_ALIGNMENT_FAULTS,
|
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)
|
if (unaligned_action == UNALIGNED_ACTION_SHOW)
|
||||||
show_registers(regs);
|
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);
|
emulate_load_store_insn(regs, (void __user *)regs->cp0_badvaddr, pc);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user