Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
bb74564f
Commit
bb74564f
authored
Aug 26, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-rmk
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
67ec5da2
62f271f4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
8 deletions
+6
-8
arch/arm/kernel/signal.c
arch/arm/kernel/signal.c
+6
-8
No files found.
arch/arm/kernel/signal.c
View file @
bb74564f
...
...
@@ -573,12 +573,12 @@ static inline void restart_syscall(struct pt_regs *regs)
* OK, we're invoking a handler
*/
static
void
handle_signal
(
unsigned
long
sig
,
siginfo_t
*
info
,
sigset_t
*
oldset
,
handle_signal
(
unsigned
long
sig
,
struct
k_sigaction
*
ka
,
siginfo_t
*
info
,
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
int
syscall
)
{
struct
thread_info
*
thread
=
current_thread_info
();
struct
task_struct
*
tsk
=
current
;
struct
k_sigaction
*
ka
=
&
tsk
->
sighand
->
action
[
sig
-
1
];
int
usig
=
sig
;
int
ret
;
...
...
@@ -633,11 +633,8 @@ handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,
spin_unlock_irq
(
&
tsk
->
sighand
->
siglock
);
}
if
(
ret
==
0
)
{
if
(
ka
->
sa
.
sa_flags
&
SA_ONESHOT
)
ka
->
sa
.
sa_handler
=
SIG_DFL
;
if
(
ret
==
0
)
return
;
}
force_sigsegv
(
sig
,
tsk
);
}
...
...
@@ -653,6 +650,7 @@ handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,
*/
static
int
do_signal
(
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
int
syscall
)
{
struct
k_sigaction
ka
;
siginfo_t
info
;
int
signr
;
...
...
@@ -673,9 +671,9 @@ static int do_signal(sigset_t *oldset, struct pt_regs *regs, int syscall)
if
(
current
->
ptrace
&
PT_SINGLESTEP
)
ptrace_cancel_bpt
(
current
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
signr
=
get_signal_to_deliver
(
&
info
,
&
ka
,
regs
,
NULL
);
if
(
signr
>
0
)
{
handle_signal
(
signr
,
&
info
,
oldset
,
regs
,
syscall
);
handle_signal
(
signr
,
&
ka
,
&
info
,
oldset
,
regs
,
syscall
);
if
(
current
->
ptrace
&
PT_SINGLESTEP
)
ptrace_set_bpt
(
current
);
return
1
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment