Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-09-05 21:15:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2016-08-25 09:53:22.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2016-09-05 21:15:41.000000000 +0200 @@ -1,0 +2,18 @@ +Mon Aug 29 22:56:22 CEST 2016 - [email protected] + +- drm/i915: Fix S4 resume breakage + (bsc#984629,bsc#984632,bsc#993472). +- drm/i915: Add distinct stubs for PM hibernation phases + (bsc#984632,bsc#993472). +- x86 / hibernate: Use hlt_play_dead() when resuming from + hibernation (bsc#984629,bsc#993472). +- commit 1d73b85 + +------------------------------------------------------------------- +Tue Aug 23 10:09:14 CEST 2016 - [email protected] + +- tcp: fix use after free in tcp_xmit_retransmit_queue() + (CVE-2016-6828 bsc#994296). +- commit 73d7d3e + +------------------------------------------------------------------- @@ -8,0 +27,6 @@ +Sat Aug 20 15:15:08 CEST 2016 - [email protected] + +- rpm/old-flavors: Obsolte kernel-compute by kernel-rt (fate#320686) +- commit 964f3e2 + +------------------------------------------------------------------- @@ -16,0 +41,6 @@ +Tue Aug 16 16:11:36 CEST 2016 - [email protected] + +- rpm/kernel-source.spec.in: Unroll a loop with only a single iteration +- commit 601c09e + +------------------------------------------------------------------- @@ -85,0 +116,7 @@ + +------------------------------------------------------------------- +Wed Jul 27 11:30:33 CEST 2016 - [email protected] + +- group-source-files.pl: mark arch/*/scripts as devel + make[2]: /usr/src/linux-4.6.4-2/arch/powerpc/scripts/gcc-check-mprofile-kernel.sh: Command not found +- commit aa32770 kernel-default.changes: same change kernel-docs.changes: same change kernel-lpae.changes: same change kernel-obs-build.changes: same change kernel-obs-qa.changes: same change kernel-pae.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-vanilla.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -63,7 +63,7 @@ Group: System/Kernel Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif kernel-default.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -29,7 +29,7 @@ Group: Documentation/Man Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif ++++++ kernel-lpae.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -63,7 +63,7 @@ Group: System/Kernel Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -53,7 +53,7 @@ Group: SLES Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif kernel-obs-qa.spec: same change ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -63,7 +63,7 @@ Group: System/Kernel Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -32,7 +32,7 @@ Group: Development/Sources Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif @@ -228,11 +228,9 @@ $RPM_BUILD_ROOT/usr/lib/rpm/ %endif -for script in post; do - sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ +sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@SRCVARIANT@:%variant:g" \ - %_sourcedir/source-$script.sh > %name-$script.sh -done + %_sourcedir/source-post.sh > %name-post.sh pushd "%buildroot" perl "%_sourcedir/group-source-files.pl" \ ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -27,7 +27,7 @@ Version: 4.7.2 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -63,7 +63,7 @@ Group: System/Kernel Version: 4.7.2 %if 0%{?is_kotd} -Release: <RELEASE>.g34ba8d6 +Release: <RELEASE>.g8a962cf %else Release: 0 %endif ++++++ group-source-files.pl ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:46.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:46.000000000 +0200 @@ -39,6 +39,7 @@ m{^\Q$loc\E/arch/.*/module\.lds\b} || m{^\Q$loc\E/arch/arm/[^/]+/include/mach\b} || m{^\Q$loc\E/arch/arm/[^/]+/include/plat\b} || + m{^\Q$loc\E/arch/[^/]+/scripts\b} || m{^\Q$loc\E/include/[^/]+\b} || m{^\Q$loc\E/scripts\b}; if (substr($_, 0, 1) ne "/") { ++++++ kernel-source.spec.in ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:47.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:47.000000000 +0200 @@ -228,11 +228,9 @@ $RPM_BUILD_ROOT/usr/lib/rpm/ %endif -for script in post; do - sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ - -e "s:@SRCVARIANT@:%variant:g" \ - %_sourcedir/source-$script.sh > %name-$script.sh -done +sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ + -e "s:@SRCVARIANT@:%variant:g" \ + %_sourcedir/source-post.sh > %name-post.sh pushd "%buildroot" perl "%_sourcedir/group-source-files.pl" \ ++++++ old-flavors ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:47.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:47.000000000 +0200 @@ -39,7 +39,13 @@ i386/pae desktop 4.3 x86_64/default desktop 4.3 +# SLE 12 SP1 i386/pae xen 4.4 i386/pae ec2 4.4 x86_64/default xen 4.4 x86_64/default ec2 4.4 + +x86_64/rt compute 3.13 +x86_64/rt_debug compute_debug 3.13 + + ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-i915-Add-distinct-stubs-for-PM-hibernation-phase new/patches.fixes/drm-i915-Add-distinct-stubs-for-PM-hibernation-phase --- old/patches.fixes/drm-i915-Add-distinct-stubs-for-PM-hibernation-phase 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/drm-i915-Add-distinct-stubs-for-PM-hibernation-phase 2016-08-30 01:57:41.000000000 +0200 @@ -0,0 +1,90 @@ +From 1f19ac2a0b1ad8e2a9c382efa7416b014c988949 Mon Sep 17 00:00:00 2001 +From: Chris Wilson <[email protected]> +Date: Sat, 14 May 2016 07:26:32 +0100 +Subject: [PATCH] drm/i915: Add distinct stubs for PM hibernation phases +Git-commit: 1f19ac2a0b1ad8e2a9c382efa7416b014c988949 +Patch-mainline: 4.8-rc1 +References: bsc#984632,bsc#993472 + +Currently for handling the extra hibernation phases we just call the +equivalent suspend/resume phases. In the next couple of patches, I wish +to specialise the hibernation phases to reduce the amount of work +required for handling GEM objects. + +V2: There are more! Don't forget the freeze phases. + +Signed-off-by: Chris Wilson <[email protected]> +Cc: Imre Deak <[email protected]> +Cc: David Weinehall <[email protected]> +Reviewed-by: Joonas Lahtinen <[email protected]> +Reviewed-by: Imre Deak <[email protected]> +Link: http://patchwork.freedesktop.org/patch/msgid/[email protected] +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/gpu/drm/i915/i915_drv.c | 45 ++++++++++++++++++++++++++++++++++------ + 1 file changed, 39 insertions(+), 6 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_drv.c ++++ b/drivers/gpu/drm/i915/i915_drv.c +@@ -1119,6 +1119,39 @@ static int i915_pm_resume(struct device + return i915_drm_resume(drm_dev); + } + ++/* freeze: before creating the hibernation_image */ ++static int i915_pm_freeze(struct device *dev) ++{ ++ return i915_pm_suspend(dev); ++} ++ ++static int i915_pm_freeze_late(struct device *dev) ++{ ++ return i915_pm_suspend_late(dev); ++} ++ ++/* thaw: called after creating the hibernation image, but before turning off. */ ++static int i915_pm_thaw_early(struct device *dev) ++{ ++ return i915_pm_resume_early(dev); ++} ++ ++static int i915_pm_thaw(struct device *dev) ++{ ++ return i915_pm_resume(dev); ++} ++ ++/* restore: called after loading the hibernation image. */ ++static int i915_pm_restore_early(struct device *dev) ++{ ++ return i915_pm_resume_early(dev); ++} ++ ++static int i915_pm_restore(struct device *dev) ++{ ++ return i915_pm_resume(dev); ++} ++ + /* + * Save all Gunit registers that may be lost after a D3 and a subsequent + * S0i[R123] transition. The list of registers needing a save/restore is +@@ -1673,14 +1706,14 @@ static const struct dev_pm_ops i915_pm_o + * @restore, @restore_early : called after rebooting and restoring the + * hibernation image [PMSG_RESTORE] + */ +- .freeze = i915_pm_suspend, +- .freeze_late = i915_pm_suspend_late, +- .thaw_early = i915_pm_resume_early, +- .thaw = i915_pm_resume, ++ .freeze = i915_pm_freeze, ++ .freeze_late = i915_pm_freeze_late, ++ .thaw_early = i915_pm_thaw_early, ++ .thaw = i915_pm_thaw, + .poweroff = i915_pm_suspend, + .poweroff_late = i915_pm_poweroff_late, +- .restore_early = i915_pm_resume_early, +- .restore = i915_pm_resume, ++ .restore_early = i915_pm_restore_early, ++ .restore = i915_pm_restore, + + /* S0ix (via runtime suspend) event handlers */ + .runtime_suspend = intel_runtime_suspend, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-i915-Fix-S4-resume-breakage new/patches.fixes/drm-i915-Fix-S4-resume-breakage --- old/patches.fixes/drm-i915-Fix-S4-resume-breakage 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/drm-i915-Fix-S4-resume-breakage 2016-08-30 01:57:41.000000000 +0200 @@ -0,0 +1,33 @@ +From: Takashi Iwai <[email protected]> +Subject: drm/i915: Fix S4 resume breakage +Patch-mainline: Submitted, suggested on ML +References: bsc#984629,bsc#984632,bsc#993472 + +We've seen S4 resume breakage on many Intel machines with SP2 kernel, +where typically the machine gets a memory corruption or kernel Oops / +panic. This problem was seen even on the upstream kernel, and through +the bisection, it was pointed to be a side-effect of the commit: + 4c436d55b279bbc6b02aac02e7dc683fc09f884e + drm/i915: Enable Resource Streamer state save/restore on MI_SET_CONTEXT + +This patch fixes the regression by forcibly calling the GPU reset +at prerequiste of PM S4 restore, as was suggested by the i915 +upstream dev. + +Signed-off-by: Takashi Iwai <[email protected]> + +--- + drivers/gpu/drm/i915/i915_drv.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_drv.c ++++ b/drivers/gpu/drm/i915/i915_drv.c +@@ -1144,6 +1144,8 @@ static int i915_pm_thaw(struct device *d + /* restore: called after loading the hibernation image. */ + static int i915_pm_restore_early(struct device *dev) + { ++ /* for avoiding the memory corruption at S4 resume (bsc#984624) */ ++ intel_gpu_reset(dev_to_i915(dev)->dev, ALL_ENGINES); + return i915_pm_resume_early(dev); + } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/tcp-fix-use-after-free-in-tcp_xmit_retransmit_queue.patch new/patches.fixes/tcp-fix-use-after-free-in-tcp_xmit_retransmit_queue.patch --- old/patches.fixes/tcp-fix-use-after-free-in-tcp_xmit_retransmit_queue.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/tcp-fix-use-after-free-in-tcp_xmit_retransmit_queue.patch 2016-08-30 01:57:41.000000000 +0200 @@ -0,0 +1,60 @@ +From: Eric Dumazet <[email protected]> +Date: Wed, 17 Aug 2016 05:56:26 -0700 +Subject: tcp: fix use after free in tcp_xmit_retransmit_queue() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Patch-mainline: Queued in subsystem maintainer repository (target: v4.8) +Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git +Git-commit: bb1fceca22492109be12640d49f5ea5a544c6bb4 +References: CVE-2016-6828 bsc#994296 + +When tcp_sendmsg() allocates a fresh and empty skb, it puts it at the +tail of the write queue using tcp_add_write_queue_tail() + +Then it attempts to copy user data into this fresh skb. + +If the copy fails, we undo the work and remove the fresh skb. + +Unfortunately, this undo lacks the change done to tp->highest_sack and +we can leave a dangling pointer (to a freed skb) + +Later, tcp_xmit_retransmit_queue() can dereference this pointer and +access freed memory. For regular kernels where memory is not unmapped, +this might cause SACK bugs because tcp_highest_sack_seq() is buggy, +returning garbage instead of tp->snd_nxt, but with various debug +features like CONFIG_DEBUG_PAGEALLOC, this can crash the kernel. + +This bug was found by Marco Grassi thanks to syzkaller. + +Fixes: 6859d49475d4 ("[TCP]: Abstract tp->highest_sack accessing & point to next skb") +Reported-by: Marco Grassi <[email protected]> +Signed-off-by: Eric Dumazet <[email protected]> +Cc: Ilpo Järvinen <[email protected]> +Cc: Yuchung Cheng <[email protected]> +Cc: Neal Cardwell <[email protected]> +Acked-by: Neal Cardwell <[email protected]> +Reviewed-by: Cong Wang <[email protected]> +Signed-off-by: David S. Miller <[email protected]> +Acked-by: Michal Kubecek <[email protected]> + +--- + include/net/tcp.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/net/tcp.h b/include/net/tcp.h +index 0bcc70f4e1fb..725405170f0e 100644 +--- a/include/net/tcp.h ++++ b/include/net/tcp.h +@@ -1522,6 +1522,8 @@ static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unli + { + if (sk->sk_send_head == skb_unlinked) + sk->sk_send_head = NULL; ++ if (tcp_sk(sk)->highest_sack == skb_unlinked) ++ tcp_sk(sk)->highest_sack = NULL; + } + + static inline void tcp_init_send_head(struct sock *sk) +-- +2.9.3 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/x86-hibernate-Use-hlt_play_dead-when-resuming-from-h new/patches.fixes/x86-hibernate-Use-hlt_play_dead-when-resuming-from-h --- old/patches.fixes/x86-hibernate-Use-hlt_play_dead-when-resuming-from-h 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/x86-hibernate-Use-hlt_play_dead-when-resuming-from-h 2016-08-30 01:57:41.000000000 +0200 @@ -0,0 +1,161 @@ +From 406f992e4a372dafbe3c2cff7efbb2002a5c8ebd Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" <[email protected]> +Date: Thu, 14 Jul 2016 03:55:23 +0200 +Subject: [PATCH] x86 / hibernate: Use hlt_play_dead() when resuming from hibernation +Git-commit: 406f992e4a372dafbe3c2cff7efbb2002a5c8ebd +Patch-mainline: 4.8-rc1 +References: bsc#984629,bsc#993472 + +On Intel hardware, native_play_dead() uses mwait_play_dead() by +default and only falls back to the other methods if that fails. +That also happens during resume from hibernation, when the restore +(boot) kernel runs disable_nonboot_cpus() to take all of the CPUs +except for the boot one offline. + +However, that is problematic, because the address passed to +__monitor() in mwait_play_dead() is likely to be written to in the +last phase of hibernate image restoration and that causes the "dead" +CPU to start executing instructions again. Unfortunately, the page +containing the address in that CPU's instruction pointer may not be +valid any more at that point. + +First, that page may have been overwritten with image kernel memory +contents already, so the instructions the CPU attempts to execute may +simply be invalid. Second, the page tables previously used by that +CPU may have been overwritten by image kernel memory contents, so the +address in its instruction pointer is impossible to resolve then. + +A report from Varun Koyyalagunta and investigation carried out by +Chen Yu show that the latter sometimes happens in practice. + +To prevent it from happening, temporarily change the smp_ops.play_dead +pointer during resume from hibernation so that it points to a special +"play dead" routine which uses hlt_play_dead() and avoids the +inadvertent "revivals" of "dead" CPUs this way. + +A slightly unpleasant consequence of this change is that if the +system is hibernated with one or more CPUs offline, it will generally +draw more power after resume than it did before hibernation, because +the physical state entered by CPUs via hlt_play_dead() is higher-power +than the mwait_play_dead() one in the majority of cases. It is +possible to work around this, but it is unclear how much of a problem +that's going to be in practice, so the workaround will be implemented +later if it turns out to be necessary. + +Link: https://bugzilla.kernel.org/show_bug.cgi?id=106371 +Reported-by: Varun Koyyalagunta <[email protected]> +Original-by: Chen Yu <[email protected]> +Tested-by: Chen Yu <[email protected]> +Signed-off-by: Rafael J. Wysocki <[email protected]> +Acked-by: Ingo Molnar <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + arch/x86/include/asm/smp.h | 1 + + arch/x86/kernel/smpboot.c | 2 +- + arch/x86/power/cpu.c | 30 ++++++++++++++++++++++++++++++ + kernel/power/hibernate.c | 7 ++++++- + kernel/power/power.h | 2 ++ + 5 files changed, 40 insertions(+), 2 deletions(-) + +--- a/arch/x86/include/asm/smp.h ++++ b/arch/x86/include/asm/smp.h +@@ -135,6 +135,7 @@ int native_cpu_up(unsigned int cpunum, s + int native_cpu_disable(void); + int common_cpu_die(unsigned int cpu); + void native_cpu_die(unsigned int cpu); ++void hlt_play_dead(void); + void native_play_dead(void); + void play_dead_common(void); + void wbinvd_on_cpu(int cpu); +--- a/arch/x86/kernel/smpboot.c ++++ b/arch/x86/kernel/smpboot.c +@@ -1622,7 +1622,7 @@ static inline void mwait_play_dead(void) + } + } + +-static inline void hlt_play_dead(void) ++void hlt_play_dead(void) + { + if (__this_cpu_read(cpu_info.x86) >= 4) + wbinvd(); +--- a/arch/x86/power/cpu.c ++++ b/arch/x86/power/cpu.c +@@ -12,6 +12,7 @@ + #include <linux/export.h> + #include <linux/smp.h> + #include <linux/perf_event.h> ++#include <linux/tboot.h> + + #include <asm/pgtable.h> + #include <asm/proto.h> +@@ -266,6 +267,35 @@ void notrace restore_processor_state(voi + EXPORT_SYMBOL(restore_processor_state); + #endif + ++#if defined(CONFIG_HIBERNATION) && defined(CONFIG_HOTPLUG_CPU) ++static void resume_play_dead(void) ++{ ++ play_dead_common(); ++ tboot_shutdown(TB_SHUTDOWN_WFS); ++ hlt_play_dead(); ++} ++ ++int hibernate_resume_nonboot_cpu_disable(void) ++{ ++ void (*play_dead)(void) = smp_ops.play_dead; ++ int ret; ++ ++ /* ++ * Ensure that MONITOR/MWAIT will not be used in the "play dead" loop ++ * during hibernate image restoration, because it is likely that the ++ * monitored address will be actually written to at that time and then ++ * the "dead" CPU will attempt to execute instructions again, but the ++ * address in its instruction pointer may not be possible to resolve ++ * any more at that point (the page tables used by it previously may ++ * have been overwritten by hibernate image data). ++ */ ++ smp_ops.play_dead = resume_play_dead; ++ ret = disable_nonboot_cpus(); ++ smp_ops.play_dead = play_dead; ++ return ret; ++} ++#endif ++ + /* + * When bsp_check() is called in hibernate and suspend, cpu hotplug + * is disabled already. So it's unnessary to handle race condition between +--- a/kernel/power/hibernate.c ++++ b/kernel/power/hibernate.c +@@ -409,6 +409,11 @@ int hibernation_snapshot(int platform_mo + goto Close; + } + ++int __weak hibernate_resume_nonboot_cpu_disable(void) ++{ ++ return disable_nonboot_cpus(); ++} ++ + /** + * resume_target_kernel - Restore system state from a hibernation image. + * @platform_mode: Whether or not to use the platform driver. +@@ -433,7 +438,7 @@ static int resume_target_kernel(bool pla + if (error) + goto Cleanup; + +- error = disable_nonboot_cpus(); ++ error = hibernate_resume_nonboot_cpu_disable(); + if (error) + goto Enable_cpus; + +--- a/kernel/power/power.h ++++ b/kernel/power/power.h +@@ -38,6 +38,8 @@ static inline char *check_image_kernel(s + } + #endif /* CONFIG_ARCH_HIBERNATION_HEADER */ + ++extern int hibernate_resume_nonboot_cpu_disable(void); ++ + /* + * Keep some memory free so that I/O operations can succeed without paging + * [Might this be more than 4 MB?] ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:47.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:47.000000000 +0200 @@ -221,6 +221,7 @@ ######################################################## # Networking, IPv6 ######################################################## + patches.fixes/tcp-fix-use-after-free-in-tcp_xmit_retransmit_queue.patch ######################################################## # Netfilter @@ -325,6 +326,9 @@ ######################################################## # DRM/Video ######################################################## + patches.fixes/x86-hibernate-Use-hlt_play_dead-when-resuming-from-h + patches.fixes/drm-i915-Add-distinct-stubs-for-PM-hibernation-phase + patches.fixes/drm-i915-Fix-S4-resume-breakage ######################################################## # video4linux ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.veTfoN/_old 2016-09-05 21:15:47.000000000 +0200 +++ /var/tmp/diff_new_pack.veTfoN/_new 2016-09-05 21:15:47.000000000 +0200 @@ -1,3 +1,3 @@ -2016-08-21 10:59:11 +0200 -GIT Revision: 34ba8d6bb0b78bf6f6aae1aadb8ee9de3aa35910 +2016-08-30 01:57:41 +0200 +GIT Revision: 8a962cfa88053c89b833b7ae38ed32d14882cbae GIT Branch: stable
