@@ -261,11 +261,12 @@ asmlinkage int sys32_sigaction(int sig, const struct sigaction32 *act,
|
|||||||
|
|
||||||
if (act) {
|
if (act) {
|
||||||
old_sigset_t mask;
|
old_sigset_t mask;
|
||||||
|
s32 handler;
|
||||||
|
|
||||||
if (!access_ok(VERIFY_READ, act, sizeof(*act)))
|
if (!access_ok(VERIFY_READ, act, sizeof(*act)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
err |= __get_user((u32)(u64)new_ka.sa.sa_handler,
|
err |= __get_user(handler, &act->sa_handler);
|
||||||
&act->sa_handler);
|
new_ka.sa.sa_handler = (void*)(s64)handler;
|
||||||
err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
|
err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
|
||||||
err |= __get_user(mask, &act->sa_mask.sig[0]);
|
err |= __get_user(mask, &act->sa_mask.sig[0]);
|
||||||
if (err)
|
if (err)
|
||||||
@@ -826,12 +827,13 @@ asmlinkage int sys32_rt_sigaction(int sig, const struct sigaction32 *act,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (act) {
|
if (act) {
|
||||||
|
s32 handler;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
if (!access_ok(VERIFY_READ, act, sizeof(*act)))
|
if (!access_ok(VERIFY_READ, act, sizeof(*act)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
err |= __get_user((u32)(u64)new_sa.sa.sa_handler,
|
err |= __get_user(handler, &act->sa_handler);
|
||||||
&act->sa_handler);
|
new_sa.sa.sa_handler = (void*)(s64)handler;
|
||||||
err |= __get_user(new_sa.sa.sa_flags, &act->sa_flags);
|
err |= __get_user(new_sa.sa.sa_flags, &act->sa_flags);
|
||||||
err |= get_sigset(&new_sa.sa.sa_mask, &act->sa_mask);
|
err |= get_sigset(&new_sa.sa.sa_mask, &act->sa_mask);
|
||||||
if (err)
|
if (err)
|
||||||
|
@@ -235,7 +235,7 @@ static inline void __sb1_flush_icache_range(unsigned long start,
|
|||||||
/*
|
/*
|
||||||
* Invalidate all caches on this CPU
|
* Invalidate all caches on this CPU
|
||||||
*/
|
*/
|
||||||
static void local_sb1___flush_cache_all(void)
|
static void __attribute_used__ local_sb1___flush_cache_all(void)
|
||||||
{
|
{
|
||||||
__sb1_writeback_inv_dcache_all();
|
__sb1_writeback_inv_dcache_all();
|
||||||
__sb1_flush_icache_all();
|
__sb1_flush_icache_all();
|
||||||
|
@@ -52,7 +52,7 @@ struct __large_pstruct { unsigned long buf[100]; };
|
|||||||
})
|
})
|
||||||
|
|
||||||
#define __get_dbe_asm(insn) \
|
#define __get_dbe_asm(insn) \
|
||||||
({ \
|
{ \
|
||||||
__asm__ __volatile__( \
|
__asm__ __volatile__( \
|
||||||
"1:\t" insn "\t%1,%2\n\t" \
|
"1:\t" insn "\t%1,%2\n\t" \
|
||||||
"move\t%0,$0\n" \
|
"move\t%0,$0\n" \
|
||||||
@@ -67,7 +67,7 @@ struct __large_pstruct { unsigned long buf[100]; };
|
|||||||
".previous" \
|
".previous" \
|
||||||
:"=r" (__gu_err), "=r" (__gu_val) \
|
:"=r" (__gu_err), "=r" (__gu_val) \
|
||||||
:"o" (__mp(__gu_addr)), "i" (-EFAULT)); \
|
:"o" (__mp(__gu_addr)), "i" (-EFAULT)); \
|
||||||
})
|
}
|
||||||
|
|
||||||
extern void __get_dbe_unknown(void);
|
extern void __get_dbe_unknown(void);
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ extern void __get_dbe_unknown(void);
|
|||||||
})
|
})
|
||||||
|
|
||||||
#define __put_dbe_asm(insn) \
|
#define __put_dbe_asm(insn) \
|
||||||
({ \
|
{ \
|
||||||
__asm__ __volatile__( \
|
__asm__ __volatile__( \
|
||||||
"1:\t" insn "\t%1,%2\n\t" \
|
"1:\t" insn "\t%1,%2\n\t" \
|
||||||
"move\t%0,$0\n" \
|
"move\t%0,$0\n" \
|
||||||
@@ -104,7 +104,7 @@ extern void __get_dbe_unknown(void);
|
|||||||
".previous" \
|
".previous" \
|
||||||
: "=r" (__pu_err) \
|
: "=r" (__pu_err) \
|
||||||
: "r" (__pu_val), "o" (__mp(__pu_addr)), "i" (-EFAULT)); \
|
: "r" (__pu_val), "o" (__mp(__pu_addr)), "i" (-EFAULT)); \
|
||||||
})
|
}
|
||||||
|
|
||||||
extern void __put_dbe_unknown(void);
|
extern void __put_dbe_unknown(void);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user