diff --git a/Input-xpad-use-proper-endpoint-type.patch b/Input-xpad-use-proper-endpoint-type.patch deleted file mode 100644 index ef3e606..0000000 --- a/Input-xpad-use-proper-endpoint-type.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Greg Kroah-Hartman -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" -Signed-off-by: Greg Kroah-Hartman -Cc: stable -Signed-off-by: Dmitry Torokhov ---- - 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 - diff --git a/drm-i915-Ignore-long-hpds-on-eDP-ports.patch b/drm-i915-Ignore-long-hpds-on-eDP-ports.patch deleted file mode 100644 index 43378cd..0000000 --- a/drm-i915-Ignore-long-hpds-on-eDP-ports.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= -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ä -Cc: stable@vger.kernel.org -Reviewed-by: Dave Airlie -Reviewed-by: Todd Previte -Signed-off-by: Jani Nikula ---- - 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 - diff --git a/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch b/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch deleted file mode 100644 index 1874c29..0000000 --- a/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Alex Deucher -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 ---- - 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 - diff --git a/kernel.spec b/kernel.spec index 91150b6..6895dca 100644 --- a/kernel.spec +++ b/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 - 3.17.6-300 +- Linux v3.17.6 + * Fri Dec 05 2014 Kyle McMartin - 3.17.4-303 - arm64-fix-xgene_enet_process_ring.patch: fix a panic under load. diff --git a/sources b/sources index 4a1c18f..84792c7 100644 --- a/sources +++ b/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 diff --git a/usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch b/usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch deleted file mode 100644 index e590df2..0000000 --- a/usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Hans de Goede -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 ---- - 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 - diff --git a/x86_64-traps-Stop-using-IST-for-SS.patch b/x86_64-traps-Stop-using-IST-for-SS.patch deleted file mode 100644 index d48d7fd..0000000 --- a/x86_64-traps-Stop-using-IST-for-SS.patch +++ /dev/null @@ -1,145 +0,0 @@ -From: Andy Lutomirski -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 -Reviewed-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Signed-off-by: Linus Torvalds ---- - 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 -