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
6fd84c08
Commit
6fd84c08
authored
May 23, 2012
by
Al Viro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set
Signed-off-by:
Al Viro
<
viro@zeniv.linux.org.uk
>
parent
bf343dfd
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
14 additions
and
19 deletions
+14
-19
arch/avr32/kernel/entry-avr32b.S
arch/avr32/kernel/entry-avr32b.S
+2
-2
arch/avr32/kernel/signal.c
arch/avr32/kernel/signal.c
+1
-1
arch/blackfin/kernel/signal.c
arch/blackfin/kernel/signal.c
+1
-1
arch/blackfin/mach-common/entry.S
arch/blackfin/mach-common/entry.S
+0
-2
arch/c6x/kernel/signal.c
arch/c6x/kernel/signal.c
+1
-2
arch/frv/kernel/signal.c
arch/frv/kernel/signal.c
+1
-1
arch/mips/kernel/signal.c
arch/mips/kernel/signal.c
+1
-1
arch/mn10300/kernel/signal.c
arch/mn10300/kernel/signal.c
+1
-1
arch/parisc/include/asm/thread_info.h
arch/parisc/include/asm/thread_info.h
+1
-1
arch/parisc/kernel/entry.S
arch/parisc/kernel/entry.S
+2
-2
arch/parisc/kernel/signal.c
arch/parisc/kernel/signal.c
+1
-2
arch/sparc/include/asm/thread_info_32.h
arch/sparc/include/asm/thread_info_32.h
+1
-2
arch/sparc/kernel/signal_32.c
arch/sparc/kernel/signal_32.c
+1
-1
No files found.
arch/avr32/kernel/entry-avr32b.S
View file @
6fd84c08
...
...
@@ -281,7 +281,7 @@ syscall_exit_work:
ld.w
r1
,
r0
[
TI_flags
]
rjmp
1
b
2
:
mov
r2
,
_TIF_SIGPENDING
| _TIF_
RESTORE_SIGMASK |
_TIF_
NOTIFY_RESUME
2
:
mov
r2
,
_TIF_SIGPENDING
|
_TIF_NOTIFY_RESUME
tst
r1
,
r2
breq
3
f
unmask_interrupts
...
...
@@ -587,7 +587,7 @@ fault_exit_work:
ld.w
r1
,
r0
[
TI_flags
]
rjmp
fault_exit_work
1
:
mov
r2
,
_TIF_SIGPENDING
| _TIF_
RESTORE_SIGMASK |
_TIF_
NOTIFY_RESUME
1
:
mov
r2
,
_TIF_SIGPENDING
|
_TIF_NOTIFY_RESUME
tst
r1
,
r2
breq
2
f
unmask_interrupts
...
...
arch/avr32/kernel/signal.c
View file @
6fd84c08
...
...
@@ -303,7 +303,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, struct thread_info *ti)
if
((
sysreg_read
(
SR
)
&
MODE_MASK
)
==
MODE_SUPERVISOR
)
syscall
=
1
;
if
(
ti
->
flags
&
(
_TIF_SIGPENDING
|
_TIF_RESTORE_SIGMASK
))
if
(
ti
->
flags
&
_TIF_SIGPENDING
))
do_signal
(
regs
,
syscall
);
if
(
ti
->
flags
&
_TIF_NOTIFY_RESUME
)
{
...
...
arch/blackfin/kernel/signal.c
View file @
6fd84c08
...
...
@@ -307,7 +307,7 @@ asmlinkage void do_signal(struct pt_regs *regs)
*/
asmlinkage
void
do_notify_resume
(
struct
pt_regs
*
regs
)
{
if
(
test_thread_flag
(
TIF_SIGPENDING
)
||
test_thread_flag
(
TIF_RESTORE_SIGMASK
)
)
if
(
test_thread_flag
(
TIF_SIGPENDING
))
do_signal
(
regs
);
if
(
test_thread_flag
(
TIF_NOTIFY_RESUME
))
{
...
...
arch/blackfin/mach-common/entry.S
View file @
6fd84c08
...
...
@@ -711,8 +711,6 @@ ENTRY(_system_call)
jump
.
Lresume_userspace_1
;
.
Lsyscall_sigpending
:
cc
=
BITTST
(
r7
,
TIF_RESTORE_SIGMASK
)
;
if
cc
jump
.
Lsyscall_do_signals
;
cc
=
BITTST
(
r7
,
TIF_SIGPENDING
)
;
if
cc
jump
.
Lsyscall_do_signals
;
cc
=
BITTST
(
r7
,
TIF_NOTIFY_RESUME
)
;
...
...
arch/c6x/kernel/signal.c
View file @
6fd84c08
...
...
@@ -335,8 +335,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags,
int
syscall
)
{
/* deal with pending signal delivery */
if
(
thread_info_flags
&
((
1
<<
TIF_SIGPENDING
)
|
(
1
<<
TIF_RESTORE_SIGMASK
)))
if
(
thread_info_flags
&
(
1
<<
TIF_SIGPENDING
))
do_signal
(
regs
,
syscall
);
if
(
thread_info_flags
&
(
1
<<
TIF_NOTIFY_RESUME
))
{
...
...
arch/frv/kernel/signal.c
View file @
6fd84c08
...
...
@@ -533,7 +533,7 @@ asmlinkage void do_notify_resume(__u32 thread_info_flags)
clear_thread_flag
(
TIF_SINGLESTEP
);
/* deal with pending signal delivery */
if
(
thread_info_flags
&
(
_TIF_SIGPENDING
|
_TIF_RESTORE_SIGMASK
))
if
(
thread_info_flags
&
_TIF_SIGPENDING
))
do_signal
();
/* deal with notification on about to resume userspace execution */
...
...
arch/mips/kernel/signal.c
View file @
6fd84c08
...
...
@@ -610,7 +610,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused,
local_irq_enable
();
/* deal with pending signal delivery */
if
(
thread_info_flags
&
(
_TIF_SIGPENDING
|
_TIF_RESTORE_SIGMASK
)
)
if
(
thread_info_flags
&
_TIF_SIGPENDING
)
do_signal
(
regs
);
if
(
thread_info_flags
&
_TIF_NOTIFY_RESUME
)
{
...
...
arch/mn10300/kernel/signal.c
View file @
6fd84c08
...
...
@@ -532,7 +532,7 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags)
}
/* deal with pending signal delivery */
if
(
thread_info_flags
&
(
_TIF_SIGPENDING
|
_TIF_RESTORE_SIGMASK
)
)
if
(
thread_info_flags
&
_TIF_SIGPENDING
)
do_signal
(
regs
);
if
(
thread_info_flags
&
_TIF_NOTIFY_RESUME
)
{
...
...
arch/parisc/include/asm/thread_info.h
View file @
6fd84c08
...
...
@@ -74,7 +74,7 @@ struct thread_info {
#define _TIF_BLOCKSTEP (1 << TIF_BLOCKSTEP)
#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \
_TIF_NEED_RESCHED
| _TIF_RESTORE_SIGMASK
)
_TIF_NEED_RESCHED)
#endif
/* __KERNEL__ */
...
...
arch/parisc/kernel/entry.S
View file @
6fd84c08
...
...
@@ -924,7 +924,7 @@ intr_check_sig:
/
*
As
above
*/
mfctl
%
cr30
,%
r1
LDREG
TI_FLAGS
(%
r1
),%
r19
ldi
(
_TIF_SIGPENDING|_TIF_
RESTORE_SIGMASK|_TIF_
NOTIFY_RESUME
),
%
r20
ldi
(
_TIF_SIGPENDING
|
_TIF_NOTIFY_RESUME
),
%
r20
and
,
COND
(<>)
%
r19
,
%
r20
,
%
r0
b
,
n
intr_restore
/*
skip
past
if
we
've nothing to do */
...
...
@@ -2032,7 +2032,7 @@ syscall_check_resched:
.
import
do_signal
,
code
syscall_check_sig
:
LDREG
TI_FLAGS
-
THREAD_SZ_ALGN
-
FRAME_SIZE
(%
r30
),%
r19
ldi
(
_TIF_SIGPENDING|_TIF_
RESTORE_SIGMASK|_TIF_
NOTIFY_RESUME
),
%
r26
ldi
(
_TIF_SIGPENDING
|
_TIF_NOTIFY_RESUME
),
%
r26
and
,
COND
(<>)
%
r19
,
%
r26
,
%
r0
b
,
n
syscall_restore
/*
skip
past
if
we
've nothing to do */
...
...
arch/parisc/kernel/signal.c
View file @
6fd84c08
...
...
@@ -613,8 +613,7 @@ do_signal(struct pt_regs *regs, long in_syscall)
void
do_notify_resume
(
struct
pt_regs
*
regs
,
long
in_syscall
)
{
if
(
test_thread_flag
(
TIF_SIGPENDING
)
||
test_thread_flag
(
TIF_RESTORE_SIGMASK
))
if
(
test_thread_flag
(
TIF_SIGPENDING
))
do_signal
(
regs
,
in_syscall
);
if
(
test_thread_flag
(
TIF_NOTIFY_RESUME
))
{
...
...
arch/sparc/include/asm/thread_info_32.h
View file @
6fd84c08
...
...
@@ -131,8 +131,7 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
#define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | \
_TIF_SIGPENDING | \
_TIF_RESTORE_SIGMASK)
_TIF_SIGPENDING)
#endif
/* __KERNEL__ */
...
...
arch/sparc/kernel/signal_32.c
View file @
6fd84c08
...
...
@@ -567,7 +567,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0)
void
do_notify_resume
(
struct
pt_regs
*
regs
,
unsigned
long
orig_i0
,
unsigned
long
thread_info_flags
)
{
if
(
thread_info_flags
&
(
_TIF_SIGPENDING
|
_TIF_RESTORE_SIGMASK
)
)
if
(
thread_info_flags
&
_TIF_SIGPENDING
)
do_signal
(
regs
,
orig_i0
);
if
(
thread_info_flags
&
_TIF_NOTIFY_RESUME
)
{
clear_thread_flag
(
TIF_NOTIFY_RESUME
);
...
...
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