Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
b2d9d334
Commit
b2d9d334
authored
Jul 30, 2008
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'x86/fpu' into x86/core
parents
d25ae38b
6ffac1e9
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
4 deletions
+18
-4
arch/x86/kernel/signal_64.c
arch/x86/kernel/signal_64.c
+10
-1
arch/x86/kernel/traps_64.c
arch/x86/kernel/traps_64.c
+8
-1
include/asm-x86/i387.h
include/asm-x86/i387.h
+0
-2
No files found.
arch/x86/kernel/signal_64.c
View file @
b2d9d334
...
@@ -104,7 +104,16 @@ static inline int restore_i387(struct _fpstate __user *buf)
...
@@ -104,7 +104,16 @@ static inline int restore_i387(struct _fpstate __user *buf)
clts
();
clts
();
task_thread_info
(
current
)
->
status
|=
TS_USEDFPU
;
task_thread_info
(
current
)
->
status
|=
TS_USEDFPU
;
}
}
return
restore_fpu_checking
((
__force
struct
i387_fxsave_struct
*
)
buf
);
err
=
restore_fpu_checking
((
__force
struct
i387_fxsave_struct
*
)
buf
);
if
(
unlikely
(
err
))
{
/*
* Encountered an error while doing the restore from the
* user buffer, clear the fpu state.
*/
clear_fpu
(
tsk
);
clear_used_math
();
}
return
err
;
}
}
/*
/*
...
...
arch/x86/kernel/traps_64.c
View file @
b2d9d334
...
@@ -1131,7 +1131,14 @@ asmlinkage void math_state_restore(void)
...
@@ -1131,7 +1131,14 @@ asmlinkage void math_state_restore(void)
}
}
clts
();
/* Allow maths ops (or we recurse) */
clts
();
/* Allow maths ops (or we recurse) */
restore_fpu_checking
(
&
me
->
thread
.
xstate
->
fxsave
);
/*
* Paranoid restore. send a SIGSEGV if we fail to restore the state.
*/
if
(
unlikely
(
restore_fpu_checking
(
&
me
->
thread
.
xstate
->
fxsave
)))
{
stts
();
force_sig
(
SIGSEGV
,
me
);
return
;
}
task_thread_info
(
me
)
->
status
|=
TS_USEDFPU
;
task_thread_info
(
me
)
->
status
|=
TS_USEDFPU
;
me
->
fpu_counter
++
;
me
->
fpu_counter
++
;
}
}
...
...
include/asm-x86/i387.h
View file @
b2d9d334
...
@@ -62,8 +62,6 @@ static inline int restore_fpu_checking(struct i387_fxsave_struct *fx)
...
@@ -62,8 +62,6 @@ static inline int restore_fpu_checking(struct i387_fxsave_struct *fx)
#else
#else
:
[
fx
]
"cdaSDb"
(
fx
),
"m"
(
*
fx
),
"0"
(
0
));
:
[
fx
]
"cdaSDb"
(
fx
),
"m"
(
*
fx
),
"0"
(
0
));
#endif
#endif
if
(
unlikely
(
err
))
init_fpu
(
current
);
return
err
;
return
err
;
}
}
...
...
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