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
7614948a
Commit
7614948a
authored
Apr 17, 2003
by
Alan Cox
Committed by
Linus Torvalds
Apr 17, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] generalise traps and nmi
parent
abb2ed85
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
9 deletions
+10
-9
arch/i386/kernel/traps.c
arch/i386/kernel/traps.c
+10
-9
No files found.
arch/i386/kernel/traps.c
View file @
7614948a
...
@@ -51,6 +51,8 @@
...
@@ -51,6 +51,8 @@
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/module.h>
#include <linux/module.h>
#include "mach_traps.h"
asmlinkage
int
system_call
(
void
);
asmlinkage
int
system_call
(
void
);
asmlinkage
void
lcall7
(
void
);
asmlinkage
void
lcall7
(
void
);
asmlinkage
void
lcall27
(
void
);
asmlinkage
void
lcall27
(
void
);
...
@@ -58,6 +60,9 @@ asmlinkage void lcall27(void);
...
@@ -58,6 +60,9 @@ asmlinkage void lcall27(void);
struct
desc_struct
default_ldt
[]
=
{
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
struct
desc_struct
default_ldt
[]
=
{
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
},
{
0
,
0
}
};
{
0
,
0
},
{
0
,
0
}
};
/* Do we ignore FPU interrupts ? */
char
ignore_fpu_irq
=
0
;
/*
/*
* The IDT has to be page-aligned to simplify the Pentium
* The IDT has to be page-aligned to simplify the Pentium
* F0 0F bug workaround.. We have a special link segment
* F0 0F bug workaround.. We have a special link segment
...
@@ -393,8 +398,7 @@ static void mem_parity_error(unsigned char reason, struct pt_regs * regs)
...
@@ -393,8 +398,7 @@ static void mem_parity_error(unsigned char reason, struct pt_regs * regs)
printk
(
"You probably have a hardware problem with your RAM chips
\n
"
);
printk
(
"You probably have a hardware problem with your RAM chips
\n
"
);
/* Clear and disable the memory parity error line. */
/* Clear and disable the memory parity error line. */
reason
=
(
reason
&
0xf
)
|
4
;
clear_mem_error
(
reason
);
outb
(
reason
,
0x61
);
}
}
static
void
io_check_error
(
unsigned
char
reason
,
struct
pt_regs
*
regs
)
static
void
io_check_error
(
unsigned
char
reason
,
struct
pt_regs
*
regs
)
...
@@ -431,7 +435,7 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
...
@@ -431,7 +435,7 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
static
void
default_do_nmi
(
struct
pt_regs
*
regs
)
static
void
default_do_nmi
(
struct
pt_regs
*
regs
)
{
{
unsigned
char
reason
=
inb
(
0x61
);
unsigned
char
reason
=
get_nmi_reason
(
);
if
(
!
(
reason
&
0xc0
))
{
if
(
!
(
reason
&
0xc0
))
{
#if CONFIG_X86_LOCAL_APIC
#if CONFIG_X86_LOCAL_APIC
...
@@ -455,10 +459,7 @@ static void default_do_nmi(struct pt_regs * regs)
...
@@ -455,10 +459,7 @@ static void default_do_nmi(struct pt_regs * regs)
* Reassert NMI in case it became active meanwhile
* Reassert NMI in case it became active meanwhile
* as it's edge-triggered.
* as it's edge-triggered.
*/
*/
outb
(
0x8f
,
0x70
);
reassert_nmi
();
inb
(
0x71
);
/* dummy */
outb
(
0x0f
,
0x70
);
inb
(
0x71
);
/* dummy */
}
}
static
int
dummy_nmi_callback
(
struct
pt_regs
*
regs
,
int
cpu
)
static
int
dummy_nmi_callback
(
struct
pt_regs
*
regs
,
int
cpu
)
...
@@ -652,7 +653,7 @@ void math_error(void *eip)
...
@@ -652,7 +653,7 @@ void math_error(void *eip)
asmlinkage
void
do_coprocessor_error
(
struct
pt_regs
*
regs
,
long
error_code
)
asmlinkage
void
do_coprocessor_error
(
struct
pt_regs
*
regs
,
long
error_code
)
{
{
ignore_
irq13
=
1
;
ignore_
fpu_irq
=
1
;
math_error
((
void
*
)
regs
->
eip
);
math_error
((
void
*
)
regs
->
eip
);
}
}
...
@@ -709,7 +710,7 @@ asmlinkage void do_simd_coprocessor_error(struct pt_regs * regs,
...
@@ -709,7 +710,7 @@ asmlinkage void do_simd_coprocessor_error(struct pt_regs * regs,
{
{
if
(
cpu_has_xmm
)
{
if
(
cpu_has_xmm
)
{
/* Handle SIMD FPU exceptions on PIII+ processors. */
/* Handle SIMD FPU exceptions on PIII+ processors. */
ignore_
irq13
=
1
;
ignore_
fpu_irq
=
1
;
simd_math_error
((
void
*
)
regs
->
eip
);
simd_math_error
((
void
*
)
regs
->
eip
);
}
else
{
}
else
{
/*
/*
...
...
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