Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
0430f2f2
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0430f2f2
编写于
12月 23, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
xtensa: switch to generic sigaltstack
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
0aa0203f
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
4 addition
and
18 deletion
+4
-18
arch/xtensa/Kconfig
arch/xtensa/Kconfig
+1
-0
arch/xtensa/include/asm/syscall.h
arch/xtensa/include/asm/syscall.h
+0
-1
arch/xtensa/include/uapi/asm/unistd.h
arch/xtensa/include/uapi/asm/unistd.h
+1
-1
arch/xtensa/kernel/signal.c
arch/xtensa/kernel/signal.c
+2
-16
未找到文件。
arch/xtensa/Kconfig
浏览文件 @
0430f2f2
...
@@ -16,6 +16,7 @@ config XTENSA
...
@@ -16,6 +16,7 @@ config XTENSA
select ARCH_WANT_OPTIONAL_GPIOLIB
select ARCH_WANT_OPTIONAL_GPIOLIB
select CLONE_BACKWARDS
select CLONE_BACKWARDS
select IRQ_DOMAIN
select IRQ_DOMAIN
select GENERIC_SIGALTSTACK
help
help
Xtensa processors are 32-bit RISC machines designed by Tensilica
Xtensa processors are 32-bit RISC machines designed by Tensilica
primarily for embedded systems. These processors are both
primarily for embedded systems. These processors are both
...
...
arch/xtensa/include/asm/syscall.h
浏览文件 @
0430f2f2
...
@@ -12,7 +12,6 @@ struct pt_regs;
...
@@ -12,7 +12,6 @@ struct pt_regs;
asmlinkage
long
xtensa_ptrace
(
long
,
long
,
long
,
long
);
asmlinkage
long
xtensa_ptrace
(
long
,
long
,
long
,
long
);
asmlinkage
long
xtensa_sigreturn
(
struct
pt_regs
*
);
asmlinkage
long
xtensa_sigreturn
(
struct
pt_regs
*
);
asmlinkage
long
xtensa_rt_sigreturn
(
struct
pt_regs
*
);
asmlinkage
long
xtensa_rt_sigreturn
(
struct
pt_regs
*
);
asmlinkage
long
xtensa_sigaltstack
(
struct
pt_regs
*
regs
);
asmlinkage
long
xtensa_shmat
(
int
,
char
__user
*
,
int
);
asmlinkage
long
xtensa_shmat
(
int
,
char
__user
*
,
int
);
asmlinkage
long
xtensa_fadvise64_64
(
int
,
int
,
asmlinkage
long
xtensa_fadvise64_64
(
int
,
int
,
unsigned
long
long
,
unsigned
long
long
);
unsigned
long
long
,
unsigned
long
long
);
...
...
arch/xtensa/include/uapi/asm/unistd.h
浏览文件 @
0430f2f2
...
@@ -483,7 +483,7 @@ __SYSCALL(222, sys_ni_syscall, 0)
...
@@ -483,7 +483,7 @@ __SYSCALL(222, sys_ni_syscall, 0)
#define __NR_restart_syscall 223
#define __NR_restart_syscall 223
__SYSCALL
(
223
,
sys_restart_syscall
,
0
)
__SYSCALL
(
223
,
sys_restart_syscall
,
0
)
#define __NR_sigaltstack 224
#define __NR_sigaltstack 224
__SYSCALL
(
224
,
xtensa
_sigaltstack
,
2
)
__SYSCALL
(
224
,
sys
_sigaltstack
,
2
)
#define __NR_rt_sigreturn 225
#define __NR_rt_sigreturn 225
__SYSCALL
(
225
,
xtensa_rt_sigreturn
,
1
)
__SYSCALL
(
225
,
xtensa_rt_sigreturn
,
1
)
#define __NR_rt_sigaction 226
#define __NR_rt_sigaction 226
...
...
arch/xtensa/kernel/signal.c
浏览文件 @
0430f2f2
...
@@ -265,7 +265,7 @@ asmlinkage long xtensa_rt_sigreturn(long a0, long a1, long a2, long a3,
...
@@ -265,7 +265,7 @@ asmlinkage long xtensa_rt_sigreturn(long a0, long a1, long a2, long a3,
ret
=
regs
->
areg
[
2
];
ret
=
regs
->
areg
[
2
];
if
(
do_sigaltstack
(
&
frame
->
uc
.
uc_stack
,
NULL
,
regs
->
areg
[
1
])
==
-
EFAULT
)
if
(
restore_altstack
(
&
frame
->
uc
.
uc_stack
)
)
goto
badframe
;
goto
badframe
;
return
ret
;
return
ret
;
...
@@ -368,11 +368,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
...
@@ -368,11 +368,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
err
|=
__put_user
(
0
,
&
frame
->
uc
.
uc_flags
);
err
|=
__put_user
(
0
,
&
frame
->
uc
.
uc_flags
);
err
|=
__put_user
(
0
,
&
frame
->
uc
.
uc_link
);
err
|=
__put_user
(
0
,
&
frame
->
uc
.
uc_link
);
err
|=
__put_user
((
void
*
)
current
->
sas_ss_sp
,
err
|=
__save_altstack
(
&
frame
->
uc
.
uc_stack
,
regs
->
areg
[
1
]);
&
frame
->
uc
.
uc_stack
.
ss_sp
);
err
|=
__put_user
(
sas_ss_flags
(
regs
->
areg
[
1
]),
&
frame
->
uc
.
uc_stack
.
ss_flags
);
err
|=
__put_user
(
current
->
sas_ss_size
,
&
frame
->
uc
.
uc_stack
.
ss_size
);
err
|=
setup_sigcontext
(
frame
,
regs
);
err
|=
setup_sigcontext
(
frame
,
regs
);
err
|=
__copy_to_user
(
&
frame
->
uc
.
uc_sigmask
,
set
,
sizeof
(
*
set
));
err
|=
__copy_to_user
(
&
frame
->
uc
.
uc_sigmask
,
set
,
sizeof
(
*
set
));
...
@@ -424,16 +420,6 @@ static int setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
...
@@ -424,16 +420,6 @@ static int setup_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
return
-
EFAULT
;
return
-
EFAULT
;
}
}
asmlinkage
long
xtensa_sigaltstack
(
const
stack_t
__user
*
uss
,
stack_t
__user
*
uoss
,
long
a2
,
long
a3
,
long
a4
,
long
a5
,
struct
pt_regs
*
regs
)
{
return
do_sigaltstack
(
uss
,
uoss
,
regs
->
areg
[
1
]);
}
/*
/*
* Note that 'init' is a special process: it doesn't get signals it doesn't
* Note that 'init' is a special process: it doesn't get signals it doesn't
* want to handle. Thus you cannot kill init even with a SIGKILL even by
* want to handle. Thus you cannot kill init even with a SIGKILL even by
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录