Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
30073566
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
30073566
编写于
7月 31, 2017
作者:
E
Eric W. Biederman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
signal/ia64: switch the last arch-specific copy_siginfo_to_user() to generic version
Signed-off-by:
N
"Eric W. Biederman"
<
ebiederm@xmission.com
>
上级
2eb50e2e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
58 deletion
+5
-58
arch/ia64/include/uapi/asm/siginfo.h
arch/ia64/include/uapi/asm/siginfo.h
+0
-2
arch/ia64/kernel/signal.c
arch/ia64/kernel/signal.c
+0
-52
kernel/signal.c
kernel/signal.c
+5
-4
未找到文件。
arch/ia64/include/uapi/asm/siginfo.h
浏览文件 @
30073566
...
@@ -11,8 +11,6 @@
...
@@ -11,8 +11,6 @@
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
#define HAVE_ARCH_COPY_SIGINFO_TO_USER
#include <asm-generic/siginfo.h>
#include <asm-generic/siginfo.h>
#define si_imm _sifields._sigfault._imm
/* as per UNIX SysV ABI spec */
#define si_imm _sifields._sigfault._imm
/* as per UNIX SysV ABI spec */
...
...
arch/ia64/kernel/signal.c
浏览文件 @
30073566
...
@@ -105,58 +105,6 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
...
@@ -105,58 +105,6 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr)
return
err
;
return
err
;
}
}
int
copy_siginfo_to_user
(
siginfo_t
__user
*
to
,
const
siginfo_t
*
from
)
{
if
(
!
access_ok
(
VERIFY_WRITE
,
to
,
sizeof
(
siginfo_t
)))
return
-
EFAULT
;
if
(
from
->
si_code
<
0
)
{
if
(
__copy_to_user
(
to
,
from
,
sizeof
(
siginfo_t
)))
return
-
EFAULT
;
return
0
;
}
else
{
int
err
;
/*
* If you change siginfo_t structure, please be sure this code is fixed
* accordingly. It should never copy any pad contained in the structure
* to avoid security leaks, but must copy the generic 3 ints plus the
* relevant union member.
*/
err
=
__put_user
(
from
->
si_signo
,
&
to
->
si_signo
);
err
|=
__put_user
(
from
->
si_errno
,
&
to
->
si_errno
);
err
|=
__put_user
(
from
->
si_code
,
&
to
->
si_code
);
switch
(
siginfo_layout
(
from
->
si_signo
,
from
->
si_code
))
{
case
SIL_FAULT
:
err
|=
__put_user
(
from
->
si_flags
,
&
to
->
si_flags
);
err
|=
__put_user
(
from
->
si_isr
,
&
to
->
si_isr
);
case
SIL_POLL
:
err
|=
__put_user
(
from
->
si_addr
,
&
to
->
si_addr
);
err
|=
__put_user
(
from
->
si_imm
,
&
to
->
si_imm
);
break
;
case
SIL_TIMER
:
err
|=
__put_user
(
from
->
si_tid
,
&
to
->
si_tid
);
err
|=
__put_user
(
from
->
si_overrun
,
&
to
->
si_overrun
);
err
|=
__put_user
(
from
->
si_ptr
,
&
to
->
si_ptr
);
break
;
case
SIL_RT
:
err
|=
__put_user
(
from
->
si_uid
,
&
to
->
si_uid
);
err
|=
__put_user
(
from
->
si_pid
,
&
to
->
si_pid
);
err
|=
__put_user
(
from
->
si_ptr
,
&
to
->
si_ptr
);
break
;
case
SIL_CHLD
:
err
|=
__put_user
(
from
->
si_utime
,
&
to
->
si_utime
);
err
|=
__put_user
(
from
->
si_stime
,
&
to
->
si_stime
);
err
|=
__put_user
(
from
->
si_status
,
&
to
->
si_status
);
case
SIL_KILL
:
err
|=
__put_user
(
from
->
si_uid
,
&
to
->
si_uid
);
err
|=
__put_user
(
from
->
si_pid
,
&
to
->
si_pid
);
break
;
}
return
err
;
}
}
long
long
ia64_rt_sigreturn
(
struct
sigscratch
*
scr
)
ia64_rt_sigreturn
(
struct
sigscratch
*
scr
)
{
{
...
...
kernel/signal.c
浏览文件 @
30073566
...
@@ -2729,8 +2729,6 @@ enum siginfo_layout siginfo_layout(int sig, int si_code)
...
@@ -2729,8 +2729,6 @@ enum siginfo_layout siginfo_layout(int sig, int si_code)
return
layout
;
return
layout
;
}
}
#ifndef HAVE_ARCH_COPY_SIGINFO_TO_USER
int
copy_siginfo_to_user
(
siginfo_t
__user
*
to
,
const
siginfo_t
*
from
)
int
copy_siginfo_to_user
(
siginfo_t
__user
*
to
,
const
siginfo_t
*
from
)
{
{
int
err
;
int
err
;
...
@@ -2769,6 +2767,11 @@ int copy_siginfo_to_user(siginfo_t __user *to, const siginfo_t *from)
...
@@ -2769,6 +2767,11 @@ int copy_siginfo_to_user(siginfo_t __user *to, const siginfo_t *from)
#ifdef __ARCH_SI_TRAPNO
#ifdef __ARCH_SI_TRAPNO
err
|=
__put_user
(
from
->
si_trapno
,
&
to
->
si_trapno
);
err
|=
__put_user
(
from
->
si_trapno
,
&
to
->
si_trapno
);
#endif
#endif
#ifdef __ia64__
err
|=
__put_user
(
from
->
si_imm
,
&
to
->
si_imm
);
err
|=
__put_user
(
from
->
si_flags
,
&
to
->
si_flags
);
err
|=
__put_user
(
from
->
si_isr
,
&
to
->
si_isr
);
#endif
#ifdef BUS_MCEERR_AO
#ifdef BUS_MCEERR_AO
/*
/*
* Other callers might not initialize the si_lsb field,
* Other callers might not initialize the si_lsb field,
...
@@ -2812,8 +2815,6 @@ int copy_siginfo_to_user(siginfo_t __user *to, const siginfo_t *from)
...
@@ -2812,8 +2815,6 @@ int copy_siginfo_to_user(siginfo_t __user *to, const siginfo_t *from)
return
err
;
return
err
;
}
}
#endif
/**
/**
* do_sigtimedwait - wait for queued signals specified in @which
* do_sigtimedwait - wait for queued signals specified in @which
* @which: queued signals to wait for
* @which: queued signals to wait for
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录