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
5eef51c3
Commit
5eef51c3
authored
Feb 13, 2003
by
David Woodhouse
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] Restore SYSENTER setup on swsusp resume.
parent
3bedbd4b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
1 deletion
+9
-1
arch/i386/kernel/suspend.c
arch/i386/kernel/suspend.c
+8
-0
arch/i386/kernel/sysenter.c
arch/i386/kernel/sysenter.c
+1
-1
No files found.
arch/i386/kernel/suspend.c
View file @
5eef51c3
...
@@ -32,6 +32,8 @@ unsigned long saved_context_eax, saved_context_ebx, saved_context_ecx, saved_con
...
@@ -32,6 +32,8 @@ unsigned long saved_context_eax, saved_context_ebx, saved_context_ecx, saved_con
unsigned
long
saved_context_esp
,
saved_context_ebp
,
saved_context_esi
,
saved_context_edi
;
unsigned
long
saved_context_esp
,
saved_context_ebp
,
saved_context_esi
,
saved_context_edi
;
unsigned
long
saved_context_eflags
;
unsigned
long
saved_context_eflags
;
extern
void
enable_sep_cpu
(
void
*
);
void
save_processor_state
(
void
)
void
save_processor_state
(
void
)
{
{
kernel_fpu_begin
();
kernel_fpu_begin
();
...
@@ -96,6 +98,12 @@ void restore_processor_state(void)
...
@@ -96,6 +98,12 @@ void restore_processor_state(void)
asm
volatile
(
"lidt %0"
::
"m"
(
saved_context
.
idt_limit
));
asm
volatile
(
"lidt %0"
::
"m"
(
saved_context
.
idt_limit
));
asm
volatile
(
"lldt %0"
::
"m"
(
saved_context
.
ldt
));
asm
volatile
(
"lldt %0"
::
"m"
(
saved_context
.
ldt
));
/*
* sysenter MSRs
*/
if
(
boot_cpu_has
(
X86_FEATURE_SEP
))
enable_sep_cpu
(
NULL
);
fix_processor_context
();
fix_processor_context
();
do_fpu_end
();
do_fpu_end
();
}
}
...
...
arch/i386/kernel/sysenter.c
View file @
5eef51c3
...
@@ -35,7 +35,7 @@ struct fake_sep_struct {
...
@@ -35,7 +35,7 @@ struct fake_sep_struct {
unsigned
char
stack
[
0
];
unsigned
char
stack
[
0
];
}
__attribute__
((
aligned
(
8192
)));
}
__attribute__
((
aligned
(
8192
)));
static
void
__init
enable_sep_cpu
(
void
*
info
)
void
enable_sep_cpu
(
void
*
info
)
{
{
int
cpu
=
get_cpu
();
int
cpu
=
get_cpu
();
struct
tss_struct
*
tss
=
init_tss
+
cpu
;
struct
tss_struct
*
tss
=
init_tss
+
cpu
;
...
...
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