Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
R
R128
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Ermine
R128
Commits
dd02f06a
Commit
dd02f06a
authored
18 years ago
by
Ralf Baechle
Browse files
Options
Downloads
Patches
Plain Diff
[MIPS] signal: Fix warnings in o32 compat code.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
af3d10d5
Loading
Loading
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
arch/mips/kernel/signal32.c
+23
-3
23 additions, 3 deletions
arch/mips/kernel/signal32.c
with
23 additions
and
3 deletions
arch/mips/kernel/signal32.c
+
23
−
3
View file @
dd02f06a
...
...
@@ -139,8 +139,20 @@ struct ucontext32 {
sigset_t32
uc_sigmask
;
/* mask last for extensibility */
};
/*
* Horribly complicated - with the bloody RM9000 workarounds enabled
* the signal trampolines is moving to the end of the structure so we can
* increase the alignment without breaking software compatibility.
*/
#if ICACHE_REFILLS_WORKAROUND_WAR == 0
struct
sigframe32
{
u32
sf_ass
[
4
];
/* argument save space for o32 */
u32
sf_code
[
2
];
/* signal trampoline */
struct
sigcontext32
sf_sc
;
sigset_t
sf_mask
;
};
struct
rt_sigframe32
{
u32
rs_ass
[
4
];
/* argument save space for o32 */
u32
rs_code
[
2
];
/* signal trampoline */
...
...
@@ -150,6 +162,14 @@ struct rt_sigframe32 {
#else
/* ICACHE_REFILLS_WORKAROUND_WAR */
struct
sigframe32
{
u32
sf_ass
[
4
];
/* argument save space for o32 */
u32
sf_pad
[
2
];
struct
sigcontext32
sf_sc
;
/* hw context */
sigset_t
sf_mask
;
u32
sf_code
[
8
]
____cacheline_aligned
;
/* signal trampoline */
};
struct
rt_sigframe32
{
u32
rs_ass
[
4
];
/* argument save space for o32 */
u32
rs_pad
[
2
];
...
...
@@ -493,10 +513,10 @@ int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from)
asmlinkage
void
sys32_sigreturn
(
nabi_no_regargs
struct
pt_regs
regs
)
{
struct
sigframe
__user
*
frame
;
struct
sigframe
32
__user
*
frame
;
sigset_t
blocked
;
frame
=
(
struct
sigframe
__user
*
)
regs
.
regs
[
29
];
frame
=
(
struct
sigframe
32
__user
*
)
regs
.
regs
[
29
];
if
(
!
access_ok
(
VERIFY_READ
,
frame
,
sizeof
(
*
frame
)))
goto
badframe
;
if
(
__copy_from_user
(
&
blocked
,
&
frame
->
sf_mask
,
sizeof
(
blocked
)))
...
...
@@ -581,7 +601,7 @@ asmlinkage void sys32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
int
setup_frame_32
(
struct
k_sigaction
*
ka
,
struct
pt_regs
*
regs
,
int
signr
,
sigset_t
*
set
)
{
struct
sigframe
__user
*
frame
;
struct
sigframe
32
__user
*
frame
;
int
err
=
0
;
frame
=
get_sigframe
(
ka
,
regs
,
sizeof
(
*
frame
));
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment