Linux v3.17.6
This commit is contained in:
parent
b0ed76415f
commit
b7b3386f9a
|
@ -1,49 +0,0 @@
|
|||
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Date: Tue, 25 Nov 2014 00:38:17 -0800
|
||||
Subject: [PATCH] Input: xpad - use proper endpoint type
|
||||
|
||||
The xpad wireless endpoint is not a bulk endpoint on my devices, but
|
||||
rather an interrupt one, so the USB core complains when it is submitted.
|
||||
I'm guessing that the author really did mean that this should be an
|
||||
interrupt urb, but as there are a zillion different xpad devices out
|
||||
there, let's cover out bases and handle both bulk and interrupt
|
||||
endpoints just as easily.
|
||||
|
||||
Signed-off-by: "Pierre-Loup A. Griffais" <pgriffais@valvesoftware.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
drivers/input/joystick/xpad.c | 16 +++++++++++++---
|
||||
1 file changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
|
||||
index 177602cf7079..e65d9c0241a9 100644
|
||||
--- a/drivers/input/joystick/xpad.c
|
||||
+++ b/drivers/input/joystick/xpad.c
|
||||
@@ -1143,9 +1143,19 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
|
||||
}
|
||||
|
||||
ep_irq_in = &intf->cur_altsetting->endpoint[1].desc;
|
||||
- usb_fill_bulk_urb(xpad->bulk_out, udev,
|
||||
- usb_sndbulkpipe(udev, ep_irq_in->bEndpointAddress),
|
||||
- xpad->bdata, XPAD_PKT_LEN, xpad_bulk_out, xpad);
|
||||
+ if (usb_endpoint_is_bulk_out(ep_irq_in)) {
|
||||
+ usb_fill_bulk_urb(xpad->bulk_out, udev,
|
||||
+ usb_sndbulkpipe(udev,
|
||||
+ ep_irq_in->bEndpointAddress),
|
||||
+ xpad->bdata, XPAD_PKT_LEN,
|
||||
+ xpad_bulk_out, xpad);
|
||||
+ } else {
|
||||
+ usb_fill_int_urb(xpad->bulk_out, udev,
|
||||
+ usb_sndintpipe(udev,
|
||||
+ ep_irq_in->bEndpointAddress),
|
||||
+ xpad->bdata, XPAD_PKT_LEN,
|
||||
+ xpad_bulk_out, xpad, 0);
|
||||
+ }
|
||||
|
||||
/*
|
||||
* Submit the int URB immediately rather than waiting for open
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
|
||||
Date: Fri, 28 Nov 2014 06:52:01 +1000
|
||||
Subject: [PATCH] drm/i915: Ignore long hpds on eDP ports
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Turning vdd on/off can generate a long hpd pulse on eDP ports. In order
|
||||
to handle hpd we would need to turn on vdd to perform aux transfers.
|
||||
This would lead to an endless cycle of
|
||||
"vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..."
|
||||
|
||||
So ignore long hpd pulses on eDP ports. eDP panels should be physically
|
||||
tied to the machine anyway so they should not actually disappear and
|
||||
thus don't need long hpd handling. Short hpds are still needed for link
|
||||
re-train and whatnot so we can't just turn off the hpd interrupt
|
||||
entirely for eDP ports. Perhaps we could turn it off whenever the panel
|
||||
is disabled, but just ignoring the long hpd seems sufficient.
|
||||
|
||||
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Reviewed-by: Dave Airlie <airlied@redhat.com>
|
||||
Reviewed-by: Todd Previte <tprevite@gmail.com>
|
||||
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
||||
---
|
||||
drivers/gpu/drm/i915/intel_dp.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
||||
index cff7f2e04de2..a6fb06cc6cf0 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_dp.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
||||
@@ -4082,6 +4082,18 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
|
||||
if (intel_dig_port->base.type != INTEL_OUTPUT_EDP)
|
||||
intel_dig_port->base.type = INTEL_OUTPUT_DISPLAYPORT;
|
||||
|
||||
+ if (long_hpd && intel_dig_port->base.type == INTEL_OUTPUT_EDP) {
|
||||
+ /*
|
||||
+ * vdd off can generate a long pulse on eDP which
|
||||
+ * would require vdd on to handle it, and thus we
|
||||
+ * would end up in an endless cycle of
|
||||
+ * "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..."
|
||||
+ */
|
||||
+ DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n",
|
||||
+ port_name(intel_dig_port->port));
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
DRM_DEBUG_KMS("got hpd irq on port %d - %s\n", intel_dig_port->port,
|
||||
long_hpd ? "long" : "short");
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
From: Alex Deucher <alexander.deucher@amd.com>
|
||||
Date: Mon, 13 Oct 2014 13:23:48 -0400
|
||||
Subject: [PATCH] drm/radeon: initialize sadb to NULL in the audio code
|
||||
|
||||
Fixes kfree of the sadb buffer when it's NULL.
|
||||
|
||||
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
|
||||
---
|
||||
drivers/gpu/drm/radeon/dce3_1_afmt.c | 2 +-
|
||||
drivers/gpu/drm/radeon/dce6_afmt.c | 2 +-
|
||||
drivers/gpu/drm/radeon/evergreen_hdmi.c | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/radeon/dce3_1_afmt.c b/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
index 71f4d26669cd..13a27d971d35 100644
|
||||
--- a/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
+++ b/drivers/gpu/drm/radeon/dce3_1_afmt.c
|
||||
@@ -32,7 +32,7 @@ static void dce3_2_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
|
||||
diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c b/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
index 790d8cafdb87..88dd17955db3 100644
|
||||
--- a/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
+++ b/drivers/gpu/drm/radeon/dce6_afmt.c
|
||||
@@ -155,7 +155,7 @@ void dce6_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 offset, tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
if (!dig || !dig->afmt || !dig->afmt->pin)
|
||||
diff --git a/drivers/gpu/drm/radeon/evergreen_hdmi.c b/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
index 71ebdf89fd76..993978051ede 100644
|
||||
--- a/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
+++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c
|
||||
@@ -102,7 +102,7 @@ static void dce4_afmt_write_speaker_allocation(struct drm_encoder *encoder)
|
||||
struct drm_connector *connector;
|
||||
struct radeon_connector *radeon_connector = NULL;
|
||||
u32 tmp;
|
||||
- u8 *sadb;
|
||||
+ u8 *sadb = NULL;
|
||||
int sad_count;
|
||||
|
||||
list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
|
||||
--
|
||||
1.9.3
|
||||
|
35
kernel.spec
35
kernel.spec
|
@ -42,7 +42,7 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 302
|
||||
%global baserelease 300
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
|
@ -54,7 +54,7 @@ Summary: The Linux kernel
|
|||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 4
|
||||
%define stable_update 6
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
@ -621,20 +621,6 @@ Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
|||
#rhbz 1135338
|
||||
Patch26090: HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
|
||||
|
||||
#rhbz 1165206
|
||||
Patch26071: usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch
|
||||
|
||||
#rhbz 1167511
|
||||
Patch26072: drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch
|
||||
|
||||
#rhbz 1094048
|
||||
Patch26073: Input-xpad-use-proper-endpoint-type.patch
|
||||
|
||||
Patch26074: drm-i915-Ignore-long-hpds-on-eDP-ports.patch
|
||||
|
||||
#CVE-2014-9090 rhbz 1170691
|
||||
Patch26075: x86_64-traps-Stop-using-IST-for-SS.patch
|
||||
|
||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||
Patch30000: kernel-arm64.patch
|
||||
|
||||
|
@ -1366,20 +1352,6 @@ ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
|||
#rhbz 1135338
|
||||
ApplyPatch HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
|
||||
|
||||
#rhbz 1165206
|
||||
ApplyPatch usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch
|
||||
|
||||
#rhbz 1167511
|
||||
ApplyPatch drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch
|
||||
|
||||
#rhbz 1094048
|
||||
ApplyPatch Input-xpad-use-proper-endpoint-type.patch
|
||||
|
||||
ApplyPatch drm-i915-Ignore-long-hpds-on-eDP-ports.patch
|
||||
|
||||
#CVE-2014-9090 rhbz 1170691
|
||||
ApplyPatch x86_64-traps-Stop-using-IST-for-SS.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||
|
@ -2254,6 +2226,9 @@ fi
|
|||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Dec 08 2014 Justin M. Forbes <jforbes@fedoraproject.org> - 3.17.6-300
|
||||
- Linux v3.17.6
|
||||
|
||||
* Fri Dec 05 2014 Kyle McMartin <kyle@fedoraproject.org> - 3.17.4-303
|
||||
- arm64-fix-xgene_enet_process_ring.patch: fix a panic under load.
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1,3 +1,3 @@
|
|||
fb30d0f29214d75cddd2faa94f73d5cf linux-3.17.tar.xz
|
||||
159e969cbc27201d8e2fa0f609dc722f perf-man-3.17.tar.gz
|
||||
df86f9de60a651ce3312af09729f7b1e patch-3.17.4.xz
|
||||
a249818fc3c167a067b1508d86855efa patch-3.17.6.xz
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 20 Nov 2014 15:16:01 +0100
|
||||
Subject: [PATCH] usb-quirks: Add reset-resume quirk for MS Wireless Laser
|
||||
Mouse 6000
|
||||
|
||||
This wireless mouse receiver needs a reset-resume quirk to properly come
|
||||
out of reset.
|
||||
|
||||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1165206
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/core/quirks.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
||||
index 39b4081b632d..96fafed92b76 100644
|
||||
--- a/drivers/usb/core/quirks.c
|
||||
+++ b/drivers/usb/core/quirks.c
|
||||
@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||
/* Creative SB Audigy 2 NX */
|
||||
{ USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
+ /* Microsoft Wireless Laser Mouse 6000 Receiver */
|
||||
+ { USB_DEVICE(0x045e, 0x00e1), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
+
|
||||
/* Microsoft LifeCam-VX700 v2.0 */
|
||||
{ USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
From: Andy Lutomirski <luto@amacapital.net>
|
||||
Date: Sat, 22 Nov 2014 18:00:32 -0800
|
||||
Subject: [PATCH] x86_64, traps: Stop using IST for #SS
|
||||
|
||||
On a 32-bit kernel, this has no effect, since there are no IST stacks.
|
||||
|
||||
On a 64-bit kernel, #SS can only happen in user code, on a failed iret
|
||||
to user space, a canonical violation on access via RSP or RBP, or a
|
||||
genuine stack segment violation in 32-bit kernel code. The first two
|
||||
cases don't need IST, and the latter two cases are unlikely fatal bugs,
|
||||
and promoting them to double faults would be fine.
|
||||
|
||||
This fixes a bug in which the espfix64 code mishandles a stack segment
|
||||
violation.
|
||||
|
||||
This saves 4k of memory per CPU and a tiny bit of code.
|
||||
|
||||
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
|
||||
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
arch/x86/include/asm/page_32_types.h | 1 -
|
||||
arch/x86/include/asm/page_64_types.h | 11 +++++------
|
||||
arch/x86/include/asm/traps.h | 1 +
|
||||
arch/x86/kernel/dumpstack_64.c | 1 -
|
||||
arch/x86/kernel/entry_64.S | 2 +-
|
||||
arch/x86/kernel/traps.c | 18 +-----------------
|
||||
6 files changed, 8 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
|
||||
index f48b17df4224..3a52ee0e726d 100644
|
||||
--- a/arch/x86/include/asm/page_32_types.h
|
||||
+++ b/arch/x86/include/asm/page_32_types.h
|
||||
@@ -20,7 +20,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 678205195ae1..75450b2c7be4 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/include/asm/traps.h b/arch/x86/include/asm/traps.h
|
||||
index bc8352e7010a..707adc6549d8 100644
|
||||
--- a/arch/x86/include/asm/traps.h
|
||||
+++ b/arch/x86/include/asm/traps.h
|
||||
@@ -39,6 +39,7 @@ asmlinkage void simd_coprocessor_error(void);
|
||||
|
||||
#ifdef CONFIG_TRACING
|
||||
asmlinkage void trace_page_fault(void);
|
||||
+#define trace_stack_segment stack_segment
|
||||
#define trace_divide_error divide_error
|
||||
#define trace_bounds bounds
|
||||
#define trace_invalid_op invalid_op
|
||||
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
|
||||
index 1abcb50b48ae..ff86f19b5758 100644
|
||||
--- a/arch/x86/kernel/dumpstack_64.c
|
||||
+++ b/arch/x86/kernel/dumpstack_64.c
|
||||
@@ -24,7 +24,6 @@ static char x86_stack_ids[][8] = {
|
||||
[ 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 2fac1343a90b..9d9dc31a6246 100644
|
||||
--- a/arch/x86/kernel/entry_64.S
|
||||
+++ b/arch/x86/kernel/entry_64.S
|
||||
@@ -1302,7 +1302,7 @@ apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
|
||||
|
||||
idtentry debug do_debug has_error_code=0 paranoid=1 shift_ist=DEBUG_STACK
|
||||
idtentry int3 do_int3 has_error_code=0 paranoid=1 shift_ist=DEBUG_STACK
|
||||
-idtentry stack_segment do_stack_segment has_error_code=1 paranoid=1
|
||||
+idtentry stack_segment do_stack_segment has_error_code=1
|
||||
#ifdef CONFIG_XEN
|
||||
idtentry xen_debug do_debug has_error_code=0
|
||||
idtentry xen_int3 do_int3 has_error_code=0
|
||||
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
|
||||
index 0d0e922fafc1..0eafe9ea2494 100644
|
||||
--- a/arch/x86/kernel/traps.c
|
||||
+++ b/arch/x86/kernel/traps.c
|
||||
@@ -233,27 +233,11 @@ DO_ERROR(X86_TRAP_UD, SIGILL, "invalid opcode", invalid_op)
|
||||
DO_ERROR(X86_TRAP_OLD_MF, SIGFPE, "coprocessor segment overrun",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(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check)
|
||||
|
||||
#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";
|
||||
@@ -778,7 +762,7 @@ void __init trap_init(void)
|
||||
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);
|
||||
--
|
||||
1.9.3
|
||||
|
Loading…
Reference in New Issue