mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
102 lines
3.5 KiB
Diff
102 lines
3.5 KiB
Diff
|
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
|
||
|
index ef17af0..4376b45 100644
|
||
|
--- a/arch/x86/include/asm/page_32_types.h
|
||
|
+++ b/arch/x86/include/asm/page_32_types.h
|
||
|
@@ -18,7 +18,6 @@
|
||
|
#define THREAD_SIZE_ORDER 1
|
||
|
#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
|
||
|
|
||
|
-#define STACKFAULT_STACK 0
|
||
|
#define DOUBLEFAULT_STACK 1
|
||
|
#define NMI_STACK 0
|
||
|
#define DEBUG_STACK 0
|
||
|
diff --git a/arch/x86/include/asm/page_64_types.h b/arch/x86/include/asm/page_64_types.h
|
||
|
index 6c896fb..970f309 100644
|
||
|
--- a/arch/x86/include/asm/page_64_types.h
|
||
|
+++ b/arch/x86/include/asm/page_64_types.h
|
||
|
@@ -14,12 +14,11 @@
|
||
|
#define IRQ_STACK_ORDER 2
|
||
|
#define IRQ_STACK_SIZE (PAGE_SIZE << IRQ_STACK_ORDER)
|
||
|
|
||
|
-#define STACKFAULT_STACK 1
|
||
|
-#define DOUBLEFAULT_STACK 2
|
||
|
-#define NMI_STACK 3
|
||
|
-#define DEBUG_STACK 4
|
||
|
-#define MCE_STACK 5
|
||
|
-#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */
|
||
|
+#define DOUBLEFAULT_STACK 1
|
||
|
+#define NMI_STACK 2
|
||
|
+#define DEBUG_STACK 3
|
||
|
+#define MCE_STACK 4
|
||
|
+#define N_EXCEPTION_STACKS 4 /* hw limit: 7 */
|
||
|
|
||
|
#define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT)
|
||
|
#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1))
|
||
|
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
|
||
|
index addb207..66e274a 100644
|
||
|
--- a/arch/x86/kernel/dumpstack_64.c
|
||
|
+++ b/arch/x86/kernel/dumpstack_64.c
|
||
|
@@ -24,7 +24,6 @@
|
||
|
[ DEBUG_STACK-1 ] = "#DB",
|
||
|
[ NMI_STACK-1 ] = "NMI",
|
||
|
[ DOUBLEFAULT_STACK-1 ] = "#DF",
|
||
|
- [ STACKFAULT_STACK-1 ] = "#SS",
|
||
|
[ MCE_STACK-1 ] = "#MC",
|
||
|
#if DEBUG_STKSZ > EXCEPTION_STKSZ
|
||
|
[ N_EXCEPTION_STACKS ...
|
||
|
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
|
||
|
index 1a454d0..50e5e59 100644
|
||
|
--- a/arch/x86/kernel/entry_64.S
|
||
|
+++ b/arch/x86/kernel/entry_64.S
|
||
|
@@ -1503,7 +1503,7 @@
|
||
|
|
||
|
paranoidzeroentry_ist debug do_debug DEBUG_STACK
|
||
|
paranoidzeroentry_ist int3 do_int3 DEBUG_STACK
|
||
|
-paranoiderrorentry stack_segment do_stack_segment
|
||
|
+errorentry stack_segment do_stack_segment
|
||
|
#ifdef CONFIG_XEN
|
||
|
zeroentry xen_debug do_debug
|
||
|
zeroentry xen_int3 do_int3
|
||
|
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
|
||
|
index 74e0801..00a2873 100644
|
||
|
--- a/arch/x86/kernel/traps.c
|
||
|
+++ b/arch/x86/kernel/traps.c
|
||
|
@@ -220,28 +220,12 @@
|
||
|
coprocessor_segment_overrun)
|
||
|
DO_ERROR(X86_TRAP_TS, SIGSEGV, "invalid TSS", invalid_TSS)
|
||
|
DO_ERROR(X86_TRAP_NP, SIGBUS, "segment not present", segment_not_present)
|
||
|
-#ifdef CONFIG_X86_32
|
||
|
DO_ERROR(X86_TRAP_SS, SIGBUS, "stack segment", stack_segment)
|
||
|
-#endif
|
||
|
DO_ERROR_INFO(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check,
|
||
|
BUS_ADRALN, 0)
|
||
|
|
||
|
#ifdef CONFIG_X86_64
|
||
|
/* Runs on IST stack */
|
||
|
-dotraplinkage void do_stack_segment(struct pt_regs *regs, long error_code)
|
||
|
-{
|
||
|
- enum ctx_state prev_state;
|
||
|
-
|
||
|
- prev_state = exception_enter();
|
||
|
- if (notify_die(DIE_TRAP, "stack segment", regs, error_code,
|
||
|
- X86_TRAP_SS, SIGBUS) != NOTIFY_STOP) {
|
||
|
- preempt_conditional_sti(regs);
|
||
|
- do_trap(X86_TRAP_SS, SIGBUS, "stack segment", regs, error_code, NULL);
|
||
|
- preempt_conditional_cli(regs);
|
||
|
- }
|
||
|
- exception_exit(prev_state);
|
||
|
-}
|
||
|
-
|
||
|
dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
|
||
|
{
|
||
|
static const char str[] = "double fault";
|
||
|
@@ -769,7 +753,7 @@
|
||
|
set_intr_gate(X86_TRAP_OLD_MF, &coprocessor_segment_overrun);
|
||
|
set_intr_gate(X86_TRAP_TS, &invalid_TSS);
|
||
|
set_intr_gate(X86_TRAP_NP, &segment_not_present);
|
||
|
- set_intr_gate_ist(X86_TRAP_SS, &stack_segment, STACKFAULT_STACK);
|
||
|
+ set_intr_gate(X86_TRAP_SS, stack_segment);
|
||
|
set_intr_gate(X86_TRAP_GP, &general_protection);
|
||
|
set_intr_gate(X86_TRAP_SPURIOUS, &spurious_interrupt_bug);
|
||
|
set_intr_gate(X86_TRAP_MF, &coprocessor_error);
|